# Titan Frameworks MCP > Live, token-efficient documentation tools for fast-evolving AI frameworks. Titan Frameworks is a Model Context Protocol server. Agents call tools over stdio (Cursor/Claude Desktop) or Streamable HTTP (`POST /mcp`). **Production MCP:** `https://titan-frameworks-production.up.railway.app/mcp` Production HTTP `/mcp` is billed with x402 at **$0.001 USDC on Base** or **1000 drops XRP / 0.001 RLUSD** on XRPL mainnet. ## Endpoints | Method | Path | Price | Auth | | --- | --- | --- | --- | | GET | `/health` | free | none | | GET | `/llms.txt` | free | none | | GET | `/tools` | free | none | | GET/DELETE | `/mcp` | free | none (Streamable HTTP session) | | POST | `/mcp` `initialize` / `ping` / `tools/list` | free | none | | POST | `/mcp` `tools/call` | $0.001 USDC on Base (`eip155:8453`) **or** 1000 drops XRP / RLUSD on XRPL mainnet (`xrpl:0`) | x402 `PAYMENT-SIGNATURE` / `X-PAYMENT` / `X-Payment-Signature` | | GET | `/admin` | private (password login, not a public dashboard) | `ADMIN_SECRET_KEY`. Live: `https://titan-frameworks-production.up.railway.app/admin`. Old `/admin/api/stats` is 404. | Local stdio mode (`npx tsx src/index.ts`) does not charge. ## Pricing - **Tool calls over HTTP `/mcp`:** `0.001` USDC on Base **or** `1000` drops XRP (`0.001` XRP) / RLUSD on XRPL mainnet - **Networks:** Base mainnet (`eip155:8453`) and XRPL mainnet (`xrpl:0`) - **Assets:** USDC `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`, native `XRP`, RLUSD (`524C555344…` + issuer) - **Scheme:** `exact` (x402) - **Production:** billing is live (`X402_ENABLED=true`, `X402_USDC_LIVE=true`, `X402_XRPL_LIVE=true`). Missing payment headers on `tools/call` return HTTP 402 with machine-readable `accepts[]` plus PayAI bazaar / x402scan discovery metadata. Handshake methods stay unpaid. - **Live Base USDC:** PayAI facilitator `https://facilitator.payai.network`. - **Live XRPL:** T54 facilitator `https://xrpl-facilitator-mainnet.t54.ai` (`XRPL_NETWORK=xrpl:0`). ## Tools (JSON Schema) ### search_ai_framework_docs Keyword search over a local Markdown index. Use for concepts or symbols; `hitCount` 0 means no match. Not for stack traces (`diagnose_framework_error`) or copy-paste syntax (`fetch_latest_syntax`). Paid `tools/call`. ```json { "name": "search_ai_framework_docs", "input": { "type": "object", "required": ["framework", "query"], "properties": { "framework": { "type": "string", "enum": ["langchain", "llamaindex", "ollama", "xrpl"] }, "query": { "type": "string" } } }, "output": { "type": "object", "required": ["framework", "query", "hitCount", "hits"], "properties": { "hitCount": { "type": "integer" }, "hits": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string" }, "url": { "type": "string" }, "score": { "type": "number" }, "chunk": { "type": "string" } } } } } } } ``` ### fetch_latest_syntax Curated snippets and migration notes for one topic. Use when writing or migrating code. Unknown topics fall back to related doc chunks. Paid `tools/call`. ```json { "name": "fetch_latest_syntax", "input": { "type": "object", "required": ["framework", "topic"], "properties": { "framework": { "type": "string", "enum": ["langchain", "llamaindex", "ollama", "xrpl"] }, "topic": { "type": "string", "description": "agents | rag | chat | tools | streaming | migration | embeddings" } } } } ``` ### diagnose_framework_error Match a stack trace against known deprecated APIs. Use only when you have an `error_log`; `matched=false` means search next. Paid `tools/call`. ```json { "name": "diagnose_framework_error", "input": { "type": "object", "required": ["framework", "error_log"], "properties": { "framework": { "type": "string", "enum": ["langchain", "llamaindex", "ollama", "xrpl"] }, "error_log": { "type": "string" } } } } ``` ## Indexed frameworks - LangChain (`langchain`) — Python/JS LCEL, agents, LangGraph notes - LlamaIndex (`llamaindex`) — indexes, Settings, query/chat engines - Ollama (`ollama`) — CLI, REST `/api/chat`, Python/JS SDK - XRPL (`xrpl`) — xrpl.js / xrpl-py Client, Wallet, Payments, channels, trustlines, RLUSD, Hooks notes Refresh: nightly in production when the index is older than 24 hours. Local: `npm run index-docs`. ## Agent notes Keep tool arguments short. Responses are already truncated for context windows (top hits, ~1.2k chars/chunk). Prefer `fetch_latest_syntax` before pasting large docs into a prompt.