{"openapi":"3.1.0","info":{"title":"Vedang Vatsa Research Hub API (veda.ng)","version":"1.0.0","description":"Public machine interfaces for veda.ng: research paper search backed by OpenAlex, an MCP server over Streamable HTTP, and syndication feeds. No authentication required.","contact":{"name":"Vedang Vatsa","email":"vatsvedang@gmail.com","url":"https://veda.ng/meeting"}},"servers":[{"url":"https://veda.ng"}],"paths":{"/api/reports/search":{"get":{"operationId":"searchReports","summary":"Search 233,000+ indexed AI/Web3 academic papers (OpenAlex-backed).","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2},"description":"Search keywords."},{"name":"corpus","in":"query","schema":{"type":"string","enum":["ai","web3"],"default":"ai"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"responses":{"200":{"description":"Search results with citation counts.","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"url":{"type":"string"},"date":{"type":"string"},"category":{"type":"string"},"type":{"type":"string"},"citations":{"type":"integer"}}}},"total":{"type":"integer"},"page":{"type":"integer"},"perPage":{"type":"integer"}}}}}},"502":{"description":"Upstream OpenAlex error."}}}},"/feed.xml":{"get":{"operationId":"getRssFeed","summary":"RSS feed of essays.","responses":{"200":{"description":"RSS 2.0 XML document.","content":{"application/rss+xml":{}}}}}},"/sitemap.xml":{"get":{"operationId":"getSitemap","summary":"Sitemap of every public URL.","responses":{"200":{"description":"XML sitemap.","content":{"application/xml":{}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"Structured content index for LLMs.","responses":{"200":{"description":"Plain text index.","content":{"text/plain":{}}}}}},"/.well-known/mcp":{"post":{"operationId":"mcpRpc","summary":"MCP Streamable HTTP endpoint (JSON-RPC 2.0): initialize, tools/list, tools/call.","description":"Stateless MCP server supporting protocol versions 2025-06-18, 2025-03-26, 2024-11-05. Site index: https://veda.ng/llms.txt","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string","enum":["initialize","ping","tools/list","tools/call","notifications/initialized"]},"params":{"type":"object"}},"required":["jsonrpc","method"]}}}},"responses":{"200":{"description":"JSON-RPC result or error.","content":{"application/json":{}}},"202":{"description":"Notification accepted; no body."},"400":{"description":"Unsupported Mcp-Protocol-Version."},"405":{"description":"GET/DELETE not supported for this stateless server."},"406":{"description":"Accept header must include application/json or text/event-stream."},"415":{"description":"Content-Type must be application/json."}}},"get":{"operationId":"mcpDescriptor","summary":"Endpoint descriptor (HTTP 405 with JSON metadata; use POST for JSON-RPC).","responses":{"405":{"description":"Server descriptor explaining POST usage.","content":{"application/json":{}}}}}}},"x-mcp-tools":{"search_essays":{"summary":"Search long-form essays by Vedang Vatsa on AI agents, AI policy, and Web3. Matches against titles and summaries.","description":"MCP tool exposed via JSON-RPC 2.0 tools/call at https://veda.ng/.well-known/mcp.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string","const":"tools/call"},"params":{"type":"object","properties":{"name":{"type":"string","const":"search_essays"},"arguments":{"type":"object","properties":{"query":{"type":"string","description":"Keywords to search for, e.g. \"stablecoin regulation\"."}},"required":["query"]}},"required":["name"]}},"required":["jsonrpc","id","method","params"]}}}},"responses":{"200":{"description":"JSON-RPC response containing tool output as text content.","content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"type":["string","number"]},"result":{"type":"object"}}}}}}}},"get_essay":{"summary":"Fetch the full Markdown text of one essay by its URL slug, e.g. \"agentstack\".","description":"MCP tool exposed via JSON-RPC 2.0 tools/call at https://veda.ng/.well-known/mcp.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string","const":"tools/call"},"params":{"type":"object","properties":{"name":{"type":"string","const":"get_essay"},"arguments":{"type":"object","properties":{"slug":{"type":"string","description":"Essay slug (the path segment after veda.ng/)."}},"required":["slug"]}},"required":["name"]}},"required":["jsonrpc","id","method","params"]}}}},"responses":{"200":{"description":"JSON-RPC response containing tool output as text content.","content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"type":["string","number"]},"result":{"type":"object"}}}}}}}},"search_glossary":{"summary":"Search the AI & Web3 glossary (100+ terms). Returns term names, slugs, and definition previews.","description":"MCP tool exposed via JSON-RPC 2.0 tools/call at https://veda.ng/.well-known/mcp.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string","const":"tools/call"},"params":{"type":"object","properties":{"name":{"type":"string","const":"search_glossary"},"arguments":{"type":"object","properties":{"query":{"type":"string","description":"Keywords to search for, e.g. \"rollup\"."},"limit":{"type":"number","description":"Maximum number of terms to return (1-25, default 8)."}},"required":["query"]}},"required":["name"]}},"required":["jsonrpc","id","method","params"]}}}},"responses":{"200":{"description":"JSON-RPC response containing tool output as text content.","content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"type":["string","number"]},"result":{"type":"object"}}}}}}}},"get_glossary_term":{"summary":"Fetch the full Markdown definition of one glossary term by its slug, e.g. \"zk-rollup\".","description":"MCP tool exposed via JSON-RPC 2.0 tools/call at https://veda.ng/.well-known/mcp.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string","const":"tools/call"},"params":{"type":"object","properties":{"name":{"type":"string","const":"get_glossary_term"},"arguments":{"type":"object","properties":{"slug":{"type":"string","description":"Glossary term slug."}},"required":["slug"]}},"required":["name"]}},"required":["jsonrpc","id","method","params"]}}}},"responses":{"200":{"description":"JSON-RPC response containing tool output as text content.","content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"type":["string","number"]},"result":{"type":"object"}}}}}}}},"search_reports":{"summary":"Search 233,000+ indexed academic papers via OpenAlex in the AI or Web3 corpus, sorted by citations.","description":"MCP tool exposed via JSON-RPC 2.0 tools/call at https://veda.ng/.well-known/mcp.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string","const":"tools/call"},"params":{"type":"object","properties":{"name":{"type":"string","const":"search_reports"},"arguments":{"type":"object","properties":{"query":{"type":"string","description":"Search keywords."},"corpus":{"type":"string","enum":["ai","web3"],"description":"Corpus to search (default ai)."},"per_page":{"type":"number","description":"Results to return (1-20, default 10)."}},"required":["query"]}},"required":["name"]}},"required":["jsonrpc","id","method","params"]}}}},"responses":{"200":{"description":"JSON-RPC response containing tool output as text content.","content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string"},"id":{"type":["string","number"]},"result":{"type":"object"}}}}}}}}},"x-discovery":{"llms_txt":"https://veda.ng/llms.txt","sitemap":"https://veda.ng/sitemap.xml","rss":"https://veda.ng/feed.xml","mcp_endpoint":"https://veda.ng/.well-known/mcp"}}