A side-by-side look at the Cloudflare MCP Go and Portkey Admin MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Cloudflare MCP Go for cloud platforms work; choose Portkey Admin MCP for cloud platforms as a local process. You can also run both side by side in one mcpServers block.
list_zones, get_zone, get_zone_settings.PORTKEY_API_KEY, PORTKEY_TOOL_DOMAINS.list_all_users, invite_user, get_user_stats.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Cloud Platforms | Cloud Platforms |
| Quality signal | 49/100 · Fair | 65/100 · Great |
| Install command | Not confirmed yet | Confirmed |
| Transport | — | Local subprocess (stdio) |
| Auth | Not declared | API key required |
| Pricing | Not declared | BYOK (pay the provider) |
| Required env vars | None listed | PORTKEY_API_KEYPORTKEY_TOOL_DOMAINS |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 6 |
| Directory activity | 0 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 80 | 181 |
| Full listing | View Cloudflare MCP Go | View Portkey Admin MCP |
list_zonesList zones in your account (ID, name, status, plan).get_zoneGet details of a specific zone.get_zone_settingsGet a zone's configuration settings (SSL mode, min TLS, cache level, security level).purge_cachePurge a zone's cache: everything, or by file/tag/host/prefix (write; requires `CLOUDFLARE_MCP_ENABLE_WRITE=true`).list_dns_recordsList DNS records for a zone (type, name, content, TTL, proxy status).get_dns_recordGet a single DNS record by ID (type, name, content, TTL, proxy status, comment).get_dns_analyticsDNS query analytics: query counts, response codes, query type distribution.get_dns_analytics_bytimeDNS query analytics grouped by time interval (time-series).export_dns_recordsExport all DNS records for a zone as a BIND zone file.get_dns_record_usageDNS record usage counts for a zone (toward plan limits).get_dns_settingsGet a zone's DNS settings (Foundation DNS, multi-provider, nameservers, zone mode).get_dnssecGet DNSSEC details for a zone (status, DS record, digest, key tag, algorithm).list_all_usersList accepted org users with id, name, email, role, and timestamps. Use this to find a user_id before get_user, update_user, delete_user, or add_workspace_member; use list_user_invites for pending invitations. Enterprise-gated. Returns 403 on non-Enterprise Portkey plans.invite_userInvite a new org user and optionally provision workspace access and an API key in one call. Workspace assignments apply only after acceptance; use add_workspace_member or update_workspace_member later for follow-up changes.get_user_statsReturn per-user request and cost analytics for a required time range. This is usage-by-user, not population metrics; use get_users_analytics for active-user or cohort trends. Enterprise-gated. Returns 403 on non-Enterprise Portkey plans.get_userGet one accepted user by id and return their profile, role, and timestamps. Use list_all_users to find the id if you only have a name or email, and get_user_invite for pending invitations. Enterprise-gated. Returns 403 on non-Enterprise Portkey plans.update_userUpdate a user's first name, last name, or organization role by id. Email and workspace roles are not editable here; use update_workspace_member for workspace membership changes.delete_userDelete a user from the org by id. This is permanent, removes org and workspace memberships, revokes API keys, and ends active sessions; use delete_user_invite for pending invites instead.list_user_invitesList pending and sent invitations with id, email, role, status, and expiry. Use this to check invite state; use list_all_users for users who already accepted. Enterprise-gated. Returns 403 on non-Enterprise Portkey plans.get_user_inviteGet one invitation by invite id and return its email, role, status, and expiry. Use this for pending invites only; use get_user for accepted users.delete_user_inviteDelete a pending invite and revoke its invite link. This does not affect existing users; use delete_user for full user removal.resend_user_inviteResend the email for a pending invite that has not been accepted, unlike invite_user which creates a new invite. This sends a fresh email without modifying the invite record, expiry, or role; use get_user_invite first if you are unsure whether the invite still exists and list_user_invites to discover invite_ids.list_scim_workspace_mappingsList identity-provider SCIM group mappings that automatically grant Portkey workspace roles. Use it to audit provisioned access or obtain mapping_id before delete_scim_workspace_mapping; filter by workspace, group, or role and page through large directories. This reads mappings only and does not query individual workspace members. Enterprise-gated. Returns 403 on non-Enterprise Portkey plans.create_scim_workspace_mappingMap one identity-provider SCIM group to a Portkey workspace role so current and future group members receive access automatically. Provide exactly one of scim_group_id or scim_group_name; a name can pre-create the Portkey SCIM group before the IdP provisions it. Use list_scim_groups to discover existing groups and list_workspaces for the workspace ID. This changes access provisioning and is distinct from add_workspace_member, which grants one user directly. Enterprise-gated. Returns 403 on non-Enterprise Portkey plans.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
No confirmed install command for Cloudflare MCP Go yet — follow the setup steps linked from its listing page rather than a guessed package name.
{
"mcpServers": {
"s-b-e-n-s-o-n-portkey-admin-mcp": {
"command": "npx",
"args": [
"-y",
"portkey-admin-mcp"
],
"env": {
"PORTKEY_API_KEY": "YOUR_PORTKEY_API_KEY_HERE",
"PORTKEY_TOOL_DOMAINS": "YOUR_PORTKEY_TOOL_DOMAINS_HERE"
}
}
}
}