# Connect a client

> Add the Sigil MCP server to Claude Code, Claude Desktop, Cursor, VS Code or any other MCP client with one URL and your API key.

Every client needs the same two things: the server's URL, `https://api.signwithsigil.com/mcp`, and an `Authorization` header with your [API key](/authentication). Create a key for the client first, on the dashboard's [API page](https://www.signwithsigil.com/api).

## Claude Code

Add it with one command:

```bash
claude mcp add --transport http sigil https://api.signwithsigil.com/mcp \
  --header "Authorization: Bearer $SIGIL_API_KEY"
```

To share the setup with a project without committing the key, put it in the project's `.mcp.json` and let each person supply `SIGIL_API_KEY` from their environment:

```json title=".mcp.json"
{
  "mcpServers": {
    "sigil": {
      "type": "http",
      "url": "https://api.signwithsigil.com/mcp",
      "headers": { "Authorization": "Bearer ${SIGIL_API_KEY}" }
    }
  }
}
```

Run `/mcp` inside Claude Code to check that `sigil` is connected and see its tools.

## Claude Desktop

Claude Desktop's configuration file starts local servers, so it reaches a remote server with custom headers through the `mcp-remote` bridge (it needs Node.js). Open **Settings → Developer → Edit Config** and add:

```json title="claude_desktop_config.json"
{
  "mcpServers": {
    "sigil": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.signwithsigil.com/mcp", "--header", "Authorization:${SIGIL_AUTH}"],
      "env": { "SIGIL_AUTH": "Bearer sgk_…" }
    }
  }
}
```

Restart Claude Desktop. The header is passed through an environment variable, without a space after the colon, because some clients split arguments on spaces.

## Cursor

Add it to `~/.cursor/mcp.json` (every project) or `.cursor/mcp.json` (one project):

```json title="mcp.json"
{
  "mcpServers": {
    "sigil": {
      "url": "https://api.signwithsigil.com/mcp",
      "headers": { "Authorization": "Bearer sgk_…" }
    }
  }
}
```

## VS Code

Add it to `.vscode/mcp.json`. With an input, VS Code asks for the key once and stores it securely, so it is never written in the file:

```json title=".vscode/mcp.json"
{
  "inputs": [
    { "type": "promptString", "id": "sigil-key", "description": "Sigil API key", "password": true }
  ],
  "servers": {
    "sigil": {
      "type": "http",
      "url": "https://api.signwithsigil.com/mcp",
      "headers": { "Authorization": "Bearer ${input:sigil-key}" }
    }
  }
}
```

## Other clients

Any client that supports remote MCP servers over **Streamable HTTP** with custom headers works: give it the URL and the `Authorization: Bearer sgk_…` header. A client that can only start local (stdio) servers can use the same `mcp-remote` bridge shown for Claude Desktop.

## Test the connection

The MCP Inspector lets you call each tool by hand:

```bash
npx @modelcontextprotocol/inspector
```

Choose the **Streamable HTTP** transport, enter `https://api.signwithsigil.com/mcp`, add the `Authorization` header with `Bearer sgk_…`, and connect. **List Tools** shows all ten.

Or check the key and plan with a plain request. A working setup answers the `initialize` call with the server's name, `sigil`:

```bash
curl https://api.signwithsigil.com/mcp \
  -H "Authorization: Bearer $SIGIL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'
```

## Troubleshooting

| Symptom | Fix |
|---|---|
| `401` / "Missing, unknown or revoked API key" | The header is missing or the key is wrong. Check for a missing `Bearer ` prefix, or a key that was revoked. |
| `403` / "API and MCP access is part of the Pro and Business plans" | Upgrade the account on the Billing page. |
| The server connects but has no tools | Restart the client; most only read their MCP settings at start-up. |
| Claude Desktop shows the server as failed | Check that Node.js is installed (`npx --version`), then look at the MCP log in Settings → Developer. |
