DocsReference
Connect your AI agent to OpenReach
Connect Claude, ChatGPT, Cursor, Codex or Gemini to the OpenReach MCP server: OAuth or an API key, a setup prompt, skills and the Claude Code plugin.
- Model Context Protocol
- Claude
- ChatGPT
- Claude Code
- Cursor
- Codex
- Gemini CLI
- OpenCode
- Windsurf
OpenReach has an MCP server, so AI agents such as ChatGPT, Claude, Cursor, Codex and Gemini can use everything in the app: find creators and businesses, save lists, run lead searches and manage monitors. Skills add ready-made marketing workflows on top. Setup takes a couple of minutes.
ChatGPT and Claude: sign in with OpenReach
ChatGPT and Claude (on the web and in the desktop app) connect through a custom connector and sign in with your OpenReach account. No API key needed.
Add a connector
ChatGPT: Settings, Apps & Connectors, Advanced settings, turn on Developer mode, then Create. Claude: Settings, Connectors, Add custom connector.
Point it at OpenReach
Name it OpenReach, set the server URL to
https://api.openreach.gg/mcp, and choose OAuth as the authentication. Leave the client ID and secret empty: the connector registers itself.Sign in and allow
A window opens on OpenReach. Sign in if you need to, check what the connector will be able to do, and click Allow. You are sent back and the tools appear.
Connected apps are listed in Settings in OpenReach, where you can disconnect them at once. Access lasts an hour at a time and renews itself; the connector never sees your password or keys. Developer mode and custom connectors depend on your ChatGPT or Claude plan.
Other agents: a setup prompt
Create an API key
In the app, open Settings and create an API key under API keys. It starts with
oreach_and is shown once. Treat it like a password.Put it in an environment variable
Terminal # macOS and Linux: add to ~/.zshrc or ~/.bashrc export OPENREACH_API_KEY="oreach_..." # Windows (PowerShell), saved for new terminals setx OPENREACH_API_KEY "oreach_..."The prompt below never asks for the key in chat, so it stays out of your conversation history.
Paste the setup prompt into your agent
The agent works out what it is, adds the OpenReach server its own way, asks you to reload if needed, and checks the connection with two free calls. It does not create anything or spend during setup. The prompt in Settings in the app is already filled in with your install's address.
Setup prompt Connect yourself to OpenReach, an open-source suite for finding customers, leads and influencers, over MCP. Work through these steps in order and stop at any step that needs me. 1. Check first. Work out which agent you are (for example Claude Code, Claude Desktop, Cursor, VS Code, Codex, Gemini CLI, OpenCode or Windsurf) and whether an MCP server named "openreach" is already set up. If it is and its tools work, go to step 5. If you are ChatGPT, or Claude on the web or in the desktop app, you cannot add servers yourself: tell me to add a custom connector in your settings with the URL https://api.openreach.gg/mcp and OAuth sign-in, which needs no API key, then stop. 2. The key. The connection needs an OpenReach API key, which starts with oreach_. Ask me to create one in the OpenReach app under Settings, API keys, and to store it in an environment variable named OPENREACH_API_KEY. Never ask me to paste the key into this chat, and never write it into a file inside a code repository. 3. Add the server. Add a remote MCP server named "openreach" with: - URL: https://api.openreach.gg/mcp - Transport: streamable HTTP - Header: Authorization: Bearer <value of OPENREACH_API_KEY> Use your own supported way of adding MCP servers, and read the key from the environment variable. If you cannot change your own configuration, tell me exactly what to add and where. Instructions for each agent: https://openreach.gg/docs/mcp 4. Reload. If the openreach tools are not available yet, tell me how to restart or reload you, and stop. 5. Verify, for free. Call whoami and list_projects. Both are free. During setup, do not run any paid lookup, create projects or change settings. 6. Report back in under 120 words: what you set up, whether whoami worked, the projects you found, and three things I could ask you next. Mention that paid lookups show their price first, and that I can give you a spending limit for any request.
Skills and the Claude Code plugin
Skills are written workflows your agent follows, built on the MCP tools. Each one prices paid steps first and keeps to the limit you agree.
| Skill | What it does |
|---|---|
| find-influencers | Creators in your niche on YouTube, TikTok and Instagram, with contacts, shortlisted and saved. |
| find-leads | Businesses on Google Maps that match your pitch, filtered and saved as a lead list. |
| brand-monitor | Where your product is being talked about, and the mentions worth a reply. |
| find-customers | People asking for what you sell, in communities, ranked by intent. |
| community-plan | The subreddits and communities worth being active in, and how to start. |
In Claude Code, the plugin installs the MCP server and all the skills together. It reads your key from OPENREACH_API_KEY and connects to https://api.openreach.gg/mcp; set OPENREACH_MCP_URL to use a self-hosted install instead.
/plugin install openreach --marketplace duckduckdeploy/openreach
# On older Claude Code versions, in two steps:
/plugin marketplace add duckduckdeploy/openreach
/plugin install openreach@openreachThen try /openreach:find-customers. For other agents, connect the server as below and add the skills with the skills command, or copy the folders from plugins/openreach/skills in the repository into your agent's skills folder.
# Any agent that reads SKILL.md files (Claude Code, Codex, OpenCode and others)
npx skills add duckduckdeploy/openreach/plugins/openreach/skillsHow you start a skill depends on the agent: a slash command in some, or just asking ("run the find-leads skill") in others.
Set it up by hand
Every client needs the same three things: the URL https://api.openreach.gg/mcp, the streamable HTTP transport, and the header Authorization: Bearer followed by your key. Field names differ by client:
Claude Code
claude mcp add --transport http openreach https://api.openreach.gg/mcp \
--header "Authorization: Bearer $OPENREACH_API_KEY"Or install the plugin below, which adds the server and the skills together.
Claude Desktop
{
"mcpServers": {
"openreach": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.openreach.gg/mcp",
"--header", "Authorization:Bearer ${OPENREACH_API_KEY}"],
"env": { "OPENREACH_API_KEY": "oreach_..." }
}
}
}Claude Desktop reaches remote servers with keys through the mcp-remote bridge, which needs Node.js. Restart Claude Desktop afterwards.
Cursor
{
"mcpServers": {
"openreach": {
"url": "https://api.openreach.gg/mcp",
"headers": { "Authorization": "Bearer ${env:OPENREACH_API_KEY}" }
}
}
}VS Code (Copilot agent mode)
{
"inputs": [
{ "type": "promptString", "id": "openreach-key", "description": "OpenReach API key", "password": true }
],
"servers": {
"openreach": {
"type": "http",
"url": "https://api.openreach.gg/mcp",
"headers": { "Authorization": "Bearer ${input:openreach-key}" }
}
}
}VS Code asks for the key once and stores it securely.
Codex
[mcp_servers.openreach]
url = "https://api.openreach.gg/mcp"
bearer_token_env_var = "OPENREACH_API_KEY"Gemini CLI
{
"mcpServers": {
"openreach": {
"httpUrl": "https://api.openreach.gg/mcp",
"headers": { "Authorization": "Bearer $OPENREACH_API_KEY" }
}
}
}OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"openreach": {
"type": "remote",
"url": "https://api.openreach.gg/mcp",
"headers": { "Authorization": "Bearer {env:OPENREACH_API_KEY}" }
}
}
}Windsurf
{
"mcpServers": {
"openreach": {
"serverUrl": "https://api.openreach.gg/mcp",
"headers": { "Authorization": "Bearer ${env:OPENREACH_API_KEY}" }
}
}
}Self-hosting? Use your own API address, for example http://localhost:4300/mcp on your computer. See Self-hosting.
Check it works
Ask your agent to call whoami and list_projects. Both are free. If they work, the agent sees all 38 tools, listed with their prices in MCP tools.
Updating
/plugin marketplace update openreach
/reload-pluginsFor skills added with the skills command, run npx skills update. Copied folders: replace them with the latest from the repository. The MCP connection itself never needs updating: new tools appear on their own.
Troubleshooting
| Problem | What to do |
|---|---|
| 401 or "Send an OpenReach API key" | The header is missing or the key is wrong or revoked. Check the variable is set in the environment the agent starts from, and that the header reads Bearer, a space, then the key. |
| The agent does not see the tools | Restart or reload the agent after adding the server; most read their MCP configuration only at start. |
| 405 Method not allowed | The server is stateless and only answers POST. Choose the streamable HTTP transport, not SSE. |
| Variables are not expanded | Some clients start without your shell environment. Put the key in the client’s own env setting, or restart it from a terminal where the variable is set. |
| ChatGPT says the URL is unsafe | Use the full https:// address, and a server reachable from the internet; ChatGPT cannot reach localhost. Self-hosted installs need HTTPS on a public domain. |
| The sign-in window says the request expired | Requests last ten minutes and work once. Start the connection again from the app. |
| A connected app stopped working | If a refresh token is ever used twice, OpenReach ends that connection for safety. Disconnect it in Settings and connect again. |
| cost_ceiling_exceeded | The call could cost more than the limit. Raise max_cost_usd or ask for less, such as fewer pages, communities or grid points. |
REST API
The same key works with the REST API, for scripts and your own tools. Send it in the same Authorization header.