The Ops.Tools MCP server exposes DNS, WHOIS, SSL, HTTP analysis, and port scanning as tools your AI agents call directly across monitoring, fraud prevention use cases, and domain research. No SDK, no glue code โ one HTTP endpoint, standard JSON-RPC, and the same trusted data as the REST API.
The Model Context Protocol lets AI assistants call external tools through one standard interface โ the client discovers the tools on its own, no hand-written HTTP client needed. The server speaks Streamable HTTP: every request is a POST of a JSON-RPC 2.0 message to https://api.ops.tools/mcp with Accept: application/json, text/event-stream, and every request authenticates with your API key in the x-api-key header. MCP clients send that header for you โ only add it when calling the endpoint by hand.
One URL and one header work everywhere: https://api.ops.tools/mcp with your API key in x-api-key. Pick the card that matches your client, copy the block, and replace YOUR_API_KEY.
YOUR_API_KEY with a key from Account โ API keys.claude mcp add --transport http ops-tools https://api.ops.tools/mcp --header "x-api-key: YOUR_API_KEY"x-api-key = YOUR_API_KEY.https://api.ops.tools/mcp~/.codex/config.toml โ Codex CLI, the IDE extension, and the ChatGPT desktop app all share it. Verify with codex mcp list.codex mcp add ops-tools --url https://api.ops.tools/mcp# ~/.codex/config.toml โ shared by the Codex CLI, IDE extension, and desktop app
[mcp_servers.ops-tools]
url = "https://api.ops.tools/mcp"
env_http_headers = { "x-api-key" = "OPS_TOOLS_API_KEY" }servers key in .vscode/mcp.json; everything else uses mcpServers.{
"mcpServers": {
"ops-tools": {
"type": "http",
"url": "https://api.ops.tools/mcp",
"headers": { "x-api-key": "YOUR_API_KEY" }
}
}
}Also works with
Sign in and create a key at Account โ API keys. Keys are host-scoped to Ops.Tools โ credentials issued for other products are rejected.
Copy the generated key immediately. Treat it like a password: one key per agent keeps usage attributable, and you can rotate or revoke keys from the same page.
The key travels in the x-api-key header on every request โ never in the URL. For a limited trial without an account, use the key demo-key with a valid TOTP in the x-ct header.
Every session starts with initialize. The result carries the server capabilities and agent instructions โ including the auth and billing contract your agent should respect:
curl -X POST 'https://api.ops.tools/mcp' \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-H 'x-api-key: YOUR_API_KEY' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": { "name": "curl", "version": "1.0" }
}
}'The initialize result announces the server and embeds those instructions for the agent:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "2025-06-18",
"capabilities": { "tools": { "listChanged": false } },
"serverInfo": { "name": "ops-tools", "version": "1.0.0" },
"instructions": "Authenticate with the x-api-key header. Each tool call costs 1 credit except account_whoami and account_usage, which are free. HTTP 402 means the account is out of credits. Only scan assets you are authorized to test."
}
}Then call a tool. Tool calls use the tools/call method โ ask for ops_ssl_check against example.com and the tool returns the certificate window: issuer, validity dates, and daysRemaining until expiry:
curl -X POST 'https://api.ops.tools/mcp' \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-H 'x-api-key: YOUR_API_KEY' \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "ops_ssl_check",
"arguments": { "domain": "example.com" }
}
}'The server responds with the tool result as a JSON payload inside the MCP content block:
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{
"type": "text",
"text": "{\"domain\":\"example.com\",\"port\":443,\"certificate\":{\"subject\":\"CN=example.com\",\"issuer\":\"C=US, O=Let's Encrypt, CN=E5\",\"validFrom\":\"2026-08-30\",\"validTo\":\"2026-11-28\",\"daysRemaining\":18,\"isValid\":true,\"isExpired\":false,\"isSelfSigned\":false},\"chain\":{\"chainLength\":2,\"isValidChain\":true},\"protocols\":[\"TLSv1.3\"],\"cipherSuite\":\"TLS_AES_256_GCM_SHA384\"}"
}
]
}
}The other tools follow the same pattern: ops_dns_lookup for records, ops_whois for registration data, and ops_http_analyze for security headers and grades. Records drive DNS management automation checks; registration data powers lead generation use cases and ownership research.
| Tool | What it returns | Arguments | Cost |
|---|---|---|---|
| account_whoami | Identity probe for the API key: account status plus creditAvailable/creditUsed (remaining credits) | None | Free |
| account_usage | Daily API usage by date and service โ verify billing accounting | None | Free |
| ops_dns_lookup | DNS records for a domain or hostname: A, AAAA, MX, TXT, and more | domain, type (optional) | 1 credit |
| ops_whois | Registrar, registration dates, and name servers for a domain | domain | 1 credit |
| ops_ssl_check | Certificate validity window, daysRemaining, chain health, protocols, and cipher | domain | 1 credit |
| ops_http_analyze | Security headers, grade, and caching/compression behavior for a URL | url | 1 credit |
| ops_port_scanon request | Open TCP ports for a host | host, ports (optional) | 1 credit |
Ops tools are read-only but probe third parties. Only scan assets you are authorized to test โ ops_port_scan is disabled by default and enabled on request.
Each tool call costs 1 credit, with two exceptions: account_whoami and account_usage are free, so point agents at account_whoami first to check creditAvailable/creditUsed and at account_usage to review daily usage before a long run. Usage lands in the same account usage logs as REST calls, and the initialize result carries agent instructions that spell out auth and billing, so well-behaved clients learn the rules on connect.
The account ran out of credits. Teach your agent to stop and surface the top-up link instead of retrying: ops.tools/pricing. Treat it as a billing signal, not a validation failure.
The key is missing, invalid, or issued for another product host. Keys never fall back across hosts โ create an Ops.Tools key from Account โ API keys instead.
https://ops.tools/llms.txt โ A crawl-friendly summary of the product, the MCP endpoint, tools, and billing for LLM clients.https://ops.tools/.well-known/mcp-server-card โ Machine-readable MCP server metadata other clients read to learn what this server offers.No. The Ops.Tools MCP server is hosted at https://api.ops.tools/mcp. You only register the URL and your API key in an MCP client.
Any client that speaks the Streamable HTTP transport: Claude Code, Claude on claude.ai and Desktop, Codex (CLI, IDE extension, and the ChatGPT desktop app), Cursor, VS Code, Windsurf, Cline, Continue, Zed, and SDKs that implement the http server type. The same JSON-RPC 2.0 flow also works over plain curl.
Yes. The demo-key key with a valid TOTP in the x-ct header grants limited, rate-limited trial access to the tools.
The initialize result includes agent instructions describing the API key requirement, the 1-credit cost per tool call, the free account_whoami and account_usage probes, and the 402 out-of-credits signal.
Ops tools probe third parties, so only scan assets you are authorized to test. ops_port_scan is disabled by default and enabled on request.
Create an API key, paste one config block, and your agent can look up any domain or certificate.
1 credit per tool call ยท account_whoami and account_usage are free
A deeper companion article on agent-driven network operations
Guardrails for giving agents domain and network lookup tools
Practical applications for DNS, WHOIS, SSL, and HTTP workflows
Credit packs and subscriptions for agent-driven workloads