▲HIGHLAND DOCS

MCP server

The Model Context Protocol lets an AI client use tools from a server. Highland exposes every API as an MCP tool (70 tools), so your assistant can look up DNS, check email security, redact PII and more by itself, and you pay per successful call from your credits.

URL (header auth)https://api.highlnd-intel.group/mcp
URL (key in path)https://api.highlnd-intel.group/mcp/<YOUR_KEY> for clients that cannot send headers (claude.ai, ChatGPT connectors)
TransportStreamable HTTP, POST only, JSON responses (no SSE stream; GET answers 405 sse_not_supported)
Protocol versions2025-06-18, 2025-03-26, 2024-11-05
AuthAuthorization: Bearer hk_live_...
Costinitialize and tools/list are free. tools/call costs the API's price; bad input is never charged.
BatchesUp to 25 JSON-RPC messages per request

Pick your client

Test it with curl

Every MCP request is a JSON-RPC 2.0 message sent with POST.

initialize
curl -s https://api.highlnd-intel.group/mcp \
  -H "authorization: Bearer $HIGHLAND_KEY" \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
list tools (free)
curl -s https://api.highlnd-intel.group/mcp \
  -H "authorization: Bearer $HIGHLAND_KEY" \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | jq '.result.tools[] | {name, description}'
call a tool (billed)
curl -s https://api.highlnd-intel.group/mcp \
  -H "authorization: Bearer $HIGHLAND_KEY" \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"dns-lookup","arguments":{"domain":"example.com"}}}'

A tool result looks like this. content[0].text is what the model reads; structuredContent has the full response including what you paid and your balance:

json
{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [{ "type": "text", "text": "{\"domain\":\"example.com\",\"records\":{...}}" }],
    "structuredContent": { "api": "dns-lookup", "priceCents": 2, "payment": "credits", "balanceCents": 996, "result": { "...": "..." } },
    "isError": false
  }
}

Tool names and errors

  • Tool name = the API id (for example dns-lookup, mail-auth, pii-redact). Each tool carries its JSON input schema and price in the description. The full list is in the API reference.
  • Payment and input problems come back as a tool result with isError: true and the error JSON as text (for example insufficient_credits), so the model can tell you to top up instead of failing silently.
  • Protocol problems are JSON-RPC errors: -32700 parse_error, -32600 invalid_request, -32601 method_not_found, -32602 unknown_tool or invalid_arguments.