simplefunctions
Server Details
Calibrated world model for AI agents. 40 tools: world state, markets, trading. Kalshi + Polymarket.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- spfunctions/simplefunctions-cli
- GitHub Stars
- 12
- Server Listing
- SimpleFunctions
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.6/5 across 108 of 108 tools scored. Lowest: 2/5.
Many tools have overlapping purposes, such as multiple market query tools (scan_markets, screen_markets, get_market_detail, get_market_diff, get_market_history, inspect_ticker) and legislative tools (legislation, get_legislation, list_legislation, query_gov). Aliases like get_heartbeat_config/get_heartbeat_status and explore_public/explore_theses add further confusion. An agent would struggle to select the correct tool without deeply reading each description.
Most tools follow a verb_noun pattern (get_, list_, create_, update_), but there are notable deviations: 'legislation' lacks the 'get_' prefix, 'stt' and 'tts' are acronyms, 'monitor_the_situation' is a full phrase, and 'x_account/x_news/x_volume' use a non-standard prefix. The overall style is readable, but the mixed conventions reduce predictability.
108 tools is extreme for any server, even one covering prediction markets, trading, portfolio management, forum, skills, and speech. The massive surface area overwhelms agents and makes the server feel more like a platform than a coherent toolkit. This many tools inevitably leads to redundancy and maintenance burden.
The server covers an impressively broad domain: market data, thesis management, intents, strategies, positions, portfolio, forum, skills, legislative and economic queries, and audio/visual processing. Minor gaps exist (e.g., no delete for skills/theses, no update for some portfolio items) but core workflows are well-supported. Overall lifecycle coverage for most entities is strong.
Available Tools
108 toolsadd_positionAInspect
Record a new position in a thesis for tracking. Use after an intent fills or a manual trade.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Position size (contracts) | |
| venue | Yes | Exchange venue | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| thesisId | Yes | Thesis ID | |
| direction | Yes | Position direction | |
| rationale | No | Why this position | |
| entryPrice | Yes | Entry price in cents | |
| marketTitle | Yes | Human-readable market name | |
| externalMarketId | Yes | Market ticker |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a write operation ('Record') but discloses no side effects, idempotency, authorization requirements beyond the schema's apiKey, or what happens on duplicate positions. This is a significant transparency gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the first states the purpose, the second states when to use it. There is no filler, and the information is front-loaded. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, and no output schema, the description is under-specified. It lacks any mention of return value, behavior on duplicate positions, or how this relates to close_position and update_position. The schema covers parameters well, but the overall tool context is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 9 parameters are already documented, including enums for venue and direction and units for entryPrice. The description adds no additional parameter semantics beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Record' with a clear resource ('a new position in a thesis for tracking') and distinguishes from sibling tools like close_position and update_position by focusing on the initial recording action. It is immediately obvious 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use after an intent fills or a manual trade', giving clear timing context for when to use this tool. It does not mention when not to use it or name alternatives, but the guidance is sufficient for a simple recording operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
augment_treeAInspect
Advanced: Merge suggested causal tree nodes from evaluations into the tree (append-only).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| dryRun | No | Preview without applying (default: false) | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly states 'append-only', which is an important non-destructive trait, but it does not mention whether it is a write operation, any permissions required, or what happens on conflicts. The 'Advanced:' prefix hints at complexity but adds no concrete behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core action, resource, and key constraint. It contains no filler or redundancy, with '<2' descriptors like 'Advanced:' serving as a brief context cue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description names the operation and source ('evaluations') but does not mention what the tool returns, prerequisites (e.g., having an existing thesis and evaluation suggestions), or behavior in edge cases. With no output schema, some additional context about expected results would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all three parameters (apiKey, dryRun, thesisId) are already described. The description adds no parameter-specific meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Merge' and a clear resource ('suggested causal tree nodes from evaluations') and adds a key constraint ('append-only'). This distinguishes it from sibling tools like update_nodes, which likely modify nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage in the context of evaluations ('from evaluations') but does not explicitly state when to use this tool versus alternatives such as update_nodes or trigger_evaluation. No exclusions or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_marketsAInspect
Fetch many markets at once by ticker list. Cheaper than calling get_market_detail in a loop.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Orderbook depth levels (0 = none) | |
| tickers | Yes | Comma-separated tickers |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral transparency. It adds the performance trait 'Cheaper than calling get_market_detail in a loop' but does not disclose potential limits on the number of tickers, pagination, error behavior, or response format. For a simple read operation, this is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose and adds a cost-saving hint. Every word earns its place, and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with schema covering both parameters, and the description names the key use case. However, without an output schema or mention of return structure/limits, an agent might not fully anticipate the response shape. Given the similarity to get_market_detail, this is a minor gap, making it slightly above average but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'tickers' and 'depth' are already documented in the input schema. The description adds no additional meaning beyond the phrase 'by ticker list,' which merely echoes the schema. It does not explain the relationship between parameters or provide usage syntax beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Fetch many markets at once by ticker list.' It names a specific verb ('fetch'), resource ('markets'), and method ('by ticker list'), and distinguishes it from the sibling tool get_market_detail by emphasizing the batch nature and cost advantage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides guidance by comparing to get_market_detail: 'Cheaper than calling get_market_detail in a loop.' This gives a clear when-to-use context. However, it does not mention alternative batch tools like get_markets or scan_markets, nor when not to use it, so it misses explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browse_public_skillsAInspect
Browse public skills from the community. Free-tier and rate-limited. Filter by category, search, or sort by popularity.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search skills by name/description | |
| sort | No | Sort order: popular or new (default: new) | |
| category | No | Filter by category: custom, trading, research, monitoring |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It does disclose that the tool is free-tier and rate-limited, which is useful operational behavior. However, it does not mention the response format, pagination, or any other behavioral nuances, leaving gaps for an agent to anticipate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that front-load the main purpose and then add constraints and filtering options. Every word contributes meaning, with no redundancy or irrelevant detail, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity—three optional parameters with full schema descriptions and no required inputs—the description provides sufficient context for an agent to understand what the tool does and its key capabilities. Since there is no output schema, the description need not detail return values, but it could mention pagination or result structure. Overall, it is adequately complete for this simple browse tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters (q, sort, category) with clear descriptions, achieving 100% coverage. The description's mention of 'filter by category, search, or sort by popularity' merely paraphrases the schema without adding semantic detail, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Browse public skills from the community,' identifying the verb and resource. It also mentions filtering, search, and sorting, which distinguishes it from simple list tools. However, it does not explicitly differentiate it from sibling tools like 'explore_public' or 'list_skills,' so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context that this is for public community skills and is free-tier with rate limits, which implies suitable use cases. However, it lacks explicit guidance on when to use this tool over alternatives like 'list_skills' or 'get_public_skill,' and does not state any exclusions or prerequisites. The usage scenario is implied but not clearly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_intentAInspect
Cancel an active intent. Stops trigger evaluation and prevents execution.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| intentId | Yes | Intent ID to cancel |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It does disclose key behavioral traits (stops trigger evaluation, prevents execution), but it doesn't mention reversibility, idempotency, or what happens to the intent after cancellation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using two short sentences that both add value: one states the primary action, the other clarifies the behavioral outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema and no annotations, the description covers the core purpose and effect. However, it could be more complete by mentioning whether cancellation is idempotent or what happens if the intent is already executed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema already documents for apiKey and intentId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Cancel' and the resource 'active intent', and further clarifies the effect by noting it stops trigger evaluation and prevents execution. This distinguishes it from siblings like create_intent or trigger_evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you want to cancel an active intent) but provides no explicit guidance on when to use vs alternatives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_positionBInspect
Delete a position record from a thesis.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| thesisId | Yes | Thesis ID | |
| positionId | Yes | Position ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Delete', which implies destructiveness, but it does not mention whether the action is reversible, any side effects on related data, permission requirements, or what the response will be. This is a minimal disclosure equivalent to the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It efficiently communicates the core function without any wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation, the description is minimally adequate. However, it does not mention what the tool returns, whether the operation is irreversible, or any preconditions (e.g., position must exist). The schema provides essential parameter context, but the description leaves some gaps in the overall usage picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all three parameters (thesisId, positionId, apiKey), giving 100% coverage. The tool description does not add additional parameter semantics, but since the schema already documents them, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Delete') and a specific resource ('position record from a thesis'). This clearly distinguishes it from sibling tools like add_position, update_position, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when a position should be removed, prerequisites, or what distinguishes it from close_position-like operations. It simply states the function without contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_heartbeatAInspect
Configure the 24/7 heartbeat engine: news scan interval, X scan interval, LLM model tier, monthly budget, runtime pause/resume, and closed-loop intent creation. Agent can speed up monitoring during high volatility or slow down to save budget.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| paused | No | Pause/resume heartbeat | |
| thesisId | Yes | Thesis ID | |
| xIntervalMin | No | X/social scan interval in minutes (60-1440, default 240) | |
| evalModelTier | No | LLM model for evaluations | |
| closedLoopExit | No | Enable/disable closed-loop exit intent creation | |
| closedLoopEntry | No | Enable/disable closed-loop entry intent creation | |
| newsIntervalMin | No | News scan interval in minutes (15-1440, default 240) | |
| monthlyBudgetUsd | No | Monthly budget cap in USD (0 = unlimited) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It lists the settings and hints at operational effects (monitoring speed, budget), but it does not explain side effects, persistence, reversibility, or prerequisites like requiring an existing thesisId beyond what the schema already states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences. The first sentence defines scope via a list of configurable aspects, and the second provides a practical use case. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, mutation) and the absence of both annotations and an output schema, the description is adequate but incomplete. It tells what the tool does and when to use it, but does not mention reading the current config first or the detailed consequences of changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all 9 parameters, so the baseline is 3. The description adds a general operational framing (e.g., speed vs. budget) but does not deepen understanding of individual parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action ('Configure') and resource ('24/7 heartbeat engine'), then enumerates the specific configurable settings (news scan interval, X scan interval, LLM model tier, monthly budget, runtime pause/resume, closed-loop intent creation). This distinguishes it from sibling read-only tools like get_heartbeat_config and get_heartbeat_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: the agent can use it to speed up monitoring during high volatility or slow down to save budget. However, it does not explicitly mention alternatives (e.g., using get_heartbeat_config to read current settings) or state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_intentAInspect
Declare an execution intent: "buy X when condition Y, expire at Z." Intents are the single gateway for all order execution. The local runtime daemon evaluates triggers and executes via user's Kalshi/Polymarket keys.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | Yes | Exchange venue | |
| action | Yes | Trade action | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| source | No | Intent source: agent, manual, idea | agent |
| expireAt | No | ISO timestamp when intent expires (default: +24h) | |
| marketId | Yes | Market ticker (e.g. KXFEDDEC-25DEC31-T100) | |
| maxPrice | No | Max price per contract in cents (1-99). Omit for market order. | |
| sourceId | No | Source reference (idea ID, thesis ID, etc.) | |
| direction | Yes | Contract direction | |
| rationale | No | Why this trade — logged for audit trail | |
| autoExecute | No | Auto-execute without later human confirmation. Defaults to false unless explicitly set true. | |
| marketTitle | Yes | Human-readable market name | |
| triggerType | No | When to execute | immediate |
| triggerPrice | No | Price trigger threshold in cents (for price_below/price_above) | |
| targetQuantity | Yes | Number of contracts |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description discloses meaningful behavioral context: a local runtime daemon evaluates triggers and executes via the user's Kalshi/Polymarket keys. This conveys the asynchronous execution model and key-based authorization. It does not mention return values or confirmation steps, but the disclosed mechanism goes beyond a simple tautology.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loaded with purpose, and includes a concrete example plus architectural context. Every word earns its place; there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the core concept and execution model, and the schema covers parameters thoroughly. However, with no output schema, the description lacks any indication of what the tool returns or the immediate result of creating an intent (e.g., intent ID, status). For a complex tool with 15 parameters, this gap is notable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% description coverage for all 15 parameters, including enums, defaults, and examples. The description adds no additional parameter semantics beyond the illustrative 'buy X when condition Y, expire at Z' example, which maps to action, targetQuantity, triggerType, and expireAt but does not enrich the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the operation 'Declare an execution intent' and states it is the single gateway for all order execution, distinguishing it from sibling tools like cancel_intent or get_orders. The verb 'Declare' is specific and the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'single gateway for all order execution' gives clear context that this is the go-to tool for placing orders, implying use for execution workflows. However, it does not explicitly name alternatives or state when not to use it, so it falls just 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.
create_skillBInspect
Create a custom agent skill — a reusable prompt/workflow that can be triggered via slash command.
| Name | Required | Description | Default |
|---|---|---|---|
| auto | No | Auto-trigger condition | |
| name | Yes | Skill name (e.g. "precheck") | |
| tags | No | Tags for discovery | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| prompt | Yes | The full prompt/instructions for the skill | |
| trigger | Yes | Slash command trigger (e.g. "/precheck") | |
| category | No | Category: custom, trading, research, monitoring | |
| toolsUsed | No | SimpleFunctions tools this skill uses | |
| description | Yes | What this skill does | |
| estimatedTime | No | Estimated run time |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the basic create operation and does not mention potential side effects, idempotency, name uniqueness, authorization requirements, or what happens on failure. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the core purpose without waste. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a mutation tool with no annotations and no output schema, the description should provide more context about expected behavior, such as return values, constraints (e.g., unique skill names), and how it relates to other skill tools. The sparse description is insufficient for the tool's complexity (10 parameters, 5 required).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 10 parameters are already documented with descriptions. The tool description adds no extra parameter-level meaning beyond the schema. Baseline of 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Create a custom agent skill' and elaborates with 'reusable prompt/workflow that can be triggered via slash command.' This clearly distinguishes it from sibling skill tools like run_skill (execute), fork_skill (copy), and publish_skill (make public).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. It does not mention that fork_skill is for reusing existing skills or run_skill for invoking them, nor does it state any exclusions or prerequisites. The usage context is only implied by the 'Create' verb, not explicitly explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_strategyAInspect
Set up automated trading: define entry price, stop loss, take profit, and LLM-evaluated soft conditions. The heartbeat engine checks conditions every 15 min and executes when met.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| market | Yes | Human-readable market name | |
| horizon | No | Time horizon | medium |
| marketId | Yes | Market ticker e.g. KXWTIMAX-26DEC31-T150 | |
| stopLoss | No | Stop loss: bid <= this value (cents) | |
| thesisId | Yes | Thesis ID | |
| direction | Yes | Trade direction | |
| rationale | No | Full logic description | |
| entryAbove | No | Entry trigger: ask >= this value (cents, for NO direction) | |
| entryBelow | No | Entry trigger: ask <= this value (cents) | |
| takeProfit | No | Take profit: bid >= this value (cents) | |
| maxQuantity | No | Max total contracts | |
| softConditions | No | LLM-evaluated conditions | |
| perOrderQuantity | No | Contracts per order |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It reveals a key behavior: checks every 15 minutes and executes when conditions are met, implying automated trade execution. However, it does not mention side effects (e.g., order placement), required permissions beyond API key, reversibility, or error handling, which are important for a trading tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the primary purpose and then adds a concise behavioral detail about the heartbeat engine. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 14 parameters and no output schema, the description provides only basic context: setting up automation and the 15-minute check loop. It does not explain what the tool returns (e.g., strategy ID), how to manage or stop the strategy, or what 'executes' means in practice—gaps that matter for a trading tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter meanings are fully documented in the schema. The description summarizes some parameters (entry price, stop loss, take profit, soft conditions) but does not add new meaning beyond what the schema already provides (e.g., softConditions is already described as 'LLM-evaluated conditions').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set up automated trading') and resource (strategy) with clear details about parameters (entry price, stop loss, take profit, soft conditions). It distinguishes itself from sibling tools like create_thesis or add_position by mentioning the automated heartbeat engine and execution behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you want automated trading with entry/exit conditions and periodic checks. It does not explicitly name alternatives or provide when-not-to-use guidance, but the context is clear enough to differentiate from manual position tools like add_position or close_position.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_thesisAInspect
Create a new prediction market thesis from a TESTABLE CLAIM — a statement that can be verified true or false at a future time. GOOD: "Bitcoin closes 2026 above $50,000". BAD: "High conviction due to large price gap" (that is reasoning, not a claim). Builds a causal tree and scans for mispriced contracts. Formation takes ~60s.
| Name | Required | Description | Default |
|---|---|---|---|
| sync | No | Wait for formation to complete | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| thesis | Yes | Your thesis statement |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It mentions the process ('Builds a causal tree and scans for mispriced contracts') and timing ('Formation takes ~60s'), which is useful. However, it does not disclose potential side effects (e.g., whether the thesis is published, whether it consumes funds, or what the outcome is). Since this is a creation tool, more explicit behavioral disclosure would be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: first sentence states the core purpose, followed by examples and process details. Every sentence earns its place with no fluff. The structure is clear and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations and no output schema, the description explains the input requirements, the internal process, and the expected duration. It is usable as-is. It could be more complete by mentioning what the tool returns or any prerequisites (e.g., required permissions or linked accounts), but it covers the essential workflow for a thesis creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds significant value by explaining the 'thesis' parameter in detail with good and bad examples, clarifying what constitutes a valid claim. This enriches the parameter semantics beyond the schema's simple description. No additional meaning is provided for 'sync' or 'apiKey', but the core parameter is well-expanded.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Create a new prediction market thesis from a TESTABLE CLAIM'. It specifies the resource (prediction market thesis), the required input format (testable claim), and distinguishes it from reasoning by providing good/bad examples. This is specific and differentiates it from sibling tools like create_strategy or update_thesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use the tool: when you have a testable claim that can be verified true or false. It reinforces this with concrete examples of valid and invalid claims. However, it does not explicitly name alternative tools or state when NOT to use this tool, so it falls 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.
enrich_contentAInspect
Cross-reference any text with thousands of prediction market contracts. Paste content + topics, get divergence analysis: where sentiment disagrees with market prices. No auth, no Firecrawl needed. Demo/trial entry point.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | LLM model for digest generation. Default: google/gemini-2.5-flash | |
| topics | Yes | Topics to search in prediction markets, e.g. ["iran", "oil"] | |
| content | Yes | Text content to cross-reference (up to 50K chars) | |
| includeIndex | No | Include SimpleFunctions Index |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It adds behavioral notes: 'No auth, no Firecrawl needed' and 'Demo/trial entry point', indicating a lightweight, possibly limited service. Still, it does not disclose read-only status, rate limits, or response format, so only partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action. Every phrase earns its place: the resource, the input, the output, and the access prerequisites. No redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema, the description covers the main use case and access conditions but omits expected return structure or limitations (e.g., what the divergence analysis looks like, any output size constraints). It's adequate for a demo entry point but leaves the agent with some uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning beyond the schema by explicitly tying 'content' and 'topics' to the paste-and-analyze workflow, and explaining that they drive the divergence analysis. It doesn't elaborate on model/includeIndex, but the schema already handles those; the added context for the core required params is valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('cross-reference') and resource ('prediction market contracts'), and clearly explains the output ('divergence analysis'). It distinguishes itself from sibling tools like query or scan_markets by specifying the unique input (text + topics) and purpose (sentiment vs market prices).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clarifies that no auth or Firecrawl is needed and that this is a demo/trial entry point, which gives some context on when it's appropriate. However, it does not explicitly name alternative tools or state when not to use it, leaving the comparison to siblings implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explore_publicAInspect
Browse public theses from other users. Free-tier and rate-limited. Pass a slug to get details, or omit to list all.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Specific thesis slug, or empty to list all |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the rate-limiting behavior and positionally describes how the tool behaves with or without a slug. It does not mention output format or authentication, but the read-only nature is implied by 'browse public theses'. This is solid disclosure for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first front-loads the purpose, and the second covers both usage modes. No redundant or filler content is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, no output schema, and no annotations, the description covers the essential behavior, usage constraints, and parameter semantics. It does not explain what the returned list contains or any pagination, but these are not critical for a basic 'browse' action, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single 'slug' parameter with a clear description. The description's instruction to 'Pass a slug to get details, or omit to list all' essentially paraphrases the schema, adding no new semantic information. Baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Browse' and clearly identifies the resource as 'public theses from other users', distinguishing it from sibling tools like 'explore_theses' or 'list_theses'. It also states the primary behavior (pass a slug for details, or omit to list all), making the tool's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for usage: it notes the tool is 'Free-tier and rate-limited' and explains the two invocation modes ('Pass a slug to get details, or omit to list all'). However, it does not explicitly name alternative tools or state when not to use it, so it falls 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.
explore_thesesAInspect
Browse public theses (alias of explore_public). Pass slug to get one, omit to list.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Thesis slug, or empty to list |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explains the parameter behavior (slug for single, omit for list) and implies read-only via 'browse,' but it does not disclose response format, pagination, authentication requirements, or any side effects. Since it is a browse tool, the read-only nature is implied, and the alias to explore_public adds context, but the lack of return/error details keeps it from being more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the purpose. Every phrase adds value: 'Browse public theses' defines the action, 'alias of explore_public' provides context, and the next clause explains the two usage modes. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional parameter, no output schema), so the description covers the basic usage. However, it lacks details about what the response contains, pagination, or whether 'public' means anyone can access without auth. Since there is no output schema and no annotations, the description should compensate more to fully prepare an agent for invoking and interpreting results. It is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter schema already describes slug as 'Thesis slug, or empty to list' with 100% coverage. The description adds behavioral nuance ('Pass slug to get one, omit to list') which clarifies the effect of empty vs. populated slug, but it doesn't add new syntax, format, or constraints beyond the schema. This aligns with the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Browse public theses' with a specific verb and resource. It also distinguishes itself by noting it is an 'alias of explore_public' and explains the two modes: 'Pass slug to get one, omit to list.' This is specific and immediately separates it from siblings like list_theses or get_thesis_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to use the tool: pass a slug for a single thesis or omit to list. It also points to the alias of explore_public, which gives a reference for expected behavior. However, it doesn't explicitly mention when to prefer this over list_theses or explore_public, so it lacks explicit exclusions or alternative names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fork_skillAInspect
Fork a public skill into your collection. No slug needed — just the skill ID.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| skillId | Yes | Public skill ID to fork |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the core behavior (forking into collection) and a constraint (public skills only). However, it doesn't mention side effects (e.g., whether it overwrites an existing fork), nor does it describe the return value or error cases. This is a minimal but not completely absent transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that are front-loaded with the action. The first sentence states what and where; the second gives a specific, useful clarification. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and no output schema. The description covers purpose and a key input detail (no slug needed). It doesn't explain the result of the fork in detail, but given the simplicity and clarity of 'fork into your collection', it is adequately complete for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have descriptions. The description adds value by clarifying the skillId parameter: 'No slug needed — just the skill ID.' This prevents confusion about the ID format and complements the schema's 'Public skill ID to fork'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fork'), the resource ('a public skill'), and the destination ('into your collection'). The note about 'No slug needed' distinguishes it from tools that might require slugs, and the sibling list shows no other fork_skill with this specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it is for forking a public skill into the user's collection. It implies when to use (when you want a copy of a public skill), but it does not explicitly mention alternatives or exclusions. The 'No slug needed' is a useful usage hint that differentiates from slug-based tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fork_thesisAInspect
Fork a thesis. Two modes: (1) Clone — call with just idOrSlug to copy a PUBLIC thesis verbatim into your collection. (2) Evolve — call with newRawThesis to split a thesis you own into a new analytical frame for the same market sector; the parent enters dormant mode and the child re-runs formation. Use evolve when the current frame is fundamentally inadequate for what the evidence now shows.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| reason | No | Evolve mode: why the original frame is no longer adequate | |
| idOrSlug | Yes | Thesis ID or public slug | |
| newTitle | No | Evolve mode: short title for the new thesis, ≤60 chars | |
| newRawThesis | No | Evolve mode: new frame in 1-3 sentences. Omit for clone mode. | |
| inheritEdgeMarketIds | No | Evolve mode: subset of current edge marketIds to carry over. Omit to let formation rescan fresh. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals key side effects: clone copies a PUBLIC thesis verbatim into your collection; evolve splits a thesis you own, the parent enters dormant mode, and the child re-runs formation. This goes beyond simple 'fork' semantics and aids risk assessment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the verb and resource, and uses a clear two-mode structure. Every sentence earns its place, with no redundant filler or restating of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-mode tool with 6 parameters and no annotations or output schema, the description covers mode selection, ownership constraints, and behavioral consequences. It does not describe the return value or potential errors, which would strengthen completeness, but the core invocation knowledge is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful mode-level semantics: calling with just idOrSlug triggers clone, while including newRawThesis triggers evolve. This explains how the parameters interact beyond their individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Fork' plus the resource 'thesis', and immediately distinguishes two clearly named modes (Clone and Evolve) with distinct outcomes. It differentiates itself from siblings like create_thesis and fork_skill by specifying public-copy and own-thesis-split semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for both modes: clone when copying a public thesis, evolve when restructuring your own thesis. It explicitly states 'Use evolve when the current frame is fundamentally inadequate.' It does not explicitly name alternative tools or state when not to use fork, but the mode guidance is sufficient for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_guideAInspect
Runtime playbook for agents: step-by-step workflows for query / monitor / integrate intents. Use when an agent is lost or needs onboarding.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Specific question to scope the guide | |
| intent | No | Workflow intent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It communicates that the tool returns a playbook and is meant for guidance, implicitly indicating a read-only, non-destructive action. However, it does not detail return format, behavior when parameters are omitted, or potential side effects, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose, followed by a practical use case. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, optional-parameter guide retrieval tool, the description covers what it is and when to use it, while the schema covers parameter details. It lacks explicit mention of output format or behavior with no params, but these are not critical for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (q and intent) are well-described in the schema. The description reinforces the intent enum values but adds little 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it is a 'runtime playbook' providing step-by-step workflows for specific intents (query/monitor/integrate). This distinguishes it from the many sibling data-retrieval tools by positioning it as an onboarding/help resource for agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when an agent is lost or needs onboarding,' giving a clear trigger condition. It does not name alternative tools or when-not-to-use cases, 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.
get_answerAInspect
Pre-computed answer card for a probability question (the same data that powers /answer/{slug}). Returns probability, confidence, and citations.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Answer slug (e.g. will-the-fed-cut-rates-in-december) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It states the tool 'returns' data, implying a read-only operation, and mentions the data source. However, it does not explicitly state that it has no side effects, nor does it describe error scenarios or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and every phrase adds value. It avoids redundancy and is highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter, the description covers purpose, returned fields, and data source. No output schema exists, so the explicit mention of probability, confidence, and citations adequately sets expectations for the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter 'slug' is fully described in the schema with an example, providing 100% coverage. The description adds context about the answer card but does not enrich the parameter semantics beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a pre-computed answer card for a probability question, specifying the exact contents ('probability, confidence, and citations'). It also references the /answer/{slug} endpoint, which distinguishes it from sibling get_* tools that return forecasts, opinions, or market details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'pre-computed answer card' and the reference to /answer/{slug} imply this tool is for retrieving already-generated answers rather than creating new ones. This provides clear context, though it does not explicitly name alternatives or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceBInspect
Advanced: Kalshi account balance and portfolio value.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions the tool returns balance and portfolio value, indicating a read operation, but does not disclose any deeper behavior such as data freshness, aggregation scope, or potential caveats. For a simple getter 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, but the leading 'Advanced:' prefix is unnecessary filler and does not add informative value. Otherwise, it is concise with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description provides the essential purpose. However, it does not describe the return structure or clarify how it differs from other portfolio-related tools, leaving gaps for an agent making a selection decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully covers the only parameter (apiKey) with a description. The tool description adds no parameter-specific details, but the baseline of 3 applies because schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the resource (Kalshi account) and the data returned (balance and portfolio value), which is clear and goes beyond a tautology. However, it lacks a verb phrase and does not differentiate this from other portfolio-related sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like get_positions or portfolio_risk_get. There are no context signals or exclusions, leaving the agent to guess when this is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_briefingAInspect
Topic-scoped briefing: short narrative + relevant markets + prior moves + key dates. Reusable as a callable /briefing card.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Topic keyword | |
| window | No | Lookback window |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It states the content components but does not mention whether the tool has side effects, requires authentication, or what the response format looks like. For a read-style tool, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the tool's core purpose and content without wasted words. It is concise and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with no output schema, the description provides a complete picture of what the tool returns (narrative, markets, moves, dates) and its reusable nature. It lacks some details like window format, but overall it is sufficiently complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by linking the 'topic' parameter to the scoping and 'window' to 'prior moves' and 'key dates,' giving context beyond the terse schema descriptions. This enriches the semantic understanding of both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a 'Topic-scoped briefing' and specifies its contents: short narrative, relevant markets, prior moves, and key dates. This distinguishes it from other get_* tools like get_feed or get_highlights by emphasizing its topic-scoped nature and unique deliverable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for topic-specific briefings and mentions it is 'reusable as a callable /briefing card,' giving a concrete use case. However, it does not explicitly state when to prefer this over alternatives or provide exclusions, so guidance is mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendarBInspect
Upcoming dated events that drive prediction markets: FOMC, CPI release, election dates, sports finals. Returns date, topic, and linked tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookahead days (default 30) | |
| category | No | Category filter (econ, election, sports, geo) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It accurately describes a read-only operation and lists return fields, which is basic transparency. However, it doesn't disclose potential side effects, rate limits, or nuances like how 'linked tickers' are derived or whether the calendar is manually curated versus automatically generated. The default lookahead is left to the schema, and no behavioral caveats are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes examples to clarify scope. Every word earns its place; no wasted or redundant content. This is excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters and no output schema, the description provides sufficient context: what it returns, what types of events, and category examples. It slightly misses an explicit statement about the default lookahead (though present in the schema) and clear differentiation from similar sibling tools, but these are minor 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both 'days' and 'category' have descriptions in the schema. The description adds no new semantic detail beyond what the schema already provides. It mentions examples that align with the category filter but doesn't elaborate on value formats or constraints. Baseline 3 is appropriate when the schema carries the parameter load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: it returns upcoming dated events that drive prediction markets, with examples (FOMC, CPI, elections, sports). It specifies return fields (date, topic, linked tickers), giving a clear picture of the resource. However, it doesn't differentiate from the sibling tool 'get_schedule', which could serve a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_schedule, get_briefing, or get_milestones. The description implies use for market-moving events but doesn't state exclusions, prerequisites, or preference criteria. This leaves the agent without a clear selection rationale.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calibrationBInspect
SimpleFunctions calibration: Brier scores, hit rates by edge bucket, category breakdown, drift alerts. Measured against resolved/settled markets.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Period (30d, 90d, all) | |
| category | No | Topic filter (fed, elections, ai, crypto, sports, ...) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It adds useful context by stating metrics are 'measured against resolved/settled markets', but it does not disclose potential side effects, cost, rate limits, or what 'drift alerts' entail. As a read-only getter, this is acceptable but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the domain and lists key metrics. It is efficient with no wasted words, though it could benefit from a clear sentence structure with a verb to improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description gives a reasonable overview of the content but omits the return format and how parameters affect results. It also leaves domain terms like 'Brier scores' and 'edge bucket' undefined, which may be opaque to some agents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (period and category). The description adds no additional parameter semantics, but the baseline of 3 applies since the schema handles the meaning adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's domain as 'SimpleFunctions calibration' and lists specific outputs (Brier scores, hit rates, category breakdown, drift alerts), which distinguishes it from sibling tools. However, it lacks an explicit verb like 'returns' or 'retrieves', so the purpose is stated implicitly rather than directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. It simply describes what the tool provides, leaving the agent to infer appropriate usage from the name and output list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_changesBInspect
Market change events since a timestamp: new contracts, price moves, removed contracts. Used by the live feed and agent context refreshers.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Keyword filter | |
| type | No | Change type | |
| since | No | ISO timestamp lower bound |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It mentions the event types and the 'since a timestamp' scoping, but it does not explicitly state that this is a read-only operation, describe pagination or rate limits, or explain behavior when no 'since' is provided. This leaves important operational details undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the first sentence front-loading the core functionality and event types, and the second giving usage context. It contains no unnecessary words, though the first sentence is a fragment rather than a complete sentence, slightly reducing structural polish.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple read tool with no output schema, the description covers the purpose and the types of changes, and gives usage context. However, it omits the return format, pagination behavior, and the optionality of the 'since' parameter, which are important for an agent to invoke it correctly. It is adequate but not fully fleshed out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters with descriptions, so the coverage is 100%. The description adds little beyond the schema; it restates the 'since' concept and lists event types that mirror the enum values. It does not clarify how parameters interact (e.g., q and type together), so it provides only marginal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as market change events and enumerates the three event types (new contracts, price moves, removed contracts), making the tool's focus specific. It also mentions intended use by the live feed and agent context refreshers, providing useful scope. However, it isn't a full sentence and doesn't explicitly distinguish from closely named siblings like get_changes_delta.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context ('Used by the live feed and agent context refreshers'), implying when to call this tool. However, it lacks explicit guidance on when not to use it or which alternative tools might be preferable, such as get_feed or get_changes_delta.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_changes_deltaAInspect
Per-thesis change delta since a timestamp — what evolved on this thesis (signals consumed, edges updated, confidence moves).
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | ISO timestamp lower bound | |
| apiKey | Yes | SimpleFunctions API key | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It explains the kind of information returned (signals consumed, edges updated, confidence moves), which is useful, but it does not explicitly state whether the operation is read-only, whether it supports pagination, or what happens when no changes exist. It adds some transparency but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the core purpose immediately and uses a compact list to enrich context. No word is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description adequately conveys the purpose and the nature of the returns. However, without an output schema, it would benefit from more detail on the exact return structure or pagination behavior to be fully complete. Still, for a simple delta tool, it provides a solid overview.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters. The description reinforces that 'since' is a timestamp lower bound and 'thesisId' is the per-thesis scope, but it adds minimal new detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('get'), names the resource ('per-thesis change delta'), and clarifies the scope ('since a timestamp'). It also enumerates the types of changes (signals consumed, edges updated, confidence moves), which distinguishes it from siblings like get_changes or get_world_delta.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (tracking thesis evolution over time) but provides no explicit guidance on when to choose this tool over siblings like get_changes or get_world_delta, nor any exclusions or alternatives. It is adequate but lacks direct comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_congress_memberBInspect
Get a single Congress member by bioguide ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Bioguide ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It only states the action ('Get') and the input, without mentioning return format, potential errors, or any special behavior. For a simple read tool this is minimal but still lacks context that could help an agent anticipate outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence containing only the essential information: action, resource, and identifier. It is concise, front-loaded, and free of unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema, but the description does not explain what is returned or any prerequisites. Given the minimal complexity, the description is adequate but lacks completeness that could help an agent know what to expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully covers the single parameter 'id' with description 'Bioguide ID', and the description confirms this by saying 'by bioguide ID'. Since schema coverage is 100%, the description adds no new semantic information but reinforces the key concept, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a single Congress member by bioguide ID, using a specific verb and resource. It distinguishes from sibling tools like list_congress_members through the word 'single', though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this tool when you need a specific Congress member by bioguide ID. However, there is no explicit guidance on when to use this versus list_congress_members or other retrieval tools, and 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.
get_contagionAInspect
Connected-market signals: contracts that historically co-move with the input topic but have diverged in the current window. Surfaces "this market should have moved but didn't" trades.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Topic keyword (fed, election, ai) | |
| window | No | Lookback (e.g. 24h, 7d) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explains the conceptual behavior (co-movement and divergence) but does not disclose what the response contains, edge cases (e.g., no signals found), or any limitations. The description implies a read-only analysis tool but lacks explicit behavioral details like return format or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the key concept, and contains no fluff. Every word adds value, defining the signal type and the trading idea it surfaces. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the contagion concept and the lack of an output schema, the description provides a good conceptual overview but does not specify the structure of results (e.g., list of market IDs with scores) or behavior under edge conditions. It is adequate but leaves room for more detail in a tool with no annotations or output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (topic and window), so the baseline is 3. The description does not add any parameter-level detail beyond what the schema already provides. It does not explain how they interact, but the schema descriptions are already sufficient for basic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it surfaces connected-market signals showing contracts that historically co-move with the input topic but have diverged in the current window. It uses a specific concept ('this market should have moved but didn't' trades) and differentiates from siblings like get_trade_ideas or scan_markets by focusing on divergence from historical co-movement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a clear use case: finding divergent markets based on historical co-movement. It does not explicitly name alternatives or state when not to use it, but the 'this market should have moved but didn't' phrasing provides contextual guidance. Lacks explicit exclusions or alternative tool references, but sufficient for a straightforward signal tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contextAInspect
START HERE. Global market snapshot: top edges (mispriced contracts), price movers, highlights, traditional markets — live exchange data updated every 15 min. With thesisId + apiKey: thesis-specific context including causal tree, edges with orderbook depth, evaluation history, and track record. Global context is free-tier and rate-limited; API keys unlock higher limits.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | SimpleFunctions API key. Required only for thesis-specific context. Get one at https://simplefunctions.dev/dashboard/keys or run: sf login | |
| thesisId | No | Thesis ID. Omit for global market snapshot on the free tier. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that data is live exchange data updated every 15 minutes, that the global context is rate-limited, and that API keys unlock higher limits. It also enumerates the delivered content. However, it does not explicitly state whether the operation is read-only (though 'snapshot' implies it) or describe possible error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a distinct function: positioning ('START HERE'), content overview, and conditional usage. No filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only snapshot tool with no output schema, the description covers the main contents, both modes, and rate-limit behavior. It does not specify response structure, but given the broad nature of the tool, the description is sufficiently complete for an initial selection decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already documents both parameters (100% coverage). The description adds essential semantics: it explains that thesisId + apiKey together produce thesis-specific context, while omitting them yields the global snapshot on the free tier. This clarifies the dependency between parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a global market snapshot with specific content categories (top edges, price movers, highlights, traditional markets) and optionally thesis-specific context. The 'START HERE' prefix distinguishes it from sibling tools like get_edges or get_highlights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly positions the tool as the starting point ('START HERE') and clarifies when to use the global free tier vs thesis-specific mode (with thesisId + apiKey). It also notes rate limits and that API keys unlock higher limits, guiding usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_economic_anchorsAInspect
Macro/economic anchors from FRED: latest values, percentile vs history, crosswalk to relevant prediction markets. For grounding macro theses.
| Name | Required | Description | Default |
|---|---|---|---|
| series | No | FRED series ID (e.g. CPIAUCSL) | |
| category | No | Category (rates, inflation, employment, growth) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the data source (FRED), the types of outputs (latest values, percentiles, crosswalk), and the purpose. It does not explicitly state whether it is read-only, mention rate limits, or describe return format, but as a 'get' tool, the read-only nature is implied. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the main function (macro/economic anchors from FRED) and lists key outputs. Every word earns its place; no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two fully described parameters and an output description that covers the main return elements. The description mentions the intended use case and data source, making it complete enough for an agent to understand and invoke. It does not describe return format, but with no output schema, the description gives a reasonable overview.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters, each with a clear description (FRED series ID and category). The tool description adds no additional parameter-specific meaning beyond the schema. Following the baseline for full schema coverage, a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('get') with a clear resource ('Macro/economic anchors from FRED') and enumerates what it provides: latest values, percentile vs history, and crosswalk to prediction markets. This distinguishes it from sibling tools like query_econ or get_forecast by naming FRED and its unique output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'For grounding macro theses' provides a clear context for when to use the tool. However, it does not explicitly mention alternatives or when not to use it. Given the context is clear but exclusions are absent, this aligns with a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_edgesAInspect
Top mispriced markets across all theses, ranked by edge size. Shows where your model disagrees with the market. No auth = public thesis edges. Auth = private + public.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max edges to return | |
| venue | No | Filter: kalshi or polymarket | |
| apiKey | No | SimpleFunctions API key. Omit for public edges only. | |
| minEdge | No | Minimum edge in cents |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds meaningful context about auth behavior ('No auth = public thesis edges. Auth = private + public') and ranking by edge size. It does not disclose output format or pagination, but the core behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the main purpose, and contains no fluff. The auth note is efficient and directly relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple list tool with no output schema and 4 well-described parameters, the description is largely complete. It covers the core purpose, the ranking logic, and the auth distinction. It could arguably mention the return shape, but the description is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters. The description adds minor context for the apiKey parameter by rephrasing the auth semantics, but otherwise it does not add meaning beyond what the schema already provides. This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: returning top mispriced markets across all theses, ranked by edge size, and showing where the model disagrees with the market. It uses specific concepts (edge size, theses) that help distinguish it from siblings like scan_markets or get_markets, though it does not name an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use the tool (to find mispriced markets) and clarifies auth-related behavior (public vs. private+public edges). However, it does not provide explicit guidance on when to choose this tool over related alternatives, nor does it state any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evaluation_historyAInspect
Confidence trajectory over time — daily aggregated evaluations for a thesis. Use to analyze trends, detect convergence/divergence.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that data is 'daily aggregated' and scoped to 'a thesis', which are useful behavioral details beyond the schema. It does not discuss response format or limitations, but for a read-only time-series tool, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short segments, front-loaded with the core purpose ('Confidence trajectory over time') and immediately followed by usage guidance. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only two parameters, no annotations, and no output schema, the description explains what the tool returns (daily aggregated confidence trajectory) and when to use it. It lacks explicit details about response structure, but the simplicity of the tool makes this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning to the parameters (thesisId, apiKey) beyond what the schema already states, so it neither exceeds nor falls below the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a 'confidence trajectory' with 'daily aggregated evaluations for a thesis', specifying both the resource (thesis) and the data type (confidence over time). This distinguishes it from sibling history tools like get_market_history or get_index_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use to analyze trends, detect convergence/divergence' provides explicit context for when to invoke this tool. However, it does not mention when not to use it or name alternative tools, so it falls 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.
get_feedAInspect
Cross-thesis evaluation feed: every evaluation across all your theses, ordered descending. Powers sf feed CLI.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Lookback hours (default 24) | |
| limit | No | Max rows | |
| apiKey | Yes | SimpleFunctions API key |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the ordering and scope, but does not mention return format, pagination, or any safety characteristics. For a simple read operation, the info 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short clauses that immediately convey the tool's purpose and key behavioral trait (ordering). Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has a complete schema with 100% parameter coverage. The description effectively communicates the core function and scope. It does not explain return values, but that is not required given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema itself. The description adds no parameter-specific meaning beyond what the schema already provides, matching the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('get') with a clear resource ('feed') and explicitly states the scope ('every evaluation across all your theses') and ordering ('ordered descending'). This distinguishes it from sibling tools like get_evaluation_history, which likely targets a single thesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you need a cross-thesis evaluation feed. However, it does not explicitly mention alternatives or exclusion criteria, leaving the usage context somewhat implicit rather than fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fillsCInspect
Advanced: Recent trade fills on Kalshi.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| ticker | No | Filter by market ticker |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It only states 'recent trade fills' without defining 'recent', whether auth is required (though schema shows apiKey), rate limits, or what data is returned. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, but the one-liner lacks detail. The 'Advanced:' prefix adds little value. Still, it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no output schema and no annotations, the description is too sparse. It fails to explain the concept of fills, time window, or relationship to other tools, making it incomplete for an agent to understand context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions (apiKey and ticker), so baseline is 3. The description adds no parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Recent trade fills on Kalshi' clearly identifies the resource (trade fills) and scope (recent), with 'get' from the name implying retrieval. However, it does not differentiate from sibling tools like portfolio_fills_list or get_settlements, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not state when to use get_fills vs portfolio_fills_list or get_orders, nor any exclusion criteria. 'Advanced:' hints at a target audience but not use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forecastAInspect
Advanced: P50/P75/P90 percentile distribution for a Kalshi event — shows how market consensus shifted over time.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days of history (default 7) | |
| apiKey | Yes | SimpleFunctions API key (needed for authenticated Kalshi calls). Get one at https://simplefunctions.dev/dashboard/keys | |
| eventTicker | Yes | Kalshi event ticker (e.g. KXWTIMAX-26DEC31) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It explains what the tool returns (percentile distribution over time) but does not explicitly state read-only nature, side effects, or rate limits. It adds some value beyond the schema by describing the output concept.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the core idea. The 'Advanced:' label is slightly unnecessary but does not undermine clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and no output schema, the description sufficiently explains the high-level function. It does not detail return formatting, but the percentile distribution concept is clear enough for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so a baseline of 3 applies. The description does not add semantic details for the parameters beyond what the schema already provides, but it does mention 'over time' which relates to the days parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides P50/P75/P90 percentile distributions for a Kalshi event, which is a specific verb+resource combination. It distinguishes itself from sibling tools like get_market_history by focusing on percentile consensus shifts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit guidance on when to use this tool versus alternatives. The prefix 'Advanced' hints at a target audience but does not provide context for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_glossary_termAInspect
Get a single glossary term with full definition and links.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Glossary slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool returns 'full definition and links,' which is helpful, but it does not mention error behavior, read-only nature explicitly, or any other side effects. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 11 words, front-loading the core action ('Get a single glossary term') and adding useful detail about the return content. Every word earns its place, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter, no annotations, and no output schema, the description is largely sufficient. It tells the agent what the tool does and what is returned, but could benefit from explicit note about when to choose this over `list_glossary` or how missing slugs are handled. Still, it is complete for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter `slug`, with a description 'Glossary slug.' The tool description does not add additional meaning about the parameter, so it relies on the schema. No extra semantic context is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a single glossary term, using the verb 'get' and specifying the resource. The word 'single' distinguishes it from the sibling `list_glossary` tool, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching one specific term but does not explicitly mention alternatives like `list_glossary` for retrieving multiple terms. There is no direct when-to-use guidance or exclusions, only implied context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_heartbeat_configAInspect
Get heartbeat config + monthly cost summary for a thesis (alias of get_heartbeat_status).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It indicates a read operation through the verb 'Get' and notes the alias, but does not mention safety, permissions, rate limits, or any side effects, which is a notable gap for a tool with no structured safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that immediately states the verb, resource, and scope, and includes the alias note without redundancy. Every word earns its place, and it is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two parameters and no output schema, and the description covers its core purpose and alias relationship. However, it lacks any guidance on return format, usage context, or behavioral caveats, so it is adequate but not fully complete for an agent selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents both parameters (apiKey and thesisId) with descriptions, so the description adds little beyond the schema. The phrase 'for a thesis' maps to the thesisId parameter but does not enrich parameter meaning further, matching the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: retrieving heartbeat configuration and monthly cost summary for a thesis. It also explicitly states it is an alias of get_heartbeat_status, distinguishing it from that sibling tool while clarifying its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The alias note implies interchangeable use with get_heartbeat_status, but the description does not explicitly state when to choose this tool over alternatives. No exclusions or preferred contexts are provided, leaving usage guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_heartbeat_statusAInspect
Get heartbeat config + this month's cost summary for a thesis. See news/X scan intervals, model tier, budget usage.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the call returns configuration and cost data, and by naming the tool 'get' it implies a read-only operation, but it does not explicitly state the lack of side effects, authentication requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence. It front-loads the core purpose and includes specific details without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately conveys what the tool returns (config, cost summary, scan intervals, model tier, budget usage). It is complete enough for a simple two-parameter GET tool, though it does not outline response format or potential edge cases like empty cost data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both apiKey and thesisId having descriptions. The description adds no extra meaning for parameters beyond what the schema already provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('heartbeat config + this month's cost summary for a thesis'). It lists specific content returned (scan intervals, model tier, budget usage), which distinguishes it from sibling get_heartbeat_config by adding the cost summary component.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need heartbeat configuration and cost details, but it does not explicitly state when to use this versus get_heartbeat_config or configure_heartbeat. No exclusions or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_highlightsBInspect
Editorial highlights for the day: top movers, divergences, fresh contagion, freshly-resolved markets. Curated summary view.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the tool is read-only, what data source or freshness is used, or what happens when no highlights are available; it only names content categories.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the core purpose and uses examples to elaborate, making it highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool the description is adequate, but without an output schema it leaves the response structure unstated. It does not clarify whether the result is a list, object, or aggregated summary, and does not mention any pagination or historical depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema fully covers parameter semantics. The description does not need to add parameter detail; the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's output as daily editorial highlights with specific categories (top movers, divergences, contagion, resolved markets), making the purpose easy to grasp. However, it lacks an explicit verb and does not directly contrast with siblings like get_briefing or get_feed, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many similar get_* siblings, nor any mention of exclusions or prerequisites. The phrase 'for the day' implies a daily cadence, but this is not an explicit usage instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_historyAInspect
Historical SimpleFunctions Index snapshots. Pre-computed every 15 minutes, stored since v2 launch (2026-04-09). For charting trends.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback days (default 7) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses useful behavioral details: data is pre-computed every 15 minutes and stored since v2 launch (2026-04-09). This communicates freshness and availability bounds. It also describes the data as 'snapshots', implying point-in-time readings, which adds context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences covering resource, update cadence, data history start, and use case. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description covers the core purpose, data timing, storage start, and intended use. It is sufficient, though it could explicitly mention that data is limited to the SimpleFunctions Index, which is already implied by the tool name and first sentence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'days' is fully documented in the schema with type and default (7). The description adds no extra parameter-specific meaning, but the schema fully covers it, so a baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'Historical SimpleFunctions Index snapshots', making it clear the tool retrieves historical index data. It distinguishes by naming the specific index, though it lacks an explicit verb or direct comparison to sibling history tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the intended use case ('For charting trends'), providing implicit context for when to use it. However, it does not mention alternatives or exclusions relative to sibling tools like get_market_history or get_evaluation_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_legislationAInspect
Get bill detail with prediction-market cross-reference (alias of legislation).
| Name | Required | Description | Default |
|---|---|---|---|
| billId | Yes | Bill ID, e.g. "119-hr-22" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a key behavioral trait: the result includes a prediction-market cross-reference, and the alias relationship implies identical behavior to 'legislation.' However, it does not mention read-only status, permissions, or potential side effects, leaving much undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, front-loaded sentence with no filler. It immediately states the action and resource, and the alias note adds useful context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one well-documented parameter and no nested objects, the description is adequate. It communicates the core function and a distinguishing feature (cross-reference), but the lack of an output schema means the agent may not know the exact return structure, though that is not strictly required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter, billId, is fully described in the schema with an example. The description's 'Get bill detail' adds no additional semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves bill details and augments with prediction-market cross-reference. It also notes it is an alias of 'legislation,' which helps distinguish it from other get_* tools, though the alias reference could be confusing to an agent deciding which canonical tool to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to fetch a specific bill's details, and the alias note indicates it is interchangeable with the 'legislation' sibling. However, it does not explicitly state when to choose this over list_legislation or other bill-related tools, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_detailAInspect
Get full detail for a single market: price, volume, indicators, regime label, history pointer, cross-venue counterpart. Lower-level than inspect_ticker — raw JSON only.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Orderbook depth levels to include (0 = none) | |
| ticker | Yes | Market ticker |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states that the tool returns raw JSON only and is lower-level, which adds context not in the schema. However, it does not disclose potential side effects (though 'get' implies read-only), permissions, error behavior, or output format details beyond the field list, so transparency is only partially covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loaded with the main action, and every word earns its place. It efficiently conveys purpose, scope, and differentiation without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with 100% schema coverage, the description is mostly complete. It lists the key content fields and offers a sibling comparison, but it omits mention of the 'depth' parameter (covered by schema) and does not describe what the 'history pointer' or 'cross-venue counterpart' actually return. Still, the tool is straightforward enough that the description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for both parameters: 'ticker' is described as 'Market ticker' and 'depth' as 'Orderbook depth levels to include (0 = none)'. The description does not add any additional meaning to these parameters beyond the schema, so it relies on the structured schema as baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets full detail for a single market and enumerates specific content (price, volume, indicators, regime label, history pointer, cross-venue counterpart). It also distinguishes itself from the sibling 'inspect_ticker' by noting it is lower-level, which helps differentiate from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for when to use this tool: when raw JSON-level detail for a single market is needed, and explicitly contrasts it with the higher-level 'inspect_ticker'. However, it does not mention exclusions or alternative tools like 'get_markets' or 'get_market_history', so it is not fully explicit but still provides useful guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_diffAInspect
Diff a market vs the prior window: price delta, volume delta, indicator drift. For "what changed in the last 6h?" questions.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field (e.g. priceDelta) | |
| topic | No | Topic keyword if no tickers | |
| window | No | Lookback (default 24h) | |
| tickers | No | Comma-separated tickers |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses the core behavior (computing price/volume/indicator deltas vs a prior window) but does not state output format, default window behavior, or explicitly confirm the operation is read-only (though 'get' implies it). This is adequate but leaves room for more detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the action and outcome. Every phrase adds value: the action, the comparison basis, the output dimensions, and a natural-language use case. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 optional parameters and no output schema, so the description needs to stand in for return-value documentation. It does list the output dimensions and a use case, but it does not clarify how to specify the target market (tickers vs topic) or how window/sort affect the results. This is a moderate gap for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds contextual phrasing like 'prior window' and a use case, but it does not explain how tickers, topic, window, and sort interact or which combinations are valid. The schema descriptions themselves are the main source of parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Diff' and a specific resource 'a market vs the prior window', and enumerates concrete outputs (price delta, volume delta, indicator drift). This clearly distinguishes it from related tools like get_market_history or get_market_detail, which focus on absolute values rather than deltas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit trigger example: 'For "what changed in the last 6h?" questions.' This gives clear context for when the tool is appropriate. It does not mention alternatives or exclusions, but the use case is strong enough to guide an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_historyAInspect
Get rolling 7-day price + indicator history for a single market. For trajectory questions and chart rendering.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Market ticker |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the rolling 7-day window, price+indicator content, and single-market scope, which is useful. However, it does not mention any caveats like whether the history is adjusted, whether it returns empty for new markets, or any rate limits. For a read-only get tool, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the key function and scope. Every word earns its place, and there is no redundant information. It is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter get tool with no output schema, the description adequately communicates what data will be returned (price+indicator history over 7 days). It doesn't need to detail the output structure since the tool name and usage context imply a time-series response. Could mention indicator names but not required for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with a clear description for the only parameter (ticker: 'Market ticker'). The tool description adds no new parameter details beyond what the schema offers. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves rolling 7-day price and indicator history for a single market, which is specific and distinguishes it from sibling tools like get_market_detail or get_market_diff. It uses the verb 'Get' with a precise resource and scope. Could be a 5 if it explicitly named a sibling or further differentiated from get_technical, but it's already clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'For trajectory questions and chart rendering' gives a clear usage context. This helps an agent decide when to use this tool (e.g., when needing time-series data for a chart). It doesn't explicitly state when not to use it or name alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_indexAInspect
SimpleFunctions Prediction Market Index v2. Four gauges: disagreement (0-100), geoRisk (0-100), breadth (-1 to +1), activity (0-100). Updated every 15 minutes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context by specifying the four gauges, their value ranges, and the 15-minute update frequency, which helps the agent anticipate the data's freshness and structure. It does not mention any side effects or safety implications, but for a read-only index this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using only two sentences to convey the tool's purpose, components, and update cadence. It is front-loaded with the index name and immediately lists the gauges, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-parameter read-only tool, the description is fairly complete: it names the gauges, gives their ranges, and states the update interval. It lacks an explicit return format or example, but given the simplicity and absence of an output schema, the description adequately covers what the agent needs to know to invoke and interpret the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema provides no information. The description appropriately lists the output components, but parameter semantics are trivially satisfied since no parameters exist. The baseline 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a prediction market index with four specific gauges and their ranges. It is not a tautology and does not mislead, though it lacks an explicit verb like 'returns' and does not differentiate from sibling tools that might also provide market-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as get_index_history or get_market_detail. It does not state whether it should be used for current snapshots or historical analysis, so the agent is left without explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_microstructure_historyAInspect
Per-ticker microstructure time series: implicit yield, CRI, EE, LAS, overround, plus realised volatility. Used for charting indicator drift.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback days (default 7) | |
| ticker | Yes | Market ticker | |
| interval | No | Bucketing |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It lists output fields but does not discuss operational details such as read-only guarantees, data availability, sorting, or response structure. This is a notable gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core data content, and every word adds value. It is concise without sacrificing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema and annotations, the description provides field names and a use case, which is helpful for an agent. However, acronyms like CRI, EE, and LAS are not expanded, and the return structure is not detailed, preventing a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds little beyond the schema. It lists output fields, but these are not parameters. The parameters (ticker, days, interval) are already well-described in the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as providing a per-ticker microstructure time series, listing specific fields (implicit yield, CRI, EE, LAS, overround, realised volatility) and the use case of charting indicator drift. This distinguishes it from generic market history tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states a use case ('Used for charting indicator drift'), which gives clear context for when to use the tool. However, it does not mention alternative tools or exclusions, so it falls short of explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketsAInspect
Get traditional market prices via Databento. Default: SPY, VIX, TLT, GLD, USO. Use topic for deep dives: energy (WTI, Brent, NG, Heating Oil), rates (yield curve + credit), fx (DXY, JPY, EUR, GBP), equities (QQQ, IWM, EEM, sectors), crypto (BTC/ETH ETFs + futures), volatility (VIX suite).
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Deep dive topic: energy, rates, fx, equities, crypto, volatility. Omit for core 5. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It states the data source (Databento), the default symbols, and the topic categories, which provides useful context. However, it does not disclose output format, update frequency, or any limitations, leaving the agent to infer the exact behavior of 'market prices'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and every word adds value. The first sentence states the function and default universe; the second efficiently enumerates topic options and their coverage. No fluff or repetition exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter, no output schema), the description is largely sufficient for an agent to invoke it correctly. It covers defaults, topic choices, and data source. It could be slightly more complete by describing the shape of the returned prices, but this is not critical for a simple fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single parameter 'topic' at 100% coverage, so the baseline is 3. The description adds significant value by enumerating accepted topic values and mapping each to concrete instruments (e.g., energy → WTI, Brent, NG, Heating Oil), which goes beyond the schema's generic 'Deep dive topic' phrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a clear resource ('traditional market prices via Databento') and defines the default scope (SPY, VIX, TLT, GLD, USO). It distinguishes itself from sibling tools by emphasizing a broad default snapshot plus deep-dive topics, making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use the tool (for traditional market prices) and how to use the optional topic parameter for deep dives in specific asset classes. It does not explicitly name alternatives or exclusions, but the detailed topic mapping gives practical usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_milestonesAInspect
Get upcoming events from Kalshi calendar (economic releases, political events, catalysts). Free-tier and rate-limited.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Hours ahead to look (default 168 = 1 week) | |
| category | No | Filter by category (e.g. Economics, Politics, Sports) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool is free-tier and rate-limited, which is useful context. However, it does not describe the return format, pagination, or any other behavioral traits that might affect usage, leaving significant gaps for a data-fetching tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, each adding value: one describes the purpose, the other provides practical constraints. No redundant or extraneous information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two optional parameters and no output schema. The description adequately conveys the main purpose and a key constraint (rate limiting), but could be more complete by briefly noting the return structure or what 'milestones' entails. Overall, it is sufficient for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'hours' and 'category' already documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets upcoming events from the Kalshi calendar, naming specific event types (economic releases, political events, catalysts). It uses a specific verb+resource construction, but does not differentiate from sibling tools like get_calendar or get_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving upcoming events, and the mention of 'Free-tier and rate-limited' suggests it is suitable for lightweight queries. However, it does not provide explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newmarketsBInspect
Recently-listed markets (new contracts) on Kalshi and Polymarket. For finding fresh trading opportunities.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Lookback hours (default 24) | |
| limit | No | Max rows | |
| venue | No | kalshi or polymarket | |
| minLiquidity | No | Minimum liquidity threshold |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It tells what the tool returns (recently-listed markets) but does not disclose important traits such as whether results are combined across venues, how 'recently' is defined, ordering, pagination, authentication needs, or any limitations. This is a significant gap for a retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two brief clauses that immediately convey the core purpose. There is no wasted wording, and the most important information (what the tool returns) is front-loaded. It exemplifies efficient, targeted writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description should explain what the returned market data looks like (e.g., symbols, prices, liquidity fields) to enable correct invocation. It does not, and it also omits any detail about how the venue and lookback parameters affect the results. While the schema covers parameter names, the overall description leaves too much unspecified for a tool with four optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (hours, limit, venue, minLiquidity) are already documented. The description adds no extra parameter-level context beyond the generic 'fresh' opportunity framing, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the resource (recently-listed markets, new contracts) and the venue scope (Kalshi and Polymarket), which distinguishes it from sibling tools like get_markets. However, it lacks an explicit verb like 'list' or 'returns'; the action is implied by the tool name and the noun phrase structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'For finding fresh trading opportunities' implies a use case, giving some context for when to use the tool. Yet it provides no explicit guidance on when to use it over alternatives (e.g., get_markets, scan_markets) nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_opinionAInspect
Get a single opinion/essay by slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Opinion slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action and does not mention return format, error behavior, authentication needs, or what happens if the slug is not found. This is insufficient for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the core action and resource. There is no wasted wording, and it is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema. The description explains the basic purpose but does not clarify what the returned opinion/essay looks like or any edge cases. Given the low complexity and the existence of sibling list_opinions, the description is minimally adequate but not richly informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'slug' described as 'Opinion slug'. The description adds 'by slug' but does not provide any additional semantic meaning beyond what the schema already offers. The baseline of 3 is appropriate since the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the specific resource 'single opinion/essay by slug', which distinguishes it from sibling list_opinions. It is precise and leaves no ambiguity about 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this tool when you have a slug and need one specific opinion. However, there is no explicit guidance on when to prefer this over list_opinions or any alternatives, nor any exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ordersBInspect
Advanced: Current resting orders on Kalshi.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| status | No | Filter by status: resting, canceled, executed. Default: resting | resting |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states that the tool returns current resting orders. It omits behavioral details like auth requirements, pagination, data freshness, or error handling, offering minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief and front-loaded, conveying the core idea in a few words. The 'Advanced:' prefix is somewhat unnecessary, but the overall structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple 2-parameter tool with no output schema or annotations, the description is minimally adequate. However, it leaves uncertainty about response structure and does not leverage context to clarify usage, so it falls short of full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage, explaining both apiKey and status with defaults and allowed values. The description adds no additional parameter semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool retrieves current resting orders on Kalshi. The phrase 'resting orders' distinguishes it from executed or canceled order queries, aligning well with sibling tools like get_fills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_fills or get_positions. It does not mention exclusions, prerequisites, or appropriate contexts beyond the terse 'Advanced' label.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_positionsAInspect
Advanced: Open Kalshi positions with live P&L. Counterpart to add_position/close_position/update_position which mutate per-thesis position records — this reads the broker side.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Requires Kalshi credentials configured via sf setup. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It explicitly states 'reads the broker side,' disclosing that this is a read-only operation. It also adds context about 'live P&L' and contrasts with per-thesis records. It does not detail rate limits, error behavior, or output structure, but the read-only nature is clearly transmitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the purpose ('Advanced: Open Kalshi positions with live P&L') and then provides a clear distinction from sibling tools. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description covers the core purpose and relationship to siblings. However, given the presence of portfolio_positions_list in the sibling list, a brief clarification of how this differs from that tool would have made it fully complete. Still, the description is sufficiently clear for an agent to select it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single parameter 'apiKey' with its purpose and setup requirement. The description adds no additional meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads open Kalshi positions with live P&L, using the verb 'reads' and specifying the resource as 'Kalshi positions' and 'broker side.' It also distinguishes itself from sibling mutation tools (add_position/close_position/update_position) by explicitly calling itself the read counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context on when to use this tool versus the mutating position tools: 'Counterpart to add_position/close_position/update_position which mutate per-thesis position records — this reads the broker side.' However, it does not mention other potentially overlapping read tools like portfolio_positions_list, leaving a gap in alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_public_skillAInspect
Get a single published skill by slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Public skill slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool retrieves a single published skill, but does not disclose what happens if the slug does not exist, whether unpublished skills are accessible, authentication requirements, or the response format. This is minimal behavioral disclosure for a getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence of six words, immediately front-loads the action (Get) and key qualifiers (single, published, by slug). Every word earns its place; there is no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter, no-output-schema getter, the description is largely sufficient: it names the operation, the resource, the qualifier (published), and the lookup mechanism. It could be more complete by noting error behavior, but the low complexity means the description is adequate for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'slug' with the description 'Public skill slug', and schema description coverage is 100%. The tool description adds no new semantic detail about the parameter beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), identifies the resource ('a single published skill'), and specifies the lookup key ('by slug'). This clearly distinguishes it from siblings like browse_public_skills or list_skills, which imply listing/exploration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the phrase 'single published skill by slug': use this when you have a specific slug and want one published skill. However, there is no explicit guidance on when not to use it (e.g., when browsing or listing skills) or alternatives, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_regime_scanAInspect
Scan markets by regime label (bull, bear, range, frontier, panic) with optional indicator filters. For regime-based screening.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field (e.g. as, score) | |
| label | No | Regime label filter | |
| limit | No | Max rows (default 50) | |
| order | No | Sort order | |
| venue | No | kalshi or polymarket | |
| hasEdge | No | Filter to markets with non-trivial SimpleFunctions edge | |
| eventType | No | binary, scalar, ladder |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden. It only states the action without disclosing output format, defaults, or side effects. The tool is likely a read-only scan, but that isn't stated, and 'optional indicator filters' is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core action, and avoids fluff. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 optional parameters but no annotations and no output schema. The description covers the main purpose but omits details like default limit, sort behavior, and what 'indicator filters' actually maps to. For a scan tool, the lack of return format or usage examples makes it less complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing descriptions for all 7 parameters. The description adds the specific regime labels enumeration (bull, bear, range, frontier, panic) beyond what the schema's 'Regime label filter' says. However, 'indicator filters' is vague and doesn't clearly map to schema properties like hasEdge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scans markets by regime label, listing the specific labels (bull, bear, range, frontier, panic). It distinguishes the tool from generic scanners like scan_markets by emphasizing regime-based screening.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'For regime-based screening' provides clear context for when to use it. However, it doesn't explicitly name alternatives or exclusions, so it falls 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.
get_scheduleAInspect
Get exchange status and trading hours
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure, but it only states the basic action. It does not explain the nature of the returned data, any potential side effects (though likely none), or output format. The minimum is met but little added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that states the tool's purpose without any fluff or repetition. Every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool with no output schema and no annotations, the description is minimal but leaves ambiguity about what 'exchange status' includes (e.g., open/closed, holidays, delayed openings). It is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description does not need to explain parameter meanings. Per rubric, a baseline of 4 applies when there are no parameters, and the description provides no conflicting or additional parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Get') and resource ('exchange status and trading hours'). It is distinct from all sibling tools, none of which explicitly mention schedule or exchange status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description only states what it does, with no mention of use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_settlementsCInspect
Advanced: Settled contracts with realized P&L.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| ticker | No | Filter by market ticker |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the data returned ('settled contracts with realized P&L') but does not disclose whether this is a read-only operation, what authentication beyond apiKey is needed, whether pagination exists, or how results are structured. This is a significant gap for a financial data tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, at one sentence, and is front-loaded with the 'Advanced' label. Every word except 'Advanced' contributes meaning, and there is no unnecessary repetition. It could be more informative without sacrificing conciseness, but it is not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description must explain what the tool returns and how to use it. It gives only a high-level phrase and does not mention return format, ticker filtering semantics, or relationship to sibling tools. For an 'Advanced' tool with this little context, the description is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with apiKey and ticker both documented in the input schema. The description does not add any parameter-level meaning, but the schema already clearly explains both parameters, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource—settled contracts—and identifies the key output as realized P&L, which distinguishes it from related tools like get_fills and get_positions. The verb is implied by the tool name ('get') rather than stated in the description, and 'Advanced' adds little, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_fills, get_orders, or get_positions. The 'Advanced' label hints at complexity but does not state use cases, prerequisites, or exclusions, leaving the agent to guess when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skillsAInspect
List authenticated user's skills. (Public skills are at browse_public_skills.)
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds the scope 'authenticated user's' which clarifies it operates on the user's own skills, but does not disclose output shape, pagination, or any other behavioral details. For a simple read operation, this is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a parenthetical alternative, front-loaded with the main action. Every word serves a purpose, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description adequately conveys the primary purpose and scope. It could mention the return format or skill object structure, but the simplicity of the tool makes the current description reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter (apiKey) with 100% coverage, so the description does not need to add parameter details. The description adds no additional meaning beyond the schema, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'authenticated user's skills', providing a specific scope. It also distinguishes from browse_public_skills by noting public skills are handled there, helping differentiate among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'Public skills are at browse_public_skills' explicitly directs users to an alternative tool for public skills, making the intended use case clear. This effectively communicates when to use this tool versus a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technicalBInspect
Get a single technical reference doc by slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Technical doc slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral transparency. It only says it gets a doc by slug, disclosing nothing about return format, error handling, permissions, or whether this is a read-only operation (though the 'get' name hints at it). This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff. Every word contributes to the purpose, making it highly efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is adequate but not complete. It fails to explain what a technical reference doc is or how it relates to sibling tools like list_technicals, and it does not describe error behavior. More context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the slug parameter with 100% coverage, so the description adds little beyond repeating 'by slug.' It does not clarify slug format, case sensitivity, or how to obtain a valid slug, but the schema baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('get'), the resource ('technical reference doc'), and the retrieval method ('by slug'). It distinguishes this from list_technicals by emphasizing 'single,' though the exact nature of a 'technical reference doc' is not elaborated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool instead of other get_* tools or list_technicals. The description gives no context about prerequisites, alternatives, or common use cases, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_thesis_contextAInspect
Auth-only thesis context: causal tree, edges with orderbook depth, evaluation history, and track record. Use get_context with no thesisId for the global market snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses 'Auth-only' as a security trait and lists the content components, but does not mention read-only behavior, error conditions, response format, or pagination. It adds some context beyond the schema but lacks deeper behavioral depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, no wasted words. The second sentence efficiently provides a usage alternative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-param tool with no output schema, the description adequately conveys the return content categories (causal tree, edges, evaluation history, track record) and provides an alternative path. It could be more explicit about output structure or response details, but given the tool's simplicity, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both apiKey and thesisId having basic descriptions. The description adds minimal meaning beyond implying thesisId identifies the thesis and mentioning the alternative get_context call. It does not elaborate on parameter formats or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves thesis-specific context including causal tree, edges with orderbook depth, evaluation history, and track record. This specific verb+resource clearly differentiates it from sibling tools like get_context and get_edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly directs users to use get_context without thesisId for the global market snapshot, providing an alternative for a distinct scenario. However, it does not mention exclusions for other related get_* tools beyond get_context, so it is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_ideasAInspect
S&T-style trade recommendations: actionable pitches synthesized from live market data, edges, and macro context. Each idea has conviction level, catalyst timing, direction, and risk. Free-tier and rate-limited. START HERE when looking for what to trade.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max ideas (1-10) | |
| category | No | Filter: macro, geopolitics, crypto, policy, event | |
| freshness | No | Max cache age: 1h, 6h, 12h, 1d | 12h |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that recommendations are synthesized from live market data, edges, and macro context, and that ideas include conviction level, catalyst timing, direction, and risk. It also mentions rate-limiting, which is a behavioral trait beyond the base functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and immediately followed by valuable usage context. Every phrase earns its place, including the output attributes and the rate-limit warning. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description provides a solid overview: purpose, output characteristics, and usage directive. It could specify return format or pagination, but the mention of conviction level, catalyst timing, direction, and risk gives a good sense of what to expect. Overall, it is sufficiently complete for a list-type tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters (limit, category, freshness) with 100% coverage. The description does not add any additional meaning to these parameters, but it doesn't need to since the schema is self-explanatory. The description focuses on the output rather than parameter usage, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as providing "S&T-style trade recommendations" and "actionable pitches," which is a specific verb-resource pairing. It distinguishes itself from sibling tools by emphasizing trade ideas specifically, and the directive "START HERE" reinforces its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states "START HERE when looking for what to trade," giving clear guidance on when to use this tool. It also notes free-tier and rate-limiting, which helps set expectations. However, it does not mention when not to use it or point to specific alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_world_deltaAInspect
Incremental world state update — only what changed since a timestamp. ~30-50 tokens vs 800 for full state. For periodic refresh during long tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | Relative (30m, 1h, 6h, 24h) or ISO timestamp | |
| format | No | Output format | markdown |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It mentions the incremental nature and token efficiency (~30-50 vs 800), which is useful. However, it does not disclose whether the operation is read-only, what happens when no changes exist, or the response structure beyond the format parameter in the schema. It provides some context but not comprehensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of three short clauses that immediately establish purpose, efficiency, and use case. Every word earns its place, and it is properly front-loaded with the core concept.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple 2-parameter tool with no output schema, the description covers purpose, usage, and efficiency. The format parameter (markdown/json) gives some hint about return structure, but the description does not mention potential responses when there are no changes or clarify the exact content. Still, it is largely 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters ('since' and 'format'). The description only repeats the 'since a timestamp' idea from the schema and adds no additional meaning about parameter syntax, default behavior, or dependencies. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides an incremental world state update, explicitly framing it as a delta since a timestamp. This distinguishes it from siblings like get_world_state and other delta tools. The verb 'update' is slightly off (it retrieves an update), but the meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: 'For periodic refresh during long tasks.' It also implies an alternative by comparing token counts to 'full state,' but does not explicitly name a tool like get_world_state. This makes the guidance clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_world_stateAInspect
Real-time world model for agents. ~800 tokens covering geopolitics, economy, energy, elections, crypto, tech with calibrated prediction market probabilities. Anchor contracts (recession, Fed, Iran) always present. No auth needed.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Comma-separated topics for deeper coverage: geopolitics, economy, energy, elections, crypto, tech. Same token budget concentrated on fewer topics. | |
| format | No | Output format. markdown (default) is optimized for LLM context. | markdown |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses real-timeness, token budget (~800 tokens), content scope, and auth requirements—useful behavioral context. However, it does not explicitly state that the operation is read-only or side-effect-free, and it omits details like rate limits or error behavior. This is moderate but not exceptional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and roughly 50 words, front-loaded with the core purpose. Every sentence adds value: the world model concept, token budget, covered topics, anchor contracts, and auth note. No wasted words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description gives a good sense of the response content: ~800 tokens, specific topic coverage, and always-present anchor contracts. It does not describe pagination or detailed error handling, but for a simple snapshot tool with two optional parameters, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning the schema already documents both parameters (focus and format) with descriptions. The tool description adds no additional parameter meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a real-time world model covering specific topics (geopolitics, economy, energy, etc.) with prediction market probabilities. The verb+resource is clear, but it does not explicitly differentiate from sibling tools like get_briefing or get_world_delta, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when an agent needs a compact world state snapshot) and notes 'No auth needed', but it does not explicitly state when to use this tool versus alternatives or mention exclusions. No sibling tools are referenced, so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_yield_curveCInspect
Single yield curve for one event series.
| Name | Required | Description | Default |
|---|---|---|---|
| event | Yes | Event ticker (e.g. KXFEDDECISION-26DEC10) | |
| venue | No | Venue if needed to disambiguate |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description merely restates what the tool does without adding any behavioral context. With no annotations provided, the description carries the full burden of disclosing side effects, data freshness, or other traits, but it discloses none. An agent cannot tell if this is read-only (though 'get' implies it), whether it returns historical data, or if any special conditions apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single short phrase. It is front-loaded and has no wasted words. However, it is so terse that it borders on under-specification; still, for a simple read operation, the brevity is acceptable and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with a well-described schema, but the description is too minimal to be complete. It does not clarify what constitutes an 'event series' beyond the schema example, nor does it explain how this tool relates to the sibling get_yield_curves. With no output schema or annotations, the agent has little guidance on expected return shape or edge cases, making this less than minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete descriptions for both parameters: 'event' is explained with an example, and 'venue' is described as a disambiguator. With 100% schema coverage, the description does not need to add parameter details, and it does not attempt to, which is acceptable. No extra meaning is added beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it provides a single yield curve for one event series, using a specific noun phrase that identifies both the resource (yield curve) and the scope (one event series). This distinguishes it from the sibling tool get_yield_curves, which likely handles multiple curves. However, it lacks an explicit verb like 'retrieves' or 'returns', relying on the tool name to convey the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The singular 'single' versus the sibling's plural 'curves' implies a distinction, but the description never explicitly states that get_yield_curves should be used for multiple event series or that this tool is for a specific event. There is no mention of prerequisites or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_yield_curvesAInspect
Liquidity-weighted yield curves across event types (e.g. KXFED 6mo, KXBTC 30d). For "where on the curve am I trading?" questions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max events | |
| venue | No | kalshi or polymarket | |
| minPoints | No | Minimum curve points to keep an event |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for behavioral disclosure. It adds the detail that curves are 'liquidity-weighted,' which is a non-obvious behavioral trait, but it doesn't mention output format, parameter effects, defaults, or any limitations. For a getter tool the risk is lower, but the description still remains thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the primary purpose and immediately followed by a practical use-case. There is no redundant or filler content; every phrase carries weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain more about the return structure and how the optional parameters influence the output. It gives a high-level idea of the content (liquidity-weighted yield curves) and examples of event types, but it does not clarify what the returned data looks like or the effect of limit/venue/minPoints. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all three parameters (limit, venue, minPoints) with descriptions, achieving 100% coverage. The description provides examples of event types (e.g., KXFED 6mo, KXBTC 30d) that indirectly clarify what an event type is, but it does not explain how parameters like venue or minPoints affect results. Thus it adds little beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's output as 'Liquidity-weighted yield curves across event types' and provides concrete examples. It specifies both the resource (yield curves) and scope (across event types), but does not explicitly distinguish it from the sibling tool 'get_yield_curve' (singular).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'For "where on the curve am I trading?" questions' provides a clear usage context. However, it does not mention alternatives or when not to use this tool, so it falls 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.
inject_signalAInspect
Feed an observation into a thesis — news, price move, or external event. Consumed in next evaluation cycle to update confidence and edges.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Signal type | user_note |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| content | Yes | Signal content | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on the burden. It reveals that input is consumed in the next evaluation cycle, not immediately, and that it updates confidence and edges. This conveys the asynchronous, mutating behavior beyond the tool name. It does not disclose authentication requirements or error states, but the key behavioral delay is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action, no redundant information. The second sentence adds important timing context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with the schema, fully explains what the tool does, when it takes effect, and what parameters are needed. It lacks a response description, but the absence of an output schema makes this less critical. The tool is simple enough that the description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all four parameters with descriptions (100% coverage), so the baseline is 3. The description adds contextual examples for the type/content relationship (news, price move, external event) but does not add syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: feeding an observation (news, price move, external event) into a thesis. It uses a specific verb 'Feed' and identifies the resource ('thesis'), and it explains the purpose ('update confidence and edges'), distinguishing it from generic update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you have an observation to incorporate into a thesis. It mentions examples of observation types, giving context. However, it does not name alternative tools or explicitly state when not to use it, so it falls short of explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_tickerAInspect
STEP 2 OF THE LOOP. Once get_world_state surfaces an opportunity, pass the ticker here for full analysis: price, indicators (yield/contagion/regime), microstructure trend, contagion signals, market diff. Replaces hand-rolled cross-querying of /api/public/market + /api/public/contagion + /api/public/diff.
| Name | Required | Description | Default |
|---|---|---|---|
| diff | No | Include market diff vs prior window (default true) | |
| depth | No | Include live orderbook depth. Default false for cheaper cached agent sweeps. | |
| trend | No | Include microstructure history (default true) | |
| format | No | Default markdown | |
| ticker | Yes | Market ticker, e.g. KXFEDDECISION-26DEC10-T0 | |
| contagion | No | Include contagion signals (default true) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that this is a consolidated read operation that replaces multiple API calls, and lists the analysis components. It doesn't explicitly say 'read-only' but the verb 'inspect' and the absence of side effects make it safe. The 'STEP 2 OF THE LOOP' context adds workflow value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences, front-loaded with the step context and core purpose. Every phrase earns its place: 'full analysis' list and the 'replaces' note add value without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lists the major return components (price, indicators, trend, contagion, diff) and gives workflow context. It doesn't describe output structure, but the schema's format parameter and the component list provide enough guidance. A slightly richer return description would make it a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameters with detailed descriptions and default values (100% coverage). The description reiterates the analysis components (yield/contagion/regime, trend, diff) but doesn't add new semantic meaning beyond what the schema provides. Hence baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'full analysis' of a ticker, listing specific components (price, indicators, microstructure trend, contagion signals, market diff). It also positions it as 'STEP 2 OF THE LOOP' and contrasts it with manual cross-querying, effectively distinguishing it from sibling get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use after 'get_world_state surfaces an opportunity' and states it 'Replaces hand-rolled cross-querying' of three endpoints. This gives clear when-to-use and alternative instructions, though it doesn't need to list all siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legislationBInspect
Get bill detail from Congress API with prediction market cross-reference and related state legislation.
| Name | Required | Description | Default |
|---|---|---|---|
| billId | Yes | Bill ID, e.g. "119-hr-22" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, leaving the description to carry the burden. It discloses the data source and the additional data returned, which gives some behavioral context. Yet it does not mention potential external API call behavior, error handling, rate limits, or return format. The verb 'Get' implies a read-only operation, but beyond that, the description is thin on behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that leads with the core action 'Get bill detail' and then appends relevant modifiers. Every word adds value, with no redundancy or fluff. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one well-documented parameter and no output schema, the description provides the essential purpose and invocation details. It mentions extra data fields (prediction market cross-reference, state legislation), but it does not describe return structure, potential failures, or when to choose this tool over similar siblings. Given no annotations, there are notable gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage for the single parameter 'billId' is 100%, including an example ('119-hr-22'). The tool description itself does not add parameter semantics, but the schema already fully documents the parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Get' with resource 'bill detail', clearly stating the tool's core function. It adds specificity by naming the source 'Congress API' and mentioning extra outputs ('prediction market cross-reference' and 'related state legislation'). However, it does not explicitly distinguish itself from the sibling tool 'get_legislation', which likely serves a similar purpose, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like 'get_legislation' or 'list_legislation'. The description implies use for bill details with extra context, but it does not provide any when/when-not directions, 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.
list_congress_membersBInspect
List sitting US Congress members.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows | |
| state | No | Two-letter state code | |
| chamber | No | Chamber filter | |
| currentMember | No | Only currently-serving members |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states that the tool lists 'sitting' members, which implies a filter for currently-serving members. It does not mention pagination, default limits, response format, or whether it is read-only. This is a minimal disclosure for a list tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose. It contains no fluff or redundant information, earning a maximum score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 optional parameters and no output schema. The description is extremely brief and does not explain return values or edge cases, but the simple listing purpose and well-documented schema make it minimally acceptable. It lacks helpful context like whether filters combine, but this is a straightforward list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 4 parameters, so the schema already explains limit, state, chamber, and currentMember. The description adds no parameter-specific meaning. Per the rubric, baseline is 3 when schema coverage is high, and there is no additional insight from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (sitting US Congress members). It is specific and unambiguous, though it doesn't explicitly distinguish from sibling tools like get_congress_member, which likely retrieves a single member. The inclusion of 'sitting' adds specificity beyond the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as get_congress_member or query_gov. There is no mention of use cases, prerequisites, or exclusions. The appropriate usage is only implied by the tool's name and basic verb-noun structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_forum_channelsAInspect
List available forum channels (general, alerts, signals, etc.) the agent can read or post to.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It adds context that the channels are accessible for reading or posting, but does not mention return format, read-only nature, or any side effects. For a simple list tool, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler. It front-loads the action ('List') and provides useful examples in parentheses, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description could have explained what the list contains or its format. It gives examples but not the structure. For a simple list operation with one parameter, the description is mostly complete, but the lack of return details leaves a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single apiKey parameter with a clear description ('SimpleFunctions API key'). The tool description does not add parameter-level detail, and the baseline of 3 is appropriate because the schema fully handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists available forum channels, naming examples like general, alerts, and signals. It distinguishes from siblings like read_forum and post_to_forum by specifying these channels are ones the agent can read or post to, implying a discovery action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for discovering channels before reading or posting, but does not explicitly state when to use this tool versus alternatives. It lacks any direct instruction like 'use before read_forum' or exclusions, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_glossaryBInspect
List glossary terms (prediction market vocabulary, indicators, regimes).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Keyword | |
| category | No | Category filter |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action and does not mention return format, pagination, filtering semantics, or default behavior. For a list tool, this leaves uncertainty about what output to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no superfluous words. It conveys the core purpose and relevant domain context efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two optional parameters, no output schema), the description is minimally adequate. However, it leaves gaps: it does not state what fields are returned, how 'q' matches (partial vs exact), or whether results are sorted. With no annotations, additional context on expected output would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters with 100% coverage (q as 'Keyword', category as 'Category filter'). The description adds examples of category values (vocabulary, indicators, regimes), which provides some additional meaning beyond the schema, but not enough to raise the score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('glossary terms') and adds domain context ('prediction market vocabulary, indicators, regimes'). This makes it easy to distinguish from sibling tools like get_glossary_term, which implies retrieving a single term.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_glossary_term or other list_* tools. There are no exclusions, prerequisites, or preferred use cases, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_intentsAInspect
List execution intents — pending, armed, triggered, executing, partial, filled, expired, cancelled, rejected. Shows the full execution pipeline status.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| status | No | Filter: pending, armed, triggered, executing, partial, filled, expired, cancelled, rejected | |
| activeOnly | No | Only show active intents (default true) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It states the tool lists intents and shows the full pipeline, which implies a read-only operation. However, it does not disclose potential side effects, permissions needed, or output format details, though for a list tool this is a moderate gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with the purpose front-loaded. It provides essential information without redundancy, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, a list operation with optional filters, the description suffices by naming all statuses and indicating the full pipeline scope. It does not explicitly state return values, but no output schema exists; describing 'full execution pipeline status' implies the output. It could mention the activeOnly default, but that is already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so parameters are already well-documented. The description adds contextual meaning by listing the status filter values and introducing the concept of a pipeline, but does not provide additional details beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('execution intents') and enumerates all statuses, making the tool's purpose unambiguous. It distinguishes itself from sibling tools like create_intent or cancel_intent by focusing on listing the full pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use when you need to see execution intents. However, it provides no explicit guidance on when to use this tool over alternatives like get_orders or get_fills, or any exclusions like 'use cancel_intent to modify'. The context is clear but lacks comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_legislationAInspect
List Congress bills with optional filter for ones cross-referenced to prediction markets.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Keyword | |
| limit | No | Max rows | |
| congress | No | Congress number (e.g. 119) | |
| hasMarket | No | Only bills with a linked market |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the filter for prediction markets but does not disclose pagination, default limits, return format, or whether results are sorted or include full bill text. This is a gap for a list tool, as users would not know what to expect in the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action (List Congress bills) and the optional filter. Every word earns its place, with no irrelevant details or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 4 optional parameters and no output schema, the description provides the essential purpose. However, without annotations or any mention of return value, pagination, or default behavior, it is not fully complete. The absence of output schema means the description should hint at what is returned, which it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter (q, limit, congress, hasMarket) having a clear description. The description adds context by linking 'hasMarket' to 'prediction markets', which slightly clarifies the tool's purpose but does not significantly enhance the parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Congress bills, with an optional filter for those cross-referenced to prediction markets. This specific verb+resource combination distinguishes it from sibling tools like get_legislation (likely for a single bill) and list_congress_members (lists members, not bills).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need a list of Congress bills, and the optional filter suggests when to use the hasMarket parameter. However, it does not explicitly mention alternatives or when not to use this tool, leaving room for ambiguity with other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_opinionsBInspect
List SimpleFunctions opinions/essays — analysis, tutorials, and long-form takes on prediction markets, causal models, agent-driven trading.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows | |
| category | No | Category filter |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only describes what the tool lists and does not mention ordering, pagination, authentication, rate limits, or any other behavioral traits. The content type hint is useful but not sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently states the action and resource. The list of content types adds specificity without becoming verbose. It is slightly less tight than ideal due to the dash-separated enumeration, but it remains concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity list tool with simple optional parameters, the description is mostly adequate, but it lacks key contextual details such as how results are ordered, whether limit is a maximum or default, and how this differs from similar list tools (e.g., list_theses). The absence of an output schema and annotations puts more burden on the description, which it only partially meets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both limit and category have descriptions), so the baseline is 3. The description does not add any additional meaning to the parameters, nor does it explain how category filtering works; it simply repeats the resource name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'opinions/essays', with a specific scope (analysis, tutorials, long-form takes on prediction markets, causal models, agent-driven trading). This distinguishes it from sibling tools like get_opinion (singular retrieval) and list_theses (different content type).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description does not mention get_opinion for single-item retrieval or list_theses for related content, so the agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsAInspect
List all skills: built-in + user-created custom skills.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It does add useful scope (includes built-in and custom skills), but it does not mention read-only status, pagination, return format, or any other behavioral details. The listing action is implied to be safe, but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, front-loaded with the verb and resource, and contains no unnecessary information. Every word contributes to understanding what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema, no annotations), and the description adequately conveys its core purpose and scope. However, it could be slightly more complete by indicating what form the list takes or that it returns skill identifiers, but for a listing tool this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single parameter 'apiKey' with a clear description and URL. The tool description does not add any additional meaning to this parameter. Since schema coverage is 100%, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('List') and resource ('skills'), and specifies the scope ('built-in + user-created custom skills'). This distinguishes it from any similar tool that might only list one category, though it does not explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like get_skills or browse_public_skills. The description simply states what it does, leaving the agent to infer usage context without any exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_strategiesCInspect
Advanced: List trading strategies for a thesis.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| status | No | Filter: active|watching|executed|cancelled|review | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It does not mention return format, pagination, read-only nature, or authentication requirements beyond the schema's apiKey field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but under-specified. The 'Advanced:' prefix adds no value, and the single sentence provides minimal context without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits key context about what strategies are, how they relate to a thesis, and the optional status filter. For a simple tool with no output schema, more guidance is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists trading strategies for a thesis, using a specific verb and resource. However, it does not differentiate from sibling list tools like list_intents or list_theses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as list_theses or get_strategies. The 'Advanced' prefix hints at user level but not contextual usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_technicalsBInspect
List technical reference docs (orderbook semantics, fee model, indicator definitions).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows | |
| category | No | Category filter |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only states that the tool lists docs; it does not clarify read-only behavior, response format, pagination, ordering, or access requirements, leaving significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that includes concrete examples in parentheses. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple list tool with two optional parameters and no output schema. However, the description does not explain the return format, pagination behavior, or how the category filter interacts with results, leaving some gaps despite its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters ('Max rows' and 'Category filter'). The description adds no parameter-specific detail beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('technical reference docs') with clarifying examples (orderbook semantics, fee model, indicator definitions). This clearly distinguishes it from sibling 'get_technical', which presumably retrieves a single technical doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of when to prefer 'list_technicals' over 'get_technical' or other list tools, nor any exclusions or contextual hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_thesesAInspect
List all theses for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It accurately states a read operation, but offers no additional context about output format, pagination, error conditions, or authentication requirements beyond the schema. It is honest but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words, making it maximally concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter list operation, the description adequately covers what the tool does and for whom. While it doesn't mention pagination or return format, these are conventional for list endpoints, and the absence of an output schema doesn't create critical gaps here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the sole parameter (apiKey) with 100% coverage, including its purpose and how to obtain it. The description adds no parameter-specific information, so it earns the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('theses') with a clear scope ('for the authenticated user'), distinguishing it from public exploration tools like explore_theses and mutation tools like create_thesis/update_thesis. This is a clear, precise statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the phrase 'for the authenticated user,' indicating this returns the user's own theses, but it does not explicitly name alternatives or state when not to use it. With siblings like explore_theses available, a more explicit pointer would improve this dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_the_situationAInspect
Universal web intelligence. Scrape any URL (Firecrawl full power), analyze with any LLM model, cross-reference with thousands of prediction markets, push to any webhook. Requires API key (apiKey parameter). For free demo, use enrich_content instead.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| enrich | No | Cross-reference with prediction markets | |
| source | Yes | ||
| webhook | No | Push results to a webhook | |
| analysis | No | LLM analysis of scraped content |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the API key prerequisite and the 'push to any webhook' side effect, but doesn't clarify whether this is a one-time operation or a continuous monitor (despite the tool name), nor does it mention response format, pagination, or potential costs/rate limits. The description adds some context but leaves significant behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with a clear front-loaded tagline and a dense capability list. The final sentence provides required API key info and an alternative. It is concise and earns its place, though 'Universal web intelligence' is somewhat generic and could be replaced with a more specific operational statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (nested objects, multiple optional capabilities) and the absence of an output schema, the description fails to explain what the tool returns, whether it's synchronous or asynchronous, or whether the webhook is the only output. It also doesn't clarify if analysis/enrichment are optional. The description is too high-level to be fully actionable without additional info.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so baseline is 3. The description adds meaning by explaining the purpose of parameter groups: 'Firecrawl full power' clarifies source actions, 'any LLM model' contextualizes analysis.model, and 'cross-reference with thousands of prediction markets' gives intent to the enrich object. This goes beyond the schema's field-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's core capabilities: 'Scrape any URL (Firecrawl full power), analyze with any LLM model, cross-reference with thousands of prediction markets, push to any webhook.' This is a specific verb+resource formulation that distinguishes it from siblings like enrich_content, which is explicitly named as a free demo alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit alternative and condition: 'For free demo, use enrich_content instead.' It also mentions the API key requirement, implying this tool is for users with credentials, while enrich_content serves as a no-key alternative. This is clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_activity_listCInspect
First-party portfolio activity timeline backed by the portfolio ledger.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ||
| until | No | ||
| venue | No | ||
| apiKey | Yes | SimpleFunctions API key | |
| cursor | No | ||
| source | No | ||
| marketId | No | ||
| thesisId | No | ||
| eventType | No | ||
| confidence | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It offers only a vague data-source hint ('backed by the portfolio ledger') but doesn't disclose what counts as activity, pagination behavior, read-only nature, or any filtering semantics. This is insufficient for a list-like tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler words, front-loading the key concept of a timeline. It could be considered under-specified, but conciseness itself is high—there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, no output schema, no annotations), this description is severely incomplete. It doesn't explain return format, parameter usage, or behavioral boundaries, making it nearly unusable for an agent attempting to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 9% (only apiKey has a description), and the tool has 11 parameters. The description provides zero information about parameters like limit, since, until, venue, cursor, or eventType, not even implying their meaning. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it's a 'portfolio activity timeline' backed by the ledger, which implies a listing of activities. However, it lacks a clear verb and doesn't differentiate from sibling portfolio tools like portfolio_ledger_list or portfolio_fills_list. It's somewhat vague, almost restating the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With several sibling portfolio tools (ledger, fills, positions, attribution), the description gives no context or exclusions, leaving the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_attribution_dailyCInspect
Daily portfolio P&L attribution rows; unknown attribution remains explicit.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | YYYY-MM-DD | |
| from | No | YYYY-MM-DD | |
| limit | No | ||
| venue | No | ||
| apiKey | Yes | SimpleFunctions API key | |
| cursor | No | ||
| source | No | ||
| marketId | No | ||
| thesisId | No | ||
| confidence | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It adds one valuable trait—'unknown attribution remains explicit'—but says nothing about read-only safety, pagination, authentication, rate limits, or response format. This is a minimal disclosure for a reporting tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no wasted words; every segment adds information. The phrase 'unknown attribution remains explicit' is dense and relevant. However, it is a sentence fragment and brevity comes at the cost of critical context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no output schema and no annotations, this description is severely incomplete. It fails to explain return structure, filtering semantics, grouping differences, or usage context, leaving the agent to guess how to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 30%, and the description contributes zero parameter-level meaning. The ten parameters (to, from, limit, venue, cursor, source, marketId, thesisId, confidence) remain unexplained beyond bare schema descriptions, and 'unknown attribution' does not clarify filter behavior or date-range semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as daily portfolio P&L attribution rows, distinguishing it from sibling portfolio_attribution_grouped via the word 'daily.' However, it lacks an explicit verb like 'fetches' or 'returns,' so the read operation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as portfolio_attribution_grouped or other portfolio_* tools. The word 'daily' hints at a granular use case, but no explicit exclusions, prerequisites, or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_attribution_groupedCInspect
Bounded grouped portfolio P&L attribution by source, thesis, strategy, market, venue, or confidence.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | YYYY-MM-DD | |
| from | No | YYYY-MM-DD | |
| limit | No | ||
| venue | No | ||
| apiKey | Yes | SimpleFunctions API key | |
| source | No | ||
| groupBy | No | day, venue, marketId, thesisId, thesisStrategyId, portfolioStrategyId, source, viewId, or attributionConfidence | |
| marketId | No | ||
| thesisId | No | ||
| confidence | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It only introduces 'bounded' without explaining what is bounded (e.g., date range, limits) and does not disclose read-only status, response format, or any side effects. The ambiguity of 'bounded' is a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no redundancy. It uses front-loaded key terms ('Bounded grouped portfolio P&L attribution') but sacrifices informational content for brevity, making it more under-specified than genuinely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no output schema, no annotations), the description is severely incomplete. It does not cover return values, parameter semantics, behavioral constraints, or usage context, failing to provide enough information for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, with 6 parameters undocumented. The description lists some grouping dimensions (source, thesis, strategy, market, venue, confidence) which loosely align with the groupBy enum, but it does not explain filters (e.g., from, to, limit, marketId) or how to specify grouping. The added value is minimal and broad.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description indicates a grouped portfolio P&L attribution tool with a clear resource ('portfolio P&L attribution') and grouping dimensions. The word 'grouped' distinguishes it from the sibling portfolio_attribution_daily, though 'bounded' is vague and the description lacks an explicit verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like portfolio_attribution_daily or other portfolio analysis tools. The description does not state use cases, exclusions, or scenarios where grouped attribution would be preferred over daily.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_fills_listCInspect
First-party portfolio fill and partial-fill events projected from the ledger.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ||
| until | No | ||
| venue | No | ||
| apiKey | Yes | SimpleFunctions API key | |
| cursor | No | ||
| source | No | ||
| marketId | No | ||
| thesisId | No | ||
| confidence | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only offers the vague phrase 'projected from the ledger.' It does not disclose pagination behavior, filtering semantics, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single noun phrase rather than an informative sentence. It is under-specified for a tool with 10 parameters, so its brevity comes at the cost of usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no output schema, no annotations), this description is far from complete. It leaves major gaps in expected inputs, outputs, and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 10%, and the description does not compensate by explaining any of the 10 parameters. Parameters like limit, since, until, cursor, venue, source, marketId, thesisId, and confidence are all left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'portfolio fill and partial-fill events' and the name indicates listing, making the core purpose clear. However, it does not explicitly state a verb or differentiate from siblings like get_fills or portfolio_activity_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description gives no context for use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_ledger_listCInspect
First-party append-only portfolio ledger events with attribution confidence and source evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ||
| until | No | ||
| venue | No | ||
| apiKey | Yes | SimpleFunctions API key | |
| cursor | No | ||
| source | No | ||
| marketId | No | ||
| thesisId | No | ||
| eventType | No | ||
| confidence | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses 'append-only' and mentions attribution confidence and source evidence, which gives some context, but it does not state whether the operation is read-only, how results are ordered or paginated, or include any caveats about filters or authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, so it has no wasted words, but it is severely under-specified for a tool with 11 parameters. The structure lacks a clear action verb and front-loads a vague noun phrase instead of a definitive operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with 11 parameters, no output schema, and numerous sibling tools, yet the description provides only a brief noun phrase. It gives no information about return values, pagination, filtering behavior, or even what distinguishes it from other portfolio list tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 11 parameters and only 9% schema description coverage, the description needed to explain key parameters but doesn't. It mentions 'attribution confidence' at a high level but never maps it to the confidence parameter or explains limit, since, until, source, marketId, eventType, etc.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('portfolio ledger events') and implies a list operation via the tool name, but it uses a noun phrase with no explicit verb like 'list' or 'retrieve'. It does not differentiate from sibling portfolio list tools such as portfolio_activity_list or portfolio_fills_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. Given the many sibling list tools (portfolio_activity_list, portfolio_fills_list, portfolio_positions_list), the description lacks any usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_positions_listAInspect
First-party SimpleFunctions portfolio position snapshots from the ledger-backed read model, distinct from broker-side get_positions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows | |
| since | No | ISO lower bound | |
| until | No | ISO upper bound | |
| venue | No | ||
| apiKey | Yes | SimpleFunctions API key | |
| cursor | No | Pagination cursor | |
| source | No | ||
| marketId | No | ||
| thesisId | No | ||
| confidence | No | Attribution confidence such as exact, low, or unknown |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the data is 'ledger-backed' and a 'read model', implying read-only and internally consistent snapshots. However, it does not mention required authentication (apiKey), pagination behavior, or data freshness, leaving notable gaps in behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the key information (what the tool does) and adds a crucial distinction. Every word earns its place, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 10 parameters, no output schema, and no annotations. The description provides only a high-level distinction from get_positions but does not explain the snapshot contents, intended use cases, or how the ledger-backed model differs in terms of data latency or scope. This leaves the agent with insufficient context to fully leverage the tool's filtering and return capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, so the baseline is 3. The description provides no additional parameter context beyond what the schema already offers. It does not clarify the meaning of venue, source, marketId, thesisId, or other undocumented parameters, but given moderate coverage, the baseline is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns portfolio position snapshots from a ledger-backed read model, with an explicit distinction from broker-side get_positions. This uses a specific verb ('snapshots') and resource ('portfolio positions'), and differentiates from a directly relevant sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions 'distinct from broker-side get_positions', which acts as a when-not guideline and names an alternative tool. While it does not say 'use this for X', the context of first-party portfolio positions is clear, and the exclusion of broker-side positions is valuable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_risk_getCInspect
Portfolio risk utilization, execution mode, and stale-data state without returning configured secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It mentions 'without returning configured secrets', which is a useful security constraint, but it does not explicitly state that the tool is read-only, whether it makes external calls, or what 'stale-data state' means in practice. This leaves the agent without clarity on side effects or data freshness implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, fitting the key information into a single phrase. It front-loads the primary content (portfolio risk utilization) and appends the security qualifier. While not a full sentence, it avoids redundancy and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple tool with one parameter and no output schema, but the description should fill the gap by explaining what the response includes. It lists three data points but doesn't clarify their meaning or structure. Terms like 'execution mode' and 'stale-data state' are left undefined, and there's no mention of response format or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single apiKey parameter, which is clearly documented. The description adds no additional parameter semantics, but since the schema already provides full information, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists the information included (utilization, execution mode, stale-data state) but lacks a verb stating the action. It implies a 'get' operation from the tool name, but the description itself is a noun phrase, making the purpose somewhat vague. It distinguishes from other portfolio tools by mentioning risk-specific data, but doesn't explicitly say 'retrieve portfolio risk'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or scenarios where this tool is preferred over sibling tools like portfolio_positions_list or portfolio_activity_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_to_forumAInspect
Post a message to the agent forum. Share discoveries, edges, coordination signals with other agents.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| apiKey | Yes | SimpleFunctions API key | |
| channel | Yes | ||
| content | Yes | 1-3 sentence summary | |
| replyTo | No | Message ID to reply to | |
| tickers | No | Related tickers | |
| agentName | No | Your agent name |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. It mentions visibility to other agents, but does not disclose that posting is a public/persistent write, that apiKey is required, or any response/error behavior. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, action-first, no filler. The description earns its place by stating the core purpose and intended audience.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema or annotations, the description is under-specified. It omits how to handle required fields (apiKey, type, channel), the meaning of the type/channel enums, and what the caller should expect after posting. The schema fills some gaps but the description alone is not sufficiently complete for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 71% of parameters with descriptions, so baseline is fair. The description adds a mapping to 'discoveries, edges, coordination signals' which loosely parallels type/channel enums, but it doesn't explain enum semantics or how to choose between type and channel. Overall it contributes modest value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action: 'Post a message to the agent forum.' The verb 'post' plus resource 'agent forum' distinguishes it from read-only siblings like read_forum and list_forum_channels, and the second sentence clarifies intended content (discoveries, edges, coordination signals).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use to share discoveries/coordination signals to other agents. It doesn't explicitly name alternatives or exclusions, but among the sibling set the write intent is obvious and no other tool has similar posting semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_skillAInspect
Publish a skill to make it publicly browsable and forkable.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Public URL slug (3-60 chars, lowercase, numbers, hyphens) | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| skillId | Yes | Skill ID to publish |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the effect (publicly browsable/forkable) but omits details such as authentication requirements, irreversibility, prerequisites (e.g., skill ownership), or potential side effects. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tight sentence that front-loads the action and outcome. There is no wasted wording, and it is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only three parameters, all documented in the schema, and no output schema. However, with no annotations and a minimal description, the agent lacks guidance on prerequisites, required permissions, or what happens after publishing. It is adequate for a simple action but leaves gaps in behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (slug, apiKey, skillId) having a meaningful description. The tool description adds no additional parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Publish') and resource ('a skill') and clearly states the outcome ('publicly browsable and forkable'). This distinguishes it from sibling tools like create_skill, fork_skill, and run_skill, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for making a skill public, but provides no explicit when-to-use or when-not-to-use guidance, nor does it name alternatives. Given sibling tools like create_skill and fork_skill, a user must infer when publishing is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queryAInspect
BEST FOR QUESTIONS. Ask any question about probabilities or future events. Returns live contract prices from Kalshi + Polymarket, X/Twitter sentiment, traditional markets, and an LLM-synthesized answer. Free-tier and rate-limited; API keys unlock higher limits.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Natural language query (e.g. "iran oil prices", "fed rate cut 2026", "recession probability") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions rate limits and the free-tier/API-key distinction, which is useful. However, it does not explicitly say the tool is read-only or describe any side effects, though 'query' implies a read-only operation. The output composition is explained adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with 'BEST FOR QUESTIONS' and immediately explains the purpose. It packs a lot of information into a few sentences. Minor marketing language like 'BEST FOR' is slightly redundant but not harmful. Overall, it's well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter query tool with no output schema, the description covers the key aspects: what it does, the data sources, the synthesized answer, and rate limits. It does not detail the exact return structure, but the high-level description is sufficient for a general-purpose query tool. No missing critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a clear description of the 'q' parameter with examples, and schema coverage is 100%. The tool description adds broader context about the nature of the question (probabilities or future events) but does not significantly enhance parameter semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: ask any question about probabilities or future events and get synthesized answers from multiple sources. The verb 'ask' and specific resource (probabilities/events) make it clear, but it does not explicitly distinguish itself from sibling tools like get_answer or get_forecast, though the multi-source aggregation is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: for any question about probabilities or future events. It does not explicitly mention alternatives or exclusions, but 'BEST FOR QUESTIONS' and the broad scope serve as a strong usage signal. The rate-limit note adds practical context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_databentoAInspect
Free-form historical market data query via Databento. Stocks, ETFs, CME futures (WTI, Brent, bonds, VIX, FX, BTC), options. OHLCV daily/hourly/minute, trades, BBO. Max 30 days, 5 symbols, 500 rows. Free-tier and rate-limited.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback days (default 7, max 30) | |
| stype | No | raw_symbol (default) or continuous (for .FUT symbols) | |
| schema | No | ohlcv-1d (default), ohlcv-1h, ohlcv-1m, trades, bbo-1s, bbo-1m, statistics, definition | |
| dataset | No | DBEQ.BASIC (stocks/ETFs, default), GLBX.MDP3 (CME futures), OPRA.PILLAR (options), XNAS.BASIC (Nasdaq) | |
| symbols | Yes | Comma-separated symbols (max 5). Use .FUT for continuous futures. Examples: SPY, CL.FUT, ES.FUT, GLD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behavioral constraints: max 30 days, 5 symbols, 500 rows, and free-tier rate limits. It also lists supported data schemas, giving the agent insight into the response nature. It doesn't explicitly state 'read-only', but 'query' implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: it states the purpose, supported assets/schemas, and constraints. It is front-loaded with the core intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While no output schema exists, the description conveys the type of data returned (OHLCV, trades, BBO) and limits, which is fairly complete for a query tool. It doesn't detail response format or error handling, but given the tool's moderate complexity, it covers the essential aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, so the baseline is 3. The description adds some context about data types and symbols (e.g., CME futures, options) that align with schema parameters, but it largely reiterates the schema's own descriptions, adding minimal new parameter-specific meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a historical market data query via Databento, and enumerates asset classes and data schemas. This distinguishes it from sibling tools like query_econ or scan_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on the tool's scope (stocks, futures, options, OHLCV, trades, BBO) and sets expectations with limits and rate limiting. It does not explicitly name alternatives or exclusions, but the context is sufficient for an agent to know when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_econAInspect
Search official economic time series from FRED-backed data. Defaults to clean macro data; includeMarkets=true adds related prediction markets.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Economic query, e.g. "unemployment rate", "core CPI", "fed funds rate" | |
| mode | No | raw = structured series only, full = include answer | full |
| includeMarkets | No | Attach related Kalshi/Polymarket markets. Default false. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds value by mentioning FRED-backed data, clean macro default, and the prediction-markets expansion, but it does not disclose return format, safety profile, or any limitations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose. The second sentence adds relevant default and option context without fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter search tool with full schema coverage and no output schema, the description covers the essential context: source, default behavior, and an optional expansion. It could be slightly more complete by noting what the output looks like, but it is sufficiently complete for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description adds minimal parameter-level insight beyond the schema (e.g., the meaning of `includeMarkets` is already in the schema). It meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: "Search official economic time series from FRED-backed data." This distinguishes it from generic siblings like `query` and from data sources like `query_gov` or `query_databento` by identifying the FRED-backed economic time series domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context on defaults and the `includeMarkets` option, which implies usage scenarios, but it does not explicitly state when to prefer this tool over alternatives or provide exclusion criteria. The behavior is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_govAInspect
Search legislative data: bills, nominations, members, CRS reports. Cross-references with prediction markets. Use for political/policy questions.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query (e.g., "save act", "fed chair nomination") | |
| mode | No | raw = skip LLM synthesis, full = include answer | full |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavior disclosure. It discloses a notable behavior: 'Cross-references with prediction markets,' which adds context beyond a simple search. However, it does not mention the LLM synthesis behavior hinted by the 'mode' parameter, nor any other operational details like rate limits or data freshness. This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three short sentences that front-load the primary action and follow with usage guidance. Every word earns its place, with no redundant or vague filler. This is an ideal level of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should clarify what the response looks like, but it does not mention return format or that 'full' mode includes a synthesized answer (a behavior partly in the schema). Given the moderate complexity (2 params, no annotations), the description covers the basic use case but leaves gaps around output and operational context. This is a passable but not fully complete description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for both parameters (q and mode) with 100% coverage, so the baseline is 3. The description adds general context about the search domain but does not elaborate on parameter syntax or specific values beyond what the schema supplies. This fits the baseline exactly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches legislative data, listing specific content types (bills, nominations, members, CRS reports). It uses a specific verb 'Search' and provides resource scope. However, it does not explicitly differentiate from sibling tools like get_legislation or list_legislation, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: 'Use for political/policy questions.' This implies when the tool is appropriate but does not mention alternatives or when not to use it. Sibling tools such as query_econ or get_legislation exist, so explicit exclusions would improve this dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_forumAInspect
Read messages from the agent forum. Returns inbox (unread across subscribed channels) by default. Use channel/ticker/since to filter. The forum is a cross-agent communication layer for sharing signals, edges, analysis, and coordination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ISO cursor | |
| apiKey | Yes | SimpleFunctions API key | |
| ticker | No | Filter by ticker | |
| channel | No | Channel: signals, edges, analysis, coordination, general |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries burden. States read-only behavior ('Read') and default inbox behavior, but lacks specifics on return format, whether messages are marked read, or auth requirements beyond the schema. Adds domain context about forum purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences, each adding distinct info: purpose, default behavior, filtering, domain context. Front-loaded and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 params and no output schema, the description covers the main behavior but omits limit parameter semantics and return shape. Lacks detail on since cursor format. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage ~80% (limit lacks description). Description adds meaning by explaining channel/ticker/since as filters and listing content types. Does not explain limit, leaving a gap. Still adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Read messages from the agent forum.' Also specifies default behavior and distinguishes from siblings like post_to_forum (write) and subscribe_forum (subscription).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context: default inbox unread, filtering options. Does not explicitly name alternatives like post_to_forum, but the read/write distinction is clear. No exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_skillCInspect
Get a skill by ID or trigger to run it. Returns the skill prompt and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| skillId | Yes | Skill ID (UUID) to retrieve |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It fails to explain what 'trigger to run' actually does, whether it executes side effects, requires special permissions, or how the returned prompt/metadata are structured. The potential runtime nature of the tool is not clarified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words. However, the ambiguous 'or trigger to run it' makes the sentence less crisp than it could be, so it loses a point for structural clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, and the presence of closely named siblings, this terse description is under-specified. It does not clarify execution semantics, return format, error cases, or use cases, leaving significant gaps for an agent trying to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage: apiKey and skillId are both described with types and purpose. The description adds only 'by ID' and 'trigger' context, which does not significantly expand beyond the schema's 'Skill ID (UUID) to retrieve'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('skill') and mentions returning prompt and metadata, but 'Get a skill by ID or trigger to run it' combines two possible actions ('get' vs 'trigger') without clarifying which is primary. It does not distinguish itself from sibling tools like get_public_skill or get_skills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use run_skill versus alternatives such as get_public_skill, get_skills, or create_skill. The description does not mention any context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_marketsAInspect
Search Kalshi prediction markets by keyword, series, or ticker. Returns live prices and volume — data not available via web search. Free-tier and rate-limited.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Keyword search (e.g. "oil recession") | |
| market | No | Specific market ticker (e.g. KXWTIMAX-26DEC31-T140) | |
| series | No | Kalshi series ticker (e.g. KXWTIMAX) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool returns live prices/volume, that the data isn't available via web search, and that it's free-tier and rate-limited. These are important behavioral traits beyond the schema, though it could also have mentioned read-only behavior or edge cases like no results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The first sentence states the core purpose, and the second adds valuable context about data availability and limits. It is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is reasonably complete: it covers search inputs and high-level return content. However, it doesn't mention that at least one of the three parameters should be supplied, nor describe the result structure or possible errors, leaving some gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description groups the parameters by 'keyword, series, or ticker', which aligns with query, series, and market, but adds no additional semantic meaning beyond what the schema already provides. It doesn't clarify interactions or requirements between parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Kalshi prediction markets by keyword, series, or ticker, which is a specific verb+resource+scope. It doesn't explicitly differentiate from sibling tools like screen_markets or get_markets, but the focus on search by these specific fields and returning live prices/volume makes it distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: to obtain live prices and volume not available via web search, and it warns about rate limits. It doesn't name alternatives explicitly, but the context is sufficient for an agent to decide when this search tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_by_tickersAInspect
Re-rank a specific ticker list by SimpleFunctions indicator (yield, CRI, EE, LAS, overround). For "of these N markets, which has best yield?" workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Indicator to sort by (e.g. iy, cri, ee, las, overround) | |
| order | No | Sort order | |
| tickers | Yes | Comma-separated tickers |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states that the tool re-ranks a list (implying a read-only operation) and lists the indicators, but it does not disclose the output format, whether the original list is modified, or any limitations. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the first sentence stating the core action and the second providing a concrete example. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with fully-described parameters and a clear purpose. The description covers the main workflow, but since there is no output schema, a brief note on the return value (e.g., re-ranked list with indicator values) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains the parameters. The description adds context about the intended use case (ranking a subset of markets) but does not add new parameter-level details beyond repeating the indicator list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('re-rank') and resource ('specific ticker list'), and lists the indicators (yield, CRI, EE, LAS, overround). It also provides an example workflow, which clearly distinguishes it from market-wide screening tools like 'screen_markets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: 'For "of these N markets, which has best yield?" workflows.' This indicates when to use the tool but does not name alternative tools or exclusion criteria, so it's clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_marketsAInspect
Indicator-based market screener. The middle layer between raw price scan and LLM thesis edges. Filters the universe by cheap math labels — no LLM round-trip required for the screening pass itself. Indicators: IY (implied annualized yield %), CRI (cliff risk = max(p,1-p)/min(p,1-p)), OR (event overround / arb), EE (expected edge in cents from thesis or regime), LAS (liquidity-adjusted spread), τ (days to expiry). Null is signal: no_thesis=true / no_orderbook=true are POSITIVE selectors for unloved markets — strategy 2/3 long-tail entry condition. Free-tier and rate-limited; API keys unlock higher limits.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field. Default: iy | |
| limit | No | Default 50, max 200 | |
| order | No | Default: desc | |
| venue | No | ||
| ee_min | No | Minimum expected edge in cents (requires thesis or regime row). | |
| iy_max | No | ||
| iy_min | No | Minimum implied yield, annualized %. Try 200 for long-tail. | |
| or_max | No | ||
| or_min | No | Minimum event overround. 0.05 = 105¢ field (book-maker margin or arb). | |
| cri_max | No | Maximum cliff risk = max(p,1-p)/min(p,1-p). 1=balanced, ∞=cliff. | |
| cri_min | No | ||
| keyword | No | Substring filter on title. | |
| las_max | No | Maximum liquidity-adjusted spread (spread/mid). Try 0.05. | |
| category | No | crypto, political, financial, sports, etc — kalshi-supplied category from snapshot blob | |
| no_thesis | No | POSITIVE selector — only markets WITHOUT a thesis (unloved long tail). | |
| has_thesis | No | Only markets covered by an active public thesis. | |
| no_orderbook | No | POSITIVE selector — only markets WITHOUT recent orderbook attention. | |
| tau_max_days | No | Maximum days to expiry. | |
| tau_min_days | No | ||
| has_orderbook | No | Only markets with cached orderbook (last 6h regime row). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the null-is-signal semantics where no_thesis=true and no_orderbook=true are positive selectors, defines indicator formulas like CRI, and notes rate limiting. This adds significant transparency, though it does not cover output format or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized: it front-loads the purpose, then defines key indicators, explains the null-is-signal behavior, and ends with rate-limit details. Every sentence adds value without redundancy, making it easy to parse efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the rich conceptual description, it omits details about how filters combine (e.g., AND vs OR), default sort/order behavior, and the structure of the returned market list. Since there is no output schema and no annotations, these gaps reduce completeness for a tool with 20 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description enriches this by defining the indicators IY, CRI, OR, EE, LAS, and τ. It also provides practical heuristics such as 'Try 200 for long-tail' for iy_min and 'Try 0.05' for las_max, helping the agent choose effective values beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as an indicator-based market screener and specifies its role as the middle layer between raw price scan and LLM thesis edges. It also enumerates the indicators used and explicitly states that no LLM round-trip is required for the screening pass, distinguishing it from sibling tools like get_trade_ideas or scan_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool—after a raw price scan and before LLM-based thesis generation—and mentions free-tier rate limits. However, it does not name specific alternative tools or state explicit exclusions, leaving some inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_xAInspect
Search X/Twitter for social sentiment on any topic. Returns posts sorted by engagement. Not available via web search — uses X API directly.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | raw = structured JSON, summary = LLM synthesis | raw |
| hours | No | Hours to search back (default 24) | |
| limit | No | Max posts to return (default 20) | |
| query | Yes | Search query (e.g. "iran oil", "hormuz shipping") | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It implies a read-only operation ('Search', 'Returns posts') and adds context about direct API use. But it does not disclose rate limits, auth requirements, pagination, or the difference between raw and summary modes. The core behavior is clear, but significant operational details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the primary purpose front-loaded and a secondary sentence providing differentiation. There is no unnecessary repetition or filler; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema, the description gives a reasonable overview: it states the input topic scope, the engagement-sorted output, and the API origin. However, it does not mention the mode parameter's return type (raw JSON vs LLM synthesis) or potential limits, leaving some gaps. The presence of a well-described schema partially compensates, so the description is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds little beyond what the schema already explains—'any topic' and 'sorted by engagement' give some context but do not clarify individual parameters like mode, hours, or limit. The schema itself carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search X/Twitter for social sentiment on any topic.' It clearly states the tool's function and output (posts sorted by engagement), distinguishing it from generic web search and other siblings like x_news or x_volume. The phrase 'Not available via web search' further differentiates it from site search or general query tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this tool when you need X/Twitter-specific social sentiment, not general web search. It explicitly states a when-not ('Not available via web search') and notes the direct X API integration. However, it does not name alternatives like x_news or x_volume, so it lacks explicit contrast with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
site_searchBInspect
Cross-site keyword search across markets, theses, opinions, glossary, and technicals.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Query |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses scope but not behavior like whether results are ranked, deduplicated, or limited, or whether this is a read-only operation; it also does not describe result format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, front-loaded with purpose. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple one-param tool, but no output schema and no behavior notes means the agent lacks info on what to expect; description is minimally viable but incomplete for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers q at 100% with description 'Query'; tool description adds only that q is a keyword. This meets baseline but adds no meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb 'keyword search' and enumerates the exact resource domains searched (markets, theses, opinions, glossary, technicals), clearly distinguishing it from single-domain retrieval tools like get_markets or list_glossary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Sibling tools like query, explore_theses, scan_markets could also surface search-like behavior, but description does not address when site_search is preferred or excluded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sttAInspect
Speech-to-text proxy. Pass base64-encoded audio, get transcribed text.
| Name | Required | Description | Default |
|---|---|---|---|
| audio | Yes | Base64-encoded audio bytes | |
| apiKey | Yes | SimpleFunctions API key |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It calls itself a 'proxy', which hints at forwarding to an external service, but it doesn't disclose API key usage, response format, error behavior, supported audio formats, or rate limits. For a tool with no annotations, this is insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two short sentences, front-loading the primary purpose ('Speech-to-text proxy') and immediately stating the input/output contract. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two fully-documented parameters, but there is no output schema and the description does not specify the return format or error conditions. The description is adequate for a basic understanding but incomplete for an agent to confidently handle edge cases or parse the response reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('Base64-encoded audio bytes' and 'SimpleFunctions API key'). The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs speech-to-text conversion ('Speech-to-text proxy', 'get transcribed text'). It distinguishes itself from the sibling tool 'tts' which is text-to-speech, making the purpose unambiguous. The main verb is implied ('get') rather than explicitly stated, but the meaning is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: pass base64-encoded audio and receive transcribed text. It implies the usage scenario (audio input to text output) but doesn't explicitly name alternatives or exclusions. The sibling tool 'tts' provides contrast, but no direct guidance is given on when to choose this over other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribe_forumBInspect
Subscribe to forum channels to receive messages in your inbox.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key | |
| channels | Yes | Channel IDs to subscribe to |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It only states the purpose and expected outcome, but lacks behavioral details like whether subscriptions persist, are idempotent, can be undone, or if any side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that is front-loaded with the action and resource. Every word earns its place with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description covers the essential purpose. However, it lacks usage context and behavioral detail, making it sufficient but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for apiKey and channels, so a baseline of 3 applies. The description doesn't add parameter-specific meaning beyond the schema, but also doesn't need to since the schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (subscribe) and the target (forum channels), with an added outcome (receive messages in inbox). While it doesn't explicitly mention alternatives, the verb 'subscribe' differentiates it from siblings like read_forum and post_to_forum.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing existing forum channels or a subscription mechanism, nor does it suggest alternatives like read_forum for on-demand reading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_evaluationAInspect
Force immediate evaluation: consume all pending signals, re-scan edges, update confidence. Use after injecting important signals.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals meaningful behavior: the tool consumes pending signals (a potentially irreversible action), re-scans edges, and updates confidence. This goes beyond a simple 'trigger evaluation' and provides insight into side effects. It does not mention cost, rate limits, or error scenarios, but the core behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the primary purpose. Every word earns its place: the first sentence explains what the tool does in three concrete actions, and the second sentence gives the key usage context. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two well-documented parameters and no output schema, the description covers the essential aspects: purpose, mechanism, and usage timing. It does not describe the return value or any potential blocking behavior, but these are not strictly required for this tool's complexity. The description is sufficient for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (thesisId, apiKey) already documented. The tool description does not add extra semantic detail for either parameter beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb phrase 'Force immediate evaluation' and clearly defines the resource (evaluation of a thesis) and the concrete operations performed (consume pending signals, re-scan edges, update confidence). This strongly distinguishes it from read-only get_* siblings and the injection tool inject_signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use after injecting important signals.' This gives clear context for invocation. However, it does not mention when not to use it or name alternative tools for similar scenarios, so it falls short of the full explicit guidance level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ttsAInspect
Text-to-speech proxy. Returns audio bytes encoded as base64.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to synthesize | |
| speed | No | Playback speed multiplier | |
| apiKey | Yes | SimpleFunctions API key | |
| voiceId | No | Voice identifier (provider-specific) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return format (base64 audio) but does not mention any side effects, authentication requirements, or rate limits. Since no annotations are provided, more behavioral detail would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with exactly two sentences 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple TTS proxy, the description plus schema is largely sufficient. It covers purpose and output, and the schema fully documents parameters. However, usage guidance is lacking, which slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description is not required to elaborate on parameters. It adds no 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a text-to-speech tool and specifies the output format (base64 audio). It does not explicitly contrast with sibling tools like 'stt', but the name and description make the function unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. The description implies it is for text-to-speech, but does not mention when not to use it or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_nodesAInspect
Directly update causal tree node probabilities — zero LLM cost, instant. Use when the agent observes a confirmed fact (e.g. "CPI came in at 3.2%") and wants to reflect it immediately. Recomputes confidence automatically via weighted-average of top-level nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| lock | No | Advisory pin — tells future evaluations that these nodes are well-supported. Evidence can still revise them; pinning no longer makes a node permanent. | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| updates | Yes | Node updates to apply | |
| thesisId | Yes | Thesis ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses performance traits ('zero LLM cost, instant') and the internal mechanism ('Recomputes confidence automatically via weighted-average of top-level nodes'), which goes beyond the schema. It lacks details on reversibility or error conditions, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-load the purpose, then usage, then behavioral consequence. There is no wasted wording, and every sentence earns its place. The example is compact but illustrative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers primary purpose, invocation context, and a key behavior. It does miss describing the return value or side effects, but given the moderate complexity and rich schema, it is adequately complete for an agent to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all parameters, so the baseline is 3. The description adds the real-world use case example but does not elaborate on any specific parameter beyond what the schema already provides, yielding no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-object phrase ('Directly update causal tree node probabilities') and differentiates from sibling tools like update_thesis by focusing on node-level probability updates. The concrete example ('CPI came in at 3.2%') reinforces the exact action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use scenario ('when the agent observes a confirmed fact and wants to reflect it immediately') and contrasts with LLM-based alternatives via 'zero LLM cost, instant'. However, it does not explicitly name alternative tools for when NOT to use this tool, so it stops short of the full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_positionBInspect
Update a position: current price, edge, size, status (open→closed). Use to mark positions as closed or update tracking data.
| Name | Required | Description | Default |
|---|---|---|---|
| edge | No | Current edge in cents | |
| size | No | Updated size | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| status | No | open or closed | |
| thesisId | Yes | Thesis ID | |
| rationale | No | Updated rationale | |
| positionId | Yes | Position ID | |
| currentPrice | No | Current market price in cents |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the status transition and tracking data updates, but does not disclose whether partial updates are supported, whether the operation is idempotent, or what side effects occur (e.g., when closing a position). This is insufficient for a mutation tool with 8 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that state the purpose and a usage scenario. It contains no filler or redundant details, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with 8 parameters, no output schema, and no annotations, the description is too brief. It does not explain partial-update semantics (which params are optional), what happens on close, or what the response looks like. The sibling close_position exists but is not referenced, creating a completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains descriptions for all parameters (100% coverage), so the schema already documents each field. The description adds a brief mention of 'current price, edge, size, status' but does not enrich understanding beyond listing some parameter names, which is already in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a position and lists the specific fields (price, edge, size, status). It also mentions marking positions as closed, which distinguishes it from add_position. However, it doesn't explicitly differentiate from close_position, a sibling tool with overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Use to mark positions as closed or update tracking data.' However, it does not mention when NOT to use it or discuss the alternative close_position tool, which could lead to misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_strategyBInspect
Advanced: Update a trading strategy (stop loss, take profit, status).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| status | No | New status: active|watching|executed|cancelled|review | |
| priority | No | New priority | |
| stopLoss | No | New stop loss (cents) | |
| thesisId | Yes | Thesis ID | |
| rationale | No | Updated rationale | |
| entryAbove | No | New entry above trigger (cents) | |
| entryBelow | No | New entry below trigger (cents) | |
| strategyId | Yes | Strategy ID (UUID) | |
| takeProfit | No | New take profit (cents) | |
| softConditions | No | Updated soft conditions |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action and fields, without disclosing update semantics (e.g., partial update behavior, effects on omitted fields), required permissions, or return value. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, efficiently front-loaded. The 'Advanced:' prefix is slightly unnecessary but not detrimental, so it earns a high but not perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters, 3 required, and no output schema, the description is too sparse. It does not explain the update semantics, what happens to omitted fields, or what the response contains, leaving significant gaps for a complex mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description lists three example fields (stop loss, take profit, status), which adds marginal value beyond the schema but does not harm.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (update) and resource (trading strategy) and lists specific fields (stop loss, take profit, status). This distinguishes it from sibling tools like update_position and update_thesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'update' implies modifying an existing strategy, which differentiates it from create_strategy. However, there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_thesisAInspect
Update thesis metadata: title, lifecycle status (active/paused/archived), webhookUrl. Use configure_heartbeat.paused for runtime heartbeat pause/resume.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New thesis title | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| status | No | New status: active, paused, archived | |
| thesisId | Yes | Thesis ID | |
| webhookUrl | No | Webhook URL for confidence change notifications (HTTPS only) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that this is an update operation (mutation) and lists the mutable fields, which is useful. The extra sentence about configure_heartbeat.paused reveals a boundary of behavior. However, it doesn't disclose whether updates are partial or full replacement, what happens to existing values, or any side effects. This is comparable to the update_drive example, but with a bit more contextual detail, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose and field list. The second sentence is a valuable disambiguation that prevents misuse. Every word earns its place, with no waste or redundancy. This is a model of concise, structured description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a metadata update tool with 5 parameters, the schema covers all parameter semantics, and the description adds the key contextual disambiguation against configure_heartbeat. There is no output schema, but return values are not essential for this tool type. The main gap is no mention of auth requirements, but that's in the schema. Overall, it's complete enough for the agent to select and invoke correctly in most contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter already has a clear description in the schema. The tool description groups fields ('title, lifecycle status, webhookUrl') and uses the term 'lifecycle status', which adds mild semantic framing. The clarification about configure_heartbeat for pause/resume provides context for the 'status' parameter, but overall the description doesn't significantly add meaning beyond the schema. Baseline 3 is justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Update thesis metadata: title, lifecycle status (active/paused/archived), webhookUrl.' It uses a specific verb ('update') and resource ('thesis metadata'), and lists the exact fields. It also distinguishes itself from a related sibling by pointing to configure_heartbeat for runtime heartbeat pause/resume, which differentiates it from a potentially overlapping action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance for one alternative: 'Use configure_heartbeat.paused for runtime heartbeat pause/resume.' This tells the agent when NOT to use this tool for a specific sub-action. However, it doesn't provide broader when-to-use guidance or comparisons to other siblings like create_thesis or update_strategy, though those are less ambiguous. The explicit exclusion earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
what_ifAInspect
Scenario analysis: "what if OPEC cuts production?" Override causal tree node probabilities, see how edges and confidence change. Zero LLM cost, instant.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| thesisId | Yes | Thesis ID | |
| overrides | Yes | Node probability overrides, e.g. {"n1": 0.1, "n3": 0.2} |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not explicitly state whether the overrides are temporary/simulated or persist, nor does it mention any side effects or required permissions. 'Scenario analysis' and 'what if' imply a non-destructive read-only simulation, but this is not stated explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences with a useful example and key differentiators (zero cost, instant). Every word earns its place, and the structure is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and only 3 parameters, the description covers the core behavior (override, see changes), the use case (scenario analysis), and a key attribute (zero cost/instant). It could be more explicit about the read-only nature and output format, but it is generally complete for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already provides clear descriptions for all parameters, including an example for 'overrides'. The description adds minimal extra meaning beyond the schema, essentially echoing 'causal tree node probabilities'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: overriding causal tree node probabilities and observing changes in edges and confidence. The 'what if' example and verb 'Override' specify the action and resource, distinguishing it from sibling tools like update_nodes and get_edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for hypothetical scenario analysis and highlights 'Zero LLM cost, instant' as a benefit, but it does not explicitly name alternatives or state when not to use this tool. The context is clear but lacks direct comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_accountBInspect
Advanced: Recent posts from a specific X/Twitter account.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Hours to look back (default 24) | |
| limit | No | Max posts (default 20) | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| username | Yes | X/Twitter username (without @) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It does not mention pagination, rate limits, authentication requirements (though apiKey is in the schema), output format, or what 'Advanced' means. This is a significant gap for a tool that likely handles external API calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using a single phrase with no wasted words. The 'Advanced:' prefix is slightly redundant but does not detract significantly. It is well-structured for scanning, though it omits essential details that could be added without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has four parameters, no output schema, and no annotations, the description is far too minimal. It fails to explain what 'Advanced' means, how the tool differs from 'search_x', or what the return data looks like. The description is not sufficient for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (username, apiKey, hours, limit) are already well-documented in the schema. The description adds no additional parameter meaning, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves recent posts from a specific X/Twitter account, using a specific verb ('get') and resource. However, it does not explicitly differentiate from the sibling tool 'search_x', which could also retrieve posts, so it only partially distinguishes from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a clear use case: fetching recent posts from a specific account. However, it provides no explicit guidance on when to prefer this tool over alternatives like 'search_x', nor any exclusions or prerequisites beyond what the schema implies. This is adequate but not strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_newsCInspect
Advanced: X/Twitter news stories with headlines, summaries, and related tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max stories (default 10) | |
| query | Yes | News search query | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure burden. It mentions the output content (headlines, summaries, related tickers) but does not disclose read-only status, rate limits, query behavior, or any side effects, leaving the agent without clarity on safety and operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundancy, efficiently conveying the tool's niche. It could be slightly more informative, but it is appropriately concise for a straightforward retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description covers the core return fields (headlines, summaries, related tickers). However, it omits usage context and any caveats, making it minimally sufficient but not fully complete for an agent's decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (query, apiKey, limit) having descriptive text. The tool description adds no additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches X/Twitter news stories with headlines, summaries, and related tickers, which distinguishes it from sibling tools like search_x and x_account. Although it lacks an explicit verb, the resource and content focus are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like search_x or x_volume. The prefix 'Advanced' hints at a more comprehensive capability, but there is no explicit context, use case, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_volumeCInspect
Advanced: X/Twitter discussion volume trend — timeseries, velocity, peak activity.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Hours to look back (default 72) | |
| query | Yes | Search query | |
| apiKey | Yes | SimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys | |
| granularity | No | Timeseries granularity | hour |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, requires specific permissions, or has any side effects or rate limits. The terms 'timeseries' and 'velocity' hint at analytics but do not disclose safety or behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with the core purpose. The word 'Advanced' is somewhat unnecessary but does not significantly detract from the clarity. Each remaining phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should provide more context about what 'velocity' and 'peak activity' mean, how results are structured, and what practical use cases exist. The current one-line description is insufficient for a tool with 4 parameters and no structured output details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema fully documents all parameters (hours, query, apiKey, granularity). The description adds no additional parameter semantics beyond what the schema already provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as providing X/Twitter discussion volume trends with timeseries, velocity, and peak activity. It distinguishes from siblings like search_x and x_news by focusing on volume analytics, but lacks an explicit verb like 'get' or 'return'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as search_x or x_account. The description does not mention any context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityDmaintenancePrediction market probability oracle for AI agents. 26 tools across 500+ live markets from Kalshi and Polymarket. Cross-source arbitrage detection, structured TPF signals, Kelly Criterion sizing, agent performance tracking, and webhook alerts.9611MIT

Veynor MCP Serverofficial
Flicense-qualityCmaintenancePrediction market intelligence for AI agents, enabling real-time access to whale trades, market data, signals, and AI-synthesized analysis from Kalshi and Polymarket via a standardized protocol.- Alicense-qualityBmaintenanceEnables AI agents to autonomously trade, analyze, and manage positions on Polymarket prediction markets with 45 tools, real-time WebSocket monitoring, and enterprise-grade safety features.MIT
- AlicenseAqualityDmaintenanceProvides search, trending, odds, arbitrage, and category browsing for prediction markets (Polymarket & Kalshi) via the Model Context Protocol, enabling AI agents to access live market data without API keys.51MIT
Your Connectors
Sign in to create a connector for this server.