Akamai CDN

io.github.desty2kPublished by GitHub account desty2kv0.2.1Updated Nov 3, 2026

Read-only MCP server for Akamai CDN — properties, EdgeWorkers, DNS, network lists

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

Akamai CDN's local MCP server; no sign-in required; STDIO.

No AI overview yet: these facts come from the registry entry and the server itself.

Installation

In SourceWeft

  1. Open Akamai CDN in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

readonly-mcp-akamai

[CI] [codecov] [PyPI] [Python] [License: MIT]

A read-only Model Context Protocol (MCP) server that lets AI agents explore an Akamai account: CDN properties and their rule trees, EdgeWorker code, Edge DNS zones, network lists, CP codes, and error references. 16 tools, all of them reads.

Quick start

With uv installed, there is nothing else to install:

bash
claude mcp add akamai \  -e AKAMAI_HOST=akab-xxxx.luna.akamaiapis.net \  -e AKAMAI_CLIENT_TOKEN=akab-xxxx \  -e AKAMAI_CLIENT_SECRET=xxxx \  -e AKAMAI_ACCESS_TOKEN=akab-xxxx \  -- uvx readonly-mcp-akamai

uvx downloads the package into a cached, isolated environment and runs it. Python 3.11 or newer.

Read-only by design. Every call this server makes reads. It uses GET, plus one POST to Akamai's error translator, which takes an error reference and returns what it means without changing anything. The client refuses a POST to any other path before sending it, and a test checks that. It cannot create, modify, delete, activate, deactivate, or purge anything. Give the API client read-only access as a second line of defense: see Credentials. Read the post about this server and why I build read-only MCP servers.

Credentials

Create an API client in Akamai Control Center under Identity & Access Management → API clients. Grant read-only access, where the API offers it, to the APIs the tools use:

APIUsed by
Property Manager (PAPI)properties, groups, CP codes
Edge DNSDNS tools
EdgeWorkersEdgeWorker tools
Network Listsnetwork list tools
Edge Diagnosticstranslate_error_code

The client's host, client_token, client_secret and access_token map to the four AKAMAI_* variables below.

Tools

Properties (CDN configurations)

ToolDescription
search_propertiesFuzzy search CDN properties by name. Uses a preloaded in-memory index refreshed every 5 minutes. Returns match scores, flags close matches, and reports why the index failed to load if it did.
get_property_detailsGet property versions, hostnames, and activation status.
get_property_rulesGet the rule tree for a property version — the full CDN configuration.
get_property_activationsList deployment history for a property.

DNS

ToolDescription
list_dns_zonesList all DNS zones, optionally filtered by name or type.
search_dns_recordsSearch DNS records within a zone by name or record type. Returns at most 500 records.

EdgeWorkers (serverless functions)

ToolDescription
list_edgeworkersList all EdgeWorker IDs with names and descriptions.
list_edgeworker_versionsList versions for an EdgeWorker.
get_edgeworker_filesDownload a version's code bundle and list all files. Cached in memory (bundles up to 16 MB, 128 MB in total).
get_edgeworker_fileRead a specific file from a cached bundle with line-range support. Output is capped at 100,000 characters, with the line to continue from.
search_edgeworker_codeRegex search across all files in a cached bundle. Returns at most 200 matches.

Network Lists

ToolDescription
search_network_listsSearch network lists (IP allowlists, blocklists, geo lists) by name.
get_network_listGet the contents of a network list, at most 5,000 entries.

Utility

ToolDescription
list_groupsList account groups in the Akamai hierarchy.
list_cp_codesList CP codes (billing/reporting identifiers) for a contract and group.
translate_error_codeTranslate Akamai reference error codes to human-readable descriptions.

Install

bash
uv tool install readonly-mcp-akamai   # or: pip install readonly-mcp-akamai

Not needed for the Quick start, which runs it with uvx.

Docker

bash
docker run -i --rm \  -e AKAMAI_HOST=akab-xxxx.luna.akamaiapis.net \  -e AKAMAI_CLIENT_TOKEN=akab-xxxx \  -e AKAMAI_CLIENT_SECRET=xxxx \  -e AKAMAI_ACCESS_TOKEN=akab-xxxx \  ghcr.io/desty2k/readonly-mcp-akamai:latest

-i keeps stdin open for the default stdio transport.

Configuration

All settings are environment variables with the AKAMAI_ prefix.

VariableRequiredDefaultDescription
AKAMAI_HOSTYes—Akamai API hostname (e.g., akab-xxxx.luna.akamaiapis.net)
AKAMAI_CLIENT_TOKENYes—EdgeGrid client token
AKAMAI_CLIENT_SECRETYes—EdgeGrid client secret
AKAMAI_ACCESS_TOKENYes—EdgeGrid access token
AKAMAI_TRANSPORTNostdioTransport: stdio, http, or sse
AKAMAI_HTTP_HOSTNo127.0.0.1Address the HTTP/SSE transport listens on
AKAMAI_HTTP_PORTNo8080Port for HTTP/SSE transport
AKAMAI_LOG_FORMATNojsonLog format: json or text
AKAMAI_LOG_LEVELNoINFOLog level: DEBUG, INFO, WARNING, ERROR
AKAMAI_INDEX_REFRESH_INTERVALNo300Property index refresh interval in seconds

The http and sse transports have no authentication: anyone who can reach the port can read the Akamai account with the configured credentials. They listen on 127.0.0.1 by default. Setting AKAMAI_HTTP_HOST to any other address logs a warning at startup. The Docker image sets AKAMAI_HTTP_HOST=0.0.0.0 so a published port works; publish it on loopback only:

bash
docker run --rm -p 127.0.0.1:8080:8080 -e AKAMAI_TRANSPORT=http \  -e AKAMAI_HOST=... -e AKAMAI_CLIENT_TOKEN=... \  -e AKAMAI_CLIENT_SECRET=... -e AKAMAI_ACCESS_TOKEN=... \  ghcr.io/desty2k/readonly-mcp-akamai:latest

MCP client configuration

Claude Desktop

Add to claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows):

json
{  "mcpServers": {    "akamai": {      "command": "uvx",      "args": ["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 Code

See Quick start.

How it compares

As of November 2026. Akamai's own MCP servers under akamai-developers cover other products: Akamai Cloud (Linode, also read-only), Akamai Functions, and the documentation. None of them reads Property Manager, EdgeWorkers, Edge DNS, or Network Lists. Check the projects themselves before relying on this.

Example questions

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 setResponseHeader in 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"

Development

bash
git clone https://github.com/desty2k/readonly-mcp-akamaicd readonly-mcp-akamaiuv sync --extra devuv run pytest --covuv run ruff check .uv run ruff format --check .

License

MIT — see LICENSE.

Source: README.md at commit ed1bff1

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.2.1LatestNov 3, 2026
  2. v0.1.1Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts