{"id":"claude-connectors","title":"Claude Connectors Directory (marketplace)","description":"OAuth requirements, server URL, and submission checklist for listing trefolio in Claude's connector marketplace.","url":"https://trefolio.com/api/docs/claude-connectors","content":{"summary":"Remote MCP server for portfolio reads and Warren MOAT analysis. Listed via Anthropic's Connectors Directory (Claude marketplace).","server_url":"https://trefolio.com/api/mcp/user/mcp","transport":"Streamable HTTP (POST JSON-RPC to /api/mcp/user/mcp)","auth":{"type":"oauth2","authorization_server":"https://user.trefolio.com","protected_resource_metadata":"https://trefolio.com/.well-known/oauth-protected-resource","oauth_callback":"https://claude.ai/api/mcp/auth_callback","oauth_client_id":"claude-mcp","anthropic_held_credentials":"Email mcp-review@anthropic.com with claude-mcp client_id + secret if DCR is unavailable.","pat_alternative":"Cursor and Claude Desktop config file still support `Authorization: Bearer tfp_pat_…` (not accepted in the public directory UI)."},"documentation_url":"https://trefolio.com/docs","privacy_policy_url":"https://trefolio.com/privacy","support_contact":"https://trefolio.com/contact","example_prompts":["List my portfolios and show holdings with stored EUR values.","Run a Warren MOAT evaluation for AAPL and summarize the verdict.","Screen my MOAT universe for scores above 70 in the technology sector."],"tools_read_only":["listPortfolios","listHoldings","listCash","getMoatEvaluation","generateMoatNarrative","listMoatReports","screenMoat"],"tools_write":["saveMoatReport"],"submission_portal":"Claude.ai → Admin settings → Directory (Team/Enterprise) or https://claude.com/docs/connectors/building/submission","review_email":"mcp-review@anthropic.com","prerequisites":["HTTPS server URL","OAuth 401 with WWW-Authenticate resource_metadata on unauthenticated requests","Every tool has title + readOnlyHint or destructiveHint","Public docs + privacy policy URLs","Test account credentials for reviewers"],"troubleshooting":[{"issue":"401 / missing auth / expired OAuth token","resolution":"Reconnect the connector in Claude.ai to refresh the OAuth access token. Unauthenticated MCP requests return 401 with WWW-Authenticate resource_metadata pointing at /.well-known/oauth-protected-resource."},{"issue":"user_not_linked (IdP account not linked to trefolio user)","resolution":"OAuth succeeded on user.trefolio.com but no local trefolio user matches that IdP subject. Sign in once at trefolio.com with the same account, then retry the connector."},{"issue":"MOAT quota errors (quota_exceeded)","resolution":"getMoatEvaluation with fresh=true consumes stock_evaluation quota; generateMoatNarrative consumes ai_consult quota. Omit fresh for cached reads, or upgrade tier when limits are hit."},{"issue":"OAuth callback failures","resolution":"Confirm oauth_callback is https://claude.ai/api/mcp/auth_callback, authorization_server is https://user.trefolio.com, client_id claude-mcp is registered with Anthropic, and CORS preflight (OPTIONS) succeeds on the MCP URL."},{"issue":"PAT vs OAuth confusion","resolution":"Connectors Directory uses OAuth 2.0 only. Claude Desktop config-file MCP uses Authorization: Bearer tfp_pat_… — see /docs/claude-desktop."}]}}