portkey-admin-mcp
MCP server for Portkey Admin API - 116 tools for prompts, configs, analytics & more.
README
<div align="center">
Portkey Admin MCP Server
<picture> <source media="(prefers-color-scheme: dark)" srcset="https://readme-typing-svg.demolab.com?font=Fira+Code&pause=1000&color=FFFFFF¢er=true&vCenter=true&width=500&lines=116+tools+for+Portkey+Admin+API;Prompts%2C+Configs%2C+Analytics;Full+MCP+Protocol+1.0+Server"> <source media="(prefers-color-scheme: light)" srcset="https://readme-typing-svg.demolab.com?font=Fira+Code&pause=1000&color=000000¢er=true&vCenter=true&width=500&lines=116+tools+for+Portkey+Admin+API;Prompts%2C+Configs%2C+Analytics;Full+MCP+Protocol+1.0+Server"> <img src="https://readme-typing-svg.demolab.com?font=Fira+Code&pause=1000&color=000000¢er=true&vCenter=true&width=500&lines=116+tools+for+Portkey+Admin+API;Prompts%2C+Configs%2C+Analytics;Full+MCP+Protocol+1.0+Server" alt="Typing SVG"> </picture>
MCP server for Portkey Admin API. 116 tools for prompts, configs, analytics & more.
</div>
<p align="center"> <a href="https://www.npmjs.com/package/portkey-admin-mcp"><img src="https://img.shields.io/npm/v/portkey-admin-mcp.svg" alt="npm version"></a> <a href="https://www.npmjs.com/package/portkey-admin-mcp"><img src="https://img.shields.io/npm/dm/portkey-admin-mcp" alt="npm downloads"></a> <a href="https://nodejs.org/"><img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg" alt="Node.js"></a> <a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-5.9-blue.svg" alt="TypeScript"></a> <a href="https://modelcontextprotocol.io/"><img src="https://img.shields.io/badge/MCP-1.0-purple.svg" alt="MCP"></a> </p>
<p align="center"> <a href="https://github.com/s-b-e-n-s-o-n/portkey-admin-mcp/stargazers"><img src="https://img.shields.io/github/stars/s-b-e-n-s-o-n/portkey-admin-mcp" alt="GitHub stars"></a> <a href="https://github.com/s-b-e-n-s-o-n/portkey-admin-mcp/issues"><img src="https://img.shields.io/github/issues/s-b-e-n-s-o-n/portkey-admin-mcp" alt="GitHub issues"></a> <a href="https://github.com/s-b-e-n-s-o-n/portkey-admin-mcp/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a> <a href="https://github.com/s-b-e-n-s-o-n/portkey-admin-mcp/commits"><img src="https://img.shields.io/github/last-commit/s-b-e-n-s-o-n/portkey-admin-mcp" alt="Last Commit"></a> </p>
<p align="center"> <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a> <a href="./ENDPOINTS.md"><img src="https://img.shields.io/badge/docs-ENDPOINTS.md-blue" alt="Docs"></a> <a href="https://github.com/sponsors/s-b-e-n-s-o-n"><img src="https://img.shields.io/badge/sponsor-GitHub_Sponsors-ea4aaa?logo=githubsponsors&logoColor=fff" alt="Sponsor"></a> </p>
<p align="center"> <a href="https://registry.modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP_Registry-io.github.s--b--e--n--s--o--n%2Fportkey--admin--mcp-blue?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiLz48L3N2Zz4=" alt="MCP Registry"></a> <a href="https://smithery.ai/server/@s-b-e-n-s-o-n/portkey-admin-mcp"><img src="https://smithery.ai/badge/@s-b-e-n-s-o-n/portkey-admin-mcp" alt="Smithery"></a> </p>
<p align="center"> <a href="https://glama.ai/mcp/servers/@s-b-e-n-s-o-n/portkey-admin-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@s-b-e-n-s-o-n/portkey-admin-mcp/badge" alt="Portkey Admin MCP server" /> </a> </p>
📑 Contents
🚀 Quick Start
Installation Methods
| Method | Type | Setup |
|---|---|---|
| Hosted | One-click install, no local setup | |
| Hosted | One-click install via Glama | |
| Local | npx -y portkey-admin-mcp |
|
| Self-hosted | docker pull or build from source |
<details> <summary><strong>📦 npx / Claude Desktop Config</strong></summary>
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"portkey": {
"command": "npx",
"args": ["-y", "portkey-admin-mcp"],
"env": {
"PORTKEY_API_KEY": "your_api_key"
}
}
}
}
Restart Claude Desktop.
</details>
<details> <summary><strong>🔨 Build from source</strong></summary>
git clone https://github.com/s-b-e-n-s-o-n/portkey-admin-mcp.git
cd portkey-admin-mcp
npm install
npm run build
Then use this config:
{
"mcpServers": {
"portkey": {
"command": "node",
"args": ["/path/to/portkey-admin-mcp/build/index.js"],
"env": {
"PORTKEY_API_KEY": "your_api_key"
}
}
}
}
</details>
✨ Features
<table> <tr> <td align="center" width="33%"> <h3>📝 Prompt Management</h3> Create, version, render & execute prompts </td> <td align="center" width="33%"> <h3>⚡ Gateway Configs</h3> Loadbalancing, fallbacks, caching </td> <td align="center" width="33%"> <h3>📊 Analytics</h3> Cost, latency, errors, feedback </td> </tr> <tr> <td align="center"> <h3>🛡️ Governance</h3> Rate limits, usage limits, guardrails </td> <td align="center"> <h3>🔍 Observability</h3> Logs, traces, audit trails </td> <td align="center"> <h3>🔐 Access Control</h3> Users, workspaces, API keys </td> </tr> </table>
🔧 Tools (116)
<details> <summary><strong>👥 User & Access</strong> (10 tools)</summary>
| Tool | Description |
|---|---|
list_all_users |
List all users in organization |
get_user |
Get user details |
update_user |
Update user |
delete_user |
Remove user |
invite_user |
Invite a new user |
list_user_invites |
List pending invites |
get_user_invite |
Get invite details |
delete_user_invite |
Cancel invite |
resend_user_invite |
Resend invite email |
get_user_stats |
Get user statistics |
</details>
<details> <summary><strong>🏢 Workspaces</strong> (10 tools)</summary>
| Tool | Description |
|---|---|
list_workspaces |
List all workspaces |
get_workspace |
Get workspace details |
create_workspace |
Create workspace |
update_workspace |
Update workspace |
delete_workspace |
Delete workspace |
add_workspace_member |
Add member to workspace |
list_workspace_members |
List workspace members |
get_workspace_member |
Get member details |
update_workspace_member |
Update member role |
remove_workspace_member |
Remove member |
</details>
<details> <summary><strong>⚙️ Configs</strong> (6 tools)</summary>
| Tool | Description |
|---|---|
list_configs |
List gateway configs |
get_config |
Get config details |
create_config |
Create config |
update_config |
Update config |
delete_config |
Delete config |
list_config_versions |
List config version history |
</details>
<details> <summary><strong>🔑 API & Virtual Keys</strong> (10 tools)</summary>
| Tool | Description |
|---|---|
list_api_keys |
List API keys |
create_api_key |
Create API key |
get_api_key |
Get API key details |
update_api_key |
Update API key |
delete_api_key |
Delete API key |
list_virtual_keys |
List virtual keys |
create_virtual_key |
Create virtual key |
get_virtual_key |
Get virtual key details |
update_virtual_key |
Update virtual key |
delete_virtual_key |
Delete virtual key |
</details>
<details> <summary><strong>📁 Collections</strong> (5 tools)</summary>
| Tool | Description |
|---|---|
list_collections |
List prompt collections |
create_collection |
Create a collection |
get_collection |
Get collection details |
update_collection |
Update collection |
delete_collection |
Delete collection |
</details>
<details> <summary><strong>📝 Prompts</strong> (12 tools)</summary>
| Tool | Description |
|---|---|
list_prompts |
List prompts |
create_prompt |
Create a prompt template |
get_prompt |
Get prompt details |
update_prompt |
Update a prompt |
delete_prompt |
Delete prompt |
publish_prompt |
Publish prompt version |
list_prompt_versions |
List version history |
render_prompt |
Render prompt with variables |
run_prompt_completion |
Execute prompt completion |
migrate_prompt |
Create-or-update prompt |
promote_prompt |
Promote prompt between environments |
validate_completion_metadata |
Validate billing metadata |
</details>
<details> <summary><strong>🧩 Prompt Partials</strong> (6 tools)</summary>
| Tool | Description |
|---|---|
create_prompt_partial |
Create reusable partial |
list_prompt_partials |
List partials |
get_prompt_partial |
Get partial details |
update_prompt_partial |
Update partial |
delete_prompt_partial |
Delete partial |
list_partial_versions |
List partial versions |
publish_partial |
Publish partial version |
</details>
<details> <summary><strong>🏷️ Prompt Labels</strong> (5 tools)</summary>
| Tool | Description |
|---|---|
create_prompt_label |
Create label |
list_prompt_labels |
List labels |
get_prompt_label |
Get label details |
update_prompt_label |
Update label |
delete_prompt_label |
Delete label |
</details>
<details> <summary><strong>🛡️ Guardrails</strong> (5 tools)</summary>
| Tool | Description |
|---|---|
list_guardrails |
List guardrails |
create_guardrail |
Create guardrail |
get_guardrail |
Get guardrail details |
update_guardrail |
Update guardrail |
delete_guardrail |
Delete guardrail |
</details>
<details> <summary><strong>📏 Usage Limits</strong> (5 tools)</summary>
| Tool | Description |
|---|---|
list_usage_limits |
List usage limits |
create_usage_limit |
Create usage limit |
get_usage_limit |
Get limit details |
update_usage_limit |
Update limit |
delete_usage_limit |
Delete limit |
</details>
<details> <summary><strong>⏱️ Rate Limits</strong> (5 tools)</summary>
| Tool | Description |
|---|---|
list_rate_limits |
List rate limits |
create_rate_limit |
Create rate limit |
get_rate_limit |
Get rate limit details |
update_rate_limit |
Update rate limit |
delete_rate_limit |
Delete rate limit |
</details>
<details> <summary><strong>📜 Audit</strong> (1 tool)</summary>
| Tool | Description |
|---|---|
list_audit_logs |
List audit log entries |
</details>
<details> <summary><strong>📊 Analytics</strong> (20 tools)</summary>
| Tool | Description |
|---|---|
get_cost_analytics |
Get cost analytics data |
get_analytics_summary |
Get analytics summary |
get_analytics_by_models |
Analytics by model |
get_analytics_by_metadata |
Analytics by metadata |
get_request_analytics |
Request analytics |
get_token_analytics |
Token usage analytics |
get_latency_analytics |
Latency analytics |
get_error_analytics |
Error analytics |
get_error_rate_analytics |
Error rate analytics |
get_status_code_analytics |
Status code distribution |
get_cache_analytics |
Cache analytics |
get_feedback_analytics |
Feedback analytics |
get_user_analytics |
Per-user analytics |
get_cache_hit_latency |
Cache hit latency |
get_cache_hit_rate |
Cache hit rate |
get_feedback_per_model |
Feedback per model |
get_feedback_score_distribution |
Score distribution |
get_requests_per_user |
Requests per user |
get_rescued_requests |
Rescued requests |
get_weighted_feedback |
Weighted feedback |
</details>
<details> <summary><strong>📋 Logging</strong> (8 tools)</summary>
| Tool | Description |
|---|---|
insert_log |
Insert log entry |
create_log_export |
Create log export |
list_log_exports |
List exports |
get_log_export |
Get export details |
update_log_export |
Update export |
start_log_export |
Start export job |
cancel_log_export |
Cancel export |
download_log_export |
Download export |
</details>
<details> <summary><strong>🔍 Tracing</strong> (4 tools)</summary>
| Tool | Description |
|---|---|
create_feedback |
Create feedback |
update_feedback |
Update feedback |
list_traces |
List traces |
get_trace |
Get trace details |
</details>
<details> <summary><strong>🔌 Providers</strong> (5 tools)</summary>
| Tool | Description |
|---|---|
list_providers |
List providers |
create_provider |
Create provider |
get_provider |
Get provider details |
update_provider |
Update provider |
delete_provider |
Delete provider |
</details>
<details> <summary><strong>🔗 Integrations</strong> (10 tools)</summary>
| Tool | Description |
|---|---|
list_integrations |
List integrations |
create_integration |
Create integration |
get_integration |
Get integration details |
update_integration |
Update integration |
delete_integration |
Delete integration |
list_integration_models |
List custom models |
update_integration_models |
Update custom models |
delete_integration_model |
Delete custom model |
list_integration_workspaces |
List workspace access |
update_integration_workspaces |
Update workspace access |
</details>
🏗️ Architecture
sequenceDiagram
participant Client as Client (Claude)
participant Transport as MCP Transport<br/>(Stdio or HTTP)
participant Server as MCP Server
participant Facade as PortkeyService
participant Domain as Domain Service<br/>(e.g., UsersService)
participant API as Portkey API
Client->>Transport: Tool invocation request
Transport->>Server: Forward request
Server->>Server: Parse tool name & params
Server->>Facade: Call delegated method
Facade->>Domain: Delegate to domain service
Domain->>API: HTTP GET /users
API-->>Domain: JSON response
Domain-->>Facade: Return typed data
Facade-->>Server: Return data
Server-->>Transport: Tool result
Transport-->>Client: Display result
🚢 Deployment
Transports
| Transport | Use Case | Default |
|---|---|---|
stdio |
Local CLI tools (Claude Code, Cursor) | Yes |
Streamable HTTP |
Remote clients, web, production | - |
Set via MCP_TRANSPORT=stdio|http environment variable.
HTTP Mode
MCP_TRANSPORT=http MCP_PORT=3000 node build/index.js
Exposes a single /mcp endpoint with session management via Mcp-Session-Id header.
Docker
docker build -t portkey-admin-mcp .
docker run -e PORTKEY_API_KEY=your_key -p 3000:3000 portkey-admin-mcp
Health Endpoints
GET /health- Server statusGET /ready- Portkey API connectivity check
⚠️ Limitations
Enterprise Features
The following require a Portkey Enterprise plan with Admin API keys:
- Analytics (cost, request, token, latency, error, cache, feedback)
- Log exports
- Audit logs
- User management (list users, invites)
- Provider creation
Known Issues
Some endpoints are pending Portkey API clarification:
| Tool | Status | Issue |
|---|---|---|
render_prompt |
500 | Server error - investigating |
create_prompt_label |
400 | Request format unclear |
create_usage_limit |
400 | Request format unclear |
create_rate_limit |
400 | Request format unclear |
list_traces |
405 | Endpoint path unclear |
<div align="center">
Built With
MIT License · Inspired by r-huijts/portkey-admin-mcp-server
<a href="#portkey-admin-mcp-server">↑ Back to top</a>
<picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.visitorbadge.io/api/visitors?path=s-b-e-n-s-o-n%2Fportkey-admin-mcp&label=Visitors&countColor=%23FFFFFF"> <source media="(prefers-color-scheme: light)" srcset="https://api.visitorbadge.io/api/visitors?path=s-b-e-n-s-o-n%2Fportkey-admin-mcp&label=Visitors&countColor=%23000000"> <img src="https://api.visitorbadge.io/api/visitors?path=s-b-e-n-s-o-n%2Fportkey-admin-mcp&label=Visitors&countColor=%23000000" alt="Visitors"> </picture>
</div>
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。