BTC DCA Engine
Server Details
Historical dollar-cost-averaging simulator for Bitcoin and other assets.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: run_dca simulates a single plan, compare_plans compares multiple plans, list_assets provides asset coverage info, and data_status reports data freshness. No overlapping functionality.
Most tools follow a verb_noun pattern (compare_plans, list_assets, run_dca), but data_status is noun_noun and breaks the pattern. This is a minor inconsistency that does not harm usability.
Four tools is a well-scoped count for a DCA simulation engine. Each tool fills a necessary role without redundancy or bloat.
The surface covers the core workflows: listing available assets, checking data freshness, running a single simulation, and comparing multiple plans. No obvious gaps for the stated purpose.
Available Tools
4 toolscompare_plansCompare plansARead-onlyIdempotentInspect
Run up to 5 plans over the same data and rank them by final value (2 without a signed-in Pro account or a Pro API key). Use to compare assets, cadences or start dates side by side. One share_url opens them all together.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | ||
| plans | Yes | The plans to compare: up to 2 anonymously or on a Free-account key, up to 5 with a signed-in Pro account or a Pro API key. | |
| include | No | ||
| settings | No | Chart overlays carried into share_url, and the figures they add to each summary. Flags marked "Pro only" need a signed-in Pro account or a Pro API key; refused otherwise, and the refusal says what unlocks them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the tool as read-only and idempotent. The description adds useful behavioral context beyond that: account-tier limits (2 vs 5 plans), ranking by final value, and a single share_url opening all plans together. 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?
Three short sentences with no filler. The key capability, constraints, and use case are front-loaded before any 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 complex tool with nested settings and no output schema, the description plus the detailed input schema cover selection and invocation well. It doesn't spell out the response format, but 'rank by final value' and the schema's setting descriptions provide enough 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 top-level description adds little parameter-specific meaning, but the schema carries detailed descriptions for plans, include, and settings. At 50% schema description coverage, the missing as_of parameter is not addressed in the description, though the schema's existing field descriptions make the tool usable.
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: 'Run up to 5 plans over the same data and rank them by final value.' It clearly differentiates from siblings by focusing on multi-plan comparison and ranking, and it states the Pro limit.
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?
'Use to compare assets, cadences or start dates side by side' gives a clear intended scenario and contrasts with what a single-plan tool like run_dca would do. It doesn't explicitly name alternatives or list when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_statusData statusARead-onlyIdempotentInspect
The vintage of the loaded price data and how often it refreshes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and idempotentHint, so the tool is safe and deterministic. The description adds no further behavioral details beyond its purpose, but that's acceptable given the annotations cover the safety profile. 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?
A single, front-loaded sentence that states exactly what the tool reports with no extraneous information. It's 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?
For a simple informational tool with no parameters and no output schema, the description sufficiently indicates what the agent will receive: data vintage and refresh frequency. It doesn't specify units or format, but for this purpose, it's complete enough.
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 no parameters, so the schema is empty. Per the baseline for zero parameters, the description need not explain parameters. The description doesn't add any parameter-related info, which 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 the specific resource (loaded price data) and the two attributes (vintage and refresh frequency) it reports. This clearly distinguishes it from siblings like compare_plans, list_assets, and run_dca. However, it lacks an explicit verb like 'returns' or 'reports', so it's not a full sentence, but the intent 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 implies the tool is for checking data freshness, but it does not explicitly state when to use it or mention alternatives. For a tool with zero parameters, the usage is straightforward, but without explicit guidance, it relies on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetsList assetsARead-onlyIdempotentInspect
Assets this endpoint can simulate, with the date each series starts and ends. Call before composing a plan so start dates fall inside coverage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and closed-world hints. The description additionally reveals that the assets are 'simulated' and that the output includes start/end dates, which is useful behavioral context beyond the structured annotations. It does not go into detail about output ordering or data shape, but for a simple listing endpoint 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?
Two concise sentences with no filler. The first sentence defines the tool's output, the second provides actionable guidance on when to call it. The information 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?
With no parameters and no output schema, the description does a good job of explaining the tool's purpose and relevance. It states what the endpoint can simulate talk about dates and directs the agent to use it before plan composition. It could be slightly more explicit about the response format, but the description is adequate for correct invocation and 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?
The tool takes no parameters, so the baseline of 4 applies. The description correctly avoids inventing unnecessary parameter talk and instead focuses on the output's meaning. With zero parameters and 100% schema coverage, there is nothing missing in this dimension.
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 resource ('assets') and the action of listing them, and clarifies exactly what information is returned: the start and end dates of each simulated series. This distinguishes it from siblings like run_dca and compare_plans, which are clearly different operations.
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 tells the agent when to call this tool: before composing a plan, so start dates fall inside coverage. It provides a concrete precondition and use-case, but does not explicitly name alternatives or say when not to use it, so it misses full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_dcaRun a DCA planARead-onlyIdempotentInspect
Simulate one dollar-cost-averaging plan against real historical closes. Returns totals, end-of-year checkpoints and a share_url that opens the same run in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | "dca" repeats on the schedule; "lump-sum" buys once at the start. Default "dca". | |
| as_of | No | Pin the answer to this data vintage so the share link keeps returning the same number. | |
| asset | Yes | Asset key from list_assets, e.g. "btc_daily", "Ethereum", "S&P 500". | |
| amount | Yes | USD per contribution, or the single amount for lump-sum. | |
| include | No | ||
| end_date | No | Window end. Defaults to the last loaded close, never a relative "today". | |
| settings | No | Chart overlays carried into share_url, and the figures they add to each summary. Flags marked "Pro only" need a signed-in Pro account or a Pro API key; refused otherwise, and the refusal says what unlocks them. | |
| frequency | No | Contribution cadence. Default "monthly". Quarterly is the coarsest offered: wider gaps behave like a few lump sums (see the knowledge base, "The gap between buys"). | |
| start_date | Yes | First scheduled contribution. | |
| wait_periods | No | Save this many scheduled contributions as cash before the first purchase. | |
| last_buy_date | No | Stop buying here and hold to end_date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral context: it returns a share_url, pins to a data vintage via as_of, and the schema notes that end_date 'Defaults to the last loaded close, never a relative today.' The description also discloses that Pro-only flags are refused without a Pro account. This goes beyond the annotations and helps an agent predict side effects and constraints.
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, dense sentence that front-loads the core action and then lists the key outputs. Every phrase earns its place: 'real historical closes' sets expectations, and the three return artifacts are concrete. No filler or repetition of schema details.
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 11 parameters, nested objects, and no output schema, the description is reasonably complete: it names the return shape (totals, checkpoints, share_url) and the schema covers the rest. It does not describe the full output structure, but with no output schema, an agent might benefit from a bit more detail on the summary fields. However, the schema's parameter descriptions are rich enough to compensate, and the description's mention of share_url and checkpoints gives a solid mental model.
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 91%, so the schema already documents nearly all parameters thoroughly. The description adds a high-level summary of what the tool returns but does not need to repeat parameter details. The baseline of 3 applies because the schema carries the heavy lifting; the description does not add significant parameter-level meaning 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 states a specific verb ('Simulate'), a specific resource ('one dollar-cost-averaging plan'), and the data source ('real historical closes'). It also names concrete return artifacts (totals, end-of-year checkpoints, share_url), which distinguishes it from siblings like compare_plans and list_assets. The title and description align without tautology.
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 running a single DCA simulation, and the sibling list (compare_plans, data_status, list_assets) provides context, but the description does not explicitly say 'use this instead of compare_plans when you need one plan' or 'use list_assets to find valid asset keys.' The schema does mention 'Asset key from list_assets,' which is a cross-reference, but the main description lacks explicit when-to-use/when-not-to-use guidance. It is clear enough for an agent to infer, but not explicit.
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.
4 tool updates
- First observed
compare_plans - First observed
data_status - First observed
list_assets - First observed
run_dca
Related MCP Connectors
Dollar-cost-averaging backtests on real historical data for crypto, stocks and commodities.
Historical crypto investment and retirement calculators with cited market data.
Crypto backtesting & Bitcoin cycle analytics. Point-in-time, DSR-corrected, look-ahead-aware.
Backtest strategies and analyze portfolios on any ticker: CAGR, drawdown, Sharpe, from real data.
Related MCP Servers
FlicenseNot gradedqualityCmaintenanceTax-aware retirement planning for Canada and the US. CPP/OAS and Social Security timing, RRSP/TFSA/401k/IRA projections, Monte Carlo simulation, withdrawal order optimization, and historical backtesting against 150 years of market data.2-- FlicenseNot gradedqualityCmaintenanceProvides quantitative portfolio analysis tools, including return, volatility, Sharpe ratio, VaR, correlation, and rebalance simulation, using bundled OHLCV data over stdio.-
- AlicenseNot gradedqualityDmaintenanceTracks multi-exchange cryptocurrency portfolio P\&L by storing holdings and providing live price data.MIT
- FlicenseNot gradedqualityCmaintenanceEnables deterministic financial research by retrieving price history, calculating risk metrics such as Sharpe ratio and drawdown, and generating cited, provenance-aware reports.-
Glama MCP Gateway
Add one secure layer between your agents and this server.