---
name: connector-directory
description: Use when the operator asks to use, connect, install, or integrate with a service you are not already connected to, such as "can you use the Stripe connector", "connect my Notion", "install the official Linear plugin", "do you integrate with Figma". This is how you discover a claude.ai directory connector that is not yet loaded for this client, before you deny it or fall back to the generic static-key connector. It searches Anthropic's public connector catalogue by keyword, hands the operator the claude.ai link to enable the one they want, then confirms the connection inherited and proves it with one live read. Discovery is catalogue-driven: any connector in the directory is findable with no per-connector setup here. Not for a connector that already shows as loaded (use it directly) or one that shows as needing authentication (that is the connector-authenticate path, not discovery).
---

# Connector directory

Invoked by the admin agent directly.

claude.ai offers a directory of managed connectors like Stripe, Notion, Linear, Figma, Cloudflare and hundreds more. A connector the operator has already enabled on claude.ai shows up here on its own and you use it directly. This skill is for the other case: the operator asks about a connector that is **not** loaded for this client yet, and you need to find out whether it exists and route the operator to enable it.

Without this skill you can only act on connectors already connected, so you would either deny a real integration or fall back to the generic static-key connector. The connector directory is the catalogue that closes that gap.

## When this applies

The operator asks to use, connect, or install an integration, and `capabilities-here` (or `claude mcp list`) does **not** already list it. Before you tell the operator there is no such integration, and before you reach for the generic static-key connector, search the directory.

## Discover it

The catalogue is a public endpoint. Search it by the operator's keyword:

```sh
curl -s "https://api.anthropic.com/mcp-registry/v0/servers?version=latest&limit=100&visibility=commercial,gsuite,enterprise,health&search=stripe" \
  | python3 -c 'import sys,json
for e in json.load(sys.stdin).get("servers",[]):
    s=e.get("server",{}); m=e.get("_meta",{}).get("com.anthropic.api/mcp-registry",{})
    print(m.get("displayName") or s.get("title"), "|", m.get("oneLiner"))
    print("  enable:", m.get("directoryUrl")); print("  server:", m.get("url"), "| authless:", m.get("isAuthless"), "| tools:", len(m.get("toolNames",[])))'
```

Swap `search=stripe` for the connector the operator named. The fields that matter per match are the display name, the one-line description, the `directoryUrl` (the claude.ai link that enables this exact connector), the server `url`, and the tool count. Running this is also the record of the discovery in the session log, so a later "you missed a connector I asked for" is diagnosable from the transcript.

If the search returns nothing, the connector is not in the directory. Say so plainly and offer the generic static-key connector instead. Do not invent a directory entry or a connector that the search did not return.

If the endpoint itself does not answer, do not deny the request on that basis: point the operator at the directory at `https://claude.ai/code#settings/customize-connectors` and ask them to browse for the connector there.

## Route the enable step to claude.ai

You enable nothing from here. Enabling a directory connector happens on claude.ai, by the operator. Send them the `directoryUrl` from the match and ask them to open it, enable the connector, and complete its sign-in. If a match has no `directoryUrl`, send them to `https://claude.ai/code#settings/customize-connectors` and tell them to choose **Browse connectors** and find it by name. Do not try to render an in-chat connect button; that affordance does not exist here, the claude.ai link is the enable path.

## Confirm it inherited

A connector enabled on claude.ai propagates to this client on its own; there is no step to trigger here. Once the operator says they have enabled it, confirm this client picked it up:

```sh
claude mcp list
```

The connector reads as **Connected** rather than needing authentication. If it still shows as needing authentication, the claude.ai side is not finished or this client needs the one-off per-client authentication, which is the connector-authenticate path, not a directory problem.

## Prove it

Make one live read against the connector and confirm a result comes back: list something, fetch one record, or read one item the connector grants. A read that returns a result is the proof the connector works end to end for this client. A read that fails while `claude mcp list` shows it Connected points at the connector's granted scope; report what the read returned rather than assuming a cause.
