> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waniwani.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit to the Claude Connectors Directory

> How to list your Waniwani-built MCP app in Claude's Connectors Directory: the Team/Enterprise prerequisite, what to prepare in advance, and a step-by-step walkthrough of the in-product submission portal.

This guide takes you from zero to a submitted app in Claude's [Connectors Directory](https://claude.com/docs/connectors/building/submission). 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.

<Warning>
  **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.
</Warning>

## Before you start

Submission happens inside [claude.ai](https://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](https://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](https://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](https://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](/platform/guides/templates/tool-justification) 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.

<Warning>
  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.
</Warning>

### Listing copy

Claude's character limits differ from ChatGPT's.

| Field           | Requirements                                                | Notes                                                                                                                                         |
| --------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**        | Your connector's display name                               | Max 100 characters. Short, recognizable, on-brand.                                                                                            |
| **Slug**        | URL identifier, prefilled from the name                     | **Permanent after submission.** Lowercase letters, numbers, and hyphens only.                                                                 |
| **One-liner**   | A short phrase describing function and value                | Max 200 characters (the form calls this "One-liner"). Avoid marketing language.                                                               |
| **Description** | What the app does and why users value it. Appears publicly. | Max 2,000 characters. Factual, user-centric, no hype.                                                                                         |
| **Categories**  | The 1 to 5 categories matching your primary function        | The label is **Financial Services** (not "Finance"). Insurance or health apps may also fit **Consumer Health** or **Health & Life Sciences**. |
| **Icon**        | Optional custom icon URL                                    | A URL field, not a file upload. SVG and PNG both work. Preview with the **Check icon** button.                                                |

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](https://www.figma.com/community/file/1597641111449594397/mcp-apps-for-claude).

### 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.

| Asset                    | Requirement                                                                                                                          |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| **Documentation URL**    | Public setup and usage docs, live by submission. A help-center article, a blog post, or a page in these docs all work.               |
| **Privacy Policy URL**   | A live, publicly accessible HTTPS page covering what data is collected, why, who sees it, retention, user control, and contact info. |
| **Support URL or email** | A monitored support channel. Required in the Listing step.                                                                           |

<Warning>
  A missing or incomplete privacy policy is an immediate rejection. Open each URL in a private window to confirm it loads without a login.
</Warning>

### 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](#tool-annotations)), this step passes on its own.

<Accordion title="Redeploying the app does not refresh the tools">
  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.
</Accordion>

### Listing

Paste the [listing copy](#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).

<Warning>
  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.
</Warning>

### Company

Enter your organization's details and primary contact (see [Company and contact details](#company-and-contact-details)).

### Authentication

In almost every case a Waniwani MCP app needs **no authentication**, so pick *No authentication* unless told otherwise.

<Accordion title="Rare case: the app needs user authentication">
  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`.
</Accordion>

### 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.

<Accordion title="Rare case: a test account is 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.
</Accordion>

### Compliance

Review and acknowledge all of Anthropic's policies (the Software Directory Terms and Policy, and the connector directory guidelines).

<Note>
  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.
</Note>

### 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

* [Submitting to the Connectors Directory](https://claude.com/docs/connectors/building/submission)
* [Pre-submission checklist and review criteria](https://claude.com/docs/connectors/building/review-criteria)
* [Connectors Directory FAQ](https://support.claude.com/en/articles/11596036-anthropic-connectors-directory-faq)
* [Submission portal](https://claude.ai/admin-settings/directory/submissions/new)

<CardGroup cols={2}>
  <Card title="Tool justification template" icon="shield-check" href="/platform/guides/templates/tool-justification">
    Lay out every tool's annotations before you submit.
  </Card>

  <Card title="ChatGPT submission" icon="store" href="/platform/guides/chatgpt">
    Listing the same app in the ChatGPT Plugin Store.
  </Card>

  <Card title="After you submit" icon="chart-line" href="/platform/guides/post-submission">
    Drive traffic to your app once it is live.
  </Card>

  <Card title="Connect a client" icon="plug" href="/mcp-server/connect">
    Add the Waniwani MCP server to Claude, Cursor, or ChatGPT.
  </Card>
</CardGroup>
