Portkey MCP Server
The Portkey MCP Server enables comprehensive management of AI configurations, workspaces, analytics, and user access on the Portkey platform.
User & Access Management: List, manage, and invite users to your organization. Configure user roles and access levels at both organization and workspace levels.
Analytics & Reporting: Track detailed usage analytics, including request counts, token usage, and costs. Generate filtered reports based on criteria like time range, status codes, and virtual keys.
Workspace Management: Retrieve workspace details, manage configurations, and monitor virtual keys with usage and rate limits.
Configuration & API Settings: View and manage API configurations, including cache, retry, and routing settings.
Click on "Deploy 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., "@Portkey MCP Servershow me my API usage statistics for this month"
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.
Portkey MCP Server
Transform your AI assistant into a Portkey platform expert! This MCP server connects Claude to Portkey's API, enabling comprehensive management of AI configurations, workspaces, analytics, and user access.
Installation
From Source
Clone this repository
Install dependencies:
npm installCopy the example environment file:
cp .env.example .envAdd your Portkey API key to the
.envfile:
PORTKEY_API_KEY=your_portkey_api_key_hereThen update your Claude configuration file:
{
"mcpServers": {
"portkey-server": {
"command": "node",
"args": [
"/path/to/portkey-server/build/index.js"
],
"env": {
"PORTKEY_API_KEY": "your_portkey_api_key_here"
}
}
}
}Make sure to:
Replace
/path/to/portkey-serverwith the actual path to your installationAdd your Portkey API key in the
envsection
After updating the configuration, restart Claude Desktop for the changes to take effect.
Installing via Smithery
To install Portkey MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @r-huijts/portkey-admin-mcp-server --client claudeRelated MCP server: jotae-mcp
Real-World Use Cases
"What are my current API usage statistics across different models?"
"Show me the performance metrics for my AI deployments"
"Create a new workspace for my team's project"
"What's my current API key usage and remaining credits?"
"Generate an analytics report for last month's API calls"
"Set up rate limiting for my development environment"
"Configure fallback behavior for my production endpoints"
"Add team members to my Portkey workspace"
"Show me the latency statistics for my API calls"
"Set up custom headers for my API requests"
🔑 Environment Variables
Variable | Description |
PORTKEY_API_KEY | Your Portkey API key (required) |
🌟 Features
This MCP server provides comprehensive access to Portkey's platform through the following capabilities:
User & Access Management
User Administration: List and manage all users in your Portkey organization
User Invitations: Invite new users with customizable roles and permissions
Workspace Access: Configure user access levels across different workspaces
Role-Based Control: Assign admin, manager, or member roles at organization and workspace levels
Analytics & Reporting
Usage Analytics: Track detailed user activity and request patterns
Cost Analysis: Monitor and analyze costs across different time periods
Request Metrics: View request counts, token usage, and response times
Filtered Reports: Generate reports based on custom criteria like status codes, virtual keys, and time ranges
Workspace Management
Workspace Overview: List and view detailed information about all workspaces
Configuration Management: Access and review workspace configurations
Virtual Key Management: Monitor and manage API keys with usage limits and rate limits
Workspace Settings: View and track workspace metadata and user associations
Configuration & API Settings
Config Listings: View all available configurations in your organization
Detailed Config Info: Access cache settings, retry policies, and routing strategies
Virtual Key Details: Monitor key status, usage limits, and rate limits
API Integration: Track API endpoints and their configurations
License
This project is licensed under the ISC License - see the LICENSE file for details
Available Tools
9 toolsget_configC
Retrieve detailed information about a specific configuration, including cache settings, retry policies, and routing strategy
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The unique identifier (slug) of the configuration to retrieve. This can be found in the configuration's URL or from the list_configs tool response |
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 states this is a retrieval operation, implying read-only behavior, but doesn't disclose critical details like authentication requirements, rate limits, error conditions, or response format. This is inadequate for a tool with no annotation coverage.
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, efficient sentence that front-loads the purpose. It could be slightly more structured by separating usage context, but it's appropriately sized with no wasted words.
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 no annotations and no output schema, the description is incomplete. It doesn't explain what the return value looks like (e.g., JSON structure), error handling, or prerequisites. For a retrieval tool, this leaves significant gaps for the agent.
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 fully documents the 'slug' parameter. The description adds no additional parameter information beyond what's in the schema, but the baseline is 3 since the schema does the heavy lifting.
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 ('Retrieve detailed information') and resource ('specific configuration'), specifying the type of information returned (cache settings, retry policies, routing strategy). It doesn't explicitly distinguish from sibling tools like 'list_configs', which would be needed for a perfect score.
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. It doesn't mention the sibling 'list_configs' tool for listing configurations or other get_* tools for different resources, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cost_analyticsC
Retrieve detailed cost analytics data over time, including total costs and averages per request
| Name | Required | Description | Default |
|---|---|---|---|
| time_of_generation_min | Yes | Start time for the analytics period (ISO8601 format, e.g., '2024-01-01T00:00:00Z') | |
| time_of_generation_max | Yes | End time for the analytics period (ISO8601 format, e.g., '2024-02-01T00:00:00Z') | |
| total_units_min | No | Minimum number of total tokens to filter by | |
| total_units_max | No | Maximum number of total tokens to filter by | |
| cost_min | No | Minimum cost in cents to filter by | |
| cost_max | No | Maximum cost in cents to filter by | |
| prompt_token_min | No | Minimum number of prompt tokens | |
| prompt_token_max | No | Maximum number of prompt tokens | |
| completion_token_min | No | Minimum number of completion tokens | |
| completion_token_max | No | Maximum number of completion tokens | |
| status_code | No | Filter by specific HTTP status codes (comma-separated) | |
| weighted_feedback_min | No | Minimum weighted feedback score (-10 to 10) | |
| weighted_feedback_max | No | Maximum weighted feedback score (-10 to 10) | |
| virtual_keys | No | Filter by specific virtual key slugs (comma-separated) | |
| configs | No | Filter by specific config slugs (comma-separated) | |
| workspace_slug | No | Filter by specific workspace | |
| api_key_ids | No | Filter by specific API key UUIDs (comma-separated) | |
| metadata | No | Filter by metadata (stringified JSON object) | |
| ai_org_model | No | Filter by AI provider and model (comma-separated, use __ as separator) | |
| trace_id | No | Filter by trace IDs (comma-separated) | |
| span_id | No | Filter by span IDs (comma-separated) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool retrieves data 'over time' and includes specific metrics, but doesn't describe important behaviors: whether this is a read-only operation, if it requires specific permissions, how results are formatted (aggregated vs. raw), pagination, rate limits, or error conditions. For a complex analytics tool with 21 parameters, this is a significant gap.
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, efficient sentence that front-loads the core purpose. Every word contributes to understanding what the tool does. However, for such a complex tool with many parameters, additional context about usage or behavior might be warranted, making it slightly too concise.
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 tool's complexity (21 parameters, no output schema, no annotations), the description is inadequate. It doesn't explain the return format, aggregation methods, or how the numerous filtering parameters interact. For an analytics tool that likely returns structured data, the description should provide more context about what 'detailed cost analytics data' actually includes and how it's organized.
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 documents all 21 parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'over time' which aligns with the time range parameters, and 'total costs and averages per request' which relates to cost and token parameters. However, it doesn't provide additional context about parameter interactions or filtering logic beyond what's in the schema descriptions.
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 purpose with specific verbs ('retrieve') and resources ('detailed cost analytics data'), including what data is returned ('total costs and averages per request'). However, it doesn't differentiate this tool from potential sibling analytics tools (none are listed as siblings, but the description doesn't mention this uniqueness).
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. There's no mention of prerequisites, appropriate contexts, or comparisons to other tools (like get_user_stats or get_workspace that might provide related data). The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_statsC
Retrieve detailed analytics data about user activity within a specified time range, including request counts and costs
| Name | Required | Description | Default |
|---|---|---|---|
| time_of_generation_min | Yes | Start time for the analytics period (ISO8601 format, e.g., '2024-01-01T00:00:00Z') | |
| time_of_generation_max | Yes | End time for the analytics period (ISO8601 format, e.g., '2024-02-01T00:00:00Z') | |
| total_units_min | No | Minimum number of total tokens to filter by | |
| total_units_max | No | Maximum number of total tokens to filter by | |
| cost_min | No | Minimum cost in cents to filter by | |
| cost_max | No | Maximum cost in cents to filter by | |
| status_code | No | Filter by specific HTTP status codes (comma-separated) | |
| virtual_keys | No | Filter by specific virtual key slugs (comma-separated) | |
| page_size | No | Number of results per page (for pagination) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides minimal behavioral insight. It mentions retrieval of analytics data but doesn't disclose pagination behavior (implied by 'page_size' parameter), rate limits, authentication requirements, or whether the operation is read-only (implied by 'retrieve'). The description adds little beyond the basic operation.
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-structured sentence that efficiently conveys the core purpose without redundancy. It front-loads key information ('retrieve detailed analytics data') and uses precise terminology, with no wasted words or unnecessary elaboration.
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 9-parameter analytics tool with no annotations and no output schema, the description is inadequate. It doesn't explain the return format, pagination behavior, error conditions, or how filters interact. The agent lacks sufficient context to use this tool effectively beyond basic parameter passing.
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 fully documents all 9 parameters. The description adds no parameter-specific details beyond implying time-range filtering, which is already covered in the schema. Baseline score of 3 is appropriate as the schema does the heavy lifting, but the description doesn't enhance parameter understanding.
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 ('retrieve') and resource ('detailed analytics data about user activity'), specifying the data types ('request counts and costs') and temporal scope ('within a specified time range'). It distinguishes from siblings like 'get_cost_analytics' by focusing on user-level metrics rather than cost aggregation, though the distinction could be more explicit.
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?
No guidance is provided on when to use this tool versus alternatives like 'get_cost_analytics' or 'list_all_users'. The description mentions a time range but doesn't specify prerequisites, exclusions, or comparative use cases with sibling tools, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspaceA
Retrieve detailed information about a specific workspace, including its configuration, metadata, and user access details
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | The unique identifier of the workspace to retrieve. This can be found in the workspace's URL or from the list_workspaces tool response |
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 describes the operation as a retrieval (implying read-only) and specifies the type of information returned, but lacks details on permissions required, error handling, or response format. This is adequate for a simple read tool but misses behavioral context like rate limits or authentication needs.
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, efficient sentence that front-loads the core purpose and includes key details without redundancy. Every word adds value, making it appropriately sized and easy to parse for an AI agent.
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 tool's simplicity (1 parameter, no output schema, no annotations), the description is mostly complete: it states the purpose, scope, and return details. However, it could improve by mentioning the lack of output schema or clarifying that it returns unstructured data, which would help the agent understand response handling.
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%, with the single parameter (workspace_id) well-documented in the schema. The description does not add any parameter-specific details beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate since the schema handles the parameter documentation effectively.
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 ('retrieve') and resource ('workspace'), specifying the scope ('detailed information about a specific workspace') and what details are included ('configuration, metadata, and user access details'). It distinguishes this from siblings like list_workspaces by focusing on a single workspace rather than listing multiple.
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 usage for retrieving details of a specific workspace, which differentiates it from list_workspaces (for listing multiple) and other siblings like get_user_stats (for user data). However, it does not explicitly state when not to use this tool or name alternatives, such as clarifying that list_workspaces should be used first to find workspace IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_userB
Invite a new user to your Portkey organization with specific workspace access and API key permissions
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address of the user to invite | ||
| role | Yes | Organization-level role: 'admin' for full access, 'member' for limited access | |
| first_name | No | User's first name | |
| last_name | No | User's last name | |
| workspaces | Yes | List of workspaces and corresponding roles to grant to the user | |
| workspace_api_key_details | No | Optional API key to be created for the user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the action ('invite') and some permissions aspects, it doesn't disclose important behavioral traits like: whether this requires admin privileges, whether it sends an email invitation, what happens if the email is already associated with an account, rate limits, or what the response looks like. For a user invitation tool with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior.
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, efficient sentence that front-loads the core purpose. Every word earns its place by specifying the action, target, and key capabilities. There's no redundancy or unnecessary elaboration, making it appropriately concise for the tool's complexity.
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 user invitation tool with 6 parameters (including nested objects), no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, what permissions are required to use it, whether it's idempotent, or how errors are handled. The description provides basic purpose but lacks the contextual completeness needed for a mutation tool of this 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?
The schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds minimal value beyond what's in the schema - it mentions 'workspace access and API key permissions' which aligns with the 'workspaces' and 'workspace_api_key_details' parameters, but doesn't provide additional context about parameter relationships, defaults, or usage patterns. The baseline of 3 is appropriate when the schema does the heavy lifting.
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 specific action ('invite a new user') and the target resource ('your Portkey organization'), while also specifying the scope of the invitation ('with specific workspace access and API key permissions'). It distinguishes this tool from its siblings (which are primarily read-only 'get' and 'list' operations) by being the only user creation/invitation 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 implies this tool should be used when you need to add a new user to the organization with specific permissions, but it doesn't provide explicit guidance on when to use it versus alternatives. There's no mention of prerequisites (e.g., admin permissions required) or what happens if the user already exists. The context is clear but lacks explicit exclusions or alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_all_usersB
List all users in your Portkey organization, including their roles and account details
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 states the tool lists users, implying a read-only operation, but doesn't disclose behavioral traits such as pagination, rate limits, authentication requirements, or what happens if no users exist. For a tool with zero annotation coverage, this is a significant gap in transparency.
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, efficient sentence that front-loads the key action ('List all users') and includes essential details ('in your Portkey organization, including their roles and account details'). There is no wasted language, and it's appropriately sized for the tool's simplicity.
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 tool's complexity (0 parameters, no output schema, no annotations), the description is minimally complete. It states what the tool does but lacks behavioral context (e.g., output format, error handling). Without annotations or output schema, more detail on return values or usage constraints would improve completeness, but it's adequate for a basic list 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 tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter semantics, but with no parameters, the baseline is 4 as it adequately covers the tool's purpose without unnecessary details.
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 ('List') and resource ('all users in your Portkey organization'), specifying what fields are included ('their roles and account details'). It distinguishes from some siblings like 'get_user_stats' (statistics vs. list) and 'invite_user' (create vs. list), but doesn't explicitly differentiate from all list-type tools like 'list_configs' or 'list_workspaces'.
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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, timing considerations, or comparisons with siblings like 'get_user_stats' (which might provide aggregated data) or 'invite_user' (which is for adding users). The description implies a comprehensive listing but offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_configsB
Retrieve all configurations in your Portkey organization, including their status and workspace associations
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions retrieving data but doesn't disclose behavioral traits like pagination, rate limits, authentication needs, or whether it's read-only. 'Retrieve' suggests a read operation, but this isn't explicitly stated. The description adds minimal behavioral context beyond the basic action.
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?
Single sentence, front-loaded with the core action ('Retrieve all configurations'), followed by specifics on what's included. Zero waste, appropriately sized for a simple list tool. Every word 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?
Given no annotations, no output schema, and a simple tool with 0 parameters, the description is incomplete. It lacks details on return format (e.g., list structure, fields), behavioral constraints, or error handling. For a tool that retrieves organizational data, more context on scope and limitations would be helpful.
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 0 parameters, and schema description coverage is 100% (though empty). The description doesn't need to add parameter details, so baseline is 4. It implicitly confirms no filtering or input is required by stating 'all configurations', aligning with the empty schema.
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 ('Retrieve') and resource ('all configurations in your Portkey organization'), specifying what data is included ('their status and workspace associations'). It distinguishes from siblings like 'get_config' (singular) and 'get_workspace' (different resource), though not explicitly. Purpose is specific but could better differentiate from other list 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?
No guidance on when to use this tool versus alternatives like 'list_all_users' or 'list_workspaces'. The description implies it's for retrieving configurations broadly, but doesn't specify prerequisites, context, or exclusions. Usage is implied by the resource name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_virtual_keysB
Retrieve all virtual keys in your Portkey organization, including their usage limits, rate limits, and status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions what information is retrieved (usage limits, rate limits, status), it doesn't describe important behavioral aspects like whether this requires authentication, how results are returned (pagination, format), rate limits on the operation itself, or what happens if no virtual keys exist. The description provides some context about what's included but misses key operational details.
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, efficient sentence that packs substantial information about what's retrieved. It's appropriately sized for a zero-parameter tool and front-loads the core purpose immediately. There's no wasted verbiage, though it could potentially be structured to include usage guidance.
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 zero-parameter list operation with no output schema, the description provides adequate but incomplete coverage. It specifies what resource is retrieved and what information is included, but lacks details about the return format, authentication requirements, error conditions, or relationship to other tools. The absence of annotations means the description should do more heavy lifting than it currently does.
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 with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and it focuses on what the tool retrieves rather than parameter details.
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 'retrieve' and the resource 'all virtual keys in your Portkey organization', with specific details about what information is included (usage limits, rate limits, status). It distinguishes itself from sibling tools like list_all_users or list_workspaces by focusing specifically on virtual keys.
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. While it's clear this is for retrieving virtual keys, there's no mention of when you'd use this versus other list_* tools or how it relates to other Portkey management tools. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesA
Retrieve all workspaces in your Portkey organization, including their configurations and metadata
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Number of workspaces to return per page (default varies by endpoint) | |
| current_page | No | Page number to retrieve when results are paginated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the scope ('all workspaces', 'configurations and metadata') but lacks critical behavioral details: pagination behavior (implied by parameters but not explained), rate limits, authentication requirements, error conditions, or response format. The description doesn't contradict annotations since none exist.
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?
Single sentence efficiently conveys core purpose with zero waste. Front-loaded with main action ('Retrieve all workspaces'), followed by scope details. Every word earns its place without redundancy or unnecessary elaboration.
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 read-only list tool with 2 documented parameters but no annotations and no output schema, the description is minimally adequate. It covers what the tool retrieves but lacks behavioral context (pagination, authentication, response format) that would be helpful given the absence of structured metadata. Completeness is borderline for a tool that presumably returns complex workspace objects.
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 fully documents both pagination parameters. The description adds no parameter-specific information beyond what's in the schema. Baseline 3 is appropriate when schema does all parameter documentation work.
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 'Retrieve' and resource 'all workspaces in your Portkey organization', specifying scope with 'including their configurations and metadata'. It distinguishes from sibling 'get_workspace' (singular) by indicating retrieval of multiple workspaces. However, it doesn't explicitly differentiate from other list tools like 'list_all_users' or 'list_configs' beyond resource type.
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 usage for retrieving workspace collections rather than single workspaces (contrasting with 'get_workspace'), but doesn't provide explicit when-to-use guidance, alternatives, or exclusions. No mention of prerequisites, authentication needs, or comparison with other list tools is provided.
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.
9 tool updates
v1.0.0- First observed
get_config - First observed
get_cost_analytics - First observed
get_user_stats - First observed
get_workspace - First observed
invite_user - First observed
list_all_users - First observed
list_configs - First observed
list_virtual_keys - First observed
list_workspaces
TDQS
Scored across 9 tools
Every tool has a clearly distinct purpose targeting different resources and actions, with no overlap in functionality. For example, get_config retrieves a specific configuration, list_configs lists all configurations, and invite_user handles user invitations, making misselection unlikely.
All tool names follow a consistent verb_noun pattern using snake_case, such as get_config, list_configs, and invite_user. This predictability makes it easy for agents to understand and use the tools without confusion.
With 9 tools, the server is well-scoped for managing a Portkey organization, covering configurations, users, workspaces, analytics, and keys. Each tool earns its place by addressing specific needs without being excessive or insufficient.
The toolset provides strong coverage for retrieval, listing, and user management, but lacks update or delete operations for resources like configurations or workspaces. Agents can work around this by using existing tools, but it's a minor gap in lifecycle coverage.
Maintenance
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Manage hosts, redirects, SSL, and traffic analytics from Claude and other AI assistants.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
AI routing, memory, guardrails, and governance. Routes across Claude, GPT, Gemini.
Related MCP Servers
- AlicenseBqualityCmaintenanceConnects Claude to WordPress sites through the REST API, enabling AI-assisted content creation, publishing, media management, user administration, and site maintenance tasks through natural language.472122MIT
- AlicenseBqualityDmaintenanceConnects Claude to Jotae for creating events, configuring WhatsApp and email automations, and reading metrics through natural language.219MIT
- AlicenseAqualityDmaintenanceConnects Claude to Open WebUI, enabling chat management, RAG knowledge bases, files, functions, and prompts directly from Claude.26152MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude to the WhatConverts API, enabling management of leads, accounts, profiles, tracking numbers, and recordings through natural language.MIT