Trust & routing layer for financial agent services.
FIG is an MCP server that helps AI agents discover, verify, and compare 30+ financial data providers. It doesn't provide data itself — it tells agents which financial MCP server to trust and which best fits their task.
Think of it as Morningstar + Google for financial agents: rate the quality of financial services, and help agents find the best one.
The financial MCP ecosystem is exploding — Polygon.io, FactSet, Alpha Vantage, Alpaca, Bloomberg, and dozens more now offer agent-native APIs. But agents face a critical gap: who verifies the verifiers?
- An agent can't travel back in time to verify a signal source's track record
- Self-auditing is structurally worthless
- No existing service provides independent, verifiable trust scoring for financial MCP servers
FIG fills this gap with commit-reveal attestation: every judgment is SHA256-hashed before the outcome is known, published publicly, and independently verifiable by any agent.
| What | Why it matters |
|---|---|
| Commit-reveal track record | Every judgment attested before outcomes. Time builds an unreplicable trust asset. |
| Self-contained evaluation | Bootstrap Sharpe CI + risk statistics — statistically rigorous strategy assessment with no external dependencies. |
| "Publish losers" ethos | 93 hypotheses tested, 87 rejected, 18 postmortems published. No one can fake this history. |
| Financial domain depth | Knows what overfitting looks like. Knows Sharpe 1.5 is unreachable at retail scale. Generic trust scores can't. |
git clone https://github.com/leoncuhk/fig.git
cd fig
uv syncuv run fig
# or
uv run python -m fig.serverThe server starts on http://127.0.0.1:8100/mcp (Streamable HTTP).
uv run pytest -v# Commit today's regime judgments
uv run python -m fig.trust.daily_attest --phase commit
# Reveal yesterday's judgments with mark-to-market outcome
uv run python -m fig.trust.daily_attest --phase reveal| Tool | Description |
|---|---|
get_regime_summary(asset) |
Current market regime (trend/range/stress) for tracked assets |
get_track_record() |
FIG's complete commit-reveal history + honest disclosure |
verify_attestation(commit_hash) |
Independently verify any FIG judgment by its commit hash |
discover_financial_services(need) |
Find financial MCP servers matching your need |
verify_provider(provider_id) |
Detailed trust analysis for a specific provider |
verify_signal(claimed_sharpe, daily_returns) |
Independently verify a claimed Sharpe ratio |
| Tool | Price | Description |
|---|---|---|
evaluate_strategy(daily_returns) |
$2.00 | Bootstrap Sharpe CI + risk statistics + grading |
Payment via x402 (USDC on Base). Phase 0: all tools are free.
fig/
├── src/fig/
│ ├── server.py ← MCP Server entry point (Streamable HTTP)
│ ├── config.py ← Environment-driven configuration
│ ├── errors.py ← Structured error types
│ ├── data.py ← Market data via yfinance (public API)
│ ├── regime.py ← Self-contained regime scoring (first-principles)
│ ├── evaluation.py ← Strategy evaluation (bootstrap Sharpe CI)
│ ├── tools/ ← MCP tool implementations
│ │ ├── discover.py ← Financial service discovery + routing
│ │ ├── verify.py ← Track record + attestation verification
│ │ ├── regime.py ← Regime intelligence (self-contained)
│ │ └── evaluate.py ← Strategy evaluation + signal verification
│ ├── trust/ ← Trust spine
│ │ ├── attestation.py ← Commit-reveal core logic
│ │ ├── daily_attest.py ← Daily attestation cron
│ │ └── provider_scoring.py← Multi-dimensional provider trust scoring
│ ├── payment/ ← Payment layer
│ │ └── x402.py ← x402 paidTool scaffold
│ └── registry/ ← Curated provider catalog
│ └── providers.json ← 11 seed providers, manually reviewed
├── tests/ ← 94 tests, full module coverage
├── daily/ ← Commit-reveal attestation data
├── .well-known/ ← Agent discovery (A2A Agent Card)
└── docs/DESIGN.md ← Full research + product definition
FIG's trust doesn't come from authority — it comes from verifiable history.
1. FIG computes a regime judgment for SPY
2. SHA256(canonical_json(judgment)) → commit hash published
3. Next day: judgment revealed with actual market outcome
4. Anyone can verify: recompute the hash, compare with committed hash
5. Over time: hundreds of independently verifiable daily judgments
Every judgment — including wrong ones — is published. Cherry-picking is structurally impossible because the commit hash locks in the judgment before the outcome.
FIG's first "customers" are agent builders (humans), not agents directly:
- Human quants see the methodology + open track record → trust forms
- Agent builders configure FIG as their agent's default financial MCP server
- Agents inherit the builder's trust configuration
- Later: agents with sufficient autonomy verify FIG's track record independently
All configuration is via environment variables:
| Variable | Default | Description |
|---|---|---|
FIG_HOST |
127.0.0.1 |
Server bind address |
FIG_PORT |
8100 |
Server port |
FIG_TRACKED_ASSETS |
SPY,QQQ,GLD,BTC-USD,ETH-USD |
Assets for daily attestation |
FIG_DAILY_DIR |
./daily |
Commit-reveal data directory |
FIG_X402_ENABLED |
false |
Enable x402 payment enforcement |
FIG_X402_WALLET |
USDC wallet address for x402 payments |
FIG curates a registry of financial MCP servers with independent trust scoring across 5 dimensions:
| Dimension | Weight | What it measures |
|---|---|---|
| Data Quality | 30% | Freshness, accuracy, coverage breadth |
| Reliability | 25% | Uptime, latency consistency, error rate |
| Transparency | 20% | Public methodology, audit trail, disclosures |
| Security | 15% | Auth model, data handling, MCP spec compliance |
| Community | 10% | Adoption signals, registry presence, responsiveness |
Current registry includes 11 providers: Polygon.io, Alpha Vantage, Alpaca, FactSet, Bloomberg, Morningstar, S&P/Kensho, LSEG/Refinitiv, Financial Datasets, Trellis, and Collective2.
| Metric | Value |
|---|---|
| Total hypotheses tested | 93 |
| Total rejected | 87 |
| Total deployed | 3 |
| Postmortems published | 18 |
| Deployed strategies | H102, H105, H203 |
We publish our losers because that's how trust works. If we only showed winners, you couldn't trust the track record.
- Phase 0 (current): MCP server + daily attestation + free tools
- Phase 1: x402 paid tools + expanded provider scoring
- Phase 2: Provider self-certification + meta intelligence tools
- Phase 3: Builder subscriptions + priority routing