Scored quant-finance paper corpus. Free search tools plus x402 pay-per-call premium tools.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Aggregate questions about the corpus (how many papers disclose a Sharpe ratio / report a backtest / have code, the highest or lowest reported Sharpe, annual return or drawdown, averages, top-N, optionally in an asset class, since a year, net of costs) are answered exactly from the database with the papers linked (engine: sql). Otherwise a retrieval-augmented answer: the question is searched semantically over every paper page, guide and tool, and a language model answers ONLY from the retrieved pages, citing them as markdown links. Returns the answer text plus a sources array of {title, url, kind}. Scores quoted in the answer come from the page text; verify with get_paper. Metered (retrieval + generation): 5 calls per minute and a daily budget; when exhausted, use semantic_search / search_papers.
A natural-language question about quant-finance research.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http research-corpus https://thequant.space/mcp
Aggregate questions about the corpus (how many papers disclose a Sharpe ratio / report a backtest / have code, the highest or lowest reported Sharpe, annual return or drawdown, averages, top-N, optionally in an asset class, since a year, net of costs) are answered exactly from the database with the papers linked (engine: sql). Otherwise a retrieval-augmented answer: the question is searched semantically over every paper page, guide and tool, and a language model answers ONLY from the retrieved pages, citing them as markdown links. Returns the answer text plus a sources array of {title, url, kind}. Scores quoted in the answer come from the page text; verify with get_paper. Metered (retrieval + generation): 5 calls per minute and a daily budget; when exhausted, use semantic_search / search_papers.
| Argument | Type | Description |
|---|---|---|
| question* | string | A natural-language question about quant-finance research. |
{
"type": "object",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"maxLength": 2000,
"description": "A natural-language question about quant-finance research."
}
}
}Side-by-side comparison of 2 to 10 corpus papers on methodology, datasets, transaction-cost treatment, out-of-sample validation, reproducibility and reported performance. Each cell is labelled author-reported or platform-classified and unknown values are explicit. Paid tool: $0.10 USDC per call via x402 v2 (solana). A call without payment returns a payment-required result.
| Argument | Type | Description |
|---|---|---|
| paper_ids* | array | |
| dimensions | array | Dimensions to compare; all six when omitted. |
{
"type": "object",
"title": "compare_quant_research input",
"required": [
"paper_ids"
],
"properties": {
"paper_ids": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "arXiv id such as \"2511.08571\", \"arXiv:2511.08571v2\", an arxiv.org URL, or \"ssrn-<n>\"."
},
"maxItems": 10,
"minItems": 2,
"uniqueItems": true
},
"dimensions": {
"type": "array",
"items": {
"enum": [
"methodology",
"datasets",
"transaction_costs",
"out_of_sample_validation",
"reproducibility",
"reported_performance"
]
},
"default": [
"methodology",
"datasets",
"transaction_costs",
"out_of_sample_validation",
"reproducibility",
"reported_performance"
],
"maxItems": 6,
"minItems": 1,
"description": "Dimensions to compare; all six when omitted.",
"uniqueItems": true
}
},
"description": "Compare 2 to 10 corpus papers across selected dimensions. Paper ids are normalised (arXiv URL/prefix/version stripped); ids that normalise to the same paper are rejected; the order of paper_ids does not matter.",
"additionalProperties": false
}Totals: papers, with code, average scores, counts by quadrant, by year (with average rigor) and by paper type, and the last update date.
No arguments.
{
"type": "object",
"properties": {}
}Typed neighbourhood of a topic, method, paper, book or author in the quant knowledge graph, with stable ids, deterministic ordering, per-edge provenance and an explicit verified or inferred flag. Depth up to 3, up to 100 nodes. Paid tool: $0.02 USDC per call via x402 v2 (solana). A call without payment returns a payment-required result.
| Argument | Type | Description |
|---|---|---|
| entity_id* | string | Slug or id: topic/method slug ("market-microstructure", "topic:market-microstructure"), paper id ("2511.08571", "paper:2511.08571"), book id ("bw_...", "be_...") or slug, author id ("bp_...") or slug. |
| max_depth | integer | |
| max_nodes | integer | |
| entity_type* | any | |
| relationships | array | Kinds of neighbours to traverse: books (book and edition nodes), authors, papers, topics, methodologies (method nodes). All when omitted. |
{
"type": "object",
"title": "explore_quant_knowledge_graph input",
"required": [
"entity_type",
"entity_id"
],
"properties": {
"entity_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Slug or id: topic/method slug (\"market-microstructure\", \"topic:market-microstructure\"), paper id (\"2511.08571\", \"paper:2511.08571\"), book id (\"bw_...\", \"be_...\") or slug, author id (\"bp_...\") or slug."
},
"max_depth": {
"type": "integer",
"default": 2,
"maximum": 3,
"minimum": 1
},
"max_nodes": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"entity_type": {
"enum": [
"topic",
"book",
"author",
"paper",
"method"
]
},
"relationships": {
"type": "array",
"items": {
"enum": [
"books",
"authors",
"papers",
"topics",
"methodologies"
]
},
"default": [
"books",
"authors",
"papers",
"topics",
"methodologies"
],
"maxItems": 5,
"minItems": 1,
"description": "Kinds of neighbours to traverse: books (book and edition nodes), authors, papers, topics, methodologies (method nodes). All when omitted.",
"uniqueItems": true
}
},
"description": "Traverse the quant knowledge graph around one entity.",
"additionalProperties": false
}Source-grounded literature review for a quantitative-finance research question: ranked relevant papers, optional books, methodological comparison, supporting and contradictory evidence, limitations and open questions. Every claim cites corpus sources. Paid tool: $0.25 USDC per call via x402 v2 (solana). A call without payment returns a payment-required result.
| Argument | Type | Description |
|---|---|---|
| max_papers | integer | |
| include_books | boolean | Also list relevant books (catalogue metadata only). |
| output_format | any | markdown adds a rendered `markdown` field next to the structured sections. |
| research_question* | string | Plain-language question of 10 to 500 characters; runs of whitespace are collapsed. |
| include_contradictory_evidence | boolean |
{
"type": "object",
"title": "generate_quant_literature_review input",
"required": [
"research_question"
],
"properties": {
"max_papers": {
"type": "integer",
"default": 10,
"maximum": 15,
"minimum": 1
},
"include_books": {
"type": "boolean",
"default": false,
"description": "Also list relevant books (catalogue metadata only)."
},
"output_format": {
"enum": [
"json",
"markdown"
],
"default": "json",
"description": "markdown adds a rendered `markdown` field next to the structured sections."
},
"research_question": {
"type": "string",
"maxLength": 500,
"minLength": 10,
"description": "Plain-language question of 10 to 500 characters; runs of whitespace are collapsed."
},
"include_contradictory_evidence": {
"type": "boolean",
"default": true
}
},
"description": "Generate a source-grounded literature review for a quantitative-finance research question from the corpus.",
"additionalProperties": false
}Full Markdown text of one guide or learning path by slug (from list_guides), e.g. deflated-sharpe-ratio, evaluate-ml-trading-paper, score-guide.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string"
}
}
}Full record for one paper by arXiv id (e.g. 2409.01234), SSRN id (ssrn-1234567) or arXiv URL: abstract, summary, the written 'why this score' rationale, the Mermaid research flowchart, all labels, and five related papers.
| Argument | Type | Description |
|---|---|---|
| paper_id* | string |
{
"type": "object",
"required": [
"paper_id"
],
"properties": {
"paper_id": {
"type": "string"
}
}
}Titles, slugs and one-line descriptions of the ~70 guides on evaluating, reproducing and operationalizing quant research, plus the learning paths (sequenced reading orders). Use get_guide for the text.
| Argument | Type | Description |
|---|---|---|
| query | string | Optional substring to filter titles and descriptions. |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional substring to filter titles and descriptions."
}
}
}The 14 method hubs (econometrics-time-series, stochastic-calculus, deep-learning, reinforcement-learning, ...) with description, counts, rigor share and the slugs of the guides that teach each method's evaluation pitfalls.
No arguments.
{
"type": "object",
"properties": {}
}The 17 topic hubs with slug, description, paper count, share of papers with rigor >= 7, and URLs. Use the slug as the topic filter in search_papers.
No arguments.
{
"type": "object",
"properties": {}
}Search and filter the 5,000+ scored quant-finance papers. Returns compact records (scores, quadrant, topics, methods, authors, summary, paper_url, page_url) plus the total match count. Combine filters; use min_rigor 7 for credible empirical work; set has_code true for reproducible papers. Reported performance (sharpe, annual_return_pct, max_drawdown_pct, sample_start/end, transaction_costs, out_of_sample) is included when the paper discloses a backtest: filter with has_sharpe / min_sharpe and sort by sharpe or annual_return to answer 'how many papers disclose a Sharpe' or 'highest reported return' questions (use total for counts). Execution-realism flags (tcost_modeled, oos_method, data_resolution, evaluation_type) say whether trading results are net of costs and validated out of sample; empirical_rigor is capped at 6.0 when they are not (empirical_rigor_raw keeps the uncapped score). Follow up with get_paper for the abstract, score rationale and flowchart.
| Argument | Type | Description |
|---|---|---|
| q | string | Free-text search over title, abstract, keywords and authors (terms are ANDed). |
| sort | string | Default: relevance when q is given, otherwise hub_score. sharpe / annual_return / drawdown sort by the paper's reported figures (papers without one last). |
| type | string | Paper type from the classifier. |
| asset | string | Asset-class slug: equities, crypto, derivatives, fixed-income, commodities-energy, fx, credit, insurance, macro-multi-asset, esg-climate, private-markets, real-estate. |
| limit |
Meaning-based (vector + keyword hybrid) search over the full text of every paper page, practitioner guide, learning path, calculator and post, via Cloudflare AI Search. Use it for natural-language questions ("does momentum survive transaction costs in crypto?") or when search_papers' exact keyword matching finds nothing. Returns pages with a relevance score, a snippet of the best-matching chunk and, for papers, the scores and labels. No filters beyond kind; for structured filtering use search_papers. Metered upstream: at most 25 results per call, and a daily budget; when it is exhausted the tool says so and search_papers keeps working.
| Argument | Type | Description |
|---|---|---|
| q* | string | Natural-language query. |
| kind | string | Restrict to one page kind. |
| limit | integer | |
| rewrite | boolean | Let the service rewrite the query for retrieval first (one extra model call). |
| min_score | number | Drop matches below this relevance score. |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"maxLength": 300,
"description": "Natural-language query."
},
"kind": {
"enum": [
"paper",
"guide",
"path",
"tool",
"post",
"page"
],
"type": "string",
"description": "Restrict to one page kind."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1
},
"rewrite": {
"type": "boolean",
"default": false,
"description": "Let the service rewrite the query for retrieval first (one extra model call)."
},
"min_score": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Drop matches below this relevance score."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 11, 2026.
| integer |
| order | string |
| since | string | Earliest paper date, YYYY-MM-DD. |
| topic | string | Topic-hub slug, e.g. market-microstructure. See list_topics. |
| until | string | Latest paper date, YYYY-MM-DD. |
| author | string | Author name substring. |
| method | string | Method slug, e.g. deep-learning. See list_methods. |
| offset | integer |
| has_code | boolean | Only papers with (true) or without (false) a public code link. |
| max_math | number |
| min_math | number |
| quadrant | string |
| max_rigor | number |
| min_rigor | number |
| has_sharpe | boolean | Only papers that disclose (true) a Sharpe ratio for their own strategy. |
| max_sharpe | number |
| min_sharpe | number | Reported Sharpe ratio at least this. |
| oos_method | string | Out-of-sample validation; one or more of: holdout, walk-forward, cross-validation, none, unclear. |
| has_backtest | boolean | Only papers that report (true) or do not report (false) a backtest of their own strategy on real market data. |
| max_drawdown | number | Reported maximum drawdown (%) at most this. |
| rigor_capped | boolean | Only papers whose Empirical Rigor was (true) or was not (false) capped at 6.0 for missing transaction costs or out-of-sample testing. |
| tcost_modeled | string | Transaction costs applied to the reported results; one or more (comma-separated) of: yes, partial, no, n/a, unclear. |
| data_resolution | string | Finest market data used; one or more of: l2-book, tick, intraday-bars, daily, weekly-monthly, synthetic, none, unclear. |
| evaluation_type | string | Headline empirical result; one or more of: trading-pnl, execution-cost, forecast-accuracy, pricing-calibration, none. |
| min_annual_return | number | Reported annualized return (%) at least this. |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Free-text search over title, abstract, keywords and authors (terms are ANDed)."
},
"sort": {
"enum": [
"hub_score",
"rigor",
"math",
"date",
"sharpe",
"annual_return",
"drawdown",
"relevance"
],
"type": "string",
"description": "Default: relevance when q is given, otherwise hub_score. sharpe / annual_return / drawdown sort by the paper's reported figures (papers without one last)."
},
"type": {
"enum": [
"empirical",
"theoretical",
"methodological",
"survey-review",
"perspective-policy",
"dataset-benchmark",
"software-tool"
],
"type": "string",
"description": "Paper type from the classifier."
},
"asset": {
"type": "string",
"description": "Asset-class slug: equities, crypto, derivatives, fixed-income, commodities-energy, fx, credit, insurance, macro-multi-asset, esg-climate, private-markets, real-estate."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"order": {
"enum": [
"desc",
"asc"
],
"type": "string"
},
"since": {
"type": "string",
"description": "Earliest paper date, YYYY-MM-DD."
},
"topic": {
"type": "string",
"description": "Topic-hub slug, e.g. market-microstructure. See list_topics."
},
"until": {
"type": "string",
"description": "Latest paper date, YYYY-MM-DD."
},
"author": {
"type": "string",
"description": "Author name substring."
},
"method": {
"type": "string",
"description": "Method slug, e.g. deep-learning. See list_methods."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 1000,
"minimum": 0
},
"has_code": {
"type": "boolean",
"description": "Only papers with (true) or without (false) a public code link."
},
"max_math": {
"type": "number",
"maximum": 10,
"minimum": 0
},
"min_math": {
"type": "number",
"maximum": 10,
"minimum": 0
},
"quadrant": {
"enum": [
"Holy Grail",
"Street Traders",
"Lab Rats",
"Philosophers"
],
"type": "string"
},
"max_rigor": {
"type": "number",
"maximum": 10,
"minimum": 0
},
"min_rigor": {
"type": "number",
"maximum": 10,
"minimum": 0
},
"has_sharpe": {
"type": "boolean",
"description": "Only papers that disclose (true) a Sharpe ratio for their own strategy."
},
"max_sharpe": {
"type": "number",
"maximum": 50,
"minimum": -10
},
"min_sharpe": {
"type": "number",
"maximum": 50,
"minimum": -10,
"description": "Reported Sharpe ratio at least this."
},
"oos_method": {
"type": "string",
"description": "Out-of-sample validation; one or more of: holdout, walk-forward, cross-validation, none, unclear."
},
"has_backtest": {
"type": "boolean",
"description": "Only papers that report (true) or do not report (false) a backtest of their own strategy on real market data."
},
"max_drawdown": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Reported maximum drawdown (%) at most this."
},
"rigor_capped": {
"type": "boolean",
"description": "Only papers whose Empirical Rigor was (true) or was not (false) capped at 6.0 for missing transaction costs or out-of-sample testing."
},
"tcost_modeled": {
"type": "string",
"description": "Transaction costs applied to the reported results; one or more (comma-separated) of: yes, partial, no, n/a, unclear."
},
"data_resolution": {
"type": "string",
"description": "Finest market data used; one or more of: l2-book, tick, intraday-bars, daily, weekly-monthly, synthetic, none, unclear."
},
"evaluation_type": {
"type": "string",
"description": "Headline empirical result; one or more of: trading-pnl, execution-cost, forecast-accuracy, pricing-calibration, none."
},
"min_annual_return": {
"type": "number",
"description": "Reported annualized return (%) at least this."
}
}
}