{"id":"mcp","title":"MCP (Model Context Protocol)","description":"Portfolio + Warren MOAT tools for Cursor, Claude Desktop, and compatible clients.","url":"https://trefolio.com/api/docs/mcp","content":{"transport":"HTTP (Streamable HTTP via mcp-handler)","base_url":"https://trefolio.com/api/mcp/user","discovery":"https://trefolio.com/.well-known/mcp.json","auth":{"type":"bearer","token_prefix":"tfp_pat_","token_docs":"https://trefolio.com/api/docs/authentication"},"tools":[{"name":"listPortfolios","description":"Portfolios for the authenticated user.","input":{}},{"name":"listHoldings","description":"Holdings with stored EUR values (optional portfolioId filter).","input":{"portfolioId":"string, optional"}},{"name":"listCash","description":"Cash positions (optional portfolioId filter).","input":{"portfolioId":"string, optional"}},{"name":"getMoatEvaluation","description":"Warren MOAT score (cache or fresh with stock_evaluation quota).","input":{"symbol":"string","fresh":"boolean, optional"}},{"name":"generateMoatNarrative","description":"Warren AI markdown narrative (ai_consult quota).","input":{"symbol":"string, optional","evaluation":"object, optional","language":"string"}},{"name":"listMoatReports","description":"Saved MOAT reports for the user.","input":{"tags":"string[], optional"}},{"name":"screenMoat","description":"Filter cached MOAT universe.","input":{}},{"name":"saveMoatReport","description":"Persist evaluation to user library.","input":{}}],"cursor_example":{"mcpServers":{"trefolio":{"url":"https://trefolio.com/api/mcp/user/mcp","headers":{"Authorization":"Bearer tfp_pat_YOUR_TOKEN_HERE"}}}},"note":"Portfolio tools use stored values. MOAT fresh fetch and AI narrative consume user quotas (same as the web app)."}}