MCP for Claude
Four ways to give Claude the Highland tools. All of them use the same MCP server and bill the same API key.
| Where | Method | Auth |
|---|---|---|
| claude.ai (web, mobile) | Custom connector | Key in the URL path |
| Claude Desktop | Custom connector, or mcp-remote in the config file | Key in the URL path, or header |
| Claude Code (CLI, IDE) | claude mcp add --transport http | Header |
| Your own app | Messages API MCP connector | authorization_token |
claude.ai and Claude Desktop (custom connector)
- Open Settings → Connectors → Add custom connector.
- Name:
Highland. URL:https://api.highlnd-intel.group/mcp/<YOUR_KEY>(your fullhk_live_...key at the end). - Save, then in a chat open the tools menu and turn Highland on.
- Try: "Check the DNS and email security (SPF, DKIM, DMARC) of example.com."
On Team and Enterprise plans an owner may need to add the connector for the organization first.
Claude Desktop (config file)
If you prefer the config file, bridge the remote server with mcp-remote. Open Settings → Developer → Edit config and add:
{
"mcpServers": {
"highland": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://api.highlnd-intel.group/mcp",
"--header", "Authorization:${HIGHLAND_AUTH}"
],
"env": { "HIGHLAND_AUTH": "Bearer hk_live_YOUR_KEY" }
}
}
}Restart Claude Desktop. The header is split as Authorization:${HIGHLAND_AUTH} with no space because some shells on Windows break arguments at spaces.
Claude Code
# This project only (written to .mcp.json; keep the key in an env var, not in git)
claude mcp add --transport http highland https://api.highlnd-intel.group/mcp \
--header "Authorization: Bearer $HIGHLAND_KEY"
# Every project on this machine
claude mcp add --scope user --transport http highland https://api.highlnd-intel.group/mcp \
--header "Authorization: Bearer $HIGHLAND_KEY"
claude mcp list # shows highland ✓ connectedA shared .mcp.json can read the key from the environment, so it is safe to commit:
{
"mcpServers": {
"highland": {
"type": "http",
"url": "https://api.highlnd-intel.group/mcp",
"headers": { "Authorization": "Bearer ${HIGHLAND_KEY}" }
}
}
}Inside Claude Code, type /mcp to see the tools. Ask: "Use highland mail-auth on our domain and write the fixes to DNS-FIXES.md."
Messages API (MCP connector)
Claude can call the server itself during an API request: no MCP client code on your side. Send the server in mcp_servers, turn it on with an mcp_toolset tool, and add the MCP connector beta header.
# pip install anthropic
import os, anthropic
client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY
resp = client.beta.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
betas=["mcp-client-2025-11-20"],
mcp_servers=[{
"type": "url",
"url": "https://api.highlnd-intel.group/mcp",
"name": "highland",
"authorization_token": os.environ["HIGHLAND_KEY"],
}],
tools=[{"type": "mcp_toolset", "mcp_server_name": "highland"}],
messages=[{"role": "user", "content": "Is example.com protected against email spoofing? Check SPF, DKIM and DMARC."}],
)
for block in resp.content:
if block.type == "text":
print(block.text)
elif block.type == "mcp_tool_use":
print("called", block.name, block.input)// npm i @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const resp = await client.beta.messages.create({
model: "claude-opus-5-5",
max_tokens: 1024,
betas: ["mcp-client-2025-11-20"],
mcp_servers: [{
type: "url",
url: "https://api.highlnd-intel.group/mcp",
name: "highland",
authorization_token: process.env.HIGHLAND_KEY,
}],
tools: [{ type: "mcp_toolset", mcp_server_name: "highland" }],
messages: [{ role: "user", content: "Redact the PII in: 'Call Jo at 902-555-0142 or jo@example.com'" }],
});
console.log(resp.content.filter((b) => b.type === "text").map((b) => b.text).join("\n"));curl -s https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-11-20" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 1024,
"mcp_servers": [{"type":"url","url":"https://api.highlnd-intel.group/mcp","name":"highland","authorization_token":"'"$HIGHLAND_KEY"'"}],
"tools": [{"type":"mcp_toolset","mcp_server_name":"highland"}],
"messages": [{"role":"user","content":"Look up the DNS records of example.com"}]
}'Only some tools
With 70 tools, limiting Claude to the ones a task needs saves input tokens and keeps it on track. Turn everything off by default and allow a list:
tools=[{
"type": "mcp_toolset",
"mcp_server_name": "highland",
"default_config": {"enabled": False},
"configs": {"dns-lookup": {"enabled": True}, "mail-auth": {"enabled": True}, "rdap-lookup": {"enabled": True}},
}]Troubleshooting
| Symptom | Fix |
|---|---|
| Connector shows "couldn't connect" | Check the URL ends in your full key and has no space. Test it with the curl in MCP overview. |
Tools listed but every call says insufficient_credits | Your balance is 0. Buy credits or redeem a coupon. |
401 invalid_api_key | The key is wrong or was revoked. Make a new one. |
Claude Code says 405 | You used --transport sse. Use --transport http. |