# MCP

> Use SnapAny from Claude Code, Codex and other AI agents

Source: https://platform.snapany.com/docs/mcp

SnapAny ships a hosted **MCP server** (Model Context Protocol, Streamable HTTP). Once it's set up you can just say "extract the video and images from this link" in Claude Code, Codex or Cursor and the agent will call SnapAny — **no code required**. Same API key, same billing as the REST API.

**Endpoint**: `https://api.snapany.com/mcp`

## Before you start

You need an API key first. Two steps:

1. Create a key under [API Keys](https://platform.snapany.com/console/keys), then **claim 50 free credits** in the [console](https://platform.snapany.com/console)
2. Copy that key — it starts with `sk_snapany_`

The `sk_snapany_xxx` in every config below is **a placeholder you must replace with your own real key**. Pasting it as-is won't fail loudly up front, but every call afterwards will.

See [Authentication](https://platform.snapany.com/docs/authentication) for key rotation and limits.

## Claude Code

```bash
claude mcp add --transport http snapany https://api.snapany.com/mcp \
  --header "Authorization: Bearer sk_snapany_xxx"
```

This only applies to **the directory you ran it in**. Add `-s user` to make it available in every project.

## Codex

```toml
# ~/.codex/config.toml
[mcp_servers.snapany]
url = "https://api.snapany.com/mcp"
http_headers = { "Authorization" = "Bearer sk_snapany_xxx" }
```

`~` is your home directory; create the file if it doesn't exist. **Restart Codex** afterwards.

## Generic JSON config (Cursor and others)

Cursor reads `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` in the project root (that project only). For other clients, check their docs for the MCP config file location.

```json
{
  "mcpServers": {
    "snapany": {
      "url": "https://api.snapany.com/mcp",
      "headers": { "Authorization": "Bearer sk_snapany_xxx" }
    }
  }
}
```

**Restart the client** afterwards.

## Verify the connection

In Claude Code, run:

```bash
claude mcp list
```

Seeing `snapany` listed as connected means you're set — `/mcp` inside a session works too. Other clients show the server in their MCP settings panel. **If the five tools below are listed, it's working.**

## Available tools

| Tool                | What it does                                         |
| ------------------- | ---------------------------------------------------- |
| `extract_post`      | Extract media/metadata from a post URL (1 credit)    |
| `extract_playlist`  | Extract one page of a playlist/channel (2 credits)   |
| `transcribe`        | Submit a transcription job (4 credits/min, reserved) |
| `get_transcription` | Poll a transcription result (free)                   |
| `get_docs`          | Read these docs from inside your agent (free)        |

Both extract tools return **direct media links and metadata, not the files themselves**. To actually save something locally, have your agent download the link it got back — most clients can do that directly.

## Credits

New developers can claim 50 free credits in the [console](https://platform.snapany.com/console), and credits **never expire**. Your balance and top-ups live there too; per-call usage is under [Usage](https://platform.snapany.com/console/usage).

When you run out, tools return `Insufficient credits`. Full billing rules are in [Credits & Billing](https://platform.snapany.com/docs/credits).

## Troubleshooting

| Symptom                           | Most likely cause                                                                                                    |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Connection failed / 401           | `sk_snapany_xxx` wasn't replaced with a real key, or the `Bearer ` prefix is missing (note the space after `Bearer`) |
| Config saved but no tools show up | The client wasn't restarted                                                                                          |
| 429 `RATE_LIMITED`                | Rate limited — the quota is shared with the REST API (1,200 requests/minute)                                         |

## Next steps

- [Authentication](https://platform.snapany.com/docs/authentication) — creating and rotating API keys
- [Credits & Billing](https://platform.snapany.com/docs/credits) — the billing model and topping up
- [API Reference](https://platform.snapany.com/docs/api) — full endpoint docs with a try-it console

Try telling your agent: _"Extract this YouTube video and transcribe its audio with speaker labels: https://..."_
