mcp-connector-for-akamai
Provides tools for Akamai edge diagnostics, debugging, and network analysis using Akamai APIs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-connector-for-akamaiList available edge server locations"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-connector-for-akamai
Disclaimer: This is an independent, unofficial, community-driven project. It is not affiliated with, endorsed by, sponsored by, or in any way officially connected to Akamai Technologies, Inc. The name "Akamai" and any related trademarks, service marks, or logos are the property of their respective owners and are used here solely for descriptive purposes to indicate compatibility. Use of these names does not imply any affiliation or endorsement. This software is provided "as is", without warranty of any kind. The authors assume no liability for any damages arising from the use of this software.
An unofficial MCP (Model Context Protocol) server that connects AI assistants to Akamai APIs. Provides tools for edge diagnostics, debugging, and network analysis.
Link to NPM: https://npmjs.com/package/mcp-connector-for-akamai
Tools
Edge Diagnostics
Tool | Description |
| Decode Akamai error reference codes into detailed error info |
| Fetch a URL from an Akamai edge server with debug headers |
| HTTP error statistics for a URL or CP code |
| Verify if an IP is Akamai edge and get geolocation |
| Geolocate up to 10 IP addresses |
| DNS lookup from an Akamai edge server |
| MTR traceroute from an Akamai edge server |
| Search edge server logs by IP, time range, and filters |
| List available Akamai edge server locations |
| Decode an Akamaized URL (ARL) into components |
| Verify up to 10 IPs as Akamai edge IPs |
| Comprehensive URL health check (cURL + dig + MTR) |
| Diagnose connectivity issues (GREP + cURL + MTR) |
| Diagnose content/cache issues (edge vs origin comparison) |
Related MCP server: mcp-browser-kit
Setup
Prerequisites
Node.js 18+ or Bun
Akamai API credentials with Edge Diagnostics API access
Build
bun install
bun run buildEnvironment Variables
Variable | Required | Description |
| Yes | Akamai EdgeGrid client secret |
| Yes | Akamai EdgeGrid client token |
| Yes | Akamai EdgeGrid access token |
| Yes | Akamai API hostname (e.g. |
| No | Account switch key for multi-account setups |
VS Code / Copilot Configuration
Add to your .vscode/mcp.json:
{
"inputs": [
{ "id": "akamai-client-secret", "type": "promptString", "description": "Akamai EdgeGrid client secret", "password": true },
{ "id": "akamai-client-token", "type": "promptString", "description": "Akamai EdgeGrid client token", "password": true },
{ "id": "akamai-access-token", "type": "promptString", "description": "Akamai EdgeGrid access token", "password": true },
{ "id": "akamai-host", "type": "promptString", "description": "Akamai API hostname (e.g. akab-xxx.luna.akamaiapis.net)" }
],
"servers": {
"mcp-connector-for-akamai": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-connector-for-akamai"],
"env": {
"AKAMAI_CLIENT_SECRET": "${input:akamai-client-secret}",
"AKAMAI_CLIENT_TOKEN": "${input:akamai-client-token}",
"AKAMAI_ACCESS_TOKEN": "${input:akamai-access-token}",
"AKAMAI_HOST": "${input:akamai-host}"
}
}
}
}Claude Desktop Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-connector-for-akamai": {
"command": "npx",
"args": ["-y", "mcp-connector-for-akamai"],
"env": {
"AKAMAI_CLIENT_SECRET": "...",
"AKAMAI_CLIENT_TOKEN": "...",
"AKAMAI_ACCESS_TOKEN": "...",
"AKAMAI_HOST": "..."
}
}
}
}Development
Adding new API tools
Generate the API client: add the OpenAPI spec URL to
generate-clients.sh(in the parent workspace) and run itCreate a wrapper in
src/akamai/apis/<api-name>/Add tool registration files under
src/tools/<api-name>/Register the tools in
src/tools/index.ts
Project structure
src/
├── index.ts # Entry point (McpServer + STDIO transport)
├── akamai/
│ ├── client.ts # Namespaced client hub (edgeDiagnostics, future APIs)
│ ├── customFetch.ts # EdgeGrid-authenticated fetch
│ ├── generateAkamaiToken.ts # EdgeGrid auth token generation
│ └── apis/
│ └── edge-diagnostics/
│ ├── index.ts # Client factory & re-exports
│ └── v1/ # Auto-generated API client
└── tools/
├── index.ts # Tool registration hub
├── utils.ts # Polling, formatting helpers
└── edge-diagnostics/ # One file per tool or tool groupAvailable Tools
14 toolsconnectivity_problemsConnectivity Problems ScenarioA
Runs Akamai connectivity diagnostics for a URL — simultaneously executes GREP (edge logs), cURL (content fetch), and MTR (traceroute). Useful for diagnosing slow downloads and high response times. This is an async operation.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to diagnose connectivity problems for. | |
| port | No | Port for MTR (80 or 443). | |
| clientIp | No | Client IP experiencing the issue (used as MTR source). | |
| ipVersion | No | IP version to use. | |
| packetType | No | Packet type for MTR. | |
| spoofEdgeIp | No | Edge server IP to serve traffic from. | |
| edgeLocationId | No | Edge server location ID nearest to the affected users. | |
| requestHeaders | No | Custom request headers in "header: value" format. | |
| runFromSiteShield | No | Run from a Site Shield map. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the operation is async and that multiple tools run simultaneously. However, it does not mention result format, potential side effects, or whether special permissions are needed, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and followed by a concrete use case. Every sentence adds value, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters and no output schema, which increases the burden on the description. While it explains the diagnostic purpose and async behavior, it does not describe the return value format or any prerequisites for successful use. More detail would be needed for full completeness given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds context that parameters like port and clientIp are used for MTR, and requestHeaders for cURL, but it does not explain individual parameters beyond the schema. It does not fully compensate for the variety of parameters, though the schema already documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs Akamai connectivity diagnostics for a URL and specifies the three simultaneous operations (GREP, cURL, MTR). This distinguishes it from sibling tools like mtr_from_edge, grep_edge_logs, and curl_from_edge by presenting a combined diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a specific use case: diagnosing slow downloads and high response times. It does not explicitly exclude alternatives, but the context is clear enough for an agent to select this tool over single-purpose siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
content_problemsContent Problems ScenarioA
Runs Akamai content problem diagnostics for a URL — fetches content via cURL from both edge and origin to compare responses. Useful for diagnosing cache inconsistencies, stale content, and origin errors. This is an async operation.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to diagnose content problems for. | |
| ipVersion | No | IP version to use. | |
| spoofEdgeIp | No | Edge server IP to serve traffic from. | |
| edgeLocationId | No | Edge server location ID nearest to the affected users. | |
| requestHeaders | No | Custom request headers in "header: value" format. | |
| runFromSiteShield | No | Run from a Site Shield map. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the async nature ('This is an async operation') and the diagnostic read-only behavior via 'fetches content...to compare responses.' However, it does not explain how to retrieve results or any side effects, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. It front-loads the core action, then provides use cases, and finally the async note. Every sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers purpose, use cases, and async behavior, it omits return/result details (not covered by an output schema) and any prerequisites or post-invocation steps. With six parameters and no annotations, more context would be needed for full invocation confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented. The description adds only the general context of 'for a URL' but does not elaborate on parameter meanings beyond the schema, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Runs Akamai content problem diagnostics for a URL' with specific method 'fetches content via cURL from both edge and origin to compare responses.' This distinguishes it from siblings like url_health_check and connectivity_problems by focusing on content comparison for cache and origin issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use cases: 'diagnosing cache inconsistencies, stale content, and origin errors.' This gives solid context for when to use the tool, though it does not explicitly mention when not to use it or name alternative tools for exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
curl_from_edgecURL from Akamai EdgeA
Fetches a URL from an Akamai edge server, returning full HTTP response headers (including Akamai debug/Pragma headers) and body. Useful for debugging what the edge is serving, cache status, and response timing.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to fetch from the edge server. | |
| edgeIp | No | IP of the edge server to run from. Provide either this or edgeLocationId. | |
| ipVersion | No | IP version to use. Defaults to IPV4. | |
| spoofEdgeIp | No | IP of the edge server you want to serve traffic from. | |
| edgeLocationId | No | Edge server location ID (from list_edge_locations). Provide either this or edgeIp. | |
| requestHeaders | No | Custom headers in "header: value" format. Akamai Pragma headers are included automatically. | |
| runFromSiteShield | No | Run curl from a Site Shield map. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does reveal that it returns full headers (including Akamai debug/Pragma headers) and body, but it omits details about side effects, redirects, timeouts, or permissions. This is adequate but has clear gaps for a network-fetch tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the action ('Fetches a URL from an Akamai edge server') and immediately follows with the output and use case. Every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 7 parameters, full schema coverage, and no output schema, the description covers the core behavior and return type. It mentions debugging use cases but does not explain error behavior or parameter selection strategies. However, the schema fills most gaps, and the description provides sufficient context for a fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptive text, so the baseline is 3. The description adds no parameter-specific details beyond mentioning 'Akamai debug/Pragma headers' which is relevant but not directly tied to a specific parameter. It relies on the schema to explain semantics, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetches') and resource ('a URL from an Akamai edge server'), and clearly states the return value ('full HTTP response headers... and body'). It distinguishes itself from sibling tools such as dig_from_edge and mtr_from_edge by focusing on HTTP fetch rather than network diagnostics/logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Useful for debugging what the edge is serving, cache status, and response timing,' which provides clear context for when to use it. However, it does not explicitly name alternatives or state when not to use it, so it only partially addresses usage guidance compared to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dig_from_edgeDNS Dig from Akamai EdgeA
Runs a DNS dig command from an Akamai edge server, returning DNS records for a hostname. Useful for debugging DNS resolution and propagation issues.
| Name | Required | Description | Default |
|---|---|---|---|
| edgeIp | No | Edge server IP to run dig from. Provide either this or edgeLocationId. | |
| hostname | Yes | The hostname or domain name to look up. | |
| queryType | Yes | DNS record type to query. | |
| isGtmHostname | No | Set to true if the hostname is a GTM hostname. | |
| edgeLocationId | No | Edge server location ID. Provide either this or edgeIp. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the action (runs dig), the location (Akamai edge server), and the outcome (returns DNS records), which implies a read-only operation. However, it does not explicitly state safety, rate limits, or potential failure modes, leaving some gaps for a network tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and purpose. No unnecessary words. The description is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters and no output schema or annotations, yet the description is minimal. It explains the general purpose but lacks detail on output format, parameter selection guidance, or troubleshooting context. It is adequate but not rich enough for a diagnostic tool with moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra parameter meaning beyond what the schema already provides; it does not explain the relationship between edgeIp and edgeLocationId or any usage nuances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a DNS dig command from an Akamai edge server and returns DNS records. It uses a specific verb and resource, and the purpose is distinct from sibling tools like curl_from_edge or mtr_from_edge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Useful for debugging DNS resolution and propagation issues.' This gives context for when to use the tool, though it does not explicitly mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_error_statisticsGet Akamai Error StatisticsA
Returns HTTP error statistics (status code distribution, error percentages) for a URL or CP code. Shows edge errors and/or origin errors over the last 24-48 hours.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Fully qualified URL to get error stats for. Provide either this or cpCode. | |
| cpCode | No | CP code to get error stats for. Provide either this or url. | |
| delivery | No | Type of delivery network. If omitted, auto-detected. | |
| errorType | No | Traffic direction. EDGE_ERRORS = edge→client, ORIGIN_ERRORS = edge→origin. If omitted, returns both. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It discloses the time range and edge/origin breakdown but does not explicitly confirm read-only behavior, authentication needs, or rate limits. The term 'Returns' implies a safe read operation, which is helpful but not fully explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The first sentence states the core purpose and output; the second adds key scope (edge/origin, time window). Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain return structure and constraints more thoroughly. It covers return categories and time range but omits that at least one of url/cpCode is required (even though the schema marks none required) and does not describe the response format. The tool is moderately complex with 4 optional parameters, so these gaps are notable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% description coverage for all four parameters, including enums. The tool description adds the 24-48h time window and clarifies edge/origin error types, but the schema already handles most parameter semantics, so the added value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns HTTP error statistics (status code distribution, error percentages) for a URL or CP code, which is specific and distinguishes it from sibling diagnostic tools like url_health_check or curl_from_edge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when error statistics for a URL/CP code are needed over a 24-48h window) but provides no explicit exclusions or comparison with alternatives. An agent is left to infer selection from context rather than receiving direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grep_edge_logsGrep Akamai Edge LogsA
Searches edge server logs by edge IP, time range, and filters (CP codes, hostnames, status codes, client IPs, user agents). This is an async operation that polls until logs are available.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ISO 8601 end time for the log search window. | |
| start | Yes | ISO 8601 start time for the log search window (e.g. "2024-01-15T10:00:00Z"). Logs available for past 6-12 hours. | |
| edgeIp | Yes | Edge server IP to get logs from. | |
| cpCodes | No | CP codes to filter by. Provide either this or hostnames. | |
| logType | Yes | Log type: R = client requests to edge, F = forward requests to origin, BOTH = both. | |
| clientIps | No | Filter by client IPs. | |
| hostnames | No | Hostnames to filter by. Provide either this or cpCodes. | |
| userAgents | No | Filter by user agents. | |
| httpStatusCodes | No | Filter by HTTP status codes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a key behavioral trait: 'This is an async operation that polls until logs are available.' This is valuable context for an agent. However, it does not mention other traits like timeouts, failure modes, or how the filters combine. It offers some transparency but is not comprehensive, warranting a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary function and a brief note on async behavior. Every word contributes to understanding; there is no redundant filler or unnecessary detail. This is model conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, nested objects, and no output schema, the description is minimal. It explains the tool's purpose and async behavior but does not describe the return format, how filters are combined (AND/OR), or any limitations beyond the schema's note on the 6-12 hour range. The schema covers parameters well, but the overall context is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter fully documented (e.g., start, end, logType enums). The description simply recaps the filter categories without adding syntax or interaction details. Per the baseline rule for high schema coverage, this is a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Searches edge server logs by edge IP, time range, and filters (CP codes, hostnames, status codes, client IPs, user agents).' It clearly distinguishes this tool from sibling network diagnostics (e.g., dig_from_edge, mtr_from_edge) by focusing on log searching. The title 'Grep Akamai Edge Logs' reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool—searching edge logs with specific filters—and is distinct from all listed siblings, so there is no competing log-search tool. However, it does not explicitly state when not to use it or name alternative tools. It conveys the use case effectively without exclusions, thus a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_edge_locationsList Akamai Edge LocationsA
Lists available Akamai edge server locations. Returns location IDs that can be used as edgeLocationId in other tools (curl, dig, MTR, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It clearly indicates a read-only list operation and mentions the output format (location IDs), but does not disclose potential large result sizes, ordering, or any other behavioral nuances. It provides basic transparency without surprises.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action, with no wasted words. Every sentence earns its place: the first states the core purpose, the second explains the output's downstream utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, list-only tool with no output schema, the description is fully complete. It states what it lists and why the results matter, making it enough for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds value by explaining the return value (location IDs) and how they are used, which is relevant for invoking the tool correctly even though no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Lists') and resource ('Akamai edge server locations'), clearly distinguishing it from sibling tools that perform translations, checks, or diagnostics. It also states the output's purpose: providing location IDs for use in other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the typical use case ('Returns location IDs that can be used as edgeLocationId in other tools'), giving context for when to call it. It does not explicitly exclude alternatives, but since no sibling tool is similar, this is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
locate_ipLocate IP AddressesA
Locates up to 10 IP addresses, returning geolocation data for each (city, country, region, ASN, network).
| Name | Required | Description | Default |
|---|---|---|---|
| ipAddresses | Yes | Up to 10 IP addresses to locate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions the limit of 10 IPs and the return fields, which is helpful. However, it does not mention potential edge cases (e.g., invalid IPs), read-only nature, or any side effects. The transparency is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and resource. It includes key output details without unnecessary elaboration. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup tool, the description adequately explains the input and output. It has no output schema but lists the geolocation fields, which satisfies the need to know return values. However, it lacks usage guidance and error handling details, preventing a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the only parameter (ipAddresses) with high coverage, so the baseline is 3. The description repeats the 'up to 10' limit but adds no additional meaning beyond the schema, such as IP format or error behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool locates up to 10 IP addresses and returns geolocation data with specific fields (city, country, region, ASN, network). This is a specific verb+resource pairing that distinguishes it from sibling tools like verify_locate_ip, which likely focuses on verification rather than location lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. It simply states what the tool does without contextualizing its use cases relative to the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mtr_from_edgeMTR from Akamai EdgeA
Runs an MTR (My Traceroute) network diagnostic from an Akamai edge server to a destination IP or hostname. Shows network path, latency per hop, and packet loss. Useful for diagnosing connectivity issues.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Port to use (80 or 443). Only needed when destinationType is HOST. | |
| source | No | Source edge server IP or location ID. | |
| showIps | No | Show IPs for each hop. | |
| packetType | Yes | Packet type for MTR probes. | |
| resolveDns | No | Resolve DNS for each hop. | |
| sourceType | No | Whether the source is an edge IP or a location ID. | |
| destination | Yes | Destination IP or hostname for the MTR. | |
| showLocations | No | Show locations for each hop. | |
| destinationType | Yes | Whether the destination is an IP address or hostname. | |
| siteShieldHostname | No | Site Shield hostname to run MTR for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains what the tool does (runs MTR, shows path/latency/loss) but does not mention permissions, side effects, rate limits, or any nuances beyond the basic operation. Since it is a diagnostic, it is implied to be read-only, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main verb and resource, and contains zero fluff. It efficiently conveys purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 10 parameters and no output schema, yet the description only provides a high-level overview. It does not explain how to choose between source types (EDGE_IP vs LOCATION) or when specific parameters like siteShieldHostname are needed. The schema covers the details, but the description lacks guidance for complex scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are already described in the input schema. The tool description adds no additional meaning to the parameters, so it is at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs an MTR network diagnostic from an Akamai edge server to a destination IP or hostname. This is a specific verb+resource+scope that distinguishes it from sibling tools like dig_from_edge and curl_from_edge, which perform different network diagnostics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('Useful for diagnosing connectivity issues') but does not explicitly state when to use this tool over alternatives or any exclusions. It implies usage for network path analysis but lacks differentiation from other connectivity diagnostic tools like connectivity_problems or url_health_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
translate_akamaized_urlTranslate Akamaized URLA
Translates an Akamaized URL (ARL) into its component parts: CP code, serial number, TTL, origin server, and other cache key metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The fully qualified Akamaized URL (ARL) to translate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full transparency burden. It discloses the transformation action and the type of output (component parts), which is valuable. However, it does not mention what happens with invalid URLs, whether the operation is read-only, or the exact format of the returned data, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the action, target, and output. Every phrase earns its place, listing the specific components without unnecessary detail or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with high schema coverage and no output schema, the description adequately explains the purpose and expected output. It lacks details on error handling or output structure, but those are less critical given the simplicity. Complete enough for an agent to invoke correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter 'url' is described as 'The fully qualified Akamaized URL (ARL) to translate.' The tool description adds context about the components extracted but does not substantially enhance the parameter meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'translates' with a specific resource (Akamaized URL/ARL) and lists the output components (CP code, serial number, TTL, origin server, cache key metadata). This distinguishes it from sibling tools like verify_edge_ip or url_health_check which address different use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when an Akamaized URL needs to be decomposed) but provides no explicit guidance on when not to use it or which sibling tools to prefer. The context of the purpose makes the usage fairly clear, yet lacks explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
translate_error_stringTranslate Akamai Error StringA
Translates an Akamai error reference code (e.g. "9.6f64d440.1318965461.2f2b078") into human-readable error details including logs, HTTP status codes, and request/response metadata. This is an async operation that polls until complete.
| Name | Required | Description | Default |
|---|---|---|---|
| errorCode | Yes | The alphanumeric error reference code from Akamai error pages (e.g. "9.6f64d440.1318965461.2f2b078"). This is the "Reference #" shown on Akamai error pages. | |
| traceForwardLogs | No | When true, gets logs from all edge servers involved in serving the request (not just the one where the error occurred). May take longer. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It does add a key behavioral detail: 'This is an async operation that polls until complete.' However, it doesn't mention whether this is a safe read-only operation, any authentication requirements, or potential rate limits. The async note is valuable but leaves other behavioral aspects uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, immediately stating the core purpose and then noting the async behavior. Every word earns its place, with no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential purpose, output scope, and async nature. Given no output schema exist, it provides a clear sense of what to expect. It doesn't detail polling mechanics or threading, but for a tool with only two parameters and a well-defined task, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters thoroughly. The description itself adds minimal extra parameter context beyond repeating the example code. Baseline of 3 is appropriate because the schema does the heavy lifting and the description doesn't enhance or clarify parameters further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: translating an Akamai error reference code into human-readable details. It uses a specific verb ('translates') and resource ('Akamai error reference code'), and the inclusion of example codes and output categories distinguishes it from sibling tools like translate_akamaized_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool (when you have an Akamai error reference code) and implicitly distinguishes it from siblings by focusing on error codes rather than URLs or network diagnostics. However, it doesn't explicitly state when not to use it or name alternative tools for similar tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_health_checkURL Health CheckA
Runs a comprehensive health check on a URL from the Akamai edge, combining cURL, dig, and optionally MTR. This is an async operation that polls until complete.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to run the health check for. | |
| port | No | Port for MTR (80 or 443). | |
| ipVersion | No | IP version to use. | |
| queryType | No | DNS query type for the DIG command. | |
| packetType | No | Packet type for MTR (if CONNECTIVITY is in viewsAllowed). | |
| spoofEdgeIp | No | Edge server IP to serve traffic from. | |
| viewsAllowed | No | Additional operations to run. CONNECTIVITY = MTR test, CURL = content fetch, DIG = DNS lookup, LOGS = edge logs, MTR = traceroute. | |
| edgeLocationId | No | Edge server location ID to run from. | |
| requestHeaders | No | Custom request headers in "header: value" format. | |
| runFromSiteShield | No | Run from a Site Shield map. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds important behavioral context by stating 'This is an async operation that polls until complete,' which goes beyond the schema. However, it does not disclose potential side effects (e.g., generating edge requests), rate limits, or the nature of the returned result, leaving some behavior opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core purpose and a key behavioral note. Every word earns its place, with no redundancy or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, no output schema, and no annotations, the description is too minimal. It does not explain what the health check returns, how to retrieve the async result, or how to interpret the variety of options. The schema covers parameter definitions, but the overall behavior and result format remain unclear, making it difficult for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already provides detailed explanations for all 10 parameters. The tool description only mentions cURL, dig, and MTR, which aligns with the viewsAllowed parameter but adds no new semantic value beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'runs a comprehensive health check on a URL from the Akamai edge' and specifies the combination of cURL, dig, and optionally MTR. This distinguishes it from the sibling tools (curl_from_edge, dig_from_edge, mtr_from_edge) which handle individual diagnostics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies using this tool for a comprehensive health check, but it does not explicitly say when to use it instead of the more specific sibling tools, nor does it provide exclusions or guidance on choosing between them. This leaves the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_edge_ipVerify Akamai Edge IPsB
Verifies whether up to 10 IP addresses belong to the Akamai edge network.
| Name | Required | Description | Default |
|---|---|---|---|
| ipAddresses | Yes | Up to 10 IP addresses to verify. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only restates the core function and adds no context about read-only behavior, response format, errors for non-edge IPs, or any other side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-front-loaded sentence with no fluff. It states the action and scope efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the essential function. However, it lacks usage context (when to use vs siblings) and any indication of output behavior, making it only minimally complete for an agent to reliably invoke it in the right situations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the ipAddresses parameter with 'Up to 10 IP addresses to verify.' The description adds the semantic context of 'Akamai edge network membership', which enriches the meaning of the verification. However, since schema coverage is 100%, the description's contribution is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (verifies), the object (IP addresses), and the criterion (belong to Akamai edge network). It distinguishes itself from sibling tools like locate_ip and verify_locate_ip by focusing specifically on Akamai edge network membership.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as verify_locate_ip or locate_ip. It does not mention any exclusions, prerequisites, or preferred usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_locate_ipVerify and Locate IPA
Verifies whether an IP address belongs to the Akamai edge network and returns its geolocation details (city, country, region, ASN, network).
| Name | Required | Description | Default |
|---|---|---|---|
| ipAddress | Yes | The IP address to verify and locate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the transparency burden. It discloses the core behavior: it verifies membership and returns geolocation fields. However, it does not explicitly state that the operation is read-only, nor does it describe behavior for IPs not in the Akamai network, which leaves some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the primary action ('Verifies') and then lists specific return fields. Every word contributes value, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify the return structure. It lists the geolocation fields (city, country, region, ASN, network) but does not specify whether a verification result (e.g., boolean) is also returned or what happens for non-Akamai IPs. The statement is somewhat ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for ipAddress ('The IP address to verify and locate') already covers the parameter's purpose with 100% coverage. The tool description adds no additional meaning beyond restating the same function, so it meets the baseline but does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Verifies whether an IP address belongs to the Akamai edge network' followed by 'returns its geolocation details'. This distinguishes it from sibling tools like verify_edge_ip (likely just verification) and locate_ip (likely just location) by combining both capabilities in one tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention that it combines verification and location, nor does it exclude use cases where only one function is needed, such as saying 'Use verify_edge_ip if you only need membership verification'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
14 tool updates
v0.1.2- First observed
connectivity_problems - First observed
content_problems - First observed
curl_from_edge - First observed
dig_from_edge - First observed
get_error_statistics - First observed
grep_edge_logs - First observed
list_edge_locations - First observed
locate_ip - First observed
mtr_from_edge - First observed
translate_akamaized_url - First observed
translate_error_string - First observed
url_health_check - First observed
verify_edge_ip - First observed
verify_locate_ip
TDQS
Several diagnostic tools overlap: url_health_check, connectivity_problems, and content_problems all perform edge-side diagnostics with cURL/dig/MTR, though they target different symptoms. Additionally, verify_edge_ip and verify_locate_ip serve similar verification purposes. However, descriptions are detailed enough to differentiate most tools.
Names follow a mix of verb_noun (list_edge_locations, translate_error_string) and noun phrases (url_health_check, connectivity_problems). The verb_from_edge pattern for curl, dig, mtr is consistent for those tools, but overall the set lacks a uniform naming convention.
With 14 tools, the set is appropriately sized for an Akamai diagnostics server. Each tool addresses a specific network or content debugging need without excessive redundancy.
The server covers core diagnostic workflows: URL translation, IP verification/location, edge commands, error stats, log search, and problem detection. Missing is a location details getter and maybe a direct 'get_edge_location' but most operations are covered. Minor gaps only.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
An MCP server that integrates with Discord to provide AI-powered features.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- -licenseBqualityNot gradedmaintenanceMCP server for Akamai APIs. 198 tools covering Property Manager, Edge DNS, CPS, WAF, and reporting. Built with TypeScript, featuring modular architecture, comprehensive testing, and multi-account support. Make Akamai accessible to AI assistants.1910-
- AlicenseNot gradedqualityAmaintenanceAn MCP Server that enables AI assistants to interact with your local browsers.3,60754MIT
- AlicenseNot gradedqualityCmaintenanceA powerful MCP server for making HTTP requests, GraphQL queries, and TCP/Telnet connections from AI assistants.7MIT
- AlicenseNot gradedqualityAmaintenanceA source-aware MCP server that connects AI agents to browser and server runtimes, enabling real-time debugging, monitoring, and automatic fixes via WebSocket or HTTP.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/amankrokx/mcp-connector-for-akamai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server