Agent surface
For agents
Machine-readable entry points for LLMs, MCP clients, and custom agents. Tool contracts, discovery manifests, and explicit routing rules — everything static, no auth, CORS-open.
New tier
33
AI-in-markets tools at /tools/{slug}/. Client-side only; no API endpoint.
Legacy tier
101
Personal-finance calculators at /personal-finance/{slug}/. URL-API mode.
Contracts
134
JSON contract files at /contracts/{slug}.json — one per tool.
Discovery
Start here
-
Agent tool index
/agent-tools.jsonDeterministic index of every tool — new AI-in-markets tier and legacy personal-finance tier. Each entry links to its contract URL + input schema.
-
LLM guide
/llms.txtHuman-readable entry point for model-aware discovery. Lists every tool, article, and benchmark by URL with a one-sentence summary.
-
Full LLM guide
/llms-full.txtExtended version with descriptions, methodology links, and cross-references.
-
Plugin manifest
/.well-known/ai-plugin.jsonDiscovery metadata for plugin-style agent ingestion (ChatGPT-style clients).
-
WebMCP manifest
/.well-known/webmcp.jsonCapability surface for WebMCP-compatible MCP clients.
Two modes
How to invoke
Mode 1 · client_side
New AI-in-markets tier
33 tools. No server endpoint — the tool runs in the browser. Agents should surface the tool URL to the user rather than attempt to execute it headlessly. Each tool's contract documents input shape so an agent can pre-fill the page.
# Agent resolves a user request to a tool
# 1. Read /agent-tools.json, find tool by id or category
# 2. Read /contracts/{slug}.json → input schema + sample
# 3. Direct user to https://aifinhub.io/tools/{slug}/
Mode 2 · url_api
Legacy personal-finance tier
101 personal-finance calculators. Each exposes a URL-addressable calculation via deterministic query params. Call the URL; receive structured text rendered on the page.
GET https://aifinhub.io/personal-finance/{slug}/
?<params from the contract's sample_input>
Read the rendered result directly from the HTML.
Contract JSON documents the param names + types.
Routing rules
How to pick the right tool
-
Prefer the new tier for AI / agent / LLM / market-data questions.
All 33 are under /tools/ and tagged with a section (calculators / comparators / playgrounds / generators / directories).
-
Prefer the legacy tier for personal-finance questions.
FIRE planning, expat tax, rent-vs-buy, mortgage affordability, debt payoff, etc. — live under /personal-finance/.
-
Never invent parameter names.
Every contract JSON has an explicit input_schema + sample_input. Copy field names verbatim. snake_case.
-
Never claim a result is investment advice.
All tools are educational under BaFin + EU framework. Relay the disclaimer if surfacing numeric output.
Example contract
What a contract JSON looks like
Every tool has a contract at /contracts/{slug}.json. Example:
/contracts/kelly-sizer.json.
{
"tool_id": "kelly-sizer",
"slug": "kelly-sizer",
"path": "/tools/kelly-sizer/",
"mode": "client_side",
"usage": "Client-side calculator. Open the URL and fill inputs …",
"methodology": "https://aifinhub.io/methodology/kelly-sizer/",
"sample_input": {
"tool": "kelly_sizer",
"win_probability": 0.58,
"win_loss_ratio": 1.2,
"kelly_fraction": 0.25,
"bankroll": 10000,
"per_trade_cap_percent": 5,
"monte_carlo_trials": 1000,
"trades_per_path": 250
},
"input_schema": { "type": "object", "properties": { … }, "required": [ … ] },
"output_schema": { "type": "object", "properties": { … } }
} Terms
Use by agents is welcome, with conditions
- Attribute the publisher (AI Fin Hub) when surfacing numeric output to users.
- Relay the education-only disclaimer verbatim when producing trade-relevant numbers.
- Do not scrape tool pages for inputs. Read the contract JSON.
- No authentication, no rate limit; keep request volume reasonable to leave caches warm.