How do I start the OpusDNS MCP Server and what should I watch out for?
Prerequisites
- An OpusDNS account
- An MCP client that supports remote Streamable HTTP (for example Claude Code, Claude Desktop, Claude Web)
- Regular OpusDNS API keys do not work here. Login happens exclusively through OAuth 2.1 in the browser, no key is entered or pasted
There are two endpoints, treated as separate accounts:
- Production:
https://api.opusdns.com/mcp - Sandbox:
https://sandbox.opusdns.com/mcp
See all details here: developers.opusdns.com/mcp-server/connect
Setup per client
Claude Code
claude mcp add --transport http opusdns https://api.opusdns.com/mcp
Then type /mcp, select opusdns, and log in through the browser.
Alternatively, from the shell: claude mcp login opusdns.
By default the connection only applies to the current project. For other scopes:
# for all of your projectsclaude mcp add --transport http --scope user opusdns https://api.opusdns.com/mcp# for the team, creates .mcp.json in the projectclaude mcp add --transport http --scope project opusdns https://api.opusdns.com/mcp
Management:
claude mcp listclaude mcp get opusdnsclaude mcp remove opusdns
Claude Desktop and Claude Web
- Settings, Connectors, add Custom Connector
- Name:
OpusDNS - URL:
https://api.opusdns.com/mcp - Add it, then select "Connect"
- Complete the login in the browser
This requires a paid plan, and on Team or Enterprise accounts an admin approval may also be needed.
Older clients without native remote HTTP
These need a local bridge through the npm package mcp-remote:
{ "mcpServers": { "opusdns": { "command": "npx", "args": ["-y", "mcp-remote", "https://api.opusdns.com/mcp"] } }}
Config file location by system:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
The OAuth login runs on first start, tokens are then cached locally. Deleting the cache directory forces a fresh login.
What to watch out for
-
Production and sandbox are completely separate. Each endpoint needs its own login and has its own domain data, neither one sees the other. In Claude Code, use different names for each, for example
opusdnsandopusdns-sandbox. -
mcp-remoteis a third party package, not maintained by OpusDNS, and it stores access tokens locally on disk. If your client supports native remote HTTP, prefer that instead. -
Write actions always need approval. Anything other than a pure read is blocked before it reaches the API and must be explicitly confirmed. The approval is valid for about 5 minutes only and is bound to the exact request, even a small change invalidates it.
-
Keep data access in mind. The agent can, in principle, access everything your account can reach, including contact data such as name, address, phone number, and email. It is best to only request as much as the specific question needs. OpusDNS itself only logs metadata such as method, path, status, and duration, not domain names or the content of requests and responses. What happens to the data on the side of your chosen AI client is governed by that provider's own terms, not by OpusDNS. Companies subject to GDPR should check, before using production, whether their agreement with the AI provider covers processing of registrant data.
-
Be consistent with sub organizations. When working with reseller structures,
organizationIdmust be passed on every single call, there is no persistent way to switch organizations. This matters especially for bulk operations:bulk_previewandbulk_submitneed the sameorganizationId, otherwise different sets of domains get processed. -
Know the limits. Maximum 1,000 domains per bulk operation, API responses are capped at 512 KiB, and a maximum of 32 concurrent requests per server instance. For larger volumes, narrow the selector and submit multiple batches.
Click here to see practical examples of how to use the OpusDNS MCP Server.