{
  "markdown": "# ProbeOps MCP Server\n\n[![npm version](https://img.shields.io/npm/v/@probeops/mcp-server.svg)](https://www.npmjs.com/package/@probeops/mcp-server)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/badge/Node.js-%3E%3D18-green.svg)](https://nodejs.org)\n[![MCP](https://img.shields.io/badge/MCP-Compatible-purple.svg)](https://modelcontextprotocol.io)\n\nMCP server for running infrastructure diagnostics from 6 global regions. SSL checks, DNS lookups, ping, whois, port checks, traceroute, latency tests, and more — each executed simultaneously from US East, US West, EU Central, Canada, India, and Australia.\n\n**Works instantly — no API key required.** Run `npx @probeops/mcp-server` and get 11 diagnostic tools with 10 free calls per day. Add an API key to unlock all 21 tools, 6 regions, and higher limits.\n\nWorks with **Claude Code**, **Codex**, **Cursor**, **Windsurf**, **Cline**, and any [Model Context Protocol](https://modelcontextprotocol.io) compatible client.\n\n## Quick Start\n\n### Option 1: Try It Now (No API Key)\n\n**Claude Code:**\n```bash\nclaude mcp add probeops -- npx -y @probeops/mcp-server\n```\n\n**Codex:**\n```bash\ncodex mcp add probeops -- npx -y @probeops/mcp-server\n```\n\n**Cursor / Windsurf / Cline** (add to `.mcp.json` or your client's MCP config):\n```json\n{\n  \"mcpServers\": {\n    \"probeops\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probeops/mcp-server\"]\n    }\n  }\n}\n```\n\nThat's it. You get 11 tools with 10 calls per day and 2 probe regions — no signup, no configuration.\n\n### Option 2: Full Access (Free API Key)\n\nSign up at [probeops.com](https://probeops.com) and create an API key from the dashboard. Then add it to your config:\n\n**Claude Code:**\n```bash\nclaude mcp add probeops -e PROBEOPS_API_KEY=your-key -- npx -y @probeops/mcp-server\n```\n\n**Codex** (add to `~/.codex/config.toml`):\n```toml\n[mcp_servers.probeops]\ncommand = \"npx\"\nargs = [\"-y\", \"@probeops/mcp-server\"]\n\n[mcp_servers.probeops.env]\nPROBEOPS_API_KEY = \"your-api-key-here\"\n```\n\n**Cursor / Windsurf / Cline:**\n```json\n{\n  \"mcpServers\": {\n    \"probeops\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@probeops/mcp-server\"],\n      \"env\": {\n        \"PROBEOPS_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n## Demo Mode vs Full Access\n\n|  | **Demo Mode** (no key) | **Free Tier** (with key) | **Professional** |\n|--|----------------------|------------------------|-----------------|\n| Tools | 11 | 21 | 21 |\n| Calls per day | 10 | 100 | 5,000 |\n| Regions per call | 2 | 4 | 6 |\n| Geo-proxy browsing | — | 3 hours/day | 10 hours/day |\n| Setup time | 0 min | 2 min | 2 min |\n\n## What You Get\n\n21 infrastructure diagnostic tools, each running from up to 6 regions simultaneously. Plus geo-proxy browsing and account management.\n\nEvery diagnostic tool call returns per-region results and a quota footer showing remaining usage.\n\n### Diagnostic Tools (14)\n\n| Tool | What it does | Example input |\n|------|-------------|---------------|\n| `ssl_check` | SSL/TLS certificate validity, expiry, issuer, TLS version, SANs, cross-region consistency | `{ \"domain\": \"example.com\" }` |\n| `dns_lookup` | DNS record lookup (A, AAAA, CNAME, MX, TXT, NS, SOA, CAA, PTR) with multi-region propagation check | `{ \"domain\": \"example.com\", \"record_type\": \"MX\" }` |\n| `is_it_down` | Website up/down/partial status from multiple regions | `{ \"url\": \"https://example.com\" }` |\n| `latency_test` | HTTP latency (TTFB) from multiple regions, returns min/avg/max | `{ \"target\": \"example.com\" }` |\n| `traceroute` | Network path tracing with per-hop latency. TCP, UDP, or ICMP | `{ \"target\": \"example.com\", \"protocol\": \"tcp\" }` |\n| `port_check` | Port open/closed/filtered check from multiple regions | `{ \"target\": \"example.com\", \"port\": 443 }` |\n| `ping` | ICMP ping with packet loss and round-trip times | `{ \"target\": \"8.8.8.8\" }` |\n| `whois` | Domain registration info: registrar, dates, nameservers | `{ \"domain\": \"example.com\" }` |\n| `nmap_port_check` | Check multiple ports open/closed using nmap (not a full scan) | `{ \"target\": \"example.com\", \"ports\": \"80,443\" }` |\n| `tcp_ping` | TCP-level latency to a specific port (works when ICMP is blocked) | `{ \"target\": \"example.com\", \"port\": 443 }` |\n| `keyword_check` | Check if a keyword exists on a web page from multiple regions | `{ \"url\": \"https://example.com\", \"keyword\": \"pricing\" }` |\n| `websocket_check` | WebSocket endpoint connectivity check | `{ \"url\": \"wss://example.com/ws\" }` |\n| `banner_grab` | Service banner/version detection on a port | `{ \"target\": \"example.com\", \"port\": 22 }` |\n| `api_health` | API endpoint health check (HTTP status, response time, availability) | `{ \"url\": \"https://api.example.com/health\" }` |\n\n### DNS Shortcuts\n\nThese call `dns_lookup` with a preset `record_type` so you don't have to remember record type names:\n\n| Tool | Equivalent to |\n|------|--------------|\n| `mx_lookup` | `dns_lookup` with `record_type: \"MX\"` |\n| `txt_lookup` | `dns_lookup` with `record_type: \"TXT\"` |\n| `ns_lookup` | `dns_lookup` with `record_type: \"NS\"` |\n| `cname_lookup` | `dns_lookup` with `record_type: \"CNAME\"` |\n| `caa_lookup` | `dns_lookup` with `record_type: \"CAA\"` |\n| `reverse_dns_lookup` | `dns_lookup` with `record_type: \"PTR\"` (takes an IP address) |\n\n### Geo-Proxy Browsing\n\n| Tool | What it does | Example input |\n|------|-------------|---------------|\n| `get_geo_proxy` | Get proxy credentials for a region. Use with Playwright or any HTTPS proxy client | `{ \"region\": \"eu-central\" }` |\n| `geo_browse` | Browse a URL from a region using a real browser. Returns page content and/or screenshot | `{ \"url\": \"https://example.com\", \"region\": \"ap-south\" }` |\n\n### Account\n\n| Tool | What it does |\n|------|-------------|\n| `account_status` | Current quota usage (minute/hour/day/month), subscription tier, active proxy token |\n\n## Resources\n\n| URI | Description |\n|-----|-------------|\n| `probeops://regions` | Probe regions with location, country, and node count |\n| `probeops://proxy-regions` | Geo-proxy regions with FQDNs and proxy URLs |\n| `probeops://usage` | Current API usage, remaining quota, active token status |\n\n## Global Regions\n\nAll diagnostic tools run from these 6 regions simultaneously:\n\n| Region Code | Location | Country |\n|-------------|----------|---------|\n| `us-east` | Ashburn, Virginia | United States |\n| `us-west` | Boardman, Oregon | United States |\n| `eu-central` | Helsinki | Finland |\n| `ca-central` | Montreal | Canada |\n| `ap-south` | Mumbai | India |\n| `ap-southeast` | Sydney | Australia |\n\n## Geo-Proxy Token Management\n\nThe server manages proxy tokens automatically:\n\n| Token State | Action | Quota Cost |\n|-------------|--------|------------|\n| > 5 min remaining | Reuse cached token | 0 |\n| 0-5 min remaining | Auto-extend +1 hour | 1 unit |\n| Expired or no token | Generate new token | 1 unit |\n\n- A single token works across all 6 regions. Switching regions does not consume quota.\n- Daily quota = total hours of proxy browsing per day.\n- Quota resets at midnight UTC.\n\n## Output Examples\n\n### SSL Check\n```\nssl_check({ domain: \"github.com\" })\n\nSSL Certificate Report for github.com\n  Status: VALID\n  Subject: github.com\n  Issuer: DigiCert (DigiCert Inc)\n  Expires in: 245 days\n  TLS: TLSv1.3 (TLS_AES_256_GCM_SHA384)\n\n  Region Results:\n  | Region | Location | Status | Time |\n  |--------|----------|--------|------|\n  | us-east | Ashburn | OK | 45ms |\n  | eu-central | Helsinki | OK | 38ms |\n  | ap-south | Mumbai | OK | 112ms |\n  | us-west | Boardman | OK | 52ms |\n  | ca-central | Montreal | OK | 41ms |\n  | ap-southeast | Sydney | OK | 98ms |\n\n  Completed in 125ms\n---\nDiagnostics: 97 of 100 remaining today (Free)\n```\n\n### Ping\n```\nping({ target: \"1.1.1.1\" })\n\nPing: 1.1.1.1\n\n  ap-south (Mumbai):\n    PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.\n    64 bytes from 1.1.1.1: icmp_seq=1 ttl=56 time=1.35 ms\n    3 packets transmitted, 3 received, 0% packet loss\n    rtt min/avg/max/mdev = 1.353/1.398/1.474/0.054 ms\n    Response time: 2147ms\n\n  eu-central (Helsinki):\n    PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.\n    64 bytes from 1.1.1.1: icmp_seq=1 ttl=54 time=21.2 ms\n    3 packets transmitted, 3 received, 0% packet loss\n    rtt min/avg/max/mdev = 20.651/20.941/21.217/0.231 ms\n    Response time: 2031ms\n  ...\n\n  Completed in 2332ms\n---\nDiagnostics: 96 of 100 remaining today (Free)\n```\n\n### Whois\n```\nwhois({ domain: \"example.com\" })\n\nWhois: example.com\n\n  us-east (Ashburn):\n    Domain Name: EXAMPLE.COM\n    Registry Domain ID: 2336799_DOMAIN_COM-VRSN\n    Registrar: RESERVED-Internet Assigned Numbers Authority\n    Creation Date: 1995-08-14T04:00:00Z\n    Registry Expiry Date: 2025-08-13T04:00:00Z\n    Name Server: A.IANA-SERVERS.NET\n    Name Server: B.IANA-SERVERS.NET\n    DNSSEC: signedDelegation\n    Response time: 734ms\n  ...\n\n  Completed in 852ms\n---\nDiagnostics: 95 of 100 remaining today (Free)\n```\n\n## Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `PROBEOPS_API_KEY` | No | - | Your ProbeOps API key ([get one free](https://probeops.com/dashboard/api-keys)). Without it, runs in demo mode (11 tools, 10 calls/day) |\n| `PROBEOPS_BASE_URL` | No | `https://probeops.com` | API base URL (for staging or self-hosted instances) |\n\n## Rate Limits\n\n|  | **Free** | **Standard** | **Professional** |\n|--|----------|-------------|-----------------|\n| Per minute | 15 | 30 | 50 |\n| Per hour | 100 | 500 | 2,000 |\n| Per day | 100 | 1,000 | 5,000 |\n| Per month | 500 | 20,000 | 100,000 |\n| Concurrent | 3 | 5 | 10 |\n| Proxy hours/day | 3 | 5 | 10 |\n| Regions | 4 of 6 | All 6 | All 6 |\n\nFree tier requires no credit card. Check usage anytime with `account_status`.\n\nSee [probeops.com/pricing](https://probeops.com/pricing) for current details.\n\n## Development\n\n```bash\ngit clone https://github.com/kumarprobeops/probeops-mcp-server.git\ncd probeops-mcp-server\nnpm install\nnpm run build\n```\n\nTest locally:\n```bash\nPROBEOPS_API_KEY=your-key node dist/index.js\n```\n\n## Requirements\n\n- **Node.js** >= 18.0.0\n- **Playwright** (optional) - only needed for `geo_browse` screenshots\n  ```bash\n  npx playwright install chromium\n  ```\n  Without Playwright, `geo_browse` falls back to HTTP fetch (raw HTML, no screenshots).\n\n## FAQ\n\n**Q: How is this different from running `curl` or `dig` locally?**\nEvery check runs from 6 global regions simultaneously. You see DNS propagation, latency, and availability from the perspective of real users worldwide, not your local network.\n\n**Q: Do I need to install anything besides Node.js?**\nNo. `npx -y @probeops/mcp-server` handles everything. Playwright is optional (only for `geo_browse` screenshots).\n\n**Q: Can I use this in CI/CD pipelines?**\nYes. Set `PROBEOPS_API_KEY` as an environment variable and call the MCP server from any MCP-compatible tool.\n\n**Q: Is the API key sent securely?**\nYes. All communication uses HTTPS. The key is sent via the `X-API-Key` header, never in URLs or logs.\n\n## License\n\nMIT - see [LICENSE](LICENSE)\n\n## Links\n\n- [ProbeOps Platform](https://probeops.com)\n- [Get API Key](https://probeops.com/dashboard/api-keys)\n- [Pricing](https://probeops.com/pricing)\n- [Report Issues](https://github.com/kumarprobeops/probeops-mcp-server/issues)\n- [npm Package](https://www.npmjs.com/package/@probeops/mcp-server)\n",
  "bytes": 11341,
  "sha": "889d59a118624bacc21c106216896b9743cd49654e0c43f2d205de0a342972c8",
  "repo_slug": "kumarprobeops/probeops-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_kumarprobeops_probeops_mcp_ser_4a8d7f6e/readme"
}