The MCP Server (Model Context Protocol) provided by EdgeWatch is a service for obtaining contextual insights about IP addresses. It supports two primary tools: IP Insights and IP Explorer. Users can query the server (via SDK or HTTP transports) using authenticated credentials to retrieve structured data and text about IP addresses.
Features
Feature | Description |
---|---|
Tools | Two main tools are available:• getInsight — fetches detailed insights about a given IP address.• getExplorer — retrieves hostnames and open ports associated with a given IP. (mcp.edgewatch.net) |
Authentication | Clients must obtain a client-id and client-secret by contacting EdgeWatch ([email protected]). During the current testing phase access is free. Future access will likely be restricted to EdgeWatch clients. (mcp.edgewatch.net) |
Connection / Transport Methods | Two transport methods are supported:• Streamable HTTP transport• Server-Sent Events (SSE) transport — used as fallback if HTTP fails. (mcp.edgewatch.net) |
SDK Support & Validation | The official SDK is available (npm: @modelcontextprotocol/sdk ) with schema validation (using Zod) for request/response handling. Responses include structured content (for example, arrays of objects containing text). (mcp.edgewatch.net) |
Specifications & Usage
- Server URL:
mcp.edgewatch.net
orhttps://mcp.edgewatch.net/mcp
for API usage. (mcp.edgewatch.net) - Protocol: MCP (Model Context Protocol) (mcp.edgewatch.net)
- Authentication Methods: Credentials must be passed either via HTTP headers (
x-client-id
,x-client-secret
) or query parameters (?clientId=...&clientSecret=...
). (mcp.edgewatch.net) - Usage Flow:
- Get credentials from EdgeWatch.
- Install required SDK dependencies (e.g.
@modelcontextprotocol/sdk
,zod
). (mcp.edgewatch.net) - Establish a transport (try Streamable HTTP, fallback to SSE). (mcp.edgewatch.net)
- Use the tools (
getInsight
orgetExplorer
) viaclient.request(...)
. (mcp.edgewatch.net) - Handle & validate response content; manage errors, timeouts, retries. (mcp.edgewatch.net)
Best Practices
- Validate IP inputs before sending requests. (mcp.edgewatch.net)
- Use schema validation (Zod) to ensure responses conform to expected shape. (mcp.edgewatch.net)
- Implement error handling: capture connection errors, request failures, validation mismatches. (mcp.edgewatch.net)
- Use retry logic and possibly caching where appropriate. (mcp.edgewatch.net)
- Close transport when done to clean up resources. (mcp.edgewatch.net)
- Rate-limit client-side requests to avoid overloading or hitting service limits. (mcp.edgewatch.net)
Errors & Troubleshooting
Error Type | Possible Cause | Suggested Action |
---|---|---|
401 / 403 Authentication Error | Invalid/missing client-id or client-secret or credentials not recognized. | Verify credentials; ensure correct header or query parameter usage; request valid credentials from support if needed. (mcp.edgewatch.net) |
Connection Failures | Issues with the primary transport (Streamable HTTP) or network problems. | Use fallback transport (SSE); check network/firewall settings; log any underlying error. (mcp.edgewatch.net) |
Response Validation Errors | The response data does not match expected schema (e.g. missing fields, wrong types). | Use Zod schemas to catch inconsistencies; handle invalid responses gracefully; contact support if data appears incorrect. (mcp.edgewatch.net) |
Getting Access
- To get access to the MCP server, send an email to [email protected] with the subject “MCP-Access-Request”. (mcp.edgewatch.net)
- Once credentials are issued, you can begin integrating using the SDK or via direct HTTP/SSE. (mcp.edgewatch.net)
Awesome — here’s a tight Quick Start + Cheatsheet you can drop into the Edgewatch KB. I kept it practical, copy-pasteable, and aligned to the docs.
Edgewatch MCP Server — Quick Start & Cheatsheet
What it is
Edgewatch’s MCP (Model Context Protocol) server exposes two tools for IP intelligence:
- getInsight → detailed, human-readable insight for an IP
- getExplorer → hostnames and open ports seen for an IP (mcp.edgewatch.net)
Access & Endpoint
- Credentials: request
client-id
andclient-secret
via [email protected] (testing access currently free). (mcp.edgewatch.net) - Preferred endpoint:
https://mcp.edgewatch.net/mcp
(Docs also mention mcp.edgewatch.com; use the .NET endpoint as shown in examples/configs.) (mcp.edgewatch.net)
Auth methods
- Headers:
x-client-id
,x-client-secret
- Query string:
?clientId=...&clientSecret=...
(mcp.edgewatch.net)
One-liners (curl)
# Using headers
curl -s -H "x-client-id: $CLIENT_ID" \
-H "x-client-secret: $CLIENT_SECRET" \
"https://mcp.edgewatch.net/mcp"
# Using query params
curl -s "https://mcp.edgewatch.net/mcp?clientId=$CLIENT_ID&clientSecret=$CLIENT_SECRET"
If auth fails, you’ll get 401/403 with details. (mcp.edgewatch.net)
Node SDK Minimal Example
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
import { z } from 'zod';
const SERVER = 'https://mcp.edgewatch.net/mcp';
async function connect() {
const client = new Client({ name: 'ewmcp-client', version: '1.0.0' });
client.onerror = (e) => console.error('Client error:', e);
// Prefer Streamable HTTP; fall back to SSE
try {
const t = new StreamableHTTPClientTransport(new URL(SERVER));
await client.connect(t);
return { client, transport: t };
} catch {
const t = new SSEClientTransport(new URL(SERVER));
await client.connect(t);
return { client, transport: t };
}
}
async function getInsight(client, ip) {
const schema = z.object({
content: z.array(z.object({ type: z.literal('text'), text: z.string() }))
});
const res = await client.request({
method: 'tools/call',
params: { name: 'getInsight', arguments: { ip } }
}, schema);
return res.content.map(c => c.type === 'text' ? c.text : '').join('\n');
}
(async () => {
const { client, transport } = await connect();
console.log(await getInsight(client, '8.8.8.8'));
await transport.close();
})();
Transport selection, Zod validation, and tool invocation follow the reference flow. (mcp.edgewatch.net)
Claude Desktop (or other MCP client) config
{
"mcpServers": {
"ewmcp-server": {
"url": "https://mcp.edgewatch.net/mcp",
"name": "ewmcp-server",
"version": "1.0.0"
}
}
}
Add your credentials via the client’s secure settings or proxy. (mcp.edgewatch.net)
Tool Reference
getInsight
- Input:
{ ip: "string" }
- Output: array of
{ type:"text", text:string }
entries (insight text) (mcp.edgewatch.net)
getExplorer
- Input:
{ ip: "string" }
- Output: text entries describing related hostnames/ports for the IP (mcp.edgewatch.net)
Best Practices (prod-ready)
- Validate IPs before requests; reject private/reserved ranges if your use-case requires.
- Implement retry with backoff; cache stable results.
- Use Zod (or similar) to validate responses.
- Rate-limit clients and always close transports. (mcp.edgewatch.net)
Common Errors & Fixes
Symptom | Likely Cause | Fix |
---|---|---|
401/403 auth error | Missing/invalid credentials | Send headers or query params; re-issue keys via support |
Transport fails | Network/proxy blocks | Fall back to SSE; check firewall/proxy; retry |
Validation error | Response shape mismatch | Tighten Zod schema; log payload; contact support if persistent (mcp.edgewatch.net) |
Copy block for internal KB (metadata)
- Owner: Edgewatch Intelligence / Platform
- Service: MCP Server (IP Insights & Explorer)
- Endpoint:
https://mcp.edgewatch.net/mcp
- Auth:
x-client-id
,x-client-secret
(orclientId
,clientSecret
query) - Contact: [email protected]
- Change note: Docs show
.com
in one spot; examples/config use.net
. Prefer.net
. (mcp.edgewatch.net)