quantifyme
Server Details
Describe a trading strategy in plain English and deploy a live signal model in one call. No signup.
- Status
- Healthy
- Uptime
- 100.0% over 63 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 13 tools
Several tools overlap around discovering community strategies (browse_community and find_strategy) and around generating vs deploying code (generate_strategy vs one_shot). Descriptions actively distinguish them, but an agent must read carefully to pick the right tool, which fits 'some overlap exists but descriptions help'.
All names use snake_case and most follow a verb_noun pattern (get_quote, list_models, generate_strategy). Exceptions like one_shot and top_up break the verb_noun convention but remain readable and consistent in casing.
13 tools is reasonable for a platform covering community browsing, strategy generation, deployment, model management, account linking, and diagnostics. A couple of tools (stream_test, top_up) are niche, but the count is not excessive.
The core generate → deploy → inspect loop is covered, but there are notable missing operations: no delete/undeploy or update for models/strategies, no account balance query beyond top_up, and no direct preset-listing tool despite presets being central to one_shot. These gaps will force workarounds for lifecycle management.
Available Tools
13 toolsbrowse_communityBrowse Community Strategies (leaderboard)ARead-onlyIdempotentInspect
Browse the public community leaderboard of published strategies, ranked by a composite performance score (best first). No signup or key needed.
Copy-trade flow: call this to find a top strategy, then pass its `id` to
`one_shot` as `community_id` to deploy a live signal model running that
exact strategy in one call.
Args:
limit: How many top entries to return (default 20, max 200).
sort: Ranking metric, best-first — one of "composite" (default),
"ret" (total return), "wr" (win rate), "sharpe", "n_trades". Mirrors
the quantifyme.ai/community page's sortable columns, so an agent can
pick the top strategy by the metric it cares about in one call. The
sorted entries keep their `id`, so the winner is directly deployable
via one_shot(community_id=...).
Returns:
dict with:
- scripts (list[dict]): ranked entries, best first. Each has:
id (int — pass to one_shot as community_id), username, title,
description, created_at, score, and metrics {total_ret,
sharpe_strat, win_rate, n_trades, mdd, profit_factor}. SHOW the
top few with their win_rate / total_ret so the user can pick one.
- count (int).
- metric (str): the sort key applied.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | composite | |
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, openWorldHint, idempotentHint) already declare safety. The description adds rich behavioral context: no signup required, public data, sorting behavior (best-first), and that it mirrors the community page. This significantly expands on 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?
Well-structured with main purpose first, then use case flow, parameter details, and return format. All sentences are informative, though the description is somewhat lengthy; still 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 browse/list tool with 2 simple parameters and a full output schema described, this is highly complete. It covers return structure (scripts, count, metric), script fields (id, username, title, etc.), and metrics. No 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 0%, so description must compensate. It fully explains limit (default 20, max 200) and sort (list of options, defaults, and meaning of each metric like 'composite', 'ret', 'wr'). Provides context about mirroring the community page columns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it browses the public community leaderboard of published strategies ranked by composite score. It distinguishes from sibling tools like find_strategy (search) and one_shot (deploy) by describing the copy-trade flow.
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?
Clearly indicates when to use: to find a top strategy for deployment via one_shot. Mentions no authentication needed. Lacks explicit when-not-to-use or alternative comparisons, but provides clear integration context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_strategyFind a Matching StrategyARead-onlyIdempotentInspect
Find an existing PROVEN strategy that matches a plain-English idea, so you can offer the user a choice — deploy the existing one, or generate a fresh custom one. Mirrors the quantifyme.ai landing experience: "Found by @ (WR/PF) — Use it / Generate fresh".
Use this when a user wants to browse for an existing strategy. A vague deploy
request does NOT need it: one_shot(prompt=...) deploys the best curated preset
or a fresh build. A community strategy is another user's code, so it deploys
only after the user has seen its author and code (get_strategy_code with the
match's community_id) and picked it. Present the match (if any) and ASK:
• Use it → one_shot(community_id=<match.community_id>) — deploys the
exact strategy they picked (no generation).
• Generate fresh → one_shot(prompt="<their description>") — Claude writes a
brand-new custom strategy for them.
If there's no match, just offer to generate fresh.
Args:
description: the user's strategy idea in plain English (e.g. "buy EURUSD
15min when RSI < 30, sell when RSI > 70").
symbol: optional pair to constrain the match (EURUSD, USDJPY, GBPUSD,
USDCHF, USDCAD, AUDUSD, NZDUSD).
timeframe: optional granularity to constrain the match (1min/5min/15min/1h).
Returns:
dict with:
- match: the best existing strategy, or null. When present:
{community_id, title, username, wr, pf, ret, n_trades, symbol,
timeframe}. Pass community_id to one_shot to deploy it unchanged.
- description: echoed back — pass as one_shot(prompt=...) to generate fresh.
- suggestion: a ready-to-show sentence offering the user the choice.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | ||
| timeframe | No | ||
| description | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/open-world, but the description adds non-obvious behavior: a community strategy is another user's code and deploys only after the user has seen author and code via get_strategy_code, and the tool must present a match and ASK rather than act. This is real workflow/safety context beyond structured fields.
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?
Front-loaded with purpose then routing rules, and every block is actionable. It is somewhat long with quoted UI copy and dual workflow bullets, but almost all of it earns its place; minor trimming possible.
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 an output schema existing, the description documents the return shape (match, description, suggestion) and how each field feeds the next call, and covers the no-match case. An agent has everything needed to invoke and route 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 0%, so the description carries the full burden and does: description is the user's plain-English idea with a concrete example, symbol is constrained to a listed set of pairs, and timeframe lists allowed granularities.
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 a specific verb (find) and resource (an existing PROVEN strategy) matched from a plain-English idea, and explicitly frames the outcome as a user choice between deploying or generating. It cleanly separates itself from generate_strategy and one_shot.
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?
Gives explicit when-to-use ('user wants to browse for an existing strategy'), an explicit when-NOT ('a vague deploy request does NOT need it'), and names the alternative with exact call syntax (one_shot(prompt=...)). The two-branch deploy flow is spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_strategyGenerate Strategy Code (no training)BInspect
Generate Python strategy code (no training/deploy). Use when the user wants raw code.
Args:
features: NL description of features (e.g. "RSI 14, Bollinger Bands").
signals: NL description of signal logic (e.g. "Buy when RSI < 30").
model: ML model name (default Random Forest).
risk: NL risk rules (e.g. "0.5% stop loss").
description: Optional one-line summary; treated as PRIMARY USER REQUEST.
symbol: Currency pair the code should target. One of: EURUSD, USDJPY,
GBPUSD, USDCHF, USDCAD, AUDUSD, NZDUSD. Default EURUSD.
timeframe: Candle granularity. One of: 1min, 5min, 15min, 1h. Default 15min.
claude_model: "sonnet" (default) or "haiku" (faster, higher daily cap).
| Name | Required | Description | Default |
|---|---|---|---|
| risk | No | ||
| model | No | Random Forest | |
| symbol | No | ||
| signals | No | ||
| features | No | ||
| timeframe | No | ||
| description | No | ||
| claude_model | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate openWorldHint=true and readOnlyHint=false, suggesting side effects. The description does not explain that the tool uses an AI model (implied by claude_model) or that it may call external APIs. It also does not describe the return format or side effects, such as saving generated code. Given the annotations carry some burden, the description fails to add sufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, but the parameter list is lengthy and could be more structured (e.g., bullet points). Every sentence is informative, but the length is borderline excessive for a tool 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?
Given the complexity (8 params, 0 required, output schema exists), the description covers purpose and parameters reasonably. However, it lacks differentiation from sibling tools like get_strategy_code (retrieval) or one_shot (generation with backtest). No usage examples are provided, and the output format is left to the output schema. Completeness 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?
Schema description coverage is 0%, so the description must compensate. It provides detailed explanations for all 8 parameters, including defaults, enumerated values for symbol and timeframe, and guidance that 'description' is the primary request. This adds significant meaning beyond the bare schema, earning a 4.
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 'Generate Python strategy code (no training/deploy)' and 'Use when the user wants raw code.' This conveys a specific verb (generate) and resource (strategy code), distinguishing it from siblings like get_strategy_code or one_shot. However, it does not explicitly contrast with all siblings, so a 4 is appropriate.
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 ('Use when the user wants raw code') and notes that the 'description' parameter is treated as the primary user request. However, it does not mention when not to use this tool or suggest alternatives among siblings, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deploy_resultGet Deploy ResultARead-onlyIdempotentInspect
Wait for a one_shot deploy to finish and return its final result.
`one_shot` returns a job_token immediately and the LIVE CARD already streams
progress and renders the interactive backtest chart itself. Call this ONCE with
the token to get the final numbers as TEXT so you can summarize them — it does
NOT render another card (no need for get_model_chart). It BLOCKS until the deploy
finishes (or ~2.5 min); on timeout it returns ok:false + pending:true — call it
again with the same token.
IMPORTANT: if `source == "community"`, the deploy used a PRE-EXISTING strategy by
`@author` (the user picked it) - tell the user that, share the `live_url` as the
Live dashboard link, and ask whether they'd like to GENERATE A CUSTOM strategy
instead. A `suggestion` is a community strategy that matched a vague request; it
was NOT deployed; offer it, and deploy it only after the user sees its author and
code and picks it. Use the `note` field as your guide.
Args:
job_token: the token returned by `one_shot`.
Returns:
dict with: ok, stem, model, live_url, symbol, timeframe, channels (list),
stats:{ret, wr, pf, n, mdd} (out-of-sample test-split metrics — SHOW THESE),
source ("preset" | "generated" | "community"), author (community username if
any), author_url + strategy_url (render @author and "pre-existing strategy" as
those Markdown links), community_id, suggest_custom (bool), suggestion
({community_id, title, author} or null: offered, not deployed), and note (a
ready instruction - follow it). On failure: {ok:false, error} (or {pending:true}).
| Name | Required | Description | Default |
|---|---|---|---|
| job_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses that the call BLOCKS up to ~2.5 minutes, the exact timeout failure shape, the safe retry semantics with the same token, and that no additional card is rendered. This is consistent with readOnlyHint=true and idempotentHint=true rather than contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and blocking behavior are front-loaded and the Returns block is well structured. The community/suggestion handling is several sentences of workflow policy that could be trimmed, but each sentence does drive correct agent behavior rather than restating the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the blocking/timeout contract, the retry protocol, the full return shape semantics, and the source-dependent user-facing behavior. Even though an output schema exists, the field-level meaning (which stats to show, how to render author/strategy links) adds required interpretation.
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 0% for the single job_token parameter, so the schema contributes nothing. The description compensates by naming its origin ('the token returned by one_shot'), but adds no detail on format, expiry, or reuse constraints beyond the retry note.
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 a specific verb and resource ('wait for a one_shot deploy to finish and return its final result') and explicitly distinguishes itself from the sibling get_model_chart ('it does NOT render another card'). An agent can tell exactly what this returns and what it is not for.
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?
Explicit call-count guidance ('call this ONCE'), the condition under which it is needed, and the retry path ('on timeout it returns ok:false + pending:true — call it again with the same token'). It also gives conditional handling for source=='community' and for suggestions, including the when-not-to-deploy rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_model_chartShow Backtest Chart (equity + trades)ARead-onlyIdempotentInspect
Visualize a trained model's backtest — a cumulative-return chart + trade log + stats.
Use after `one_shot` / `list_models` with the model's `stem` to SHOW the user how it
traded (the "is it actually any good" view). In ChatGPT this renders an interactive
widget. In Claude, render an interactive **artifact** from this tool's structured
output: a line chart of the cumulative return plus a table of the trades.
Args:
stem: The model stem (e.g. "14_EURUSD_15min_Model_24") from `list_models` / `one_shot`.
Returns:
dict with: ok, stem, symbol, timeframe, stats {ret, wr, pf, n, mdd, sharpe},
and trades [{type, entry_time, exit_time, entry_price, exit_price, pnl,
pnl_pct, exit_reason, period}] (most recent ~200). exit_reason is one of
TP / SL / close_only / signal / end. ret/mdd/wr are fractions; pnl_pct is percent.
| Name | Required | Description | Default |
|---|---|---|---|
| stem | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint. The description adds valuable behavioral details: rendering difference between ChatGPT (interactive widget) and Claude (artifact), and the structured output includes trade log and stats. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with purpose, usage, parameter explanation, and return value. Each sentence adds distinct value without redundancy. Despite length, it is well-organized 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?
Given the simple single-parameter tool and presence of an output schema, the description thoroughly covers behavior, output structure (even detailing keys like exit_reason values), and platform-specific behavior. No 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?
Schema coverage is 0%, but the description explains the 'stem' parameter with an example and its source (list_models/one_shot). This adds meaning beyond the bare schema, but could further specify format 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?
Description uses specific verb 'Visualize' and resource 'trained model's backtest', clearly distinguishing it from sibling tools like list_models and one_shot by focusing on the chart view.
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 to use after one_shot or list_models with the model's stem, and explains it shows the user how it traded, including context like 'is it actually any good' view. No mention of when not to use, but the guidance is very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteGet Current Price (G7 FX quote)ARead-onlyIdempotentInspect
Get the latest price for a G7 FX pair — a quick "what's it at now" check.
Useful for context before deploying a strategy. The price is the close of
the most recent 1-minute bar from the platform's market feed (not a raw
live tick); FX markets close on weekends, so the `stale` flag marks a bar
that is more than 15 minutes old.
Args:
symbol: G7 pair — one of EURUSD, USDJPY, GBPUSD, USDCHF, USDCAD, AUDUSD,
NZDUSD. Default EURUSD.
Returns:
dict with: symbol, price (latest close), time (bar timestamp, UTC),
change + change_pct (vs the prior 1-min bar), stale (bool).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | EURUSD |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that price is from close of most recent 1-minute bar (not raw live tick), explains the stale flag (15 min threshold), and notes FX market weekend closures. This goes beyond annotations (readOnlyHint, openWorldHint) by detailing the data source and staleness 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?
Well-structured with a summary line, context paragraph, and explicit Args/Returns sections. Slightly wordy but every sentence adds value. Could be more concise but remains clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 optional param, no required params) and the presence of an output schema (implied by return description), the description covers all necessary aspects: input, behavior, output fields. No gaps for an agent to understand invocation and results.
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?
Despite 0% schema description coverage, the description fully explains the 'symbol' parameter: lists all valid G7 pairs, states default EURUSD, and implies it's optional. This completely compensates for the schema 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?
Clearly states it gets the latest price for a G7 FX pair as a 'quick check'. Distinguishes from siblings like get_deploy_result or get_strategy_code which serve different purposes.
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 'Useful for context before deploying a strategy', providing a clear use case. Does not mention alternatives or when to avoid, but given the tool's simplicity, this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_strategy_codeGet Community Strategy CodeARead-onlyIdempotentInspect
Get the actual Python code behind a community leaderboard strategy.
Use after `browse_community`: pass an entry's `id` here to read its real
`feature_engineering()` + `strategy_config()` source so the user can
inspect or tweak it. To deploy it unchanged, pass the same id to
`one_shot` as `community_id`. Read-only, no signup needed.
Args:
community_id: The `id` of a community entry (from `browse_community`).
Returns:
dict with: id, title, username, description, symbol, timeframe,
metrics {total_ret, win_rate, profit_factor, n_trades, mdd, sharpe_strat},
and `code` (the full Python source). SHOW the code to the user, and offer
to deploy it via one_shot(community_id=...) or tweak it first.
| Name | Required | Description | Default |
|---|---|---|---|
| community_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint. Description adds context: no signup needed, returns specific fields including code, and instructs to show the code and offer to deploy. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is efficient, front-loaded with main action, then usage context, parameter, and returns. Slightly verbose with the 'SHOW the code...' instruction, but still concise overall.
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 existence of output schema, description explains return fields in dict and workflow (use after browse_community, show code, offer to deploy). Complete for agent 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 has 0% description coverage, but description fully explains the parameter: 'community_id: The `id` of a community entry (from `browse_community`).' This provides clear meaning and source, fully compensating for schema lack.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get the actual Python code behind a community leaderboard strategy.', using specific verb 'Get' and resource 'Python code'. It distinguishes from siblings by mentioning use after `browse_community` and alternative deployment via `one_shot`.
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 when to use ('Use after `browse_community`') and when not to use or alternative ('To deploy it unchanged, pass the same id to `one_shot`'). Also clarifies read-only, no signup needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_accountLink My QuantifyMe AccountARead-onlyInspect
Link this chat to the user's existing QuantifyMe account.
Call this when the user says they already have a QuantifyMe account, or
asks why their models are missing / where a model went, or wants what they
deploy here to show up in their own dashboard.
By default this connector works with NO signup: it mints an anonymous trial
account per MCP session, so models deployed here belong to that throwaway
identity rather than to the user's real one. This returns a short-lived URL;
once the user opens it and approves, every later call that carries the same
OAuth bearer or the same MCP session acts as their account and deploys land
in their own model list. A client that opens a new MCP session on every turn
must link again in that session; every answer's `acting_as` line says which
identity was used.
Give the user the `link_url` to open. Nothing else is required from them.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the coarse safety profile (readOnlyHint, openWorldHint, non-idempotent), while the description supplies the genuinely load-bearing behavior: an anonymous per-session trial identity is the default, this call returns a short-lived URL the user must open and approve, subsequent calls act as the real account, and clients that open a new MCP session each turn must re-link. The reference to the `acting_as` line also tells the agent how to verify which identity was used.
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?
Front-loaded with the purpose and trigger conditions, then the mechanics, then the user-facing action. The middle paragraph is dense but every sentence carries distinct information (default identity, return value, session binding, verification line); it is slightly long for a zero-argument tool but not padded.
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?
An output schema exists so return structure needn't be spelled out, yet the description still names `link_url` and tells the agent what to do with it. Combined with the coverage of default identity and session semantics, nothing an agent needs to call and act on this tool is missing.
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 takes zero parameters, so there is nothing to disambiguate; the baseline for a parameterless schema is 4. The description correctly notes that 'Nothing else is required from them', reinforcing that the call is argument-free.
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 first sentence states a specific verb and resource ('Link this chat to the user's existing QuantifyMe account'), and the opening condition list distinguishes it from every sibling (none of which touch account identity). An agent can identify the tool's job from the title plus first line alone.
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 three explicit trigger conditions ('user says they already have an account', 'asks why their models are missing / where a model went', 'wants what they deploy here to show up in their dashboard'), which is precisely the when-to-use guidance an agent needs. It also names the default no-link path, implicitly defining when NOT to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_deployedList Deployed Live ModelsARead-onlyIdempotentInspect
List the user's currently deployed (live) models.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, indicating a safe, read-only operation. The description adds no further behavioral context beyond stating the action, so it meets the baseline but offers no additional 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?
A single, front-loaded sentence that is clear and without any extraneous information. Every word is necessary.
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 parameters and an output schema, the description is mostly complete. It specifies scope ('user's'). However, it could be improved by differentiating from the sibling 'list_models' to avoid ambiguity.
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 and 100% coverage, so the baseline is 3. The description correctly adds no parameter information since none exist.
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 lists the user's currently deployed (live) models, with a specific verb ('list') and resource ('deployed live models'), distinguishing it from the sibling 'list_models' which likely lists all models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing live models but provides no explicit guidance on when to use this tool versus alternatives like 'list_models', nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsList Trained ModelsBRead-onlyIdempotentInspect
List the user's trained models with pre-computed train/test stats.
acting_as names the identity listed: the linked account or a trial user (#1962).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds that returned models carry pre-computed train/test stats, which is useful, but says nothing about filtering, pagination, or what identity scoping entails operationally.
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 with the core action front-loaded and no filler. The second sentence is terse, though it spends its words on a parameter the schema does not expose.
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 an output schema present and no input parameters, the description only needs to establish purpose and identity scoping, which it largely does. The dangling `acting_as` reference is the main loose end, but nothing critical to invoking the tool is missing.
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 zero parameters, which normally warrants a baseline of 4, and there is no schema coverage gap to compensate for. However, the description references an `acting_as` argument that does not appear in the schema at all, which is confusing and gives the agent no actionable semantics for 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 gives a specific verb and resource ("List the user's trained models") and adds a scope detail (pre-computed train/test stats). It does not explicitly distinguish itself from the closest sibling, list_deployed, leaving the agent to infer that models vs. deployments differ.
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 statement of when to use this tool versus alternatives such as list_deployed or get_model_chart. Usage is only implied by the name and by the identity note, which does not tell the agent when this listing is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
one_shotDeploy Strategy (generate + backtest + go live)ADestructiveInspect
End-to-end deploy: generate strategy → train → deploy live.
One of `prompt` (free-form NL), `preset` (curated winning strategy), or
`community_id` (copy a published community strategy) is required. If more
than one is passed, precedence is community_id > preset > prompt.
Args:
prompt: Natural-language strategy description (e.g. "Buy when RSI < 30, sell > 70").
symbol: Currency pair to backtest on. One of: EURUSD, USDJPY, GBPUSD,
USDCHF, USDCAD, AUDUSD, NZDUSD. Default EURUSD.
timeframe: Candle granularity. One of: 1min, 5min, 15min, 1h. Default 15min.
claude_model: Which Claude variant to use for code generation.
"sonnet" (default — best quality, 1/day free) or "haiku" (faster, 3/day free).
Ignored when `preset` is set (no generation needed).
preset: Curated winning-strategy slug. Skips Claude generation entirely
— deploys a pre-saved strategy known to backtest well on the chosen
symbol. Available slugs: ema_cross_fast, momentum, scalper_stack,
sma_only, trend_ema, volatility, bb_squeeze, all_mix, pivot_kid_ema.
Not every slug exists for every symbol — call list_models afterwards
to confirm what deployed.
community_id: Copy-trade a published community strategy. Pass the `id`
of an entry from `browse_community`. Loads that exact strategy code,
skips Claude generation, then trains + deploys it. `symbol`/`timeframe`
still apply to the backtest+deploy.
webhook_url: Optional webhook to receive live signals.
telegram_chat_id: Optional Telegram chat ID for signal delivery.
Returns IMMEDIATELY (the deploy runs in the background so the live card can
stream progress) with:
- job_token (str): pass to get_deploy_result to fetch the final result.
- poll_url (str): the card polls this for live progress; you can ignore it.
- pending (bool): always true here — the deploy is still running.
- symbol, timeframe (str).
Call this EXACTLY ONCE per request. Pass the user's words as `prompt`; do not
pre-pick presets/community strategies - the server routes (vague → the best
curated preset for the market, or a fresh build when there is none; specific
rules → a fresh generation). A community strategy deploys only after the user
has seen its author and code (get_strategy_code) and picked it: then pass its
`community_id`.
NEXT STEP (always): call get_deploy_result(job_token) ONCE — it blocks until the
deploy finishes and returns the out-of-sample stats + `stem` + `source`/`author`
as TEXT so you can summarize. The live card already shows the chart, so you do
NOT need get_model_chart. If source='community', tell the user it used a
pre-existing strategy by @author and offer to generate a custom one. If the
result carries a `suggestion`, you may offer that community strategy.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | No | ||
| prompt | No | ||
| symbol | No | ||
| timeframe | No | ||
| webhook_url | No | ||
| claude_model | No | ||
| community_id | No | ||
| telegram_chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, but the description adds substantial context the annotations cannot: the deploy is asynchronous and returns immediately with job_token/poll_url/pending, it must be called EXACTLY ONCE, generation is skipped for preset/community paths, and claude_model carries free-tier limits (1/day sonnet, 3/day haiku). These are real operational constraints an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then structured Args and NEXT STEP sections; almost every sentence carries routing or behavioral information. It is on the long side and repeats the call-once emphasis, but the density is justified for an 8-parameter orchestration 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?
Despite the output schema existing, the description still clarifies the immediate return shape (job_token, poll_url, pending, symbol, timeframe) and explicitly routes the agent to get_deploy_result for final stats, noting the chart is already on the card. Nothing needed to call it correctly or handle its result is missing.
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 0% and there are 8 parameters, so the description carries the full burden — and it does: it enumerates allowed symbols, timeframes, preset slugs, defines claude_model variants and their side effects, explains community_id's provenance requirement, and clarifies symbol/timeframe still apply to backtest on the community path. Every parameter gains meaning beyond the bare schema types.
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 first line states a specific verb chain (generate → train → deploy live) on a named resource, and the tool is clearly distinguishable from siblings like generate_strategy (which only generates) and get_deploy_result (which only polls). An agent can tell exactly what this composite tool does without opening the schema.
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?
Explicit routing rules: exactly one of prompt/preset/community_id is required, with precedence community_id > preset > prompt spelled out. It also states when to pass a prompt vs pre-pick a preset ('pass the user's words as prompt; do not pre-pick'), the prerequisite for community_id (user must have seen author/code via get_strategy_code), and the mandatory follow-up call to get_deploy_result. This is near-complete when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stream_testLive Streaming DiagnosticARead-onlyIdempotentInspect
Diagnostic: test whether LIVE data streaming works in this client.
Renders a widget with three panels: a JS timer (baseline), the WebSocket
panel (not offered: the feed needs a credential and none is sent to a
widget), and an HTTP poll of /quote, each showing a live value + status, so
you can see which streaming mechanisms the client's widget sandbox permits.
Use when a live/ticking chart isn't moving.
Args:
symbol: G7 pair to stream (default EURUSD).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | EURUSD |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and idempotentHint, but the description adds real behavioral substance: the widget renders three panels and the WebSocket panel is deliberately not offered because the feed needs a credential that is not passed to a widget. That sandbox/credential limitation is not in any structured 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?
Front-loads the one-line purpose, then mechanism, then the when-to-use line, then args. The parenthetical about the WebSocket credential is a little winding, but every sentence carries information and nothing is padding.
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 diagnostic with an output schema present, the description covers purpose, mechanism, trigger condition and the argument. Return-value details are legitimately left to the output schema, so no critical gap remains.
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 0%, so the description must carry the parameter burden, and it does partially: 'symbol: G7 pair to stream (default EURUSD)' adds domain meaning ('G7 pair') and restates the default. It does not specify accepted symbol format or casing, but it adds value beyond the bare schema property.
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 a specific verb and resource: 'test whether LIVE data streaming works in this client.' It also explains the mechanism (renders a widget with JS timer, WebSocket, HTTP poll panels), which clearly differentiates it from read siblings like get_quote or get_model_chart.
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?
Gives an explicit trigger condition: 'Use when a live/ticking chart isn't moving.' That is clear context, though it does not name which sibling to prefer instead (e.g. get_quote, get_model_chart) or describe when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
top_upTop Up Credits with CryptoAInspect
Simulated crypto top-up for a QuantifyMe DEV server only: no money moves, so it never makes an account paid and grants at most up to the free credit cap ($100 per call). quantifyme.ai refuses it (#1098) and answers with how to pay for real: send USDC on Base to your deposit address (GET /api/v1/wallet/deposit_address). Returns your new credit balance.
| Name | Required | Description | Default |
|---|---|---|---|
| amount_usd | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, openWorldHint=true and idempotentHint=false; the description adds the substantive behavior an agent needs: no real money moves, the account never becomes paid, grants are capped at the $100 free credit cap per call, and it returns the new credit balance. This is exactly the kind of side-effect and limit disclosure annotations cannot carry.
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 DEV-only scoping constraint is front-loaded and nearly every clause carries new information (no money, cap, refusal code, alternative endpoint, return value). It is dense but not padded; the parenthetical endpoint is the only clause that could arguably be trimmed.
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 mutation tool with an output schema already covering the return shape, the description still supplies the dev-only constraint, the credit cap, the production failure mode and the real-payment alternative. Nothing an agent needs in order to decide whether and how to call it is missing.
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 0% and the single parameter amount_usd has no description, so the description must compensate. It partially does by revealing the $100-per-call cap that bounds the value, but it never states the unit/format or behavior when the amount exceeds the cap, leaving the only parameter under-specified.
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 a specific verb and resource ('Simulated crypto top-up' granting credits) and immediately scopes it to 'a QuantifyMe DEV server only,' which no sibling tool covers. An agent can tell at a glance that this is not a real payment tool and not one of the strategy/model 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?
Gives an explicit when-not: 'quantifyme.ai refuses it (#1098)' on production, plus the alternative path for real payment ('send USDC on Base to your deposit address (GET /api/v1/wallet/deposit_address)'). Both the exclusion and the substitute action are named, so the agent does not have to infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
browse_community1 field changed- added
Input schema / properties / sortAdded value: +{ + "default": "composite", + "title": "Sort", + "type": "string" +}
- Added
link_account - Added
top_up
1 tool update
- Added
stream_test
1 tool update
- Added
find_strategy
1 tool update
- Added
get_deploy_result
Related MCP Connectors
- CPZAIOAuthcom.cpz-lab.mcp
Build, backtest, and deploy quantitative trading strategies from your AI agent.
Design trading strategies with your AI and open them in a visual no-code Strategy Builder.
Automate trading on your own Alpaca account - build, backtest and run strategies via your AI.
Backtest plain-English trading strategies on real market data: graded results, honesty flags.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude to run backtests, fetch market data, list strategies, and analyze trading algorithms via natural language.1,107GPL 3.0

panther-mcpofficial
AlicenseAqualityDmaintenanceEnables AI assistants to backtest trading strategies described in plain English, providing access to market data, technical indicators, and comprehensive performance reports.131MIT- FlicenseNot gradedqualityBmaintenanceLive AI-generated crypto trading signals for agents. Returns coin, direction and confidence with no API key at a ll; a free account adds full reasoning and verified outcomes, and Pro unlocks entry, stop-loss, take-profit and leverage plus 30-d ay history.121-
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to mine, validate, and paper-trade quantitative trading strategies via chat, with the engine running locally on the user's own machine.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.