aifinhub

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.json

    Deterministic 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.txt

    Human-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.txt

    Extended version with descriptions, methodology links, and cross-references.

  • Plugin manifest

    /.well-known/ai-plugin.json

    Discovery metadata for plugin-style agent ingestion (ChatGPT-style clients).

  • WebMCP manifest

    /.well-known/webmcp.json

    Capability 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.