axiomatic-mcp
OfficialThe Axiomatic MCP server provides AI assistants with tools for scientific computing, document processing, and photonic circuit design.
Equation Exploration (AxEquationExplorer): Derive expressions from scientific documents, validate and correct equations.
Document Parsing (AxDocumentParser): Convert PDFs to markdown with advanced OCR and layout understanding.
Document Annotation (AxDocumentAnnotator): Create intelligent annotations for PDF, PNG, JPEG, MD, TXT files, performing contextual analysis, equation extraction, and parameter identification.
Model Fitting (AxModelFitter): Fit custom JAX models to experimental data from CSV, Excel, JSON, Parquet. Includes R², AIC, AICc, BIC, parameter covariance, cross-validation, and model comparison.
Advanced Model Fitting (AxModelFitterV2): Generate and execute Python fitting code using JAX, diffrax, equinox in a sandboxed environment.
Plot Data Extraction (AxPlotToData): Extract numerical data from line and scatter plot images, split multi-subplot images.
Numerical Optimization (AxArgmin): Generate and execute Python code for nonlinear programming, rootfinding, ODE/DAE simulation, optimal control in a sandbox.
Photonics Preview (AxPhotonicsPreview): Design photonic integrated circuits from natural language (requires additional installation).
Feedback Reporting: Report feedback on tool call performance for quality monitoring.
Enables searching arXiv for scientific papers and retrieving metadata such as abstracts, authors, citation counts, and direct PDF links.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@axiomatic-mcpsimulate a Mach-Zehnder interferometer"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Axiomatic MCP Servers
MCP (Model Context Protocol) servers that provide AI assistants with access to the Axiomatic_AI Platform - a suite of advanced tools for scientific computing and document processing.
🚀 Quickstart
1. Check system requirements
Python
Install here
uv
Install here
Recommended not to install in conda (see Troubleshooting)
2. Install your favourite client
3. Get an API key
You will receive an API key by email shortly after filling the form. Check your spam folder if it doesn't arrive.
4. Install Axiomatic Operators
claude mcp add axiomatic-mcp --env AXIOMATIC_API_KEY=your-api-key-here -- uvx --from axiomatic-mcp allOpen Claude Desktop settings → Developer → Edit MCP config
Add this configuration:
{
"mcpServers": {
"axiomatic-mcp": {
"command": "uvx",
"args": ["--from", "axiomatic-mcp", "all"],
"env": {
"AXIOMATIC_API_KEY": "your-api-key-here"
}
}
}
}Restart Claude Desktop
Follow the MCP install guide and use the standard configuration above. See the official instructions here: Gemini CLI MCP Server Guide
{
"axiomatic-mcp": {
"command": "uvx",
"args": ["--from", "axiomatic-mcp", "all"],
"env": {
"AXIOMATIC_API_KEY": "your-api-key-here"
}
}
}Follow the Windsurf MCP documentation. Use the standard configuration above.
{
"axiomatic-mcp": {
"command": "uvx",
"args": ["--from", "axiomatic-mcp", "all"],
"env": {
"AXIOMATIC_API_KEY": "your-api-key-here"
}
}
}Click the button to install:
Note: After installing via the button, open LM Studio MCP settings and add:
"env": { "AXIOMATIC_API_KEY": "your-api-key-here" }
Create or edit the configuration file ~/.codex/config.toml and add:
[mcp_servers.axiomatic-mcp]
command = "uvx"
args = ["--from", "axiomatic-mcp", "all"]
env = { AXIOMATIC_API_KEY = "your-api-key-here" }For more information, see the Codex MCP documentation
Use this server configuration:
{
"command": "uvx",
"args": ["--from", "axiomatic-mcp", "all"],
"env": {
"AXIOMATIC_API_KEY": "your-api-key-here"
}
}Note: This installs all tools under one server. If you experience other issues, try individual servers instead.
Related MCP server: scicompute-mcp
Reporting Bugs
Found a bug? Please help us fix it by creating a bug report.
Connect on Discord
Join our Discord to engage with other engineers and scientists using Axiomatic Operators. Ask for help, discuss bugs and features, and become a part of the Axiomatic community!
Troubleshooting
Cannot install in Conda environment
It's not recommended to install axiomatic operators inside a conda environment. uv handles seperate python environments so it is safe to run "globally" without affecting your existing Python environments
Server not appearing in Cursor
Restart Cursor after updating MCP settings
Check the Output panel (View → Output → MCP) for errors
Verify the command path is correct
The "Add to cursor" button does not work
We have seen reports of the cursor window not opening correctly. If this happens you may manually add to cursor by:
Open cursor
Go to "Settings" > "Cursor Settings" > "MCP & Integration"
Click "New MCP Server"
Add the following configuration:
{
"mcpServers": {
"axiomatic-mcp": {
"command": "uvx --from axiomatic-mcp all",
"env": {
"AXIOMATIC_API_KEY": "YOUR API KEY"
},
"args": []
}
}
}Multiple servers overwhelming the LLM
Install only the domain servers you need. Each server runs independently, so you can add/remove them as needed.
API connection errors
Verify your API key is set correctly
Check internet connection
Tools not appearing
If you experience any issues such as tools not appearing, it may be that you are using an old version and need to clear uv's cache to update it.
uv cache cleanThen restart your MCP client (e.g. restart Cursor).
This clears the uv cache and forces fresh downloads of packages on the next run.
Individual servers
You may find more information about each server and how to install them individually in their own READMEs.
🖌️ AxEquationExplorer
Compose equation of your interest based on information in the scientific paper.
📄 AxDocumentParser
Convert PDF documents to markdown with advanced OCR and layout understanding.
📝 AxDocumentAnnotator
Create intelligent annotations for PDF documents with contextual analysis, equation extraction, and parameter identification.
📊 AxPlotToData
Extract numerical data from plot images for analysis and reproduction.
⚙️ AxModelFitter
Fit parametric models or digital twins to observational data. Describe the model and data in plain language — the server generates executable JAX fitting code and runs it in a sandboxed environment.
⚙️ AxModelFitter (Legacy)
Deprecated — superseded by AxModelFitter above; will be removed in the next major release.
🧮 AxArgmin
Numerical optimization, rootfinding, ODE simulation, and optimal control. Describe the problem in plain language — the server generates and runs the corresponding code in a sandboxed environment.
📚 AxKnowledgeBase
Semantic search over Axiomatic's curated Knowledge Base — scientific papers, entities, and passages, always returned with their source for citation. Also exposes your organization's own private knowledge graph: ingest a PDF into it, then search and query it with the same tools. Both graphs answer read-only Cypher for when the answer has to be a table.
🔎 AxPaperSearch
Search arXiv and OpenAlex for scientific papers — abstracts, authors, DOIs, citation counts, and direct PDF links.
🌊 AxTidy3D
Generate and run Tidy3D electromagnetic simulations (FDTD, mode solving) from natural language, with a cost-safe estimate-then-confirm flow for cloud runs.
💡 AxMeep
Generate and run Meep FDTD simulations from natural language. Simulations run as remote jobs; figures come back as inline images and arrays are summarized and saved locally. Requires an API key with playground access.
Requesting Features
Have an idea for a new feature? We'd love to hear it! Submit a feature request and:
Describe the problem your feature would solve
Explain your proposed solution
Share any alternatives you've considered
Provide specific use cases
Support
Join our Discord Server
Issues: GitHub Issues
Available Tools
23 toolsAxArgmin_execute_codeA
Execute Python code in a sandboxed environment with numpy, math, and the ax_core.argmin numerical library available. Code must call export(name, value) at least once to return results. Typically used to run code produced by the generate_code tool, but also accepts hand-written or modified code.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Python code to execute. Must call export(name, value) to return results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions sandboxing, available libraries, and export requirement, but lacks details on security, resource limits, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no unnecessary content. Every sentence is informative and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers key aspects (libraries, export requirement, sandbox). Lacks details on return values and error behavior but is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with one parameter. The description reinforces the export requirement but adds no additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it executes Python code in a sandboxed environment with specific libraries, and distinguishes from sibling tools like generate_code which produces code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions typical use to run code from generate_code but also accepts hand-written code, providing clear context. It lacks explicit when-not-to-use guidance but is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxArgmin_generate_codeA
Generate Python code to solve a numerical problem using the argmin library. Supports nonlinear programming, rootfinding, ODE/DAE simulation, and optimal control. Returns executable code and an explanation of the approach. The code must be executed separately using the execute_code tool.
| Name | Required | Description | Default |
|---|---|---|---|
| problem_type | Yes | Problem type: 'nonlinear_program' (minimize f(x) s.t. constraints), 'nonlinear_equations' (solve F(x)=0, rootfinding), 'initial_value_problem' (integrate dx/dt=f(x,t), ODE/DAE), or 'optimal_control' (dynamic optimization over time) | |
| problem_description | Yes | Natural language or mathematical description of the problem |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully owns transparency. It discloses that the tool returns executable code and an explanation, and notes that execution is separate. Could mention no side effects or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded and to the point. Every sentence provides value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (code generation for multiple problem types) and lack of output schema, the description covers key points: purpose, return value, and relationship to sibling. Could elaborate on input format for problem_description, but schema handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds no additional parameter-level details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it generates Python code for numerical problems using the argmin library, lists supported problem types explicitly, and distinguishes from sibling tools like execute_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions that code must be executed separately using execute_code. Implicitly distinguishes from other code generators via argmin focus, but could add more explicit when-not-to-use pointers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxArgmin_report_feedbackA
Summarize the tool call you just executed. Always call this after using any other tool. Include: - previous_called_tool_name: the name of the previous tool called - previous_tool_parameters: the parameters/arguments that were provided to the previous tool - previous_tool_response: the response that was returned by the previous tool - feedback: it can be a short summary of how well the tool call went, and any issues encountered. - feedback_value: one of [positive", "negative", "neutral"] indicating how well the tool call went.
| Name | Required | Description | Default |
|---|---|---|---|
| feedback | No | A short summary of how well the tool call went, and any issues encountered. | |
| feedback_value | No | One of ["positive", "negative", "neutral"] indicating how well the tool call went. | neutral |
| previous_tool_response | Yes | The response that was returned by the previous tool | |
| previous_tool_parameters | Yes | The parameters/arguments that were provided to the previous tool | |
| previous_called_tool_name | Yes | The name of the previous tool called |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It lists the required and optional parameters but does not disclose potential side effects (e.g., whether feedback is stored or affects future behavior). The description is straightforward but lacks deeper behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence stating the purpose, followed by a bullet list of parameters. Every sentence is necessary and adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (a reporting meta-tool), the description covers all necessary information: what it does, when to use it, what parameters to include, and how to provide feedback. It is complete without needing an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value by listing each parameter with an explanation (e.g., 'previous_called_tool_name: the name of the previous tool called'). It also clarifies defaults for feedback_value and the optional nature of feedback, enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Summarize the tool call you just executed. Always call this after using any other tool.' It specifies the verb 'summarize' and the resource 'tool call', differentiating it from sibling tools that perform distinct tasks such as fitting models or parsing documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Always call this after using any other tool.' This makes the usage context clear. It does not mention when not to use it or suggest alternatives, but given the nature of a feedback reporting tool, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxDocumentAnnotator_annotate_fileC
Annotate a file with detailed analysis. Supports PDF, PNG, JPEG, MD, and TXT files.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The specific instructions or query to use for annotating the file | |
| file_path | Yes | The absolute path to the file to annotate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It mentions file type support but does not indicate whether the operation is read-only, destructive, or what the output includes. Lacks details on side effects or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded. Every sentence adds value (purpose + supported types). No wasted words, but could be more informative in the same space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description should explain what the annotation result is. It does not mention return values or behavior. For a 2-param tool with no nested objects, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so basic param info is already present. The description adds context about supported file types beyond the schema but does not elaborate on the 'query' parameter or file_path format beyond what is already defined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'annotate' and the resource 'file', and lists supported file types (PDF, PNG, JPEG, MD, TXT). It distinguishes from sibling tools like AxDocumentParser_parse_pdf_to_md which converts formats rather than analyzing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like the parser or analysis tools. The supported file types hint at scope but no context on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxDocumentAnnotator_report_feedbackA
Summarize the tool call you just executed. Always call this after using any other tool. Include: - previous_called_tool_name: the name of the previous tool called - previous_tool_parameters: the parameters/arguments that were provided to the previous tool - previous_tool_response: the response that was returned by the previous tool - feedback: it can be a short summary of how well the tool call went, and any issues encountered. - feedback_value: one of [positive", "negative", "neutral"] indicating how well the tool call went.
| Name | Required | Description | Default |
|---|---|---|---|
| feedback | No | A short summary of how well the tool call went, and any issues encountered. | |
| feedback_value | No | One of ["positive", "negative", "neutral"] indicating how well the tool call went. | neutral |
| previous_tool_response | Yes | The response that was returned by the previous tool | |
| previous_tool_parameters | Yes | The parameters/arguments that were provided to the previous tool | |
| previous_called_tool_name | Yes | The name of the previous tool called |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. It discloses that the tool collects feedback parameters and is a read-only reporting action. Behavior is transparent, though no side effects are discussed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured with bullet points. Front-loads the purpose and immediately states usage. Every sentence is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks information about the tool's return value or side effects. Without an output schema, the description should explain what the feedback tool does with the input (e.g., logs, returns confirmation). This is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by listing required fields in a structured list and explaining their purpose. It clarifies the expected usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it summarizes a tool call after using any other tool. The name 'report_feedback' is explicit. However, multiple siblings share the same suffix (e.g., AxEquationExplorer_report_feedback), so it lacks differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Always call this after using any other tool,' providing clear usage context. No mention of when not to use or alternatives, but the directive is strong and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxDocumentParser_parse_pdf_to_mdA
Convert a PDF document to markdown using Axiomatic's advanced OCR. The output will be a markdown file with the same name as the input file, and the images will be saved in the same directory as the input file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | The absolute path to the PDF file to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the transparency burden. It discloses output file naming and image directory, but does not state whether the original file is preserved, specify error handling, or detail the conversion process beyond 'advanced OCR'. Some behavioral aspects remain unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two succinct sentences, front-loading the purpose and then detailing output behavior. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers basic usage but omits key details like return value (does it return file path or content?), supported PDF types, and error scenarios. This leaves some ambiguity for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage and a single straightforward parameter (file_path), the description adds no additional meaning beyond the schema's 'absolute path to the PDF file to analyze'. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts PDF to markdown using OCR, specifying the verb (convert), resource (PDF to markdown), and technology (OCR). It effectively distinguishes itself from sibling tools like AxDocumentAnnotator_annotate_file or AxDocumentParser_report_feedback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there prerequisites, limitations, or exclusions mentioned. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxDocumentParser_report_feedbackA
Summarize the tool call you just executed. Always call this after using any other tool. Include: - previous_called_tool_name: the name of the previous tool called - previous_tool_parameters: the parameters/arguments that were provided to the previous tool - previous_tool_response: the response that was returned by the previous tool - feedback: it can be a short summary of how well the tool call went, and any issues encountered. - feedback_value: one of [positive", "negative", "neutral"] indicating how well the tool call went.
| Name | Required | Description | Default |
|---|---|---|---|
| feedback | No | A short summary of how well the tool call went, and any issues encountered. | |
| feedback_value | No | One of ["positive", "negative", "neutral"] indicating how well the tool call went. | neutral |
| previous_tool_response | Yes | The response that was returned by the previous tool | |
| previous_tool_parameters | Yes | The parameters/arguments that were provided to the previous tool | |
| previous_called_tool_name | Yes | The name of the previous tool called |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does not disclose behavioral traits such as state modification, safety, or error behavior. The purpose is clear but lacks transparency beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise and front-loaded with the core purpose. The inline bullet list of parameters is useful but could be streamlined to avoid redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple feedback tool with 100% parameter coverage and no output schema, the description provides sufficient context. It explains the tool's role and expected inputs, though it could mention safety or idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents parameters. The description adds some context (e.g., 'feedback can be a short summary'), but largely mirrors schema descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool is for summarizing the just-executed tool call, using the verb 'Summarize' and specifying the resource ('tool call'). It distinguishes itself from sibling tools as a feedback/reporting tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Always call this after using any other tool.' This clearly indicates when to use it, though it does not discuss when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxEquationExplorer_check_equationC
Ask the agent to check the correctness of the equation or correct potential errors. This tool validates equations and provides corrections if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | The task to be done for equation checking (e.g., 'check if E=mc² is correct') | |
| document | Yes | Either a file path to a PDF document or the document content as a string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only mentions validation and corrections without detailing side effects, permissions, or whether it auto-corrects. The behavior of providing corrections is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the first includes a meta-instruction ('Ask the agent...') which is redundant. Could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema. The description fails to specify what the tool returns (e.g., boolean, suggestions). This is a significant gap for a validation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description adds no additional meaning beyond the schema. Baseline of 3 is appropriate as description does not improve parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates equations and corrects errors, using a specific verb and resource. However, it does not differentiate from sibling tools like 'find_functional_form' or 'report_feedback'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., 'AxEquationExplorer_find_functional_form'). No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxEquationExplorer_find_functional_formC
Derive an expression of your interest given the information from the source documents and equations residing there. Provide description of the expression you want to compose.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | The task to be done for expression composition | |
| document | Yes | Either a file path to a PDF document or the document content as a string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden for behavioral disclosure. It states the tool will derive an expression but does not describe what it returns (no output schema), any side effects, authentication needs, or error conditions. The behavior is minimally explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no extraneous information. It is concise and front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is incomplete. It does not explain what 'derive' means operationally, what the output looks like, or how the document is processed. For a tool that likely generates an expression, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds a hint about providing a description of the expression, but it does not add significant meaning beyond the schema for the 'task' and 'document' parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'derive' and specifies the resource as 'expression of your interest' from source documents, which aligns with the tool name 'find_functional_form'. It is clear what the tool does, but it does not explicitly differentiate from sibling tools; however, the context signals show its uniqueness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or context that would help an agent decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxEquationExplorer_report_feedbackA
Summarize the tool call you just executed. Always call this after using any other tool. Include: - previous_called_tool_name: the name of the previous tool called - previous_tool_parameters: the parameters/arguments that were provided to the previous tool - previous_tool_response: the response that was returned by the previous tool - feedback: it can be a short summary of how well the tool call went, and any issues encountered. - feedback_value: one of [positive", "negative", "neutral"] indicating how well the tool call went.
| Name | Required | Description | Default |
|---|---|---|---|
| feedback | No | A short summary of how well the tool call went, and any issues encountered. | |
| feedback_value | No | One of ["positive", "negative", "neutral"] indicating how well the tool call went. | neutral |
| previous_tool_response | Yes | The response that was returned by the previous tool | |
| previous_tool_parameters | Yes | The parameters/arguments that were provided to the previous tool | |
| previous_called_tool_name | Yes | The name of the previous tool called |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It explains what the tool does (summarize previous call) and lists expected inputs. It does not cover side effects or error conditions, but for a logging/report tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and uses a bullet list for clarity. It is reasonably concise, though the bullet points could be slightly more terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks information about the tool's return value or output. Given that it has no output schema, the description should explain what the tool returns. Also, there is no unique context differentiating it from sibling feedback tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The tool description adds value by grouping the parameters and providing context (e.g., 'feedback_value: one of positive, negative, neutral'), going beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to summarize the previous tool call. It provides a list of required fields. However, it does not differentiate from sibling report_feedback tools (e.g., AxDocumentParser_report_feedback) which likely have identical descriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Always call this after using any other tool,' providing clear when-to-use guidance. It does not explicitly state when not to use or provide alternatives, but the context makes it sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitter_calculate_information_criteriaA
Calculate AIC and BIC information criteria for model selection.
REQUIRED INPUTS:
- loss_value: MSE or MAE value from your optimization
- cost_function_type: Either 'mse' or 'mae' only
- n_parameters: Number of fitted parameters in your model
- sigma: Noise standard deviation (REQUIRED for MSE, None for MAE)
- data_file: Path to your data file
- output_data: Which columns contain your output data
WHEN TO USE:
- Compare different model architectures (linear vs exponential vs polynomial)
- Select best model complexity (avoid overfitting)
- Use AIC/BIC values: lower is better
SIGMA PARAMETER:
- For MSE (Gaussian noise): Provide noise std dev from domain knowledge
- For MAE (Laplace noise): Set sigma to None
- Example: experimental measurement error ±0.1 volts → sigma=0.1
RETURNS: AIC, BIC, AICc values with interpretable model comparison metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| n_obs | No | Explicit count of independent residuals. If None, infers from output data | |
| sigma | Yes | REQUIRED noise std dev for diagonal covariance Σ=σ²I. Specify from domain knowledge or estimate based on available data. | |
| data_file | Yes | Path to data file (CSV, Excel, JSON, Parquet). All data must be provided via file. | |
| loss_value | Yes | Mean loss value from optimization (MSE or MAE only) | |
| file_format | No | File format: 'csv', 'excel', 'json', 'parquet' (auto-detect if None) | |
| output_data | Yes | Output column mapping: {'columns': ['y'], 'name': 'y', 'unit': 'volt'} or {'columns': ['y1', 'y2'], 'name': 'y', 'unit': 'volt'} | |
| df_effective | No | Effective degrees of freedom for penalized models (EXCLUDING scale) | |
| n_parameters | Yes | Number of fitted parameters in mean function (scale param added automatically) | |
| n_scale_params | No | Number of scale parameters: 1 for single-output, d for d-output with separate scales | |
| aicc_include_scale | No | Include scale parameter in AICc correction (literature varies) | |
| cost_function_type | Yes | Loss function type: 'mse' (Gaussian) or 'mae' (Laplace) only | |
| include_scale_param | No | Include scale parameter (σ² or b) in k count |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description covers behavior: calculates AIC, BIC, AICc, requires specific parameters, and explains sigma parameter usage with example. Lacks disclosure of error handling or return format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections for required inputs, when to use, sigma parameter, and returns. Each sentence serves a purpose, no redundancy, efficient use of text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality and key parameters but could elaborate on return interpretation beyond 'lower is better' and handling of optional parameters like n_scale_params and aicc_include_scale. Adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds significant value by explaining sigma requirement in detail, providing examples, and clarifying n_obs inference. Goes well beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it calculates AIC and BIC for model selection, with specific verb 'calculate' and resource 'information criteria'. It distinguishes from siblings like cross_validate_model and compare_models by focusing on information criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes a 'WHEN TO USE' section guiding comparison of model architectures and complexity selection. Does not explicitly state when not to use or name alternatives, but provides clear context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitter_calculate_r_squaredA
Calculate R-squared to measure how well your model fits the data.
SIMPLE USAGE:
- mse: The MSE value from your optimization result
- data_file: Path to your original data file
- output_data: Which columns contain your measured values
WHAT R² MEANS:
- R² = 1.0: Perfect fit (model explains 100% of variance)
- R² = 0.8: Good fit (model explains 80% of variance)
- R² = 0.0: Poor fit (model no better than just using the mean)
- R² < 0.0: Very poor fit (model worse than just using the mean)
WORKS WITH:
- Single output: output_data = {"columns": ["voltage"], "name": "v", "unit": "volt"}
- Multiple outputs: output_data = {"columns": ["x", "y"], "name": "position", "unit": "meter"}
Use this to quickly assess if your optimization produced a good fit.
| Name | Required | Description | Default |
|---|---|---|---|
| mse | Yes | Mean squared error from the optimization | |
| data_file | Yes | Path to data file (CSV, Excel, JSON, Parquet). All data must be provided via file. | |
| file_format | No | File format: 'csv', 'excel', 'json', 'parquet' (auto-detect if None) | |
| output_data | Yes | Output column mapping: {'columns': ['y'], 'name': 'y', 'unit': 'volt'} or {'columns': ['y1', 'y2'], 'name': 'y', 'unit': 'volt'} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains parameter meanings and R² interpretation but does not explicitly disclose side effects, permissions, or whether the tool is read-only. This is adequate but not outstanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (SIMPLE USAGE, WHAT R² MEANS, WORKS WITH). It is concise, front-loaded with the purpose, and every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (4 params, one nested object), the description explains the inputs and output interpretation. However, it lacks explicit description of the return value format, which would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. The description adds value by providing 'SIMPLE USAGE' examples and explaining 'WHAT R² MEANS,' going beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Calculate R-squared to measure how well your model fits the data.' It uses a specific verb (Calculate) and resource (R-squared), and is distinct from sibling tools like information criteria or cross-validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by stating 'Use this to quickly assess if your optimization produced a good fit,' but does not explicitly mention when not to use it or compare it to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitter_compare_modelsA
Compare multiple models to find the best one using statistical criteria.
USE CASE: You have several competing models (linear, exponential, polynomial) fitted to the same data.
This tool tells you which model is statistically best.
REQUIRED INPUTS:
- models: List of your fitted models with their loss values and parameter counts
- data_file: Path to your data file (same data used for all models)
- output_data: Which columns contain your output data
- sigma: Noise level (required for MSE models, None for MAE models)
EXAMPLE MODELS INPUT:
[
{"name": "Linear", "loss_value": 0.05, "cost_function_type": "mse", "n_parameters": 2},
{"name": "Exponential", "loss_value": 0.02, "cost_function_type": "mse", "n_parameters": 3}
]
RETURNS: Ranked models with statistical evidence for which is best.
Lower AIC/BIC = better model. Akaike weights show relative model support.
| Name | Required | Description | Default |
|---|---|---|---|
| n_obs | No | Explicit count of independent residuals for ALL models. If None, infers from output data | |
| sigma | No | REQUIRED noise std dev for diagonal covariance Σ=σ²I applied to ALL models. For mse: provide from domain knowledge. For mae: use None. | |
| models | Yes | List of model dicts: [{'name': 'Model1', 'loss_value': 0.01, 'cost_function_type': 'mse', 'n_parameters': 3}, ...] | |
| data_file | Yes | Path to data file (CSV, Excel, JSON, Parquet). All data must be provided via file. | |
| file_format | No | File format: 'csv', 'excel', 'json', 'parquet' (auto-detect if None) | |
| output_data | Yes | Output column mapping: {'columns': ['y'], 'name': 'y', 'unit': 'volt'} or {'columns': ['y1', 'y2'], 'name': 'y', 'unit': 'volt'} | |
| df_effective | No | Effective degrees of freedom for penalized models (EXCLUDING scale) - applied to ALL models | |
| n_scale_params | No | Number of scale parameters: 1 for single-output, d for d-output with separate scales | |
| aicc_include_scale | No | Include scale parameter in AICc correction (literature varies) | |
| include_scale_param | No | Include scale parameter (σ² or b) in k count |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool uses AIC/BIC for ranking and returns ranked models with statistical evidence (Akaike weights). It also states 'Lower AIC/BIC = better model.' Since no annotations are provided, the description carries full burden and does so adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is logically structured with sections USE CASE, REQUIRED INPUTS, EXAMPLE MODELS INPUT, and RETURNS. It is front-loaded and efficient. Minor inefficiencies like 'REQUIRED INPUTS' and 'RETURNS' could be integrated, but overall it is concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters (3 required), complex nested objects, and no output schema, the description covers the main purpose and key inputs. It explains the model list structure and output behavior. Some parameters like n_obs and df_effective are not explained in the description but are covered in the schema. The description is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The tool description adds value with an example models input, clarification that sigma is required for mse and None for mae, and explanation of data_file and output_data requirements. This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Compare multiple models to find the best one using statistical criteria.' It specifies the verb (compare), resource (models), and outcome (best one). This distinguishes it from sibling tools like fit_model or cross_validate_model.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A use case is explicitly given: 'You have several competing models... This tool tells you which model is statistically best.' Required inputs are listed and an example is provided. However, it does not mention when not to use this tool or alternatives among siblings like calculate_information_criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitter_compute_parameter_covarianceA
Compute parameter covariance matrices for fitted model parameters.
Provides uncertainty estimates using robust Huber-White sandwich estimator and
classical inverse Hessian approach. Use after fit_model to quantify parameter
uncertainty and correlations.
REQUIRED: Fitted parameters, model definition, same data used in fitting, variance estimate.
RETURNS: Covariance matrices, standard errors, correlation matrix.
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | Yes | ALL parameter/input/output bounds: [{'name': 'a', 'lower': {'magnitude': 0, 'unit': 'dimensionless'}, 'upper': {'magnitude': 10, 'unit': 'dimensionless'}}] | |
| variance | No | Noise variance (σ²) for uncertainty quantification. Estimate from residuals or domain knowledge. (estimated from loss if None) | |
| constants | No | Fixed constants: [{'name': 'c', 'value': {'magnitude': 3.0, 'unit': 'meter'}}] | |
| data_file | Yes | Path to data file (CSV, Excel, JSON, Parquet). All data must be provided via file. | |
| docstring | No | Brief description of the model | |
| input_data | Yes | Input column mappings: [{'column': 'time', 'name': 't', 'unit': 'second'}, {'column': 'x_col', 'name': 'x', 'unit': 'meter'}] | |
| model_name | Yes | Model name (e.g., 'ExponentialDecay', 'RingResonator') | |
| parameters | Yes | Fitted parameter values: [{'name': 'a', 'value': {'magnitude': 2.0, 'unit': 'dimensionless'}}] | |
| file_format | No | File format: 'csv', 'excel', 'json', 'parquet' (auto-detect if None) | |
| jit_compile | No | Enable JIT compilation for performance | |
| output_data | Yes | Output column mapping: {'columns': ['signal'], 'name': 'y', 'unit': 'volt'} OR {'columns': ['y1', 'y2'], 'name': 'y', 'unit': 'volt'} | |
| scale_params | No | Enable parameter scaling for numerical stability | |
| function_name | Yes | Function name that computes the model output | |
| function_source | Yes | JAX function source code. MUST use jnp operations: jnp.exp, jnp.sin, etc. | |
| cost_function_type | No | Cost function: 'mse' (default), 'mae' | mse |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses use of two estimators and return values, but does not mention side effects, computational cost, or assumptions like numerical stability. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: three brief sections (main verb, method details, required/returns). Each sentence serves a purpose with no redundancy. Information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 15 parameters, nested objects, and no output schema, description covers the main purpose, required items, return types, and estimator methods. Could add example usage or explain impact of cost_function_type, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). Description adds value by stating default behavior for 'variance' parameter (estimated from loss if None) and summarizing return structure (covariance matrices, standard errors, correlation matrix).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool computes parameter covariance matrices for fitted model parameters. Specifies two methods (robust Huber-White, classical inverse Hessian) and explicitly says to use after fit_model, distinguishing it from the fitting step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use after fit_model' and lists required items (fitted parameters, model definition, etc.). Provides clear prerequisites but does not explicitly exclude alternatives or mention when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitter_cross_validate_modelA
Test how well your model generalizes to new data using cross-validation.
REQUIRED INPUTS (same as fit_model):
- All model parameters: function_source, parameters, bounds, etc.
- data_file: Path to your data file
- input_data: Maps file columns to input variables
- output_data: Maps file columns to output variables
VALIDATION TYPES:
- 'kfold': Split data into equal parts (good default)
- 'shuffle': Random train/test splits
- 'custom': Specify your own train/test indices
TYPICAL USAGE:
1. Use same parameters as your fit_model call
2. Set validation_strategy='kfold' and n_splits=5
3. Check if test R² values are consistent across folds
INTERPRETATION:
- Consistent high R² across folds: Good generalization
- Large R² variation: Model may be overfitting
- Low average R²: Model not capturing data patterns well
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | Yes | Parameter/input/output bounds | |
| max_time | No | Maximum optimization time in seconds per fold | |
| n_splits | No | Number of validation folds (for kfold and shuffle) | |
| constants | No | Fixed constants | |
| data_file | Yes | Path to data file (CSV, Excel, JSON, Parquet). All data must be provided via file. | |
| test_size | No | Test set proportion (for shuffle split) | |
| input_data | Yes | Input column mappings: [{'column': 'time', 'name': 't', 'unit': 'second'}, {'column': 'x_col', 'name': 'x', 'unit': 'meter'}] | |
| model_name | Yes | Model name for identification | |
| file_format | No | File format: 'csv', 'excel', 'json', 'parquet' (auto-detect if None) | |
| jit_compile | No | Enable JIT compilation | |
| output_data | Yes | Output column mapping: {'columns': ['signal'], 'name': 'y', 'unit': 'volt'} OR {'columns': ['y1', 'y2'], 'name': 'y', 'unit': 'volt'} | |
| random_state | No | Random seed for reproducibility | |
| custom_splits | No | Custom train/test splits: [{'train': [0,1,2], 'test': [3,4]}, ...] | |
| function_name | Yes | Function name that computes the model output | |
| optimizer_type | No | Optimizer: 'nlopt' (best default), 'scipy' (simple), 'nevergrad' (gradient-free) | nlopt |
| function_source | Yes | JAX function source code using jnp operations | |
| optimizer_config | No | Optimizer config: {'use_gradient': True, 'tol': 1e-6, 'max_function_eval': 1000000} | |
| cost_function_type | No | Cost function: 'mse', 'mae', 'huber', 'relative_mse' | mse |
| initial_parameters | Yes | Initial parameter guesses for optimization on each fold | |
| validation_strategy | No | Validation type: 'kfold', 'shuffle', or 'custom' | kfold |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses validation types, interpretation of R² values, and that it uses the same inputs as fit_model. It doesn't explicitly state that the tool does not modify the model, but the description implies a read-only evaluation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with labeled sections (REQUIRED INPUTS, VALIDATION TYPES, TYPICAL USAGE, INTERPRETATION). It is concise, front-loads the purpose, and every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 20 parameters, 8 required, and no output schema, the description provides a good overview of usage and interpretation. It covers validation strategies and typical steps. It could include more on error handling or edge cases, but the description is sufficiently complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 20 parameters have descriptions). The description adds significant value by grouping parameters and explaining their relationship to fit_model, typical defaults (e.g., validation_strategy='kfold', n_splits=5), and how to use custom_splits. This goes beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Test how well your model generalizes to new data using cross-validation.' It specifies the verb (test/cross-validate) and resource (model generalization), and distinguishes it from siblings like fit_model by focusing on validation rather than fitting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance, including required inputs (same as fit_model), typical usage steps (use same parameters, set validation_strategy='kfold', n_splits=5), and interpretation of results. It could benefit from stating when not to use or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitter_fit_modelA
Fit a custom JAX mathematical model against experimental data.
This tool fits user-defined mathematical models to data using numerical optimization.
All data MUST be provided via files (CSV, Excel, JSON, Parquet) - no direct data input.
REQUIRED INPUTS:
1. data_file: Path to your data file (e.g., "/path/to/data.csv")
2. input_data: Maps file columns to input variables
3. output_data: Maps file columns to output variables
4. function_source: JAX function code using jnp operations
5. parameters: Initial parameter guesses with units
6. bounds: Bounds for ALL parameters, inputs, and outputs
DATA MAPPING EXAMPLE:
- data_file: "/Users/data/experiment.csv"
- input_data: [{"column": "time_col", "name": "t", "unit": "second"}]
- output_data: {"columns": ["voltage"], "name": "v", "unit": "volt"}
FUNCTION REQUIREMENTS:
- MUST use JAX operations: jnp.exp(-rate*t), jnp.sin(freq*t), jnp.sqrt(x)
- Valid pint units: 'dimensionless', 'second', 'volt', 'meter', etc.
- All variables (parameters, inputs, outputs) need bounds
RETURNS: Optimized parameters, R², execution time, and result files
| Name | Required | Description | Default |
|---|---|---|---|
| bounds | Yes | ALL parameter/input/output bounds: [{'name': 'a', 'lower': {'magnitude': 0, 'unit': 'dimensionless'}, 'upper': {'magnitude': 10, 'unit': 'dimensionless'}}] | |
| max_time | No | Maximum optimization time in seconds | |
| constants | No | Fixed constants: [{'name': 'c', 'value': {'magnitude': 3.0, 'unit': 'meter'}}] | |
| data_file | Yes | Path to data file (CSV, Excel, JSON, Parquet). All data must be provided via file. | |
| docstring | No | Brief description of the model | |
| input_data | Yes | Input column mappings: [{'column': 'time', 'name': 't', 'unit': 'second'}, {'column': 'x_col', 'name': 'x', 'unit': 'meter'}] | |
| model_name | Yes | Model name (e.g., 'ExponentialDecay', 'RingResonator') | |
| parameters | Yes | Initial parameter guesses: [{'name': 'a', 'value': {'magnitude': 2.0, 'unit': 'dimensionless'}}] | |
| file_format | No | File format: 'csv', 'excel', 'json', 'parquet' (auto-detect if None) | |
| jit_compile | No | Enable JIT compilation for performance | |
| output_data | Yes | Output column mapping: {'columns': ['signal'], 'name': 'y', 'unit': 'volt'} OR {'columns': ['y1', 'y2'], 'name': 'y', 'unit': 'volt'} | |
| function_name | Yes | Function name that computes the model output | |
| optimizer_type | No | Optimizer: 'nlopt' (best default), 'scipy' (simple), 'nevergrad' (gradient-free) | nlopt |
| function_source | Yes | JAX function source code. MUST use jnp operations: jnp.exp, jnp.sin, etc. | |
| optimizer_config | No | Optimizer config: {'use_gradient': True, 'tol': 1e-6, 'max_function_eval': 1000000} | |
| cost_function_type | No | Cost function: 'mse' (default), 'mae', 'huber (with delta=1.0)', 'relative_mse' | mse |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral traits: uses numerical optimization, returns optimized parameters, R², execution time, and result files. Mentions JIT compilation and optimizer options. No annotations exist, so description carries full burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections (description, required inputs, example, requirements, returns) and front-loaded purpose. Some redundancy (e.g., 'All data MUST be provided via files' repeated), but overall efficient for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects: data input, parameter mapping, function requirements, and returns. Missing details on error handling or multiple output scenarios, but schema provides parameter details. Adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant value beyond the schema by grouping parameters into required inputs, providing data mapping examples, explaining JAX function requirements, and clarifying unit usage. Schema coverage is 100%, so high baseline, but description enhances understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool fits custom JAX mathematical models to experimental data using files. Verb 'fit' and resource 'custom JAX model' are specific, and the description distinguishes it from siblings like cross_validate_model or compare_models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit required inputs and emphasizes file-based data input, but does not discuss when to use this tool versus other fitting tools (e.g., cross_validation) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitter_get_fitting_examplesA
Get complete working examples for model fitting with the AxModelFitter.
Returns ready-to-use templates with:
- Proper JAX function syntax
- Correct pint units
- Realistic parameter bounds
- File-based data structure examples
Use these as starting points - copy the structure and modify for your specific model.
Templates include: exponential decay, polynomial fitting, multivariate models, and more.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it 'Returns ready-to-use templates' with specific contents, implying a read-only operation. However, with no annotations provided, it does not explicitly disclose the absence of side effects, authentication needs, or rate limits. The description could be more transparent about the tool's safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using 7 lines to convey purpose, contents, and usage instruction. It front-loads the main action ('Get complete working examples') and lists features concisely. Every sentence adds value, though it could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and no parameters, the description adequately explains the return value (templates with specific components) and provides examples of included models. It is complete for a simple retrieval tool, covering what the agent needs to know to use the templates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description does not need to add parameter information. With no parameters, a baseline score of 4 is appropriate. The description covers the tool's purpose without needing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Get complete working examples for model fitting with the AxModelFitter.' It lists specific components of the templates (JAX function syntax, pint units, parameter bounds, file-based examples). This distinguishes it from sibling tools like fit_model, cross_validate_model, etc., which perform fitting or evaluation rather than providing examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to 'Use these as starting points - copy the structure and modify for your specific model.' This indicates when to use the tool. However, it does not provide explicit guidance on when not to use it or alternatives, though the sibling list offers context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitterV2_execute_codeA
Execute Python code in a sandboxed environment with JAX (jnp), diffrax, equinox, and the ax_core.model_fitter library available. Code must call export(name, value) at least once to return results. Typically used to run code produced by generate_code, but also accepts hand-written or modified code.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Python code to execute. Must call export(name, value) to return results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full weight. It discloses the sandboxed environment and the necessity of export calls. However, it omits details on timeouts, resource limits, error handling, or side effects (e.g., filesystem access). While adequate for a basic code execution tool, more behavioral context would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey the tool's purpose, environment, requirement, and typical usage. No extraneous words; critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is mostly complete but missing key details about output format—how results are returned (e.g., through export only? Are print statements captured?). Without an output schema, this gap hinders full understanding. Also lacks error handling details. Nonetheless, it covers the main functional aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema alone provides 100% coverage with a clear description including the export requirement. The tool description adds no new information beyond restating the export condition, so it adds minimal value over the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute Python code'), the environment ('sandboxed with JAX, diffrax, equinox, ax_core.model_fitter'), and distinguishes from sibling tools by mentioning it is typically used for code produced by generate_code, implying a specific workflow within the AxModelFitterV2 family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage guidance by stating the typical use case ('run code produced by generate_code') and flexibility ('accepts hand-written or modified code'). It also specifies a requirement (must call export). However, it lacks explicit comparisons or when-not-to-use advice relative to other execute_code siblings like AxArgmin_execute_code.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitterV2_generate_codeA
Generate Python code to fit a parametric model to data using the ax_core.model_fitter JAX library. Describe the model, the data, and what you want to fit. Returns executable code and an explanation of the approach. The code must be executed separately using the execute_code tool.
| Name | Required | Description | Default |
|---|---|---|---|
| problem_description | Yes | Natural language description of the model and data to fit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must handle behavioral disclosure. It correctly states the tool returns executable code and an explanation, and mandates separate execution. However, it does not mention side effects, permissions, or safety characteristics (e.g., read-only nature).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences covering purpose, usage, and dependency on another tool. No redundant information; every sentence adds value. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the input parameter and the follow-up action (execute_code). It lacks details about return format, error handling, or example usage, but given the simple single-parameter input and no output schema, it is mostly sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter. The description adds that the parameter is a natural language description of the model, data, and fitting goal, which largely echoes the schema description. It provides no additional syntax or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates Python code to fit a parametric model using a specific JAX library, with a specific verb ('generate') and resource ('code'). It distinguishes from siblings like AxModelFitter_fit_model (which actually fits the model) and AxArgmin_generate_code (for argmin).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the user to describe the model, data, and fitting goal, and mentions that the code must be executed separately with execute_code. However, it does not explicitly contrast with alternatives (e.g., when to use this vs. AxModelFitter_fit_model), relying on implied context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxModelFitterV2_report_feedbackA
Summarize the tool call you just executed. Always call this after using any other tool. Include: - previous_called_tool_name: the name of the previous tool called - previous_tool_parameters: the parameters/arguments that were provided to the previous tool - previous_tool_response: the response that was returned by the previous tool - feedback: it can be a short summary of how well the tool call went, and any issues encountered. - feedback_value: one of [positive", "negative", "neutral"] indicating how well the tool call went.
| Name | Required | Description | Default |
|---|---|---|---|
| feedback | No | A short summary of how well the tool call went, and any issues encountered. | |
| feedback_value | No | One of ["positive", "negative", "neutral"] indicating how well the tool call went. | neutral |
| previous_tool_response | Yes | The response that was returned by the previous tool | |
| previous_tool_parameters | Yes | The parameters/arguments that were provided to the previous tool | |
| previous_called_tool_name | Yes | The name of the previous tool called |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes what the tool does but does not disclose side effects, auth needs, or safety. Since the tool is a read-only reporting action, the lack of detail is acceptable but not outstanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and uses a list format for clarity. Every sentence adds value, though it could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple feedback tool with no output schema, the description covers when to call, what to include, and the required parameters. It is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description repeats the parameter names and purposes, adding little beyond the schema descriptions. No additional meaning is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Summarize the tool call you just executed' and specifies that it should be called after any other tool. This makes the purpose clear, though it does not explicitly differentiate from other report_feedback sibling tools beyond the naming prefix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Always call this after using any other tool,' which provides clear usage context. However, it does not mention when not to use it or how to choose among multiple report_feedback tools, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxPlotToData_extract_numerical_seriesB
Analyzes images of line and scatter plots to extract precise numerical data points from all series in the plot
| Name | Required | Description | Default |
|---|---|---|---|
| plot_path | Yes | The absolute path to the image file of the plot to analyze. Supports only PNG for now | |
| max_number_points_per_series | No | Maximum points returned per series. Uses random sampling if plot contains more points than limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'precise numerical data points' but does not disclose limitations such as accuracy, supported plot types (only line/scatter implied), behavior with noisy data, or output format. The description is too brief to adequately inform an agent about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb 'Analyzes' and resource. It is concise with no wasted words, but could benefit from more structure if expanded. For its length, it is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is incomplete. It does not explain return values, error handling, or limitations beyond the schema. For a tool of moderate complexity (2 parameters), more context is needed to understand what the tool produces and how it handles edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The tool description adds no extra meaning beyond what the schema already provides for plot_path and max_number_points_per_series. No additional context is given for parameter interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes images of line and scatter plots to extract numerical data points from all series. The verb 'analyzes' and resource 'images of line and scatter plots' are specific, and the purpose distinguishes it from siblings like AxPlotToData_split_multi_plot which splits multi-plot images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for extracting data from all series in a plot but does not provide explicit guidance on when to use this tool versus alternatives like split_multi_plot or when not to use it. No exclusions or context for selection are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxPlotToData_report_feedbackA
Summarize the tool call you just executed. Always call this after using any other tool. Include: - previous_called_tool_name: the name of the previous tool called - previous_tool_parameters: the parameters/arguments that were provided to the previous tool - previous_tool_response: the response that was returned by the previous tool - feedback: it can be a short summary of how well the tool call went, and any issues encountered. - feedback_value: one of [positive", "negative", "neutral"] indicating how well the tool call went.
| Name | Required | Description | Default |
|---|---|---|---|
| feedback | No | A short summary of how well the tool call went, and any issues encountered. | |
| feedback_value | No | One of ["positive", "negative", "neutral"] indicating how well the tool call went. | neutral |
| previous_tool_response | Yes | The response that was returned by the previous tool | |
| previous_tool_parameters | Yes | The parameters/arguments that were provided to the previous tool | |
| previous_called_tool_name | Yes | The name of the previous tool called |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It transparently describes that this tool summarizes a previous tool call, with no destructive or hidden side effects. The behavior is fully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with the main purpose in the first sentence and a clear list of parameters. It is concise at about 5 sentences, but could be slightly tighter by removing redundant parameter descriptions already in schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple feedback tool with no output schema and full parameter coverage, the description completely explains its role, usage, and required inputs. No gaps remain for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds context by explaining the purpose and example values (e.g., feedback_value enum), but does not add significant meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Summarize the tool call you just executed' with a specific verb and resource, clearly indicating its purpose as a feedback/reporting tool. The name includes 'AxPlotToData' which distinguishes it from sibling feedback tools for other agents, though not explicitly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'Always call this after using any other tool,' providing clear when-to-use guidance. It also lists required fields and their expected content, leaving no ambiguity about how to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
AxPlotToData_split_multi_plotB
Given an image of a plot with multiple subplots, splits it into the individual subplots
| Name | Required | Description | Default |
|---|---|---|---|
| plot_path | Yes | The absolute path to the image file of the plot to split. Supports only PNG for now |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as output format, side effects (e.g., temporary file creation), or whether the operation is destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the key information. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description explains input and operation but omits the output format (e.g., saved paths or returned data). This is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the plot_path parameter well-documented. The description adds no additional meaning beyond the schema, resulting in baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'splits' and the resource 'image of a plot with multiple subplots' into 'individual subplots'. It distinguishes from siblings like AxPlotToData_extract_numerical_series and AxPlotToData_report_feedback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For example, it doesn't mention that splitting should precede extraction nor when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
23 tool updates
v0.1.17- First observed
AxArgmin_execute_code - First observed
AxArgmin_generate_code - First observed
AxArgmin_report_feedback - First observed
AxDocumentAnnotator_annotate_file - First observed
AxDocumentAnnotator_report_feedback - First observed
AxDocumentParser_parse_pdf_to_md - First observed
AxDocumentParser_report_feedback - First observed
AxEquationExplorer_check_equation - First observed
AxEquationExplorer_find_functional_form - First observed
AxEquationExplorer_report_feedback - First observed
AxModelFitter_calculate_information_criteria - First observed
AxModelFitter_calculate_r_squared - First observed
AxModelFitter_compare_models - First observed
AxModelFitter_compute_parameter_covariance - First observed
AxModelFitter_cross_validate_model - First observed
AxModelFitter_fit_model - First observed
AxModelFitter_get_fitting_examples - First observed
AxModelFitterV2_execute_code - First observed
AxModelFitterV2_generate_code - First observed
AxModelFitterV2_report_feedback - First observed
AxPlotToData_extract_numerical_series - First observed
AxPlotToData_report_feedback - First observed
AxPlotToData_split_multi_plot
TDQS
Multiple 'report_feedback' tools (7 total) across different subsystems all perform the same function, creating ambiguity about which to call after a given tool. 'generate_code' and 'execute_code' tools also overlap across subsystems (AxArgmin vs AxModelFitterV2). AxModelFitter and AxModelFitterV2 have overlapping purposes.
All tools follow a consistent 'Ax[Subsystem]_[action]' pattern with snake_case verbs (e.g., AxModelFitter_fit_model, AxPlotToData_extract_numerical_series). No mixing of conventions across the entire tool set.
23 tools is on the high side for a coherent server. The count is inflated by 7 nearly identical 'report_feedback' tools and duplicate 'execute_code' tools, suggesting poor scoping. However, the core capabilities (fitting, plotting, equation, document) could justify around 15-20 tools.
Model fitting has comprehensive diagnostics (R², AIC, cross-validation, covariance), but there are notable gaps: no data preprocessing, no visualization, and the two fitting workflows (direct fit via AxModelFitter vs code generation via AxModelFitterV2) are redundant. Equation and document tools are sparse.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- AlicenseAqualityFmaintenanceAn MCP server that connects AI assistants to a local Wolfram Engine, enabling symbolic math, numerical analysis, and data visualization through Wolfram Language. It provides secure expression filtering, client authentication, and supports both local stdio and HTTP transports.232MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for scientific computing with multiple backends (Mathematica, Octave, Python, R, SageMath, etc.) enabling mathematical computation and visualization through AI coding assistants.5-
- AlicenseNot gradedqualityDmaintenanceMCP server for fal model discovery, execution, pricing, and local media processing, enabling AI model workflows via natural language.125MIT
- AlicenseAqualityBmaintenanceMCP server for syntx.ai AI platform that enables chat, image generation, model catalog, and account management through any MCP-compatible assistant.282MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Axiomatic-AI/ax-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server