ibkr-mcp
Server Quality Checklist
Latest release: v4.0.0
- Disambiguation4/5
The tools are mostly distinct with clear purposes, though account summary variants and multiple option lookup tools (get_option_chain, get_option_contracts, get_option_strikes) could cause initial confusion. Descriptions are detailed enough to disambiguate.
Naming Consistency4/5Most tools use a get_* verb_noun pattern, but a few like reauthenticate, ping_session, run_scanner, and search_contracts break the uniformity. All names are snake_case and readable, but the mix of get_ and action verbs is a minor inconsistency.
Tool Count2/5With 32 tools, the count exceeds the 25+ threshold and feels heavy. While IBKR is a broad domain, many tools could be consolidated (e.g., account summary variants), making the surface area larger than necessary.
Completeness2/5The tool set covers account, market data, scanner, watchlist, and news, but critically lacks order placement, modification, or cancellation. Without these, the server cannot perform actual trading, which is a core expectation for a brokerage MCP.
Average 4/5 across 32 of 32 tools scored. Lowest: 2.9/5.
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?
The readOnlyHint annotation already indicates this is a read-only operation, but the description adds no behavioral context beyond that. It does not disclose pagination behavior, response format, authentication needs, or performance considerations. The description fails to provide any extra behavioral transparency.
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 sentence that clearly and concisely states the purpose. It is front-loaded and contains no unnecessary words, making it appropriately concise.
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?
With no output schema, the description should ideally explain what the response contains, but it does not. Additionally, the lack of comparison to sibling tools and any caveats about data volume or filters makes the description incomplete for an agent to fully understand the tool's place.
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?
All parameters are fully described in the input schema (100% coverage), so the description does not need to add much. However, the phrase 'optional filters' merely restates what the schema already conveys and does not add deeper semantic meaning about parameter relationships or constraints.
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 uses the verb 'Get' and clearly identifies the resource as 'transaction history for accounts.' It is specific and direct, but it does not distinguish this tool from sibling tools like 'get_trades' which may also provide transaction 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?
There is no guidance on when to use this tool versus alternatives such as get_trades or get_account_summary. The description does not mention any prerequisites, exclusions, or conditions under which this tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'trigger re-authentication,' which implies a state-changing operation, but the annotations declare readOnlyHint: true. This contradiction is not reconciled, and no additional behavioral details are provided.
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 fluff, making it highly concise and front-loaded. Every word earns its place.
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?
The description lacks usage context and behavioral details, and the contradiction with readOnlyHint creates confusion. It is minimally complete for a zero-parameter tool, but the contradiction and lack of guidance reduce completeness.
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 accepts no parameters, so the description need not explain them. Baseline score of 4 applies for zero-parameter tools.
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 action (trigger re-authentication) and the target resource (Client Portal Gateway session), which distinguishes it from sibling tools like get_auth_status or ping_session.
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?
There is no mention of when to use this tool, when not to use it, or alternatives. It fails to provide context for when re-authentication is needed or how it relates to other session-oriented tools.
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?
Annotations already declare readOnlyHint=true, and the description adds useful session-lifecycle context (auto-acquired, auto-releases after idle). However, it does not disclose output structure, error conditions, or rate limits, leaving a moderate transparency gap.
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 concise at two short sentences, with zero filler. Every sentence adds value: one states the core function, and the other notes a key prerequisite/session behavior.
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 (one parameter, no output schema), the description covers input and session requirements but not the expected return format or content. 'Detailed status' is vague and could be expanded with field examples or typical response structure.
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 100% for the sole parameter orderId, which is fully documented in the schema. The description does not add additional parameter semantics beyond what the schema already provides.
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 a specific verb ('Get') and resource ('detailed status of a specific order'). The singular 'specific order' distinguishes it from sibling list tools like 'get_live_orders'.
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 vs alternatives. It mentions the brokerage session requirement but does not reference sibling tools (e.g., 'get_live_orders' for listing orders) or exclusion scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true. The description adds meaningful behavioral context: caching for 15 minutes and auto-acquisition/release of brokerage session. This helps the agent understand staleness and session handling, adding value beyond annotations.
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?
Two sentences, 20 words, first sentence states purpose, second adds key behavioral details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-param read-only tool, the description provides caching and session context. It could benefit from a brief note about the return value shape, but the tool is simple enough that this is a minor gap.
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 zero parameters, schema coverage is vacuously 100%, and the baseline for 0 params is 4. The description doesn't need to explain parameter syntax; it focuses on the tool's purpose.
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 resource ('market scanner parameters') and the action ('get'), making the purpose unambiguous. It doesn't explicitly distinguish from sibling run_scanner, but the resource is specific enough.
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 on when to use this vs alternatives. The 'Requires brokerage session' note is a prerequisite, not a when-to-use instruction. It doesn't mention run_scanner or that this should be called to discover available scanner parameters before running a scan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already indicates a safe read operation. The description adds valuable context about session management: the brokerage session is auto-acquired and auto-releases after idle. This goes beyond the annotation without contradiction, explaining a key behavioral trait.
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 two sentences long and front-loaded with the core action ('List saved watchlists'). The second sentence adds necessary session context. Every word earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description covers the essential action and a critical requirement (brokerage session). It does not describe the return format, but for a simple list tool this is acceptable. The sibling 'get_watchlist' likely provides more detail for single-item retrieval, so the context here is sufficient.
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 zero parameters, so per the rubric the baseline is 4. The description does not need to explain parameters since there are none, and the schema provides no parameter details to supplement.
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 uses the specific verb 'List' with the resource 'saved watchlists,' clearly stating the tool's function. It does not explicitly differentiate from the sibling tool 'get_watchlist' (singular), but the plural form implies listing multiple watchlists, which provides reasonable purpose clarity.
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 mentions a prerequisite (brokerage session) but does not provide guidance on when to use this tool versus alternatives like 'get_watchlist' (singular). There are no exclusions or alternative tool references, so usage context is missing.
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 readOnlyHint=true, the annotation already establishes the read-only nature. The description adds that data is historical and includes NAV and time-weighted returns, providing moderate context. It does not disclose return format, pagination, or other behavioral details, so it falls in the mid-range.
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 sentence that is front-loaded with the verb and resource. Every phrase (historical, account performance, NAV, time-weighted returns, configurable period) contributes meaning without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage and a read-only annotation, the description provides a clear overview. It is adequate for an agent to understand the tool's purpose, though it leaves some usage guidance implicit. No output schema exists, so the description could mention return format, but it's not essential for this simple tool.
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 coverage is 100% with descriptions for both accountIds and period. The description's mention of 'configurable period' adds no new meaning beyond the schema's enum and description. The accountIds parameter is not elaborated beyond the schema, so the description adds minimal value here.
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 it gets historical account performance with specific metrics (NAV, time-weighted returns) over a configurable period. This distinguishes it from sibling tools like get_pnl or get_account_summary by focusing on performance rather than P&L or summary balances.
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 use for historical account performance queries but does not explicitly state when to use this tool over related siblings like get_pnl or get_account_summary. No alternatives or exclusions are mentioned, leaving the agent to infer from context.
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?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the return fields but does not disclose additional behavioral context such as what happens if the position is not found or how the default account is used when accountId is omitted.
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?
Two concise sentences, front-loaded with the purpose, and no redundant or extraneous content. Every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with good annotations and full schema coverage, the description adequately covers what it does and what it returns. Lack of an output schema is compensated by listing return fields. No major gaps for a 'get by ID' operation.
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 100%, providing clear definitions for both conid and accountId. The tool description only restates conid's role and does not add meaning beyond what the schema already provides, so baseline 3 is appropriate.
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?
Clear verb 'Get' with specific resource 'specific position' by contract ID. The description lists return fields, making it distinct from the sibling get_positions which likely retrieves all positions.
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 use for single position lookup by conid, but it does not explicitly state when to use this vs get_positions or mention any exclusions. No explicit alternatives or when-not guidance is provided.
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?
Annotations already declare readOnlyHint=true. The description adds that it is a keepalive to the Client Portal Gateway, but does not mention return format, error behavior, or session-expiry handling. With annotations covering safety, this is adequate but not rich.
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 concise sentence with no wasted words, front-loading the purpose clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter utility with readOnlyHint, the description covers the essential purpose. However, without an output schema, a brief note about expected success/failure response would improve completeness, but it is not critical for a simple ping.
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, so the baseline of 4 applies. The description does not need to explain parameters since there are none.
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 uses a specific verb ('send') and resource ('Client Portal Gateway'), and the term 'tickle/keepalive' precisely conveys the session-maintenance function. It clearly distinguishes this from sibling data-retrieval 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, such as when to prefer it over reauthenticate or what to do if the session is already invalid. Usage is only implied by the name and the word 'keepalive'.
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?
The annotation readOnlyHint=true already establishes that this is a safe read operation, so the description does not need to repeat that. However, the description adds no extra behavioral context beyond the annotation and the schema (e.g., no mention of response format, pagination, or exchange filter behavior), resulting in a neutral score.
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, well-structured sentence that front-loads the action and scope. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, read-only annotation, and complete parameter schema, the description is sufficient for an agent to understand and invoke the tool correctly. Without an output schema, the description does not need to detail return values, and the simple nature of the tool does not require additional caveats.
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?
All three parameters (conid, month, exchange) have clear descriptions in the schema, giving 100% coverage. The tool description merely restates 'underlying security' and 'expiration month' without adding any new semantic information, so the baseline of 3 is appropriate.
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 explicitly states the action (Get), the resource (available strike prices), and the scope (for options on an underlying security for a specific expiration month). This clearly distinguishes it from broader tools like get_option_chain or get_option_contracts by focusing specifically on strike prices.
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 gives context on what the tool does but provides no explicit guidance on when to use it versus alternatives such as get_option_chain or get_option_contracts. Usage is implied rather than contrasted, with no mention of exclusions or preferred scenarios.
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?
Annotations already declare readOnlyHint=true, so the safety profile is known. The description adds the behavioral constraint that only non-expired contracts are returned, which is useful. It does not describe return format or pagination, but with the annotation covering the read-only nature, 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.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the verb, resource, and scope. There is no wasteful wording or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, full schema coverage, readOnlyHint annotation), the description provides sufficient context. It does not explicitly describe return values, but the purpose implies the output is the list of contracts. For a read-only lookup tool, this is adequately complete.
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?
The schema provides 100% coverage for the 'symbols' parameter, including an example and description. The description's 'by underlying symbol' aligns with the schema but does not add additional semantic detail beyond what is already documented, so the baseline of 3 applies.
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 action ('Look up'), the resource ('non-expired futures contracts'), and the scope ('by underlying symbol'). It distinguishes the tool from sibling tools like get_stock_contracts and get_option_contracts by specifying futures and non-expired status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for looking up futures contracts by symbol. However, it does not explicitly mention alternatives or situations when this tool should not be used, so no exclusions are provided.
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?
The readOnlyHint annotation already indicates a safe read operation, and the description's 'List' wording is consistent with that. It adds minor context with 'from IB', but no additional behavioral details such as return format, ordering, or caching are provided. This meets the minimum baseline for annotation-backed descriptions.
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, front-loaded sentence with no wasted words. It immediately states the verb and resource, making it highly scannable and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with a read-only annotation, the description adequately explains the purpose and expected result (a list of sources). It lacks explicit return structure, but the phrasing 'List available...' implies a list of names or identifiers, which is sufficient for this simple tool. No major gaps given the tool's simplicity.
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 zero parameters, the description has no semantic burden for parameters. The baseline of 4 is appropriate since there is nothing to explain, and the description correctly focuses on the tool's action and result.
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 uses a specific verb 'List' and identifies the resource as 'available news sources/providers from IB'. This clearly distinguishes it from sibling tools like get_news_briefing, which handles news content rather than source listings.
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 retrieving available news providers, but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. For a zero-parameter listing tool, the use case is fairly obvious, but the lack of explicit guidance prevents a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already indicates a safe read operation. The description adds valuable behavioral context about the brokerage session: 'auto-acquired, auto-releases after idle,' which informs the agent that no explicit authentication call is needed and that the tool manages the session lifecycle. This goes beyond the annotations and is useful for planning execution.
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 two sentences, front-loaded with the main purpose and followed by the essential session requirement. Every word adds value; there is no repetition of schema or annotation content, and it is appropriately sized for a tool of this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the strong schema coverage and the readOnlyHint annotation, the description adds sufficient context about purpose and operational prerequisites. It lacks details about the return format or potential errors, but in the absence of an output schema, the description covers the essential aspects 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.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter described in the schema (e.g., type, location, instrument, filters). The description does not add additional semantic detail beyond the schema, so the baseline of 3 applies. It only loosely refers to 'specific criteria' without elaborating on parameter formats or dependencies.
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 function: 'Execute a market scanner to find securities matching specific criteria.' It uses a specific verb ('Execute') and a distinct resource ('market scanner'), which distinguishes it from the many data-retrieval siblings like get_scanner_params and get_market_snapshot.
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 when to use the tool ('to find securities matching specific criteria') but does not explicitly compare it to alternatives or state exclusions. It mentions the brokerage session prerequisite, but this is more about operational context than usage guidance. No mention of using get_scanner_params first or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint true, and the description adds value by disclosing the breakdown categories (stocks, options, futures, cash, bonds, etc.) and the output format (percentages and values). It does not contradict the annotations and provides helpful context about return content, though it omits details like default account behavior (which is in the schema).
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, front-loaded sentence that clearly states the tool's output and purpose without any fluff. Every word contributes to understanding the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only one optional parameter and a clear output. The description, combined with the schema, covers the essential information: what the tool returns, what the parameter means, and the read-only nature. No output schema exists, but the description adequately conveys the return format.
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?
The schema already fully describes the single optional parameter (accountId) with 100% coverage. The description adds no additional parameter-level meaning, so the baseline of 3 is appropriate.
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 names a specific verb ('Get') and resource ('account allocation breakdown'), and clarifies the tool's output: distribution across asset classes as percentages and values. This distinguishes it clearly from sibling tools like get_account_summary and get_positions.
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 the tool's purpose (to view allocation), but does not explicitly state when to use it over alternatives or exclude other scenarios. There is no mention of related tools such as get_account_summary or get_positions, so the guidance remains implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already indicating a safe read operation, the description adds valuable behavioral context: auto-retry on first-call warmup and field availability dependent on the user's IB data subscription. This goes beyond the annotations without contradicting them.
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 a single, information-dense paragraph with no filler. It front-loads the purpose, then lists fields and caveats. While it is somewhat long, every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description thoroughly enumerates the return fields, including conditional fields based on subscription level. It also discloses retry behavior. It could mention error cases or response format for multiple conids, but it is reasonably complete for a quote snapshot tool.
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?
Both parameters are fully described in the input schema (100% coverage), including conids as contract IDs and fields as custom field codes. The description adds no additional parameter semantics beyond listing default output fields, so the baseline of 3 is appropriate.
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 begins with 'Get real-time market data snapshot', using a specific verb and resource. It lists the returned fields in detail, clearly distinguishing this tool from siblings like get_price_history (historical data) and get_fundamentals (fundamental data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for real-time snapshots, not historical or fundamental-specific queries. However, it does not explicitly name alternatives or state when not to use this tool, so it stops short of a 5.
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?
Annotations declare readOnlyHint=true, and the description adds that it returns contract variants with exchange and conid, and searches across all exchanges. This is useful behavioral context, but it omits potential details like pagination, errors, or rate limits. No contradiction with annotations.
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, concise sentence that front-loads the action and immediately conveys the tool's purpose, with no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with one fully documented parameter and no output schema, the description adequately covers what the tool does and what it returns (contract variants with exchange and conid). No significant gaps for this complexity.
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 100%, with the 'symbols' parameter fully documented. The description only reinforces 'by symbol' without adding new syntax or details beyond what the schema provides, so it meets the baseline for high coverage.
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 uses a specific verb ('Look up') and resource ('stock contracts') with a clear qualifier ('by symbol across all exchanges'), making it distinct from sibling tools like get_futures_contracts or get_option_contracts. It fully answers what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use it for stock contracts by symbol across all exchanges. It does not explicitly name alternatives or exclusions, but the specificity effectively implies when to use it versus futures/options contract tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals the operation is safe. The description adds value by disclosing the exact return fields (conid, symbol, exchange, security type, description) and the intended follow-up usage. This extra context about expected behavior goes beyond what the annotation alone provides.
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 compact, two sentences long, and leads with the primary action. It avoids redundancy with the schema and provides necessary information (returned fields and how to use the output) without padding. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity — one required parameter, three optional ones, and a read-only operation — the description is fully adequate. It explains the purpose, return value, and how the result should be used. No output schema exists, but the listed return fields suffice. The presence of sibling tools is handled by its clear role as a general contract search.
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?
The schema already provides descriptions for all three parameters, so baseline is 3. The description adds no new parameter-level detail beyond restating that the search can use symbol or company name, which is already covered by the 'symbol' and 'isName' descriptions. The 'secType' parameter is only explained in the schema, not in the tool description.
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 a specific verb ('search') and resource ('securities'), and lists the key output fields (conids, symbol, exchange, security type, description). It distinguishes itself from sibling tools by emphasizing that it returns conids to be used with other tools, making its role as a lookup/precursor clear.
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 a usage context: use this tool to obtain conids for later use with other tools. However, it does not explicitly distinguish when to use this search tool versus the more specific sibling tools like get_stock_contracts or get_futures_contracts. There is no mention of alternatives or when to avoid this tool.
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?
Annotations already declare readOnlyHint=true, and the description adds that the tool returns IDs and capabilities. This is useful but leaves 'capabilities' vague and doesn't disclose potential limitations or error behavior. The description adds some value beyond annotations but not extensive context.
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 two sentences, front-loaded with the main action, and contains no filler. Every word contributes to understanding what the tool does and how to use its output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description sufficiently covers the return value and its usage. The term 'capabilities' could be more specific, but the description is otherwise complete for the tool's simplicity.
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, so there is nothing to explain. The baseline of 4 applies, and the description appropriately focuses on output rather than inputs.
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 function with a specific verb ('List') and resource ('all brokerage accounts'), and specifies that it returns IDs and capabilities. It distinguishes itself from sibling tools like get_account_summary, which focus on individual account details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating the returned account IDs 'can be used with other tools', implying this is a first-step tool for many workflows. However, it does not explicitly mention alternatives or when-not-to-use cases, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint: true in the annotations, the read-only nature is already covered. The description adds valuable behavioral context by specifying what the response includes (exchange, currency, trading hours, tick size, and other specs), giving the agent a concrete preview of the output and reinforcing that this is a single-contract detail lookup rather than a list endpoint.
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 sentence that leads with the action and input, then efficiently lists the key return fields. There is no filler or repetition of the title or schema, making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with a single parameter and no output schema, the description provides sufficient context: it names the input and the expected output fields. While it doesn't specify the exact response structure, the explicit list of returned specs gives the agent adequate information to decide whether this tool fits the task.
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?
The schema has one required parameter (conid) with a description ('Contract ID'), providing 100% coverage. The tool description repeats this concept with 'known contract ID (conid)' and adds only a usage nuance (that the conid must be known), which is not new parameter semantics. Thus the baseline score of 3 applies.
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 specific action ('Get') and resource ('full contract details'), and it specifies the required input ('known contract ID (conid)'). This distinguishes it from sibling search tools (e.g., search_contracts) by requiring a pre-existing conid, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a known contract ID' establishes a clear prerequisite for use: you must already have the conid. This implies the tool is not for searching contracts, and that search_contracts or type-specific lister tools should be used when the conid is unknown. While it doesn't explicitly name alternatives, the context is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, but the description adds valuable behavioral context beyond that: the session is auto-acquired and auto-releases after idle. This informs the agent that no explicit session setup is needed and that the tool is a safe read operation. It does not describe the return format, but for a simple getter with read-only annotation, this is acceptable.
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 remarkably concise: two sentences that front-load the primary purpose and then add a useful session note. There is no filler or redundancy, and every word contributes to understanding the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two string parameters, read-only, no output schema), the description is nearly complete. It covers the function and session lifecycle. The only slight gap is that it does not specify the return format, but unlike complex tools, the return is likely self-explanatory (a numeric exchange rate). Thus, it is almost fully complete.
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?
The input schema already contains full descriptions for both parameters (source and target) with examples, achieving 100% schema coverage. The description does not add any new semantic information about the parameters beyond what the schema provides, so the baseline score of 3 applies.
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 function: 'Get the current exchange rate between two currencies.' It uses a specific verb and resource, and it is distinct from all sibling tools, which focus on accounts, positions, market data, and other resources. This makes the purpose unambiguous and differentiates it 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 Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys when to use the tool (whenever an exchange rate is needed between two currencies), and the niche is unique among siblings, so no explicit alternatives are necessary. It also adds a practical constraint: 'Requires brokerage session (auto-acquired, auto-releases after idle),' which sets expectations for use. However, it does not elaborate on when not to use it or mention exclusions, which would push it to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description aligns by using 'Get' and 'Returns.' It adds useful context about the source (Briefing.com) and the response nature (full commentary/analysis article), going beyond the annotation. However, it does not disclose potential rate limits or behavior when no briefing is available.
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?
Two sentences, front-loaded with the key action and resource, and no wasted words. Every part of the description contributes to understanding the tool's purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool, the description covers the essentials: what it gets, from where, and what it returns. Minor gaps include no mention of authentication requirements or handling of empty/missing briefings, but these are not critical given the tool's simplicity.
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, so schema coverage is trivially 100% and there is nothing for the description to explain. Per the baseline for zero-parameter tools, a score of 4 is appropriate; the description does not need to add parameter details.
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 uses a specific verb ('Get') and names the exact resource ('market news briefing from Briefing.com') while also clarifying the return type ('full market commentary/analysis article'). This clearly distinguishes it from sibling tools like get_news_sources, which likely returns a list of sources rather than a briefing article.
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 usage context is implied: use this when you want the latest market news briefing. However, there is no explicit when-to-use vs. alternate guidance, and no mention of alternative tools (e.g., get_news_sources) or exclusions, relying solely on the description's implied purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already indicating a read operation, the description adds meaningful context by disclosing a maximum of 10 strikes per request and the performance rationale ('to stay fast'). It also clarifies the output is conids for downstream use, which is not apparent from annotations. No contradictions found.
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 three sentences, front-loading the primary purpose in the first sentence. Each sentence adds value: purpose, integration with get_market_snapshot, and operational limit. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description effectively carries the responsibility of explaining what is returned. It states that the tool returns conids usable with get_market_snapshot, which is the key output semantics. It also mentions the 10-strike limit. While it doesn't detail the response structure or error cases, for a simple lookup tool this is adequate.
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?
The input schema already provides 100% coverage with descriptions for all parameters, so the baseline is 3. The description reinforces the strikes limit and the purpose of the returned conids, but it does not add substantial new meaning beyond the schema. The schema's per-parameter descriptions are sufficient.
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 specifies the tool's purpose: retrieving option contract details (conids) for specific strikes. It distinguishes itself from sibling tools like get_option_chain and get_option_strikes by focusing on user-specified strikes and explicitly linking the output conids to get_market_snapshot usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by stating that the returned conids are intended for use with get_market_snapshot for pricing/IV, which implies when to use this tool. However, it does not explicitly compare with alternative contract lookup tools or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the behavioral context that a brokerage session is required but auto-acquired and auto-released after idle, which is useful operational guidance beyond the readOnlyHint annotation. It does not contradict the read-only annotation, as this is a retrieval operation.
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 two sentences: the first identifies the purpose and data fields, the second states the session requirement. There is no redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-param read tool, the description covers the functionality, the returned data categories, and the session prerequisite. However, it does not describe the return structure or error behavior, so it falls short of complete, though the low complexity keeps it above average.
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?
The single parameter accountId is already fully described in the schema with 'Account ID. Uses default account if omitted.' The tool description adds no additional parameter semantics, so the schema carries the burden as expected.
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 uses the specific verb 'Get' and names the resource 'account-level profit and loss data', enumerating the exact fields returned (dpl, upl, nl, el). This clearly differentiates it from sibling account tools like get_account_summary or get_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving account-level P&L metrics, but does not explicitly compare to alternatives or state a 'when not to use'. The context is clear from the named fields, yet there are no explicit exclusions or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds a non-obvious behavioral detail about the brokerage session being auto-acquired and auto-released after idle, which goes beyond what annotations provide.
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?
Two sentences, front-loaded with the main purpose, and no redundant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, data type, and session behavior, while the schema handles parameter details. Without an output schema, mentioning 'OHLCV price bars' gives a good sense of the return format.
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?
All 5 parameters are fully documented in the schema with 100% coverage, so the description adds little value beyond restating that it supports various periods and bar sizes.
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 states 'Get historical OHLCV price bars for a contract' with a specific verb and resource, clearly distinguishing it from other market data tools like get_market_snapshot which would provide current data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'historical' clearly indicates this is for past data, which differentiates it from snapshot tools, but it does not explicitly name alternatives or state 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.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and the description complements this by adding session behavior (auto-acquired, auto-releases after idle), which is useful operational context. No behavioral traits are contradicted, and the session disclosure adds value beyond annotations.
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, front-loaded sentence that conveys the purpose and session requirement without redundancy or fluff. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter getter with no output schema, the description is sufficiently complete: it states the return type (contracts), the required input (watchlist ID), and the session prerequisite. Missing details like error handling are not essential for this simple tool, and the lack of explicit sibling differentiation is a minor gap.
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?
The input schema describes the only parameter 'id' as 'Watchlist ID', and the description reinforces this with 'by ID'. Since schema coverage is 100%, the description adds no additional meaning beyond what the schema already provides, aligning with the baseline score of 3 for fully covered parameters.
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 a specific verb ('Get') and resource ('contracts in a specific watchlist') with a scoping qualifier ('by ID'), which distinguishes it from the sibling tool 'get_watchlists' (plural) that likely lists watchlists. This is a precise and unambiguous purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for retrieving contracts from a single watchlist using its ID, and it notes the brokerage session requirement. It does not explicitly mention the alternative 'get_watchlists' for listing all watchlists, but the singularity of 'specific watchlist' implies the appropriate use case, making it clear enough without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true in annotations, the description adds return fields (auth state, competing session flag, connection status), providing behavioral context beyond the read-only hint. No contradictions; minor gap is the lack of explanation of 'competing session flag,' but not critical.
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 extremely concise: two sentences, the first stating the purpose and the second listing return values. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status tool with no parameters and no output schema, the description covers the essential behavior and return values. It is complete enough for an agent to select and invoke correctly, especially given the clear read-only annotation.
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, so the baseline is 4. The description appropriately focuses on return values rather than parameter details, which are nonexistent. This fully compensates for the empty input schema.
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: checking if the Client Portal Gateway is authenticated. It lists specific output elements (auth state, competing session flag, connection status), which distinguishes it from siblings like reauthenticate or ping_session.
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 use for verifying authentication status but does not explicitly state when to use it or mention alternatives. The agent must infer usage from the name and context, with no direct comparison to related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals a safe read operation. The description adds valuable behavioral details: auto-pagination through all pages and the exact fields returned, including option-specific fields. No destructive behavior is implied, and no contradiction exists.
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 two concise sentences that deliver essential information without fluff. It front-loads the core purpose, then efficiently lists return fields, covering both general and option-specific details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description is complete: it explains the scope, pagination behavior, asset types, and return field structure. The lack of an output schema is compensated by a detailed field list.
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?
The schema fully documents the single optional accountId parameter, so the description does not need to add parameter details. It references 'an account' but adds no new semantic meaning beyond the schema's coverage.
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 function: 'Get all open positions for an account.' It lists asset types (stocks, options, futures) and distinguishes from sibling get_position_by_conid by emphasizing 'all open positions' and auto-pagination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context that the tool lists all open positions for an account and auto-paginates, which implies use when a complete portfolio snapshot is needed. However, it does not explicitly mention alternatives like get_position_by_conid for single-position queries, so it lacks clear exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals a safe read operation, but the description adds behavioral context: it is 'curated' and returns a subset of fields. This goes beyond the annotation by explaining the tool's scope and what fields to expect, though it doesn't describe error handling or authentication requirements.
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 two sentences long, front-loads the core purpose, and immediately provides the actionable alternative. Every word earns its place, and the field list is compact yet informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional parameter, full schema coverage, and a readOnlyHint, the description covers the essential context: what the tool does, what fields it returns, and how it differs from its sibling. The absence of an output schema is mitigated by the field list, though a note about response format would be a minor enhancement.
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 100% — the single parameter accountId is documented as 'Account ID. Uses default account if omitted.' The description doesn't need to elaborate further, as the schema fully explains the parameter's meaning and optionality.
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 starts with 'Get curated account summary' and enumerates the specific fields (net liquidation, cash, buying power, margin, gross position value, P&L, cash breakdown by currency). It explicitly distinguishes from get_account_summary_full by stating it returns 'the most important fields only,' which prevents confusion among sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear guidance on when to use this tool versus the full version: 'Returns the most important fields only — use get_account_summary_full for all 70+ fields.' This directly addresses the alternative and implies the tool is for quick, curated summaries rather than exhaustive data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds context about the raw nature, field count, and suffix duplicates, providing value beyond the annotation without contradictions.
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?
Two concise sentences with no redundant words: the first states the purpose, the second names the alternative. Excellent front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter, the description adequately covers purpose, distinction, and the key behavior of returning raw data, though it does not detail return structure beyond the field count.
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 100% for the single optional parameter, and the description does not add any extra meaning beyond what the schema already provides.
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 a specific action ('Get the full raw account summary') and resource, and distinguishes it from the sibling by mentioning 'all 70+ fields' and 'segment-level duplicates (-s suffix)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides guidance by naming the alternative tool ('Use get_account_summary for a curated version'), making it clear when to choose this tool over that one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation is consistent with the description, and the description adds valuable behavioral detail about session management (auto-acquired, auto-releases after idle). This goes beyond what annotations provide.
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 sentence with a parenthetical, front-loading the core action and resource. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter list tool, the description covers the essential behavior and prerequisite. It does not describe the return format, but that is not critical given the tool's simplicity and lack of 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, so the schema gives complete coverage. The description adds no parameter details, but none are needed; baseline of 4 is appropriate.
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 'List all currently live/working orders' uses a specific verb and resource, clearly differentiating it from related order tools. It immediately conveys the scope ('live/working') and action (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes that a brokerage session is required and explains it is auto-acquired and auto-released, giving useful context on prerequisites. It does not explicitly name alternatives or exclusions, but for a simple list tool this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true annotation already declaring safety, the description adds useful behavioral context: 'Fast — single API call' and clarifies that it returns strikes for both calls and puts. This goes beyond annotations without contradicting them, though it doesn't cover pagination or return format.
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?
Three short sentences, all informative, with key information front-loaded and no wasted words. It earns every sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, return content, performance, and an alternative. For a simple 3-parameter tool with no output schema, this is sufficient for an agent to select and invoke correctly, though it could mention output structure slightly more explicitly.
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 100%, with all parameters including default behavior (month omits returns nearest) already documented. The description itself adds no additional parameter-specific semantics, so the baseline of 3 is appropriate.
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 uses a specific verb ('Get') and resource ('available option expirations and strikes'), and explicitly contrasts with get_option_contracts for specific strikes, distinguishing it from a sibling tool. This is a clear, specific purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit alternative: 'To get conids for specific strikes, use get_option_contracts.' This tells the agent when to use this tool vs. an alternative, which is exactly what the dimension requires.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description complements the readOnlyHint annotation by revealing that the brokerage session is auto-acquired and auto-released after idle, which is valuable behavioral context. It also discloses the fixed time window. It does not describe return format or pagination, but the annotation already covers the 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.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core purpose and scope, the second addresses the session prerequisite. Every word adds value, with no redundant information. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is largely complete: it states what data is returned (trade executions), the time window, and the session handling. It could offer a bit more detail about the content of the history (e.g., fields included), but it 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.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter information. The description adds meaningful context by specifying the time range (current day + 6 previous days), which acts as implicit parameter documentation. Baseline of 4 for zero params is appropriate.
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 specifies the action ('Get') and the resource ('trade execution history') with a precise time scope ('current day + 6 previous days'). It distinguishes itself from siblings like get_transaction_history or get_live_orders by focusing on executed trades rather than all transactions or order statuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool retrieves recent trade executions and that a brokerage session is required, but it does not explicitly compare against alternatives such as get_transaction_history or mention scenarios where this tool should not be used. The session requirement is a useful prerequisite, but there are no exclusions or explicit alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses the critical limitation that IBKR does not expose financial statements or valuation ratios, and that certain fields are deprecated. This gives the agent accurate expectations about data availability without contradicting the annotation.
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 three sentences: main purpose, limitation disclosure, and alternative guidance. Every sentence adds distinct value, and it's front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with no output schema, the description is complete: it lists the return fields, warns about deprecated data, and redirects to sibling tools for other data types. This equips the 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.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter conid is documented in the schema as 'Contract ID', and the description reinforces that this is for a stock but does not add additional detail about how to find or format the conid. With 100% schema coverage, the description carries minimal extra parameter value, so a baseline score of 3 is appropriate.
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 opens with a specific verb ('Get company metadata') and enumerates the exact data fields returned. It also explicitly distinguishes itself from sibling tools by listing what it does NOT provide and pointing to get_market_snapshot and get_price_history for those use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: it states the tool covers company metadata but not financial statements or valuation ratios, and then names the alternative tools for those needs. This is unambiguous exclusion and redirection.
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/yigitabi5444/yigit_ibkr_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server