{
  "openapi": "3.1.0",
  "info": {
    "title": "Oddi Forge public API",
    "version": "1.0.0",
    "description": "Read-only, public facts about Oddi Forge ($ODDI), a community token on Solana. For AI assistants and other tools. $ODDI is a community token with no promised value: please don't present it as an investment. Summary for language models: https://oddiforge.com/llms.txt"
  },
  "servers": [{ "url": "https://oddiforge.com" }],
  "paths": {
    "/api/public/facts": {
      "get": {
        "operationId": "getProjectFacts",
        "summary": "Current official facts",
        "description": "Launch status, the only official contract address (once launched), tokenomics, vesting, rewards, safety rules, FAQ and links.",
        "responses": { "200": { "description": "Facts as JSON", "content": { "application/json": { "schema": { "type": "object" } } } } }
      }
    },
    "/api/settings": {
      "get": {
        "operationId": "getSiteSettings",
        "summary": "Launch date, contract, wallets and social links as shown on the site",
        "responses": { "200": { "description": "Settings as JSON", "content": { "application/json": { "schema": { "type": "object" } } } } }
      }
    },
    "/api/team": {
      "get": {
        "operationId": "getTeam",
        "summary": "The AI agents on the team, with their roles",
        "responses": { "200": { "description": "Team as JSON", "content": { "application/json": { "schema": { "type": "object" } } } } }
      }
    },
    "/api/chapters": {
      "get": {
        "operationId": "getChapters",
        "summary": "Waitlist milestones and what they unlock (when enabled)",
        "responses": { "200": { "description": "Chapters as JSON", "content": { "application/json": { "schema": { "type": "object" } } } } }
      }
    },
    "/api/mcp": {
      "post": {
        "operationId": "mcp",
        "summary": "Model Context Protocol server (streamable HTTP, JSON-RPC 2.0)",
        "description": "Read-only tools: get_project_facts, get_faq, get_latest_news, how_to_join, get_team.",
        "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
        "responses": { "200": { "description": "JSON-RPC response" }, "202": { "description": "Notification accepted" } }
      }
    },
    "/feed.xml": {
      "get": {
        "operationId": "getForgeLogFeed",
        "summary": "Blog posts (RSS)",
        "responses": { "200": { "description": "RSS 2.0", "content": { "application/rss+xml": {} } } }
      }
    }
  }
}
