A read-only interface to Akamai CDN APIs, intentionally stripped of any write operations. You get fuzzy search across CDN properties, direct access to rule trees and activation history, DNS zone inspection, and the ability to browse EdgeWorker serverless code with regex search across bundled files. It also surfaces network lists for IP allowlists and blocklists, translates those cryptic Akamai error codes, and lists CP codes for billing tracking. The property index lives in memory and refreshes every five minutes. Reach for this when you need to audit configurations, debug routing rules, or examine EdgeWorker implementations without worrying about accidentally purging caches or pushing changes to production.
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-akamai
docker run -e AKAMAI_HOST=... -e AKAMAI_CLIENT_TOKEN=... \
-e AKAMAI_CLIENT_SECRET=... -e AKAMAI_ACCESS_TOKEN=... \
ghcr.io/desty2k/readonly-mcp-akamai
All 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-akamai
Set the AKAMAI_* environment variables before starting Claude Code.
An agent with this server can answer:
setResponseHeader in EdgeWorker 42"# 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
AKAMAI_HOST*Akamai EdgeGrid API hostname (e.g., akab-xxxx.luna.akamaiapis.net)
AKAMAI_CLIENT_TOKEN*secretAkamai EdgeGrid client token
AKAMAI_CLIENT_SECRET*secretAkamai EdgeGrid client secret
AKAMAI_ACCESS_TOKEN*secretAkamai EdgeGrid access token