Model Context Protocol (MCP) server for the manifoldbt backtesting engine
manifoldbt-mcp exposes 14 tools with complete JSON schemas and descriptions. Naming follows verb_noun convention (get_version, list_indicators, run_backtest). Descriptions are present but generic, most lack context on WHEN to use each tool or dependencies between them. Parameter descriptions exist but are minimal (avg ~40 chars vs. baseline 72). Output schemas are not documented; callers must infer structure from code. Error handling is absent, no recovery guidance or actionable error messages. Security: license_key is exposed as a parameter (pattern:secret-injection violation). Composition is reasonable: tools are single-purpose, but no pagination on list_* tools and no batch variants despite agents likely calling run_backtest repeatedly.
Activate a manifoldbt Pro license key for this server process.
Compile a strategy from Python DSL code or JSON and return its serialized form.
Return manifoldbt version and license tier.
List example strategy files shipped with manifoldbt.
List all available technical indicators with their Python signatures, grouped by category.
Generate an interactive HTML tearsheet plot of backtest results.
Read the source code of an example strategy file.
License key exposed as tool parameter (activate_license). Credentials must use server-side secret injection via environment variables or vault, not tool parameters. Agent traces log all parameters, secrets leak into logs and prompt history.
Output schemas not documented. Callers cannot infer what fields run_backtest, run_sweep, run_portfolio return. LLMs cannot plan downstream tool calls or extract required data without documented return types.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or actionable error messages. An LLM receiving a validation error has no guidance on what to fix.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Run a single backtest and return the result.
Run Monte Carlo permutation analysis on backtest results.
Run a multi-strategy portfolio backtest.
Run parameter stability analysis (Pro feature).
Run a Cartesian grid sweep over strategy parameters.
Run a 2D heatmap sweep over two strategy parameters.
Run walk-forward analysis (Pro feature).
Descriptions lack context on WHEN to use each tool and dependencies. 'Run a Cartesian grid sweep' does not explain when to call run_sweep vs run_sweep_2d vs run_stability. LLMs cannot disambiguate similar tools.
No pagination on list_* tools. list_indicators and list_examples lack limit/offset parameters and total count. If indicator list is large, response could exhaust context window.