Read-only MCP server for Akamai CDN. Search properties, browse EdgeWorker code, query DNS zones, inspect network lists, and translate error codes.
Read-only by design. This server can only read data. It cannot create, modify, delete, activate, deactivate, or purge anything. See blog.wentland.io for the rationale.
| Tool | Description |
|---|---|
search_properties |
Fuzzy search CDN properties by name. Uses a preloaded in-memory index refreshed every 5 minutes. |
get_property_details |
Get property versions, hostnames, and activation status. |
get_property_rules |
Get the rule tree for a property version — the full CDN configuration. |
get_property_activations |
List deployment history for a property. |
| Tool | Description |
|---|---|
list_dns_zones |
List all DNS zones, optionally filtered by name or type. |
search_dns_records |
Search DNS records within a zone by name or record type. |
| Tool | Description |
|---|---|
list_edgeworkers |
List all EdgeWorker IDs with names and descriptions. |
list_edgeworker_versions |
List versions for an EdgeWorker. |
get_edgeworker_files |
Download a version's code bundle and list all files. Cached in memory. |
get_edgeworker_file |
Read a specific file from a cached bundle with line-range support. |
search_edgeworker_code |
Regex search across all files in a cached bundle. |
| Tool | Description |
|---|---|
search_network_lists |
Search network lists (IP allowlists, blocklists, geo lists) by name. |
get_network_list |
Get the full contents of a network list. |
| Tool | Description |
|---|---|
list_groups |
List account groups in the Akamai hierarchy. |
list_cp_codes |
List CP codes (billing/reporting identifiers) for a contract and group. |
translate_error_code |
Translate Akamai reference error codes to human-readable descriptions. |
# With uv (recommended)
uv pip install readonly-mcp-akamai
# With pip
pip install readonly-mcp-akamaidocker run -e AKAMAI_HOST=... -e AKAMAI_CLIENT_TOKEN=... \
-e AKAMAI_CLIENT_SECRET=... -e AKAMAI_ACCESS_TOKEN=... \
ghcr.io/desty2k/readonly-mcp-akamaiAll settings are via environment variables with the AKAMAI_ prefix.
| Variable | Required | Default | Description |
|---|---|---|---|
AKAMAI_HOST |
Yes | — | Akamai API hostname (e.g., akab-xxxx.luna.akamaiapis.net) |
AKAMAI_CLIENT_TOKEN |
Yes | — | EdgeGrid client token |
AKAMAI_CLIENT_SECRET |
Yes | — | EdgeGrid client secret |
AKAMAI_ACCESS_TOKEN |
Yes | — | EdgeGrid access token |
AKAMAI_TRANSPORT |
No | stdio |
Transport: stdio, http, or sse |
AKAMAI_HTTP_PORT |
No | 8080 |
Port for HTTP/SSE transport |
AKAMAI_LOG_FORMAT |
No | json |
Log format: json or text |
AKAMAI_LOG_LEVEL |
No | INFO |
Log level: DEBUG, INFO, WARNING, ERROR |
AKAMAI_INDEX_REFRESH_INTERVAL |
No | 300 |
Property index refresh interval in seconds |
Get credentials from Akamai Control Center > Identity & Access Management > API Clients.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"akamai": {
"command": "readonly-mcp-akamai",
"env": {
"AKAMAI_HOST": "akab-xxxx.luna.akamaiapis.net",
"AKAMAI_CLIENT_TOKEN": "akab-xxxx",
"AKAMAI_CLIENT_SECRET": "xxxx",
"AKAMAI_ACCESS_TOKEN": "akab-xxxx"
}
}
}
}claude mcp add akamai -- readonly-mcp-akamaiSet the AKAMAI_* environment variables before starting Claude Code.
An agent with this server can answer:
- "Find the CDN property for api.example.com and show me its caching rules"
- "What version is currently deployed to production for the main website?"
- "Show me all DNS records for example.com"
- "What EdgeWorkers are configured? Show me the code for the request router"
- "Search for all uses of
setResponseHeaderin EdgeWorker 42" - "What IPs are in the blocklist network list?"
- "Translate this Akamai error: 9.6f64d440.1318965461.2f2b078"
- "List all CP codes for the main contract"
# Clone
git clone https://github.com/desty2k/readonly-mcp-akamai.git
cd readonly-mcp-akamai
# Install with dev dependencies
uv pip install -e ".[dev]"
# Run tests
pytest --cov
# Lint
ruff check .
ruff format --check .MIT