About OpenQFR
OpenQFR is a machine-readable collection of failed quantitative strategy evidence for research agents and quantitative researchers. It provides searchable negative evidence to help assess ideas before running further backtests; it is not investment advice.
Key features
- 01Search failure records
- 02Retrieve individual records
- 03View aggregate statistics
- 04REST and A2A interfaces
- 05Read-only MCP tools
Use cases
- 01Checking whether a strategy idea has failed before
- 02Finding failures associated with a trading symbol
- 03Reviewing records before allocating backtest compute
MCP support
The public Streamable HTTP MCP server provides read-only qfr_search, qfr_get, and qfr_stats tools. A dependency-free stdio adapter is also included.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://openqfr.dev/mcpclaude mcp add --transport http openqfr-dev-openqfr https://openqfr.dev/mcp{"mcpServers":{"openqfr-dev-openqfr":{"type":"http","url":"https://openqfr.dev/mcp"}}}Open in Cursor{"servers":{"openqfr-dev-openqfr":{"type":"http","url":"https://openqfr.dev/mcp"}}}Open in VS Code{"mcpServers":{"openqfr-dev-openqfr":{"type":"http","url":"https://openqfr.dev/mcp"}}}{"mcpServers":{"openqfr-dev-openqfr":{"serverUrl":"https://openqfr.dev/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
3| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | |
| symbol | string | No | |
| generation | string | No | |
| failure_code | string | No |
Details
From the project READMEOpenQFR
OpenQFR is a machine-readable library of failed quantitative strategy evidence. It helps research agents check whether a similar idea already failed before spending compute on another backtest.
QFR records are negative evidence, not investment advice. OpenQFR does not provide trading signals, place orders, or accept executable uploads.
Live endpoints
- REST API:
https://openqfr.dev/api/v1 - QFR records:
https://openqfr.dev/api/v1/failures - Schema:
https://openqfr.dev/schema/qfr/0.1.0 - Next-version schema draft:
https://openqfr.dev/schema/qfr/0.2.0-draft - A2A Agent Card:
https://openqfr.dev/.well-known/agent-card.json - A2A endpoint:
https://openqfr.dev/a2a/v1/message:send
Five-minute REST example
curl -s 'https://openqfr.dev/api/v1/failures?symbol=BTCUSDT&limit=3'
from urllib.parse import urlencode
from urllib.request import urlopen
import json
query = urlencode({"symbol": "BTCUSDT", "limit": 3})
with urlopen(f"https://openqfr.dev/api/v1/failures?{query}") as response:
failures = json.load(response)
print(failures["total"])
A2A example
curl -s https://openqfr.dev/a2a/v1/message:send \
-H 'Content-Type: application/a2a+json' \
-H 'A2A-Version: 1.0' \
--data '{"message":{"messageId":"demo-1","role":"ROLE_USER","parts":[{"data":{"operation":"search","symbol":"BTCUSDT"}}]}}'
Supported operations are search, get, and stats.
MCP
The public, stateless Streamable HTTP endpoint is:
https://openqfr.dev/mcp
It exposes read-only qfr_search, qfr_get, and qfr_stats tools. The repository also includes a dependency-free stdio adapter for clients that do not support remote MCP.
python3 mcp_server.py
Example client configuration:
{
"mcpServers": {
"openqfr": {
"command": "python3",
"args": ["/absolute/path/to/openqfr/mcp_server.py"]
}
}
}
Submission safety
Submission headers and review rules are documented in SUBMISSIONS.md.
Signed submissions are quarantined for review. They must conform to QFR 0.1.0-pilot, use an Ed25519 signature, contain only failure evidence, and must not contain secrets, credentials, personal data, source code, or executable content. Public records are read-only.
Project status
This is an early pilot seeded with 100 BTCUSDT quantitative failure records. The schema may change before 1.0. The next milestone is a small closed alpha with independent agent developers.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.