Freqtrade-MCP
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
Most tools have distinct purposes targeting specific resources like blacklist, backtest, or bot operations, with clear boundaries. However, some fetch tools like fetch_bot_status and fetch_trades might be slightly overlapping in providing trade-related information, but descriptions help differentiate them.
Naming Consistency5/5Tools follow a highly consistent verb_noun pattern throughout, such as fetch_balance, add_blacklist, and run_backtest. All names use snake_case with clear verbs, making them predictable and easy to understand.
Tool Count3/5With 22 tools, the count is borderline high for a trading bot server, potentially feeling heavy. While it covers many aspects, some tools might be consolidated or omitted without losing core functionality, indicating a slight over-scoping.
Completeness5/5The tool set provides comprehensive coverage for the Freqtrade domain, including CRUD operations for blacklist/locks, bot lifecycle management, data fetching, and backtesting. No obvious gaps are present; agents can handle full workflows from configuration to trading and analysis.
Average 3.1/5 across 22 of 22 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool starts a job, implying an asynchronous operation, but doesn't describe what happens after starting (e.g., job status tracking, completion notification, error handling). It mentions 'freqtrade REST requirements' but doesn't explain authentication needs, rate limits, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief (two sentences) and front-loaded with the main purpose. Both sentences provide relevant information without unnecessary elaboration, though the second sentence could be more informative about parameter usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 8 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain the backtest process, expected outputs, error conditions, or how results can be retrieved (likely via sibling tools like 'fetch_backtest_status'). The mention of 'freqtrade REST requirements' assumes external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'strategy and enable_protections' as required fields but doesn't explain what these parameters mean, their formats, or how they affect the backtest. The other 6 parameters aren't mentioned at all, leaving significant gaps in understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Start a REST backtest job') and resource ('backtest job'), making the purpose understandable. It doesn't explicitly differentiate from sibling tools like 'fetch_backtest_history' or 'reset_backtest', but the verb 'Start' distinguishes it from fetch/query operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance by mentioning 'Required fields follow freqtrade REST requirements', but doesn't specify when to use this tool versus alternatives like 'fetch_backtest_status' or 'reset_backtest'. No explicit when/when-not instructions or sibling tool comparisons are included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only mentions logging via 'ctx' and potential errors. It doesn't disclose critical behavioral traits like permissions needed, rate limits, side effects on the system, or what 'blacklist' entails in this context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the main purpose, followed by parameter and return details. It avoids unnecessary fluff, though the mention of 'ctx' not in the schema slightly reduces efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a mutation tool (implied by 'Add'), the description is incomplete. It lacks details on what the blacklist is, how it affects the system, error handling specifics, or return format beyond 'stringified JSON', leaving gaps for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics: it explains 'pair' as a trading pair with an example ('ETH/USDT'), and mentions 'ctx' for logging and client access. With 0% schema description coverage and 1 parameter, this compensates well beyond the schema, though 'ctx' is not in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Add a pair to the blacklist') which clarifies the verb and resource, but it doesn't differentiate from sibling tools like 'delete_blacklist' or 'fetch_blacklist'. It's clear what it does but lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'delete_blacklist' or 'fetch_blacklist', nor any context on prerequisites or exclusions. The description only states the basic action without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
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 that the tool 'retrieves' metrics and may return 'None if failed', which implies read-only behavior and error handling. However, it lacks details about authentication needs, rate limits, what specific metrics are included, or whether this is real-time vs historical data - significant gaps for a financial tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by parameter and return documentation. The two-sentence format is appropriately concise for a zero-parameter tool, though the 'Parameters' section could be omitted since there are no user-facing parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trading performance tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'performance metrics' include (returns, Sharpe ratio, drawdown, etc.), whether this is for current/live trading or historical periods, or how the stringified JSON is structured. Given the complexity of financial metrics and lack of structured output documentation, this leaves too much ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (though empty). The description correctly notes there are no user-facing parameters beyond the MCP context object, which is appropriate. No additional parameter information is needed or possible.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'retrieves trading performance metrics', which is a clear verb+resource combination. However, it doesn't distinguish this from sibling tools like fetch_balance, fetch_profit, or fetch_backtest_history, leaving the specific scope of 'performance metrics' ambiguous compared to these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. With multiple fetch_* siblings (fetch_balance, fetch_profit, fetch_backtest_history, etc.), the description offers no context about what distinguishes performance metrics from other retrievable data or when this specific tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention permissions needed, whether starting is idempotent, potential side effects (e.g., resuming trading), or error conditions, leaving significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by structured sections for Parameters and Returns. It avoids unnecessary details, though the Parameters section includes 'ctx' which isn't in the schema, slightly reducing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool that likely involves system control. It doesn't explain what 'starting' entails operationally, success/failure states, or return value specifics beyond a vague string, leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description correctly notes the 'ctx' parameter in its Parameters section, but since parameters are not part of the schema, this adds minimal value. Baseline is 4 for zero parameters, as the description doesn't need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Start') and resource ('Freqtrade bot'), which provides a basic understanding of purpose. However, it doesn't differentiate this tool from its sibling 'stop_bot' in terms of what 'starting' entails versus other bot management operations, making it somewhat vague in distinguishing from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'stop_bot' or 'fetch_bot_status'. The description lacks context about prerequisites (e.g., bot must be stopped) or scenarios where starting is appropriate, offering no usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks critical behavioral details. It mentions the tool can fail and return an error message, but doesn't disclose permissions required, rate limits, whether trades are irreversible, confirmation steps, or typical response structure beyond 'stringified JSON'. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, parameters, returns) and uses bullet points for readability. It's appropriately sized at 4 sentences, though the parameter explanations could be more detailed without sacrificing conciseness. No redundant information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trade execution tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It lacks behavioral context (e.g., risk warnings, idempotency), detailed parameter validation, and output examples. Siblings include fetch_balance and fetch_market_data, suggesting this tool should reference them for prerequisites, but it doesn't.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but only partially does. It explains pair format (e.g., 'BTC/USDT'), side values ('buy' or 'sell'), and stake_amount meaning ('Amount to trade in the stake currency'), adding useful semantics. However, it doesn't clarify units for stake_amount (e.g., USD vs. base currency) or validate pair syntax, leaving gaps given the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Place') and resource ('trade'), specifying it handles buy or sell operations. It distinguishes from siblings like fetch_trades (which retrieves) or run_backtest (which simulates), but doesn't explicitly differentiate from other potential trade-related tools not present in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention prerequisites (e.g., needing sufficient balance), exclusions (e.g., market hours), or comparisons to siblings like start_bot (which might automate trading). Usage is implied only by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('reload') but doesn't explain what this entails—e.g., whether it interrupts bot operations, requires specific permissions, or has side effects like resetting state. The mention of 'error if failed' hints at potential failure modes but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action but includes unnecessary parameter and return details that don't align with the actual schema (e.g., mentioning 'ctx' parameter and return types). This adds clutter without value, reducing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a configuration reload operation, the description is inadequate. With no annotations, no output schema, and minimal behavioral context, it fails to address key aspects like safety, side effects, or return format. It should explain more about what 'reload' means in this bot context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description includes a 'ctx' parameter in its text, but this is extraneous since the schema shows no parameters. This minor inconsistency doesn't significantly detract, as the baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('reload') and resource ('bot configuration'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its siblings like 'fetch_config' or 'start_bot/stop_bot', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'fetch_config' or 'start_bot/stop_bot'. It also doesn't mention prerequisites, such as whether the bot must be running or stopped, or if this is safe during active trading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
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 states the tool stops the bot and mentions possible return values (success/error), but lacks critical behavioral details: whether this is a graceful or forced stop, if it requires specific permissions, what side effects occur (e.g., cancelling trades), or typical response formats. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose but includes unnecessary details: the 'ctx' parameter note is redundant (not in schema) and the return statement is vague. It could be more concise by focusing solely on the tool's action and omitting schema-like annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool (stopping a bot) with no annotations and no output schema, the description is incomplete. It lacks essential context: how the stop operation works, what 'success' entails, error conditions, or integration with sibling tools (e.g., use after 'fetch_bot_status'). The return value description is too generic to be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description includes a 'ctx' parameter note, but since it's not in the schema, this doesn't affect the score. Baseline is 4 for zero-parameter tools, as the description doesn't need to compensate for missing param info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Stop') and target ('the Freqtrade bot'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'abort_backtest' or 'reset_backtest' which might also involve stopping operations, though those target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention prerequisites (e.g., the bot must be running), exclusions, or relationships with sibling tools like 'start_bot' or 'fetch_bot_status', leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the action ('Delete') and return type, but lacks critical details: whether deletion is permanent/reversible, required permissions, error conditions (e.g., invalid ID), side effects, or rate limits. This is inadequate for a destructive operation with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by parameter and return sections. Every sentence adds value (purpose, param meaning, return format). It could be slightly more front-loaded by integrating return info into the first sentence, but it avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations, no output schema, and 0% schema coverage, the description is incomplete. It misses behavioral context (e.g., permanence, errors), usage prerequisites, and output details beyond 'stringified JSON'. The agent lacks sufficient information to invoke this safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter ('lock_id'), explaining it's 'ID of the trade lock to delete'—clarifying its role beyond the schema's basic 'integer' type. With 0% schema description coverage and only one parameter, this compensates well, though it doesn't detail ID format or sourcing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Delete') and resource ('a specific trade lock by ID'), making the purpose unambiguous. It distinguishes from sibling tools like 'fetch_locks' (read) and 'place_trade' (create). However, it doesn't explicitly differentiate from other deletion tools (e.g., 'delete_blacklist'), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention prerequisites (e.g., needing an existing lock ID from 'fetch_locks'), exclusions (e.g., not for deleting other resources), or comparisons to siblings like 'delete_blacklist'. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
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 'or None if failed' which is useful error behavior disclosure, but doesn't describe authentication requirements, rate limits, whether this is real-time or cached data, what format the balance is returned in, or what might cause failure. For a financial data tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with clear sections for purpose, parameters, and returns. The 'Fetch the account balance.' opening sentence is front-loaded and direct. The parameter and return documentation is organized but could be slightly more efficient by not documenting the implicit context parameter that's standard in MCP tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a financial balance tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'account balance' means in this context (trading balance, available balance, total equity?), doesn't specify currency or format, and provides minimal error handling information. The return format mention ('Stringified JSON response') is helpful but vague about the actual data structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so the schema already fully documents the parameter situation. The description mentions 'ctx (Context): MCP context object for logging and client access' which adds some semantic context about the implicit context parameter, but this is somewhat redundant since MCP tools inherently have context. Baseline for 0 parameters with full schema coverage would be 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'fetch' and resource 'account balance', making the purpose immediately understandable. However, it doesn't differentiate this tool from its many siblings (like fetch_profit, fetch_performance, fetch_trades) that also fetch financial data, leaving some ambiguity about what specifically distinguishes this balance fetch operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus alternatives. With multiple fetch-related siblings (fetch_profit, fetch_performance, fetch_trades, etc.), there's no indication whether this should be used for general account status, real-time balances, or specific balance types. No prerequisites, timing, or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('abort') but doesn't explain what happens after aborting (e.g., whether data is saved, if the task can be resumed, or error handling). For a mutation tool with zero annotation coverage, this leaves critical behavioral traits unspecified, though it's not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and target, making it easy to parse quickly. Every word earns its place by conveying essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of aborting a task (a mutation with potential side effects), no annotations, and no output schema, the description is incomplete. It doesn't cover what the tool returns, error conditions, or behavioral details like whether the abort is immediate or reversible. For a tool with this context, more information is needed to guide safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't discuss parameters, which is correct for this case. It doesn't add semantic value beyond the schema, but with no parameters, a baseline of 4 is warranted as there's nothing missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('abort') and the target ('currently running backtest task'), making the purpose immediately understandable. It doesn't explicitly distinguish from siblings like 'reset_backtest' or 'stop_bot', but the specificity of 'backtest task' provides reasonable differentiation. This is not a tautology of the name, as it adds context about what is being aborted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention prerequisites (e.g., that a backtest must be running), exclusions, or comparisons to siblings like 'reset_backtest' or 'stop_bot'. The agent must infer usage from context alone, which is insufficient for clear decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only mentions it 'removes' and may return an error if failed. It lacks details on permissions needed, side effects (e.g., if removal affects trading), rate limits, or what 'updated blacklist' entails. This is inadequate for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for action, parameters, and returns, using bullet-like formatting. Every sentence adds value without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain behavioral traits like auth needs or what the return value looks like beyond 'stringified JSON', leaving gaps in understanding how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining the 'pair' parameter as 'Trading pair to remove from blacklist' with an example ('ETH/USDT'), adding meaningful context beyond the schema's basic type. Since there's only one parameter, this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and resource ('a pair from the blacklist'), making the purpose understandable. However, it doesn't explicitly differentiate from its sibling 'add_blacklist' beyond the opposite action, missing specific contrast about when each is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'add_blacklist' or 'fetch_blacklist', or any prerequisites such as needing the pair to already be blacklisted. The description only states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
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 mentions the return value format ('Stringified JSON response') and error case ('None if failed'), which adds some behavioral context. However, it lacks details on permissions, rate limits, side effects, or what 'failed' entails, leaving gaps for a tool that interacts with sensitive data like a blacklist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by structured sections for parameters and returns. It's efficient with no redundant information, though the parameter section could be omitted since there are no user-facing parameters, making it slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0 parameters and no output schema, the description adequately covers the basics: what it does and the return format. However, for a tool fetching a blacklist (a potentially critical data set), it lacks context on data freshness, structure of the JSON, or error handling specifics, which could hinder an agent's effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description correctly notes there are no user-facing parameters by only listing 'ctx' as an internal MCP object, avoiding unnecessary detail. This aligns with the schema and doesn't introduce confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('current blacklist of trading pairs'), making the purpose immediately understandable. It distinguishes itself from siblings like add_blacklist and delete_blacklist by focusing on retrieval rather than modification. However, it doesn't explicitly differentiate from fetch_whitelist in terms of data type beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention prerequisites, timing considerations, or compare it to related tools like fetch_whitelist or other fetch_* siblings. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that it returns 'stringified JSON response with open trade status, or None if failed', which covers basic output behavior. However, it lacks details on error conditions, rate limits, authentication needs, or side effects, which are important for a tool that retrieves data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with clear sections for purpose, parameters, and returns. It uses minimal sentences that directly convey necessary information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description adequately covers the basics: what it does and what it returns. However, for a data retrieval tool in a trading bot context, it could benefit from more context on what 'open trade status' entails or how it differs from other fetch tools, especially with no annotations to provide additional metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of parameters. The description mentions 'ctx (Context): MCP context object for logging and client access', which adds context about an implicit parameter, but this isn't reflected in the schema. Since there are no formal parameters, this extra information is helpful but not critical.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieve') and resource ('current status of open trades'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'fetch_trades' or 'fetch_performance', which might also relate to trade information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. With sibling tools like 'fetch_trades' and 'fetch_performance' available, there's no indication of what makes this tool unique or when it should be preferred over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format ('Stringified JSON response') and failure case ('or None if failed'), which is helpful. However, it doesn't address important behavioral aspects like whether this is a read-only operation, if it requires authentication, rate limits, or what specific data the trade locks contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief and front-loaded with the core purpose. The parameter and return sections are structured but could be more concise since the input schema already documents the absence of parameters. The mention of 'ctx' parameter feels somewhat redundant given the schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description provides basic information about what the tool does and its return format. However, for a data-fetching tool in a trading context, more context about what 'trade locks' represent and when this operation is needed would be valuable, especially with no annotations to provide safety/behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% description coverage, so the schema fully documents the absence of parameters. The description mentions 'ctx (Context): MCP context object for logging and client access' which adds context about an implicit parameter, though this appears to be standard MCP boilerplate rather than tool-specific semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('current trade locks'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'fetch_balance' or 'fetch_trades' beyond the specific data type being retrieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. While the tool name suggests it fetches trade locks specifically, there's no explicit mention of when this operation is needed or how it relates to other fetch operations in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool returns 'Stringified JSON response with profit summary, or None if failed,' which gives some insight into output behavior. However, it lacks critical details such as whether this is a read-only operation, what data sources it queries, potential rate limits, or error conditions beyond failure. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated first followed by parameter and return details. It uses clear sections ('Parameters:', 'Returns:') for structure. However, the mention of 'ctx' as a parameter could be confusing since it's not in the schema, slightly reducing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (financial data retrieval), no annotations, no output schema, and 0 parameters, the description is minimally adequate. It explains the purpose and return behavior but lacks details on data format, error handling, or how it differs from siblings. It meets basic needs but has clear gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of inputs. The description mentions 'ctx (Context): MCP context object for logging and client access,' which adds context about an implicit parameter not in the schema, providing useful semantic information. This compensates well for the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get profit summary for the trading bot.' This is a specific verb ('Get') + resource ('profit summary') combination that tells what the tool does. However, it doesn't explicitly distinguish this from similar sibling tools like 'fetch_performance' or 'fetch_balance,' which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention when it's appropriate to fetch profit summary versus other financial metrics like balance or performance, nor does it specify any prerequisites or conditions for use. This leaves the agent without contextual usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions the return type (stringified JSON or None) but doesn't cover critical aspects like whether this is a read-only operation, potential rate limits, authentication requirements, or what 'failed' means in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief with two sentences that directly address purpose and return values. The structure with 'Parameters:' and 'Returns:' sections is clear, though the mention of 'ctx' parameter creates minor confusion since it doesn't exist in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 0 parameters, no output schema, and no annotations, the description provides basic purpose and return information. However, it lacks context about what 'closed trades' means in this system, how the data is formatted in the JSON response, or what conditions cause failure - leaving gaps for an AI agent to understand full usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description correctly doesn't waste space on parameters, earning a high baseline score. The mention of 'ctx' in the description is actually misleading since it's not in the schema, but this doesn't significantly detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'fetch' and the resource 'history of closed trades', making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'fetch_backtest_history' or 'fetch_performance' that might also retrieve historical data, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'fetch_backtest_history' or 'fetch_performance'. The description only states what it does, not when it's appropriate or what distinguishes it from similar tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool returns 'Stringified JSON response with whitelist data, or None if failed', which adds some context about output format and failure handling. However, it doesn't cover critical aspects like rate limits, authentication needs, side effects, or error conditions, leaving significant gaps for a tool in a trading context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, with a clear purpose statement followed by brief notes on parameters and returns. Every sentence adds value without redundancy, though it could be slightly more front-loaded by integrating the return info into the main statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but minimal. It explains what the tool does and the return format, but lacks context about the trading environment, data freshness, or how it fits with sibling tools, making it just sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description correctly omits parameter details, focusing instead on the tool's purpose and return behavior, which is appropriate and earns a baseline score of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('current whitelist of trading pairs'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'fetch_blacklist' or 'add_blacklist', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like 'fetch_blacklist' or other data-fetching siblings. It lacks context about prerequisites, timing, or exclusions, offering only basic functional information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation ('reset') but does not specify if this is destructive, reversible, requires specific permissions, or has side effects like clearing data. This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's mutation nature, lack of annotations, and no output schema, the description is incomplete. It does not explain what 'reset' entails (e.g., does it delete data, revert to defaults?), potential impacts, or return values, leaving critical behavioral aspects undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, but this is acceptable as there are no parameters to explain, aligning with the baseline for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('reset') and target ('backtest state/result'), specifying it occurs 'on the API server'. However, it does not explicitly differentiate from sibling tools like 'abort_backtest' or 'run_backtest', which might have overlapping purposes, so it lacks sibling differentiation for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 such as 'abort_backtest' or 'run_backtest'. It mentions the context ('on the API server') but offers no explicit when/when-not instructions or prerequisites, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, the description doesn't specify whether this requires authentication, what format the history is returned in, whether results are paginated, or if there are rate limits. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise at just one sentence that efficiently communicates the core purpose and optional parameter. Every word earns its place with no redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (fetching historical data with optional filtering), no annotations, and no output schema, the description provides a basic but incomplete picture. It covers the main action and parameter purpose but lacks details about return format, error conditions, or how this tool relates to other backtest operations in the sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only one parameter and 0% schema description coverage, the description effectively compensates by explaining the parameter's purpose: 'optionally filter by filename.' This adds meaningful context beyond the bare schema, though it doesn't specify filename format or filtering behavior details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('backtest result history'), and includes optional filtering capability. However, it doesn't explicitly differentiate this tool from sibling tools like 'fetch_backtest_status' or 'fetch_performance', which might also retrieve related backtest data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. With multiple sibling tools like 'fetch_backtest_status', 'fetch_performance', and 'fetch_trades' that might retrieve different aspects of backtest data, the description fails to specify what distinguishes this tool's scope or when it should be preferred over other fetch operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a retrieval operation (implying read-only) and mentions possible failure ('or None if failed'), which adds useful context. However, it doesn't describe authentication needs, rate limits, what specific configuration data is returned, or how failures manifest beyond returning None.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose in the first sentence. The parameter and return sections are structured but slightly verbose for a zero-parameter tool. The mention of 'ctx' parameter that doesn't align with the schema creates minor inefficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a read operation with no annotations, no output schema, and zero parameters, the description is minimally adequate. It covers the basic purpose and return behavior but lacks details about what configuration data is included, format specifics beyond 'stringified JSON', or error handling beyond returning None. For a configuration retrieval tool, users would benefit from more context about the data structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so the schema fully documents the absence of parameters. The description adds value by explicitly stating there's a 'ctx' parameter (though this appears to be documentation convention rather than an actual parameter based on the schema) and clarifying the return type semantics. Since there are no actual parameters to document, this exceeds the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Retrieve') and resource ('current bot configuration'). It distinguishes itself from siblings like 'reload_config' (which likely modifies configuration) and 'fetch_bot_status' (which retrieves operational status rather than configuration). However, it doesn't explicitly differentiate from all possible configuration-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. While it's implied this is for reading configuration (vs. 'reload_config' for updating), there's no explicit mention of prerequisites, timing considerations, or comparisons to other fetch tools like 'fetch_bot_status' that might provide overlapping information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions the tool returns stringified JSON or None if failed, which is useful, but lacks details on rate limits, data sources, latency, error handling, or authentication needs. For a data-fetching tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for purpose, parameters, and returns. It's front-loaded with the core purpose. However, the parameter documentation could be more concise by integrating examples inline rather than in a separate list, and some redundancy exists (e.g., 'str' type is obvious from examples).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with 0% schema coverage and no output schema, the description does well on parameters but lacks behavioral context. It explains returns but not output structure (e.g., OHLCV format). For a simple data-fetch tool, it's minimally adequate but misses details like data recency or source limitations that would aid the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It explicitly lists both parameters (pair and timeframe) with clear examples ('BTC/USDT', '1h', '5m') and explains their purpose, adding significant value beyond the bare schema. The ctx parameter is also documented in the description though not in the schema, covering all expected inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'fetch' and resource 'OHLCV data', specifying it's for a trading pair and timeframe. It distinguishes from siblings like fetch_balance or fetch_trades by focusing on market data rather than account or trade data. However, it doesn't explicitly contrast with all similar siblings like fetch_backtest_history which might also involve market data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention prerequisites, when-not-to-use scenarios, or compare with siblings like fetch_backtest_history that might serve overlapping purposes. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read-only operation ('Get') and specifies the data returned (status and payload), but does not mention potential side effects, error conditions, or response format details. This is adequate but minimal for a tool with zero parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get current backtest execution status and latest result payload') with zero wasted words. It is appropriately sized for a simple, parameterless tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no annotations, no output schema), the description is complete enough for basic understanding. However, it lacks details on the response structure or potential errors, which could be helpful for an agent invoking it without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema fully documents the input requirements. The description does not add parameter-specific information, which is unnecessary here. A baseline of 4 is appropriate as no parameters exist to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get') and resources ('current backtest execution status and latest result payload'), distinguishing it from siblings like fetch_backtest_history (historical data) or fetch_bot_status (bot status). It precisely identifies what information is retrieved without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking ongoing backtest status, but provides no explicit guidance on when to use this tool versus alternatives like fetch_backtest_history or fetch_performance. It lacks context on prerequisites, timing, or exclusions, leaving the agent to infer appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/worlddebugger/freqtrade-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server