MCP proxy that connects Claude Desktop/Code to the OPUS Operator platform
Project description
opus-mcp-proxy
MCP proxy that connects Claude Desktop and Claude Code to the OPUS Operator platform. Tenants authenticate with an API key and get access to operator tools — no IAM credentials, no AWS setup required.
Connection Methods
There are three ways to connect, from most seamless to most portable:
Method 1: Claude Code — Remote HTTP (recommended)
Zero install. Claude Code natively supports remote MCP servers over Streamable HTTP:
claude mcp add --transport http opus-operator https://main.d1nrdsq2gd55ub.amplifyapp.com/api/mcp
Or add to your project's .mcp.json:
{
"mcpServers": {
"opus-operator": {
"type": "http",
"url": "https://main.d1nrdsq2gd55ub.amplifyapp.com/api/mcp",
"headers": {
"Authorization": "Bearer opus_k_..."
}
}
}
}
Method 2: Claude Desktop — Custom Connector (recommended)
Zero install, zero config files. Claude Desktop connects via the Connectors UI:
- Open Claude Desktop
- Go to Settings → Connectors → Add custom connector
- Paste the MCP endpoint URL:
https://main.d1nrdsq2gd55ub.amplifyapp.com/api/mcp - Add your API key as the Bearer token when prompted
- Save and start a new chat
This works because the control plane speaks full MCP Streamable HTTP transport. Anthropic's cloud connects directly to the endpoint.
Method 3: Local stdio proxy via uvx (fallback)
For environments where remote connections are blocked (private networks, firewalls, air-gapped systems), or older Claude Desktop versions without Custom Connector support:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"opus-operator": {
"command": "uvx",
"args": ["opus-mcp-proxy@latest"],
"env": {
"OPUS_API_KEY": "opus_k_...",
"OPUS_CONTROL_PLANE_URL": "https://main.d1nrdsq2gd55ub.amplifyapp.com"
}
}
}
}
Claude Code (if HTTP transport unavailable):
{
"mcpServers": {
"opus-operator": {
"command": "uvx",
"args": ["opus-mcp-proxy@latest"],
"env": {
"OPUS_API_KEY": "opus_k_...",
"OPUS_CONTROL_PLANE_URL": "https://main.d1nrdsq2gd55ub.amplifyapp.com"
}
}
}
}
Environment Variables (Method 3 only)
| Variable | Required | Default | Description |
|---|---|---|---|
OPUS_API_KEY |
Yes | — | Your tenant API key from the Connect page |
OPUS_CONTROL_PLANE_URL |
No | http://localhost:3100 |
URL of the OPUS control plane |
Getting an API Key
- Log into the OPUS control plane dashboard
- Navigate to the Connect page
- Click Generate API Key
- Copy the key (starts with
opus_k_) into your config
Verifying It Works
After configuring your client:
- Restart Claude Desktop (or reload MCP servers in Claude Code)
- Start a new conversation
- Ask: "What tools do you have?"
- Claude should list the OPUS Operator tools available to your tenant
You can also verify the local proxy installation:
opus-mcp-proxy --version
Which Method Should I Use?
| Scenario | Method |
|---|---|
| Claude Code (any version) | Method 1 — Remote HTTP |
| Claude Desktop (current) | Method 2 — Custom Connector |
| Behind corporate firewall | Method 3 — uvx local proxy |
| No Node.js or Python installed | Method 2 — Custom Connector |
| Older Claude Desktop (pre-Connectors) | Method 3 — uvx local proxy |
| Air-gapped / offline network | Method 3 — uvx local proxy |
Troubleshooting
"ERROR: OPUS_API_KEY not set" (Method 3)
The proxy starts without a key (graceful degradation) but requests will fail. Make sure OPUS_API_KEY is set in your config's env block.
"HTTP 401: Unauthorized"
Your API key is invalid or expired. Generate a new one from the Connect page.
"HTTP 403: Forbidden"
Your tenant doesn't have access to the requested tool. Contact your admin to check permissions.
Connection refused / timeout
- Verify the control plane URL is correct and reachable
- Check your network connection and any VPN/proxy settings
- For Custom Connectors: the URL must be publicly reachable (no localhost)
- For
uvx: ensure Python 3.10+ is installed
Claude doesn't show any tools
- Ensure the MCP server name matches exactly
- Check Claude Desktop/Code logs for MCP connection errors
- Restart the client after config changes
- For Custom Connectors: verify TLS certificate is valid (no self-signed)
Development
cd mcp-proxy
pip install -e .
OPUS_API_KEY=test OPUS_CONTROL_PLANE_URL=http://localhost:3100 opus-mcp-proxy --version
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opus_mcp_proxy-0.1.0.tar.gz.
File metadata
- Download URL: opus_mcp_proxy-0.1.0.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bfc737e91a3e59f3c1bd5003a2e24061382809ca3b11557179a512884573474
|
|
| MD5 |
ad73097222da4ac56f4782b8a77581ba
|
|
| BLAKE2b-256 |
d24a3941694696603a4bf884c3dd0b01014bfbddcd38e7026fbaa3114dd97e02
|
File details
Details for the file opus_mcp_proxy-0.1.0-py3-none-any.whl.
File metadata
- Download URL: opus_mcp_proxy-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb5aacefd4d97992b8877a85874d2c581561b81b5e0b51ad66aa1f64b6f12b6d
|
|
| MD5 |
5b7bde4e69bb901b20a80d96d4390e02
|
|
| BLAKE2b-256 |
27f2b8042ebe2cf6d6c9cce174463b3b316667cc996373953e34f4d10b8dacfe
|