Connect your agent host

PDFEx speaks MCP over Streamable HTTP, stateless at https://pdfex.io/mcp. Auth is the same API key the REST API uses, so one key covers both surfaces.

Read this before you copy anything

  • Most hosts accept the JSON block below verbatim. Watch the key name — VS Code uses servers and Zed uses context_servers. A block with the wrong key is silently ignored, which is the most common failure here.
  • Saving a config proves nothing about reachability. Every entry has a verify step — run it.
  • Prefer reading the key from an environment variable over pasting it into a file you might commit. Set PDFEX_API_KEY where your host supports that.

The canonical JSON block

{
  "mcpServers": {
    "pdfex": {
      "type": "http",
      "url": "https://pdfex.io/mcp",
      "headers": { "Authorization": "Bearer pdfex_your_key_here" }
    }
  }
}

Header: Authorization · scheme: Bearer · endpoint: https://pdfex.io/mcp

Verification honesty

Of 18 hosts, 7 have their command checked against the tool itself or the vendor's documentation, and 11 are marked not yet verified. Those are best current knowledge — confirm them against the linked docs. No entry here claims to have been run end to end unless it says tested end to end.

One command (no file editing)

These hosts can register the server with a single command. Run the command, then run the verify command — saving a config proves nothing about reachability.

Hermes Agent

command verified2026-09-30

Nous Research's open-source agent framework (CLI, desktop, gateway).

~/.hermes/config.yamlmcp_servers

Install

hermes mcp add

Config

mcp_servers:
  pdfex:
    url: "https://pdfex.io/mcp"
    headers:
      Authorization: "Bearer pdfex_your_key_here"

Verify: hermes mcp list

`hermes mcp add` is a discovery-first wizard; it writes the entry for you. Hermes stores connections as YAML under `mcp_servers`, not JSON. Do not hand-edit the file — a stray indent corrupts it and breaks the running gateway.

Hermes Agent MCP documentation ↗

Pi

command verified2026-09-30

Coding agent CLI by Mario Zechner (@earendil-works/pi).

~/.pi/agent/mcp.jsonmcpServers

Install

pi mcp add pdfex --url https://pdfex.io/mcp --bearer-token-env-var PDFEX_API_KEY

Verify: pi mcp list

`--bearer-token-env-var` is a documented Pi flag that sends `Authorization: Bearer <value of that env var>`, so the key never lands in the file. `pi mcp list` exits non-zero when a server fails — it is a real health check. Use `-l` to scope the server to the current project instead of globally.

Pi MCP documentation ↗

Claude Code

command verified2026-09-30

Anthropic's terminal coding agent.

~/.claude.json (or a project .mcp.json)mcpServers

Install

claude mcp add --transport http pdfex https://pdfex.io/mcp \
  --header "Authorization: Bearer $PDFEX_API_KEY"

Verify: claude mcp list

`--transport http` is required — without it Claude Code assumes a local stdio command. Add `--scope project` to write `.mcp.json` into the repo so a whole team shares it.

Claude Code MCP documentation ↗

Codex CLI

command verified2026-09-30

OpenAI's terminal coding agent.

~/.codex/config.toml[mcp_servers.pdfex]

Install

codex mcp add

Verify: codex mcp list

`codex mcp add` exists but its flag spelling was not confirmed — run `codex mcp add --help` first. Codex reads TOML, so a JSON block will not work; the entry belongs under `[mcp_servers.pdfex]` in `~/.codex/config.toml`.

Codex CLI MCP documentation ↗

Gemini CLI

command verified2026-09-30

Google's open-source terminal agent.

~/.gemini/settings.jsonmcpServers

Install

gemini mcp add pdfex https://pdfex.io/mcp

Verify: gemini mcp list

`gemini mcp add <name> <commandOrUrl>` is confirmed from `--help`. The header flag spelling is not — run `gemini mcp add --help` and add the Authorization header, otherwise the server will answer 401.

Gemini CLI MCP documentation ↗

OpenCode

command verified2026-09-30

Open-source terminal coding agent.

~/.config/opencode/opencode.jsonmcp

Install

opencode mcp add

Verify: opencode mcp list

Note the key is `mcp`, not `mcpServers` — OpenCode uses its own schema. `opencode mcp add` is interactive and will prompt for the URL and header.

OpenCode MCP documentation ↗

OpenClaw

vendor-documented2026-09-30

Self-hosted assistant gateway that connects chat apps to agents.

mcp.servers.pdfex (transport: "streamable-http")

Install

openclaw mcp add pdfex --url https://pdfex.io/mcp \
  --transport streamable-http

Verify: openclaw mcp doctor pdfex --probe

OpenClaw's own docs make the point this matrix is built on: saving a definition proves nothing about reachability — `doctor --probe` does. Also keep the key out of the config literal; OpenClaw asks you to store sensitive headers through its secret mechanism. You can also add it from the Control UI under Settings → MCP.

OpenClaw MCP documentation ↗

GitHub Copilot CLI

not yet verified

GitHub's Copilot agent for the terminal.

Install

copilot mcp add pdfex

Verify: copilot mcp list

A `copilot mcp` subcommand exists, but the add syntax was not confirmed. Run `copilot mcp --help` before trusting this line.

GitHub Copilot CLI MCP documentation ↗

Crush

not yet verified

Charm's terminal-first coding agent.

~/.config/crush/crush.jsonmcp

Install

crush

Verify: crush --help

Crush reads `mcp` entries from its config file. Not confirmed on this machine — check the repo before publishing a command.

Crush MCP documentation ↗

A JSON `mcpServers` block

Every host below accepts a JSON config block. Watch the key name — most use `mcpServers`, but VS Code uses `servers`, and a block with the wrong key is silently ignored.

Claude Desktop

not yet verified

Anthropic's desktop app.

claude_desktop_config.jsonmcpServers

Config

{
  "mcpServers": {
    "pdfex": {
      "type": "http",
      "url": "https://pdfex.io/mcp",
      "headers": { "Authorization": "Bearer pdfex_your_key_here" }
    }
  }
}

Verify: Restart the app; the pdfex tools appear in the tool picker.

Reachable from Settings → Developer → Edit Config. Restart the app after editing — it reads this file only at startup.

Claude Desktop MCP documentation ↗

Cursor

not yet verified

AI code editor.

~/.cursor/mcp.jsonmcpServers

Config

{
  "mcpServers": {
    "pdfex": {
      "type": "http",
      "url": "https://pdfex.io/mcp",
      "headers": { "Authorization": "Bearer pdfex_your_key_here" }
    }
  }
}

Verify: Settings → MCP shows pdfex connected with its tools listed.

A project-scoped `.cursor/mcp.json` is also honoured, which is the better choice for a shared repo.

Cursor MCP documentation ↗

Windsurf

not yet verified

Codeium's AI code editor.

~/.codeium/windsurf/mcp_config.jsonmcpServers

Config

{
  "mcpServers": {
    "pdfex": {
      "type": "http",
      "url": "https://pdfex.io/mcp",
      "headers": { "Authorization": "Bearer pdfex_your_key_here" }
    }
  }
}

Verify: Cascade panel → MCP servers lists pdfex.

Windsurf also has an in-app MCP settings UI that edits this same file.

Windsurf MCP documentation ↗

Cline

not yet verified

Autonomous coding agent as a VS Code extension.

cline_mcp_settings.jsonmcpServers

Config

{
  "mcpServers": {
    "pdfex": {
      "type": "http",
      "url": "https://pdfex.io/mcp",
      "headers": { "Authorization": "Bearer pdfex_your_key_here" }
    }
  }
}

Verify: The MCP Servers panel shows pdfex as connected.

Cline offers a remote-server form in its UI, which is less error-prone than editing the JSON.

Cline MCP documentation ↗

Roo Code

not yet verified

VS Code coding agent (Cline fork).

mcp_settings.jsonmcpServers

Config

{
  "mcpServers": {
    "pdfex": {
      "type": "http",
      "url": "https://pdfex.io/mcp",
      "headers": { "Authorization": "Bearer pdfex_your_key_here" }
    }
  }
}

Verify: MCP Servers tab in the Roo Code panel shows pdfex connected.

Same shape as Cline, different file location. Prefer the UI's remote-server form.

Roo Code MCP documentation ↗

VS Code (Copilot Chat)

not yet verified

GitHub Copilot Chat inside VS Code.

.vscode/mcp.jsonservers

Config

{
  "servers": {
    "pdfex": {
      "type": "http",
      "url": "https://pdfex.io/mcp",
      "headers": { "Authorization": "Bearer pdfex_your_key_here" }
    }
  }
}

Verify: Command Palette → “MCP: List Servers” shows pdfex running.

THE TRAP: VS Code uses the key `servers`, not `mcpServers`. A block copied from Cursor or Claude Desktop is silently ignored here. This is the single most common copy-paste failure in this matrix.

VS Code (Copilot Chat) MCP documentation ↗

The host's own config file

These hosts do not use the JSON `mcpServers` shape. Copy the block for the host you are configuring, not the canonical one.

Continue

not yet verified

Open-source IDE assistant (VS Code / JetBrains).

~/.continue/config.yamlmcpServers

Config

mcpServers:
  - name: pdfex
    type: http
    url: https://pdfex.io/mcp
    headers:
      Authorization: "Bearer pdfex_your_key_here"

Verify: The Continue sidebar lists the pdfex tools.

Continue's YAML takes a LIST of servers, not a map — note the leading `-`. Its JSON form (`config.json`) uses a map like everyone else.

Continue MCP documentation ↗

Goose

not yet verified

Block's open-source local agent.

~/.config/goose/config.yamlextensions

Config

extensions:
  pdfex:
    type: streamable_http
    uri: https://pdfex.io/mcp
    headers:
      Authorization: "Bearer pdfex_your_key_here"

Verify: `goose` starts and lists pdfex among its extensions.

Goose calls MCP servers “extensions” and spells the transport `streamable_http` with an underscore, and the URL field `uri` not `url`. Three differences from every other host — copy from here, not from the canonical block.

Goose MCP documentation ↗

Zed

not yet verified

Collaborative code editor.

~/.config/zed/settings.jsoncontext_servers

Config

{
  "context_servers": {
    "pdfex": {
      "source": "custom",
      "command": https://pdfex.io/mcp,
      "args": []
    }
  }
}

Verify: Zed's agent panel lists the pdfex tools.

Zed uses the key `context_servers`, not `mcpServers` — another silent-ignore trap. Newer Zed builds support remote HTTP servers directly; consult the docs, since this schema has been changing.

Zed MCP documentation ↗

Something not listed?

Any host that supports Streamable HTTP MCP servers with custom headers will work. Use the canonical JSON block above, or point it at https://pdfex.io/mcp with a Authorization header. If your host only supports stdio servers, it cannot talk to a hosted endpoint directly — use the REST API instead, or the guide at /llms-full.txt.