Skip to main content
This guide takes you from zero to a submitted app in Claude’s Connectors Directory. Apps built on Waniwani have most of the engineering handled (server, tool annotations, assets); your job is to meet one prerequisite, prepare a handful of assets, and walk through the portal.
You submit from your own Claude account. Unlike ChatGPT, where Waniwani can submit on your behalf if you prefer, Anthropic’s in-product portal requires your own Claude Team or Enterprise organization and an Owner of it. Waniwani prepares the server, annotations, assets, and the wording for every field; the final submit happens from your workspace.

Before you start

Submission happens inside claude.ai, not an external form. To reach the portal you need a Team or Enterprise organization (admin settings are not available on individual or Pro plans).
  • Create a Claude Team (or Enterprise) organization at claude.ai.
  • Make sure the person submitting is an Owner or Primary Owner. Only Enterprise orgs can delegate this through a custom role with the Directory management permission; Team plans keep it with Owners.
  • Find the portal at Settings → “Your MCP servers” (Beta) → “Submit a server” (direct link: https://claude.ai/admin-settings/directory/submissions/new).
Once approved, the connector appears at claude.ai/directory for other Claude organizations to install.

What to prepare

The portal is a wizard of about 11 steps (Introduction, Connection, Tools, Listing, Use cases, Company, Authentication, Data handling, Test and launch, Compliance, Review). Your progress is saved in the browser, but you can only have one submission open at a time, so gather everything below before you start.

Production MCP server URL

The submission needs a stable production MCP Server URL over HTTPS.
  1. Go to app.waniwani.ai/mcp and confirm your app is listed.
  2. Use the dropdown next to your app to copy its production MCP URL.

Tool annotations

This is the most common reason for rejection. Annotations must be set in the server code before submission. For managed Waniwani apps they are set for you; see the Tool justification template for what each value means. What Claude enforces:
  • Every tool needs a title plus the correct hint (readOnlyHint: true for reads, destructiveHint: true for writes/deletes). These control Claude’s auto-permission behavior.
  • Read/write separation. A single tool may not combine safe reads (GET/HEAD/OPTIONS) with writes (POST/PUT/PATCH/DELETE). Catch-all tools are rejected.
  • Tool names of 64 characters or fewer, with descriptions that accurately state what the tool does and when it runs (reviewers test against real behavior).
  • Freeform or custom-query tools (that accept caller-built endpoints, query strings, or bodies) must name or link the target API in their description.
  • No prompt-injection-style instructions in descriptions. Describe what the tool does, not how Claude should behave. No hidden, encoded, or behavior-overriding directives.
Put the annotations inside the annotations object, not at the top level. Set annotations.title plus annotations.readOnlyHint: true for read-only tools, or annotations.destructiveHint: true for tools that write or delete. A top-level title alone still trips a “Missing annotations: title” error on the Tools step.

Listing copy

Claude’s character limits differ from ChatGPT’s. Claude listings are much shorter than ChatGPT’s: a tight one-liner plus a sentence or two, not a multi-paragraph blurb. Model yours on live consumer-facing listings with interactive widgets, such as Era Context (“Manage your personal finances using Claude”) or Booking.com (“Find hotels, homes and more”), and note how short the copy is.

Icon

The icon is an optional custom icon URL in the Listing step. Leave it blank and the directory falls back to your MCP server’s favicon.
  • SVG works (verified on a live submission); PNG works too. A square asset renders most consistently.
  • The favicon fallback often renders dark-on-dark and disappears. Set a contrast-safe custom icon URL and preview it with the Check icon button.
  • Design guidance is in the MCP Apps for Claude Figma file.

Screenshots

Most MCP apps ship interactive widgets, so screenshots are required (a tool-only server with no UI skips this step). Hard requirements:
  • Format: PNG (no video or GIF).
  • Width: at least 1000px.
  • Count: 3 to 5 images.
  • Crop to the app response only. Do not include the prompt or Claude’s chat chrome.
  • Aspect ratio: any, kept consistent across the set.
  • Provide the prompt text separately for each screenshot.
  • No separate mobile assets; one batch covers all surfaces.
What to capture:
  • Lead with your highest-value widget state (the populated quote card, the storefront answer, the analytics view), not an empty or loading state.
  • Show populated data using the same fully-populated test account you give reviewers. No lorem ipsum.
  • Use 3 to 5 distinct moments that tell a flow (answer, then personalized quote, then confirmation) rather than near-identical frames.
  • Capture the widget at its natural rendered size so text stays legible at 1000px or wider.
  • Avoid PII or real customer data; use representative seed data.

Public URLs

All three must be live and public at review time.
A missing or incomplete privacy policy is an immediate rejection. Open each URL in a private window to confirm it loads without a login.

Company and contact details

Because you submit from your own org, the listing’s company details are yours, not Waniwani’s.
  • Organization name and details.
  • A primary contact on a working, monitored channel (reviewers may reach out).

The form, step by step

Work through the wizard in order. Two quirks to know up front:
  • Re-selecting the connector resets fields. Re-verify everything after any reconnect.
  • One submission at a time. The wizard behaves like a single session; state is saved in the browser, but you cannot have more than one form submission open at once.

Connection

Paste your production MCP URL. Set URL configuration to Universal URL (everyone connects to the same URL). This is correct in almost every case. Only use Multiple URLs (a fixed list) or URL pattern (a regex, for per-tenant or versioned subdomains) if you are specifically instructed to.

Tools

Tools, prompts, and resources sync automatically from your server URL. If your annotations are set correctly (see What to prepare), this step passes on its own.
The portal reads tools from your cached custom-connector schema. If you change the MCP app, reconnect or refresh the custom connector on claude.ai: open it in another tab and refresh the connector you are submitting for.

Listing

Paste the listing copy you prepared: name, slug, one-liner, description, categories, icon URL, and support URL. Remember the slug is permanent after submission, and preview the icon with the Check icon button.

Use cases

The Use cases step asks for:
  • Primary use cases: the main tasks users accomplish, with a few example prompts.
  • Connection requirements: what accounts, permissions, or setup a user needs before connecting.
  • Read / write capabilities: a radio (Read only / Write only / Read and write).
The read/write radio is validated against your tool annotations. Choosing “Read only” while any tool is annotated as a write or destructive triggers an error. Match it to your tools.

Company

Enter your organization’s details and primary contact (see Company and contact details).

Authentication

In almost every case a Waniwani MCP app needs no authentication, so pick No authentication unless told otherwise.
If your connector accesses private user data, Claude requires OAuth 2.0. The Authentication step offers several modes: OAuth with Dynamic Client Registration (DCR), OAuth with a Client ID Metadata Document (CIMD), OAuth with Anthropic-held client credentials, custom URL/credentials at connection time, and no authentication, plus a “Partial auth” toggle.
  • With DCR (clients self-register, as Waniwani-hosted servers do) there is nothing to register; the form shows it is supported out of the box.
  • For CIMD, Anthropic-held, or static-client modes, register the redirect URI https://claude.ai/api/mcp/auth_callback.

Data handling

  • API ownership: confirm your server calls first-party APIs (or legitimately proxied services). The MCP server domain should match your service domain.
  • Sensitive data: flag any sensitive data your tools touch.
  • External links: declare allowed link URIs (HTTPS origins or custom URI schemes you own). Third-party or unowned schemes are removed during review.

Test and launch

Reviewers must be able to exercise every tool end to end. In most cases no special instructions are needed.
If a test account is required, we recommend stating that one will be provided on request, so you do not need it ready at submission, only when a reviewer asks.
  • Provide fully populated credentials when asked (empty accounts are rejected).
  • Provide step-by-step access instructions detailed enough to reach and run every tool.
  • Confirm every tool runs end to end via MCP Inspector or as a custom connector in Claude.

Compliance

Review and acknowledge all of Anthropic’s policies (the Software Directory Terms and Policy, and the connector directory guidelines).
Anthropic does not support connectors that execute financial asset transfers (money or crypto) or perform AI image, video, or audio generation. Design tools that produce diagrams or charts are fine.

Review and submit

  • Resolve any quality warnings shown on the Review step.
  • Submit.
Submitting does not guarantee a listing.

Common rejection reasons

  • Missing tool titles or annotations.
  • Behavioral instructions embedded in tool descriptions.
  • A missing or incomplete privacy policy.

References

Tool justification template

Lay out every tool’s annotations before you submit.

ChatGPT submission

Listing the same app in the ChatGPT Plugin Store.

After you submit

Drive traffic to your app once it is live.

Connect a client

Add the Waniwani MCP server to Claude, Cursor, or ChatGPT.