quant-research-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@quant-research-mcpanalyze setup for AAPL using hurst_regime_orb"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
quant_research_mcp
An MCP server exposing a registry of paper-backed quantitative trading methods
plus a deterministic, no-LLM decision helper. The server supplies reproducible
math (screening, indicators, regime detection, method signals, scored entry
decisions); the calling agent supplies judgement (e.g. reading headlines into a
sentiment signal). No claude -p, no subprocess, no LLM inside the server.
⚠️ Not financial advice. This is read-only research and educational tooling. It performs quantitative computation only and places no orders. Nothing it outputs is investment advice or a recommendation. Market data may be delayed or wrong, backtests are not forecasts, and trading carries substantial risk of loss. You alone are responsible for any capital you risk. Provided "as is" without warranty — see
LICENSE.
Why this exists
Repackages a working day-trading pipeline as composable MCP tools, with two goals:
Extensible to future papers. Each strategy is a
TradingMethodregistered in a registry. Adding a new paper = drop one module, callregister(...), import it. Nothing else changes.Decision-making is scientific, not generative. The old pipeline gated entries with an LLM call. Here that is replaced by
quant_score_decision— a pure function combining reward:risk, regime strength, volume, RSI positioning and ATR-normalised stop quality into an auditable score. Same inputs → same output.
Related MCP server: TradeMCP
Tools (13)
Tool | Network | Purpose |
| no | List registered methods (key, paper, timeframe, regimes). |
| no | Full detail + citation for one method. |
| yes | Rank tickers by gap / rel-volume / ATR%. |
| yes | EMA9/20, RSI, ATR, VWAP, Hurst for a ticker. |
| yes | Hurst → TRENDING / MEAN_REVERTING / RANDOM_WALK. |
| yes | Run a per-ticker method → signal + entry/stop/target (+ HTF context). |
| yes | Run a universe method: momentum ranking, pairs spread. |
| yes | Validate a method: replay its own analyze() over history → win rate, expectancy, drawdown, IS/OOS halves. |
| yes | Next earnings (+days), ex-dividend — binary-event risk. |
| yes | Stateless heat / correlation / concentration check + candidate verdict. |
| yes | SPY/QQQ/IWM, VIX, 11 sectors ranked, risk-on/off breadth. |
| no | Decision helper: setup (+ sentiment, earnings, heat) → score, verdict, size, timeframe-aware execution plan. Deterministic. |
| yes | Recent headlines (data only; agent forms sentiment). |
All tools are read-only and support response_format: markdown | json.
Workflows
Day trade
quant_market_context # tape read: risk-on/off, sectors
→ quant_screen_universe # find movers
→ quant_analyze_setup # hurst_regime_orb on the top name
→ quant_check_events + quant_fetch_news # binary risk + agent sentiment
→ quant_portfolio_risk # heat/correlation vs your open book
→ quant_score_decision(setup, news_sentiment, days_to_earnings,
portfolio_heat_pct)Swing (days) — rsi2_reversion, pairs_cointegration via
quant_analyze_setup / quant_analyze_universe; earnings veto matters most
here (quant_check_events → days_to_earnings).
Position (weeks+) — donchian_trend per ticker, xs_momentum over the
universe; re-rank monthly, weekly stop review per the execution plan.
Before trusting any method: quant_backtest_method on your tickers and
period — it replays the method's own signal logic with costs, and reports
in-sample vs out-of-sample halves so you can see decay.
The agent writes any narrative; the server guarantees the numbers.
The decision helper (quant_score_decision)
Pure function. Composite score (weights in config.DECISION_WEIGHTS):
reward_risk — realised R:R vs the target multiple.
regime_strength —
|Hurst − 0.5|scaled (distance from random walk).volume_confirmation — relative volume vs the floor.
momentum_position — RSI in a healthy band for the direction (not exhausted).
stop_quality — stop distance normalised by daily ATR (noise-tight stops penalised).
Optional news_sentiment (the agent derives this) boosts an aligned score or
vetoes a contradicted one at confidence ≥ 0.5. Output includes the per-factor
breakdown, fixed-fractional position_size (with a haircut for noise-tight stops),
and a mechanically derived execution_plan (entry trigger, order type, stop ladder,
profit taking, time stop, abort conditions).
Bundled methods (5)
Key | Timeframe | Paper |
| intraday | arXiv:2205.11122 — Hurst regime → ORB / VWAP fade |
| swing | Connors & Alvarez 2009 — RSI(2) pullback above the 200d SMA |
| swing | Gatev et al. 2006 — Engle-Granger spread z-score |
| position | Faith, Turtle Rules; Moskowitz et al. 2012 — 55d breakout, 20d/ATR trail |
| position | Jegadeesh & Titman 1993 — 12-1 cross-sectional momentum, top-N book |
Data providers
Default is yfinance (free, ~15-min delayed). The data layer sits behind a
provider interface (quant_research_mcp/providers/): implement the
DataProvider protocol for Alpaca/Polygon/IBKR, register the factory, then run
with QUANT_DATA_PROVIDER=<name>. All calls are TTL-cached in-process (daily
15 min, intraday 60 s, news 5 min, events/sector 1 h).
Adding a future paper
# quant_research_mcp/methods/my_paper.py
from . import register
from .base import TradingMethod, TradeSetup
def analyze(daily, session, context) -> TradeSetup:
... # compute signal, entry, stop, target
register(TradingMethod(
key="my_paper_method",
name="My Method",
paper="Author et al., Title",
paper_url="https://arxiv.org/abs/...",
regime_applicability="TRENDING",
description="One paragraph on the mechanics.",
analyze=analyze,
))Then add from . import my_paper to methods/__init__.py. It now appears in
quant_list_methods and is runnable via quant_analyze_setup(method_key=...).
Quick start (Makefile)
make install # create venv + install deps (uv sync)
make smoke # import server, list the 13 tools (no network)
make run # run the server over stdio
make help # list every targetInstall as a shell binary
make install-cli # installs `quant-research-mcp` onto your PATH (uv tool)
quant-research-mcp # runs the server over stdio from anywhereIf the command isn't found after install, run uv tool update-shell and restart
your shell (uv's tool bin dir, usually ~/.local/bin, must be on PATH).
Target | What it does |
|
|
| install the |
| remove the binary |
| install + ruff for linting |
| run the MCP server (stdio) |
| import + list tools, no network |
| run the pytest suite (no network) |
| launch the MCP Inspector |
| tests + lint + assert no LLM/subprocess calls |
| print the stdio client-config JSON |
| register the local clone with Claude Code (user scope) |
| remove from Claude Code |
| build sdist + wheel into |
| build the Docker image locally |
| pack a Claude Desktop |
| drop caches, venv and build artifacts |
Install
Every method runs the same stdio server — pick whichever fits your setup.
Method | Command | Needs |
uvx from GitHub (no clone) |
| |
PyPI |
| uv / pipx |
Docker |
| Docker |
From source |
| git + uv |
Claude Desktop | install the | Claude Desktop |
PyPI and Docker images are published on tagged releases; until the first release, use the uvx from GitHub or from source rows.
Use with Claude Code
Fastest — runs straight from GitHub, no clone:
claude mcp add quant_research -- \
uvx --from git+https://github.com/FlawlessByte/quant-research-mcp quant-research-mcpAfter a PyPI release this shortens to:
claude mcp add quant_research -- uvx quant-research-mcpContainerised:
claude mcp add quant_research -- docker run -i --rm ghcr.io/flawlessbyte/quant-research-mcpFrom a local clone (development): make claude-add registers this checkout at
user scope; make register prints a paste-ready .mcp.json block.
Verify inside Claude Code:
/mcp # should list 'quant_research' as connectedThen ask e.g. "screen the universe and analyze the top name with the hurst
method, then score the entry decision." It will call quant_screen_universe
→ quant_analyze_setup → quant_score_decision.
From source (development)
git clone https://github.com/FlawlessByte/quant-research-mcp
cd quant-research-mcp
make install # uv sync — venv + dependencies
make smoke # list the 13 tools (no network)
make test # 40 offline testsOptional: make install-cli puts a quant-research-mcp binary on your PATH
(via uv tool). If it isn't found afterwards, run uv tool update-shell and
restart your shell. Inspect tool schemas with make inspect.
Releasing (maintainers)
CI runs ruff + the 40 offline tests on every push/PR (Python 3.12 & 3.13). Cutting a release is tag-driven:
# bump version in pyproject.toml + server.json + manifest.json, commit, then:
git tag v0.1.0 && git push origin v0.1.0That fires two workflows:
release.yml→uv build, publish to PyPI via Trusted Publishing (OIDC, no stored token), and attach the wheel/sdist + a.mcpbbundle to the GitHub Release.docker.yml→ build and pushghcr.io/flawlessbyte/quant-research-mcp.
One-time setup:
PyPI: create the project and add a Trusted Publisher (owner
FlawlessByte, repoquant-research-mcp, workflowrelease.yml, environmentpypi).GHCR: after the first push, set the package visibility to public.
MCP registry: after the first PyPI release, list it with the
mcp-publisherCLI —mcp-publisher login githubthenmcp-publisher publish(usesserver.json; GitHub login proves ownership of theio.github.FlawlessByte/…namespace).
The Claude Desktop
.mcpbinvokesuvxunder the hood, so a one-click install still requires uv on the machine — bundling pandas/scipy/statsmodels wheels directly would be large and platform-specific.
Limitations (what a serious trader still needs elsewhere)
Delayed data until you wire a real-time provider key (interface is ready; yfinance is ~15-min delayed and its news feed is thin).
No macro calendar (FOMC/CPI/NFP) — no reliable free feed; pass your own judgement through
news_sentiment/news_confidence.No options data (IV, term structure, gamma levels), no short interest/float, no Level 2 — next frontier.
Backtests are parameter validation, not forecasts: yfinance history has survivorship bias, costs are estimates, intraday replay is capped at ~60 days of 5m bars by the provider.
No persistence by design — the server stores nothing; supply open positions per call (
quant_portfolio_risk). A trade journal is a planned opt-in module.
Available Tools
13 toolsquant_analyze_setupARead-onlyIdempotent
Run a registered method on a ticker to produce a trade setup.
Fetches daily + latest-session intraday data and dispatches to the named method, which returns signal (LONG/SHORT/NO_ENTRY), playbook, regime, and entry/stop/target when actionable.
Args: params (AnalyzeInput): ticker, method_key (default 'hurst_regime_orb'), response_format.
Returns: str: the setup dict (feed it directly to quant_score_decision). Includes signal, playbook, regime, hurst, price, atr_daily, rel_volume, rsi, entry, stop, target, reasons, plus method extras (vwap, or_high, or_low, ema9, ema20). Error string for unknown method or missing data.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description need not reiterate safety. It adds value by disclosing that it fetches daily and intraday data, and that it returns an error string for missing data or unknown methods. This goes beyond the 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 compact and front-loaded with the core purpose. It uses bullet-style Args and Returns sections without unnecessary words. Every sentence contributes to understanding.
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 (one parameter, single operation), the description covers purpose, data fetching, dispatch, return format, and error conditions. Combined with thorough schema and annotations, it is fully sufficient for an agent to 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 description includes an Args section summarizing the three parameters, which mirrors the schema descriptions. With schema descriptions already present for all properties, the description adds minimal extra meaning (e.g., noting defaults). The context signal 'Schema description coverage: 0%' is contradictory to the actual schema; based on actual content, the description does not significantly improve understanding 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 begins with a specific verb+resource: 'Run a registered method on a ticker to produce a trade setup.' It clearly distinguishes from siblings like quant_describe_method (which describes methods) and quant_backtest_method (which backtests). The tool's focus on a single ticker and registered method 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 implies usage for generating a trade setup for a specific ticker and mentions feeding the result to quant_score_decision, suggesting a pipeline. However, it does not explicitly state when not to use this tool versus alternatives like quant_detect_regime or quant_compute_indicators, so no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_analyze_universeARead-onlyIdempotent
Run a universe-based method (ranking or pairs) across multiple tickers.
xs_momentum ranks the universe by 12-1 momentum and marks the top-N book LONG. pairs_cointegration requires exactly 2 tickers and returns one setup per leg with the shared spread statistics (beta, ADF p-value, z-score).
Args: params (AnalyzeUniverseInput): method_key, tickers (defaults to the built-in universe), top_n (ranking methods), response_format.
Returns: str: list of setup dicts (each feedable to quant_score_decision). Error string for unknown/non-universe methods or bad ticker counts.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc., so the description adds value by detailing method-specific behaviors (e.g., xs_momentum ranks by 12-1 momentum, pairs returns spread statistics). This is sufficient and consistent 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?
The description is well-structured with a clear purpose statement, method examples, and an Args/Returns section. No unnecessary repetition, and it is appropriately sized for the tool's complexity.
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 annotations and output schema existence, the description covers all key aspects: method variants, parameter constraints, return structure, error handling, and linking to sibling tool quant_score_decision. It is complete for an AI agent to 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?
The input schema already provides descriptions for all parameters (100% coverage), so the description's summary of args adds marginal value. However, it enriches the parameter context with behavioral details like 'xs_momentum ranks by 12-1 momentum' and 'pairs returns beta, ADF p-value, z-score', enhancing semantic 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 it runs universe-based methods (ranking or pairs) across multiple tickers, with specific examples (xs_momentum, pairs_cointegration) that differentiate it from sibling tools like quant_screen_universe or quant_backtest_method.
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 explains ticker count requirements for each method and error conditions, giving context on when to use. However, it does not explicitly exclude alternatives or clarify when to prefer this tool over siblings, missing an opportunity for clearer guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_backtest_methodARead-onlyIdempotent
Backtest a registered method by replaying its own analyze() over history.
The engines execute the method's live signal logic bar by bar (no separate backtest implementation that could drift). Daily methods replay daily bars with next-open fills and method-specific exits; intraday methods replay each available 5m session (provider-capped to ~60 days); xs_momentum runs a monthly-rebalance portfolio. Costs applied one-way on entry and exit.
Args: params (BacktestInput): method_key, tickers, period, costs_bps, risk_pct, top_n, response_format.
Returns: str: stats (n_trades, win_rate, avg_r/expectancy, profit_factor, max_drawdown_pct, total_return_pct), in-sample/out-of-sample halves, and the last 10 trades. Treat results as PARAMETER VALIDATION, not a forecast — yfinance data is survivorship-prone and costs are estimates.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds significant behavioral context: no separate backtest implementation, costs applied one-way, and the warning about survivorship bias. This goes beyond the annotations and is highly 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 concise and well-structured: a one-line summary followed by behavioral details, then clear 'Args' and 'Returns' sections. Every sentence adds value without redundancy, and the structure aids quick scanning.
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 covers the tool's purpose, mechanics, parameters, return format, and important caveats (survivorship bias, cost estimates). Given the tool has a single complex parameter and an output schema, the description is complete and leaves no critical 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 input schema includes descriptions for all parameters, and the tool description's 'Args' section lists them. The body adds meaning for 'period' (intraday cap) and 'top_n' (xs_momentum only), enhancing understanding beyond schema defaults. Schema coverage is formally 0% but descriptions exist, so baseline is 3 and the added context raises 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 the tool's purpose: 'Backtest a registered method by replaying its own analyze() over history.' It uses a specific verb and resource, and the details (bar-by-bar replay, daily vs intraday) distinguish it from sibling tools like quant_describe_method or quant_list_methods.
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 on when to use the tool by explaining its mechanics (daily bar filling, intraday caps) and includes a caution to treat results as parameter validation. However, it does not explicitly state when not to use it or compare to alternatives, though the uniqueness of the tool makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_check_eventsARead-onlyIdempotent
Upcoming earnings and dividend events for a ticker.
Earnings inside the holding window are the classic binary risk: pass days_to_earnings into quant_score_decision, which vetoes swing/position entries within the configured window (default 3 days) and warns intraday.
Args: params (TickerInput): ticker, response_format.
Returns: str: {next_earnings, days_to_earnings, recent_earnings, ex_dividend}. Fields are null when the provider has no data — treat unknown as risk and check the company's IR page before a swing entry.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, idempotent, and not destructive. The description adds valuable context: it returns upcoming events with null fields, the default window of 3 days, and the risk handling. No contradictions 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?
The description is well-structured with a clear first sentence, usage guidance, and explicit Args/Returns sections. It is efficient and front-loaded, though slightly longer than minimal.
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 purpose and existing annotations/output schema, the description covers purpose, usage, and behavioral nuances. It explains how to use the output with another tool and what to do when data is missing, making it 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?
The input schema already provides descriptions for ticker and response_format. The description lists the same parameters in Args and adds return field names. While schema coverage is indicated as 0%, the schema actually has good descriptions, so the description adds marginal 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 states it provides 'Upcoming earnings and dividend events for a ticker,' specifying the action and resource. It distinguishes this tool from siblings like quant_score_decision by mentioning how to pass days_to_earnings to that 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 tells when to use this tool (to check earnings/dividends before entries) and what to do with the output: pass days_to_earnings to quant_score_decision. It also advises checking the IR page when data is null, giving clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_compute_indicatorsARead-onlyIdempotent
Compute EMA9/EMA20, RSI, ATR, VWAP and the Hurst exponent for a ticker.
Daily series drive Hurst and ATR; the latest intraday session drives VWAP, EMAs and 5m RSI.
Args: params (TickerInput): ticker, response_format.
Returns: str: a dict with price, hurst, atr_daily, and intraday ema9/ema20/ rsi_5m/vwap. Error string if no data.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the tool is clearly safe and non-destructive. The description adds valuable context about data sources (daily series for Hurst/ATR, intraday for VWAP/EMAs/RSI) and error handling ('Error string if no data'), which goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with a clear structure: one-sentence summary, then details on data sources, followed by docstring-style args and returns. Every sentence is informative 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 the complexity (multiple indicators, different timeframes) and the presence of annotations and schema, the description covers the essential behavioral aspects (data sources, return keys) and error behavior. However, it could mention prerequisites like market data availability or whether the ticker must be actively traded.
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% because the description only lists parameter names ('ticker, response_format') without adding any meaning beyond the schema's own descriptions. The schema already documents ticker as a required US equity symbol and response_format with enum, so the description adds negligible 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?
Description explicitly states the tool computes specific technical indicators (EMA9/EMA20, RSI, ATR, VWAP, Hurst exponent) for a ticker, with distinct action and resource. Sibling tools have clearly different purposes (e.g., analyzing setups, screening universes), so no confusion.
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 description of the tool's function (computing indicators), but there is no explicit guidance on when to use this tool versus alternatives like quant_analyze_setup or quant_detect_regime. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_describe_methodARead-onlyIdempotent
Full detail and citation for one registered method.
Args: params (DescribeMethodInput): method_key plus response_format.
Returns: str: the method's name, paper, paper_url, regime_applicability and a prose description of its mechanics. Error string if the key is unknown (call quant_list_methods for valid keys).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. Description adds behavioral details: it returns an error string for unknown keys, and lists the return fields (name, paper, paper_url, regime_applicability, prose description). No contradiction.
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 extremely concise: one sentence plus an Args/Returns section. It front-loads the purpose and every sentence adds meaningful information. No 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?
Given the presence of an output schema, the description appropriately explains the return structure and error behavior. It also cross-references the sibling tool for key discovery. Complete for a read-only lookup tool with clear inputs and outputs.
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 per context, the description mentions the key parameters (method_key, response_format) and the return format. It adds value by explaining how to handle errors and what the output contains, compensating for the noted coverage 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?
Description clearly states 'Full detail and citation for one registered method', specifying verb (get detail), resource (method), and scope (one method, with citation). It distinguishes from sibling tools like quant_list_methods (which lists valid keys) and other analysis 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?
Description explicitly advises to call quant_list_methods for valid keys if the key is unknown, providing guidance on error handling and an alternative tool. It implicitly tells when to use this tool (when you have a valid method_key and need full details).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_detect_regimeARead-onlyIdempotent
Classify a ticker's regime from its daily Hurst exponent.
H >= 0.55 -> TRENDING (momentum edge), H <= 0.45 -> MEAN_REVERTING (fade edge), otherwise RANDOM_WALK (no structural edge).
Args: params (TickerInput): ticker, response_format.
Returns: str: dict with ticker, hurst and regime. Error string if no data.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotations by specifying the threshold logic, return value structure (dict with ticker, hurst, regime), and error handling for missing data. This complements the readOnlyHint and idempotentHint 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 concise and well-structured: a one-line summary, threshold logic, then args and returns. Every sentence adds value 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?
Given the tool's low complexity (one parameter, clear annotations, and an existing output schema), the description sufficiently covers inputs, classification logic, output format, and error conditions. No additional details are necessary for correct usage.
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 good descriptions for the ticker and response_format fields. The description only briefly mentions 'Args: params (TickerInput): ticker, response_format,' adding minimal value beyond the schema. With schema coverage effectively high, 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 states the tool's purpose: classify a ticker's regime from its daily Hurst exponent. It provides specific thresholds and regime labels, distinguishing it from sibling tools like quant_analyze_setup or quant_compute_indicators.
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 explains the classification logic and the conditions for each regime (trending, mean-reverting, random walk), providing clear context. However, it does not explicitly state when not to use this tool or suggest alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_fetch_newsARead-onlyIdempotent
Fetch recent headlines for a ticker. Data only — no sentiment is computed.
The calling agent reads these and forms its own sentiment to pass to quant_score_decision; this tool deliberately does no interpretation.
Args: params (TickerInput): ticker, response_format.
Returns: str: list of headlines, each with title, summary, published, provider. Empty-list message if none found.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint, which the description complements by detailing behavioral traits: 'Data only — no sentiment is computed' and 'deliberately does no interpretation'. It also specifies the return structure (title, summary, published, provider) and empty-list scenario, adding value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with front-loaded main action, a brief behavioral note, and a structured Args/Returns section. Every sentence is informative and none are redundant, achieving good density of useful content.
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, the combination of description, schema, and annotations covers all essential aspects: purpose, usage guidance, parameters, return format, and integration with sibling tools. The mention of an output schema (even if not displayed) further supports 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 descriptions for ticker ('US equity symbol, e.g. NVDA') and response_format ('markdown for human-readable or json for machine-readable'). The description restates these fields but adds no new semantic detail. Since schema coverage is high, 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 opens with 'Fetch recent headlines for a ticker', clearly stating the verb+resource. It further distinguishes itself by explicitly noting it does not compute sentiment, and directs the agent to use quant_score_decision for interpretation, 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 explicitly states when to use this tool: for raw data only, and instructs the agent to form its own sentiment and pass to a sibling tool (quant_score_decision). It also mentions the return format and empty-list handling, providing clear context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_list_methodsARead-onlyIdempotent
List every registered paper-backed trading method.
Args: params (FormatInput): response_format ('markdown'|'json').
Returns: str: methods with key, name, paper citation, paper_url and regime_applicability. JSON returns the full metadata list; markdown is a readable digest. Use this to discover what method_key values are valid for quant_analyze_setup / quant_describe_method.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, destructive=false, idempotent. The description adds details on return fields (key, name, paper citation, etc.) and behavior differences between markdown and JSON formats. 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?
The description is short (6 lines), with a clear first sentence stating purpose, followed by structured Args and Returns sections. Every sentence adds necessary information 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?
Given an output schema exists (not shown but indicated), the description sufficiently explains the return values and references sibling tools. The parameter is well-documented. Slightly deduct for not mentioning pagination or limits, but overall complete for a listing 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 description reiterates the only parameter (response_format) with its enum values and explains how the return format differs between 'markdown' and 'json'. Since the schema description coverage is reported as 0% (though the schema actually includes a description for response_format), the description adds value by linking format choice to output style.
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 'every registered paper-backed trading method', specifying the exact resource. It also distinguishes from siblings by mentioning it provides method_key values for quant_analyze_setup and quant_describe_method.
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 to use this tool to discover valid method_key values for other tools, providing clear usage context. It doesn't explicitly state when not to use it, but the guidance is strong enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_market_contextARead-onlyIdempotent
Index/VIX/sector tape read for the current session.
SPY/QQQ/IWM day % and 20d-EMA side, VIX level and change, the 11 SPDR sector ETFs ranked by day %, and a breadth flag (risk_on when most sectors advance). Use before sizing any intraday trade; trading breakouts against a risk-off tape is the most common ORB failure mode.
Args: params (FormatInput): response_format.
Returns: str: {indexes, vix, sectors (ranked), breadth{risk_on}}.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by specifying the exact output fields and format, but does not introduce behavioral traits beyond what annotations imply.
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 well-structured: a one-sentence overview, a bullet list of content, and usage advice. Every sentence adds value, and the Returns section is 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?
The description covers the output structure and usage context adequately. An output schema exists, so return values are not required. Minor gap: not explaining the breadth flag calculation in more detail, but sufficient for typical 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?
The input schema has one parameter (params) with a description for response_format in the schema. However, the tool description only repeats 'Args: params (FormatInput): response_format' without adding any new meaning. With 0% schema description coverage (as per context signals), the description fails to compensate.
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 'Index/VIX/sector tape read for the current session' and lists specific data like SPY/QQQ/IWM day %, VIX, sector rankings, and breadth flag. This distinguishes it from sibling tools like quant_analyze_setup or quant_detect_regime.
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 advises using this tool 'before sizing any intraday trade' and mentions a common failure mode (trading breakouts against risk-off tape). It does not explicitly state when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_portfolio_riskARead-onlyIdempotent
Stateless portfolio heat / correlation / concentration check.
Pass your open positions (the server stores nothing) and optionally a candidate trade. Returns per-position and total open risk vs the heat limit, pairwise 90d correlation flags, sector concentration, and for the candidate a FITS / REDUCE / REJECT verdict with a recommended risk_pct to feed into quant_score_decision (with portfolio_heat_pct).
Args: params (PortfolioRiskInput): positions [{ticker, direction, entry, stop, shares}], optional candidate {ticker, direction, entry, stop}, equity, response_format.
Returns: str: heat/correlation/concentration analysis dict; candidate verdict when one was supplied.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds valuable context: the tool is stateless (server stores nothing), computes heat/correlation/concentration, and returns a verdict for candidate trades. 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?
The description is front-loaded with a one-line summary, then details usage and returns. The Args and Returns sections are clear. It could be slightly more concise but remains informative and well-organized.
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 (nested objects, output schema exists), the description covers key aspects: statelessness, input requirements, output contents (heat, correlation, concentration, candidate verdict). It also references a sibling tool (quant_score_decision) for downstream 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?
Despite schema description coverage of 0%, the description explains the structure of positions and candidate (e.g., 'positions [{ticker, direction, entry, stop, shares}]'), adding meaning beyond what the schema provides. It also clarifies optionality and the equity 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 verb 'Assess portfolio risk' and the resource 'portfolio heat / correlation / concentration check'. It distinguishes itself from siblings like quant_analyze_setup or quant_backtest_method by focusing on risk evaluation, not analysis or backtesting.
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?
Description explains to pass open positions and optionally a candidate trade, and notes the stateless nature. It references the next step with quant_score_decision, providing context. However, it does not explicitly mention when not to use or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_score_decisionARead-onlyIdempotent
Deterministically score a setup and decide ENTRY / NO_ENTRY.
This is the decision helper: a pure function (no LLM, no network). It combines scientifically-motivated sub-factors — reward:risk, regime strength (|Hurst-0.5|), volume confirmation, RSI positioning and ATR-normalised stop quality — into a 0..1 composite score, gates it against a threshold, applies an optional caller-supplied news-sentiment boost/veto, and returns fixed-fractional position sizing plus a mechanical execution plan. Same inputs always yield the same output.
Args: params (ScoreDecisionInput): setup (from quant_analyze_setup), equity, risk_pct, optional news_sentiment ('bullish'|'bearish'|'neutral') and news_confidence (0..1). The AGENT derives the sentiment from headlines; this tool only consumes it.
Returns: str: dict with verdict (ENTRY|NO_ENTRY), score, threshold, per-factor breakdown, factor_weights, news boost/veto, rationale, position_size (shares, dollar_risk, formula, haircut flag) and, on ENTRY, an execution_plan (entry trigger, order type, stop ladder, profit taking, time stop, abort conditions). 'deterministic': true.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description reinforces deterministic behavior ('Same inputs always yield the same output') and explains internal sub-factors and news veto logic. No contradictions; description adds valuable context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement and separate Args/Returns sections. It front-loads the main action. However, some details (e.g., sub-factor list) could be more concise without losing 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?
Given the tool's complexity, the description covers inputs, outputs, and references to sibling tools. It explains the decision logic and return structure. Missing details like exact threshold or formula are reasonable omissions. The description is complete enough for an agent to understand usage.
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 includes detailed descriptions for all parameters (e.g., setup, equity, risk_pct). The description supplements this by summarizing how parameters combine into a composite score. While schema covers specifics, the description provides a high-level overview that aids 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 verb ('score and decide') and resource ('setup'), with the outcome 'ENTRY / NO_ENTRY'. It distinguishes itself from sibling tools by highlighting it is a pure function and decision helper, avoiding confusion.
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 explains the tool's role as a decision helper and mentions it is a pure function. It provides context on when to use it (after quant_analyze_setup) and how the agent should derive inputs like news sentiment. However, it does not explicitly state when not to use this tool over alternatives, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_screen_universeARead-onlyIdempotent
Rank tickers by intraday tradeability (gap, relative volume, ATR%).
Hard-filters names under $5 or under $50M average daily dollar volume, then scores the rest by 2*|gap%| + rel_volume + 0.5*ATR% and returns the top N.
Args: params (ScreenInput): optional tickers list (defaults to the built-in universe), top_n, response_format.
Returns: str: ranked candidates, each with ticker, price, gap_pct, rel_volume, atr_pct, avg_dollar_volume_m and score. JSON returns a list under 'candidates'; markdown is a ranked table.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by detailing the filtering criteria (under $5 or $50M volume), scoring formula, and output structure, which goes beyond basic 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 concise with two well-organized paragraphs: first explaining purpose and algorithm, second detailing parameters and return. No unnecessary words. Front-loaded with the main 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?
Given the tool's complexity (one complex parameter, annotations present, output schema exists), the description covers the algorithm, filters, scoring, and output format. It lacks edge cases (e.g., empty results) but is sufficient 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?
Input schema has 0% coverage for the top-level 'params' parameter, so the description must compensate. It lists the inner fields (tickers, top_n, response_format) and explains defaults, but the schema itself already provides these details. The added value is moderate.
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 'Rank tickers' and specifies the resource (tickers) with a detailed methodology (intraday tradeability, hard-filters, scoring formula, top N). It distinguishes itself from sibling tools like quant_analyze_universe by focusing on screening with specific metrics.
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 does not provide explicit guidance on when to use this tool versus alternatives. No comparisons to siblings (e.g., quant_analyze_setup, quant_analyze_universe) or statements about 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.
TDQS
Each tool targets a distinct operation: analysis, backtesting, event checking, indicator computation, method description, regime detection, news fetching, method listing, market context, portfolio risk, decision scoring, and universe screening. No two tools have overlapping purposes.
All tools follow a consistent 'quant_verb_noun' pattern (e.g., quant_analyze_setup, quant_screen_universe). The naming is predictable and clear, with no mixing of conventions.
13 tools is well-scoped for a quantitative research server. Each tool serves a necessary function in the workflow, from analysis to risk management, without being bloated or sparse.
The tool set covers the core pipeline: screening, analysis, backtesting, risk assessment, and decision scoring. Minor gaps exist (e.g., no direct data export or charting), but these are not essential for the stated purpose of paper-backed trading research.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Research-only MCP server: turn your AI into a quant research desk — backtests, no trades.
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
MCP server exposing the Backtest360 engine API as tools for AI agents.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables quant research, strategy generation, backtesting, and paper trading from natural language prompts, integrating with AI agents via an MCP server.63
- AlicenseAqualityDmaintenanceAn MCP server that exposes trading analytics — technical indicators, portfolio state, risk metrics, and backtest results — as tools an LLM agent can call.5MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that exposes futures prop firm data and personalized recommendation logic to AI agents like Claude and ChatGPT.
- FlicenseAqualityCmaintenanceMCP server that exposes TradingAgents multi-agent financial research as async tasks, generating research reports and non-executive decisions for LLM hosts without touching trading accounts.7
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FlawlessByte/quant-research-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server