{"slug": "how-to-submit-your-mcp-server-to-anthropic-s-connector-directory-from-someone-it", "title": "How to Submit Your MCP Server to Anthropic's Connector Directory (From Someone Who Did It)", "summary": "A developer who built an MCP server for QRflows submitted it to Anthropic's official Connector Directory and documented the process. The submission form requires server basics, connection details, tool annotations, documentation, privacy compliance, and test account information. Missing tool annotations reportedly cause about 30% of all directory rejections, and the review process requires Streamable HTTP transport protocol, PKCE with S256, and separate read/write tools.", "body_md": "A practical guide based on real submission experience — what the form asks, what reviewers check, and what I got wrong the first time.\n\nI built an MCP server for [QRflows](https://qrflows.app) — a dynamic QR code platform. After the server was live and working, I submitted it to Anthropic's official Connector Directory. The review is ongoing, but the process taught me things I couldn't find documented anywhere in one place.\n\nThis post covers the full submission process as it stands in mid-2026: what the form actually asks, the technical requirements that can silently kill your review, and how to prepare so you don't spend a week backtracking.\n\nWhen your MCP server is not in the directory, users have to:\n\nThat's four steps with a copy-paste. Most non-developer users won't do it.\n\nOnce your server is in the directory, users just find you in the list, click Connect, and authorize. Same OAuth flow — but the friction disappears. The directory is also how Anthropic surfaces integrations to Claude Pro and Team users who never look at developer docs.\n\nFor a SaaS product, that's a significant distribution channel.\n\nThe directory accepts three types:\n\n`.mcpb`\n\nbundle for Claude DesktopQRflows is a remote MCP server. The form and required assets differ by type, so confirm which one you're submitting before you start.\n\nThe form is at `claude.com/docs/connectors/building/submission`\n\n. It's not short.\n\nHere's what each section covers so you can prepare everything before you open it:\n\n**1. Server basics** — name, tagline, server URL, connector type (remote / desktop / MCP App), primary use cases in 2–3 sentences.\n\n**2. Connection details** — transport protocol (must be Streamable HTTP, SSE is no longer accepted), auth type, read/write capabilities, whether your OAuth callback URL is registered.\n\n**3. Tools & resources** — list every tool with a human-readable title, confirm annotations are in place, confirm read and write tools are separate, confirm tool names are ≤ 64 chars.\n\n**4. Documentation** — public docs URL (a single help page or blog post is enough), minimum 3 example prompts that exercise different tools, setup and auth steps. You can share a private staging link with Anthropic during review if docs aren't public yet.\n\n**5. Privacy & compliance** — privacy policy URL, data handling summary (what you collect, how long you keep it, who you share it with), confirmation of HTTPS and Origin-header validation.\n\n**6. Test account & branding** — login credentials for a test account with realistic sample data, server logo (URL or SVG), favicon. For MCP Apps only: 3–5 PNG screenshots at min 1000px wide.\n\nEvery tool needs two things: a `title`\n\nand the right safety hint.\n\n```\n// Read-only tool\nserver.tool(\n  \"list_qr_codes\",\n  \"List all QR codes in the account.\",\n  schema,\n  handler,\n  {\n    title: \"List QR Codes\",\n    readOnlyHint: true,\n    destructiveHint: false,\n  }\n);\n\n// Write tool\nserver.tool(\n  \"create_qr\",\n  \"Create a new dynamic QR code.\",\n  schema,\n  handler,\n  {\n    title: \"Create QR Code\",\n    readOnlyHint: false,\n    destructiveHint: false,\n  }\n);\n\n// Destructive tool — be explicit\nserver.tool(\n  \"delete_qr\",\n  \"Permanently delete a QR code.\",\n  schema,\n  handler,\n  {\n    title: \"Delete QR Code\",\n    readOnlyHint: false,\n    destructiveHint: true,\n  }\n);\n```\n\nMissing annotations reportedly cause around 30% of all directory rejections. The other mistake: don't bundle read and write into one generic tool. A tool called `api_request`\n\nwith a `method`\n\nparameter accepting `GET`\n\n, `POST`\n\n, `PATCH`\n\n, `DELETE`\n\nwill fail review. Split them.\n\nFor the browser-based Claude (claude.ai), register exactly this redirect URI:\n\n[https://claude.ai/api/mcp/auth_callback](https://claude.ai/api/mcp/auth_callback)\n\nClaude Code uses a loopback redirect on `localhost`\n\nwith an ephemeral port. If you want to support Claude Code users, your auth server needs to accept loopback redirects with the port ignored.\n\nPKCE with `S256`\n\nis required. Your authorization server metadata should declare:\n\n```\n{\n  \"code_challenge_methods_supported\": [\"S256\"]\n}\n```\n\nPlain OAuth 2.0 without PKCE won't pass.\n\nYour MCP server must validate the `Origin`\n\nheader and reject requests not coming from Claude. This is a security requirement, not optional.\n\n``` js\n// Cloudflare Workers example\nconst origin = request.headers.get(\"Origin\");\nif (origin !== \"https://claude.ai\") {\n  return new Response(\"Forbidden\", { status: 403 });\n}\n```\n\nClaude uses this to discover your authorization server. Host it at `/.well-known/oauth-protected-resource`\n\n:\n\n```\n{\n  \"resource\": \"https://mcp.qrflows.app\",\n  \"authorization_servers\": [\"https://qrflows.app\"],\n  \"scopes_supported\": [\"qr:read\", \"qr:write\"]\n}\n```\n\nIf this endpoint is missing, Claude can't complete OAuth discovery and the connector won't authenticate.\n\nAnthropic wants docs that let a reviewer test your connector in 10 minutes without prior knowledge of your product.\n\nThe minimum:\n\nFor QRflows I created [qrflows.app/mcp](https://qrflows.app/mcp) as the dedicated docs page. A single well-organized page is enough.\n\nCreate a separate account — not your main production account. Load it with realistic sample data. Write down the credentials before you open the form.\n\nFor QRflows I created a test account with 6–7 QR codes of different types (URL, WiFi, vCard, Smart Rules) so reviewers could test `list_qr_codes`\n\n, `get_qr_stats`\n\n, and `update_qr_url`\n\nwith real data.\n\nIf your tools operate on empty state, reviewers can't tell if they work or are broken.\n\nAnthropic is upfront: they can't promise to review or respond to every submission individually because of volume. The typical timeline they cite is ~2 weeks, but it can run longer.\n\nMy submission has been in review for about a month. No response yet — from what I can tell that's within the normal range given submission volume right now.\n\nWhile you're waiting: your server is already usable as a custom connector. Share the URL, write about it, put it in your docs. The directory listing is a distribution multiplier, not a prerequisite.\n\n**Read the submission guide before building.** Once I had the full list of requirements, I realized I was missing the Protected Resource Metadata endpoint and had to add it after the fact. Twenty minutes of reading upfront would have saved two hours.\n\n**Load the test account before submitting.** I initially created a test account with no data. Reviewers testing `list_qr_codes`\n\nwould have seen an empty array with no way to tell if the tool worked.\n\n**Write docs first.** The form asks for a public docs URL. If you don't have it ready, you have to pause. Write the docs page before you open the form.\n\n`https://mcp.qrflows.app/mcp`\n\n`claude.com/docs/connectors/building/submission`\n\n*I'll update this post when the review completes — approved or not. Happy to answer questions in the comments.*", "url": "https://wpnews.pro/news/how-to-submit-your-mcp-server-to-anthropic-s-connector-directory-from-someone-it", "canonical_source": "https://dev.to/qrflows/how-to-submit-your-mcp-server-to-anthropics-connector-directory-from-someone-who-did-it-143m", "published_at": "2026-06-03 17:14:21+00:00", "updated_at": "2026-06-03 17:42:23.443525+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "ai-infrastructure", "ai-agents", "ai-startups"], "entities": ["Anthropic", "Claude", "QRflows", "Connector Directory", "MCP"], "alternates": {"html": "https://wpnews.pro/news/how-to-submit-your-mcp-server-to-anthropic-s-connector-directory-from-someone-it", "markdown": "https://wpnews.pro/news/how-to-submit-your-mcp-server-to-anthropic-s-connector-directory-from-someone-it.md", "text": "https://wpnews.pro/news/how-to-submit-your-mcp-server-to-anthropic-s-connector-directory-from-someone-it.txt", "jsonld": "https://wpnews.pro/news/how-to-submit-your-mcp-server-to-anthropic-s-connector-directory-from-someone-it.jsonld"}}