portkey
Read AI-gateway analytics, configs, virtual keys, workspaces and users; log request feedback.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"portkey": {
"url": "https://portkey.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://portkey.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (16)
🟢portkey_get_analytics_graph(metric, time_of_generation_min, time_of_generation_max, total_units, virtual_keys, ...)
Get a time-series analytics graph for a single metric (cost, requests, tokens, latency, error-rate, cache-hit-rate, …) over a time window. Optionally scope by virtual keys, configs, or metadata. Portkey: GET /analytics/graphs/{metric}.
Esquema de entrada
{
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"cost",
"requests",
"tokens",
"latency",
"error-rate",
"errors",
"status-codes",
"requests-per-user",
"rescued-requests",
"cache-hit-rate",
"cache-hit-latency",
"users",
"weighted-feedback"
],
"description": "Which metric graph to return."
},
"time_of_generation_min": {
"type": "string",
"description": "Start of the window (ISO8601, format YYYY-MM-DDTHH:MM:SS±HH:MM)."
},
"time_of_generation_max": {
"type": "string",
"description": "End of the window (ISO8601, format YYYY-MM-DDTHH:MM:SS±HH:MM)."
},
"total_units": {
"description": "Bucket size for the series, e.g. \"day\" or \"hour\".",
"type": "string"
},
"virtual_keys": {
"description": "Comma-separated virtual key slugs to scope the graph.",
"type": "string"
},
"configs": {
"description": "Comma-separated config slugs to scope the graph.",
"type": "string"
},
"metadata": {
"description": "JSON string of metadata key/values to scope the graph.",
"type": "string"
}
},
"required": [
"metric",
"time_of_generation_min",
"time_of_generation_max"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_get_analytics_group(group, time_of_generation_min, time_of_generation_max, current_page, page_size)
Get grouped analytics (aggregated by models, users, or metadata) over a time window. Portkey: GET /analytics/groups/{group}.
Esquema de entrada
{
"type": "object",
"properties": {
"group": {
"type": "string",
"enum": [
"models",
"users",
"metadata"
],
"description": "Dimension to group the analytics by."
},
"time_of_generation_min": {
"type": "string",
"description": "Start of the window (ISO8601, format YYYY-MM-DDTHH:MM:SS±HH:MM)."
},
"time_of_generation_max": {
"type": "string",
"description": "End of the window (ISO8601, format YYYY-MM-DDTHH:MM:SS±HH:MM)."
},
"current_page": {
"description": "Page number (0-based) for pagination. Default 0.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page_size": {
"description": "Number of records per page. Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"group",
"time_of_generation_min",
"time_of_generation_max"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_list_configs(workspace_id)
List gateway configs (routing/fallback/retry/cache rulesets applied to requests). Portkey: GET /configs.
Esquema de entrada
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Scope configs to a workspace id/slug.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_get_config(slug)
Get a single gateway config by slug (or id), including its routing rules. Portkey: GET /configs/{slug}.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "The config slug or id."
}
},
"required": [
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_list_api_keys(workspace_id, current_page, page_size)
List API keys in the organization/workspace (metadata only — secrets are never returned). Portkey: GET /api-keys.
Esquema de entrada
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Scope keys to a workspace id/slug.",
"type": "string"
},
"current_page": {
"description": "Page number (0-based) for pagination. Default 0.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page_size": {
"description": "Number of records per page. Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_get_api_key(id)
Get a single API key's metadata by id (the secret is never returned). Portkey: GET /api-keys/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The API key id."
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_list_virtual_keys(current_page, page_size)
List virtual keys (the aliases that map to provider credentials + budget/rate limits used in requests). Portkey: GET /virtual-keys.
Esquema de entrada
{
"type": "object",
"properties": {
"current_page": {
"description": "Page number (0-based) for pagination. Default 0.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page_size": {
"description": "Number of records per page. Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_get_virtual_key(slug)
Get a single virtual key by slug, including its provider + limits. Portkey: GET /virtual-keys/{slug}.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "The virtual key slug."
}
},
"required": [
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_list_workspaces(current_page, page_size)
List workspaces in the organization. Portkey: GET /workspaces.
Esquema de entrada
{
"type": "object",
"properties": {
"current_page": {
"description": "Page number (0-based) for pagination. Default 0.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page_size": {
"description": "Number of records per page. Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_get_workspace(id)
Get a single workspace by slug/id. Portkey: GET /workspaces/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The workspace slug or id."
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_list_workspace_members(id, current_page, page_size)
List members of a workspace (users + their roles). Portkey: GET /workspaces/{id}/members.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The workspace slug or id."
},
"current_page": {
"description": "Page number (0-based) for pagination. Default 0.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page_size": {
"description": "Number of records per page. Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_list_users(current_page, page_size, role, email)
List users in the organization. Filter by role or email. Portkey: GET /users.
Esquema de entrada
{
"type": "object",
"properties": {
"current_page": {
"description": "Page number (0-based) for pagination. Default 0.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page_size": {
"description": "Number of records per page. Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"role": {
"description": "Filter users by role (e.g. admin, member).",
"type": "string"
},
"email": {
"description": "Filter users by email address.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_get_user(id)
Get a single user by id. Portkey: GET /users/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The user id."
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_list_user_invites(current_page, page_size)
List pending user invitations to the organization. Portkey: GET /user-invites.
Esquema de entrada
{
"type": "object",
"properties": {
"current_page": {
"description": "Page number (0-based) for pagination. Default 0.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page_size": {
"description": "Number of records per page. Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢portkey_list_audit_logs(current_page, page_size)
List audit log entries (admin actions across the organization). Portkey: GET /audit-logs.
Esquema de entrada
{
"type": "object",
"properties": {
"current_page": {
"description": "Page number (0-based) for pagination. Default 0.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page_size": {
"description": "Number of records per page. Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴portkey_create_feedback(trace_id, value, weight, metadata)
WRITES a feedback record into the Portkey account, attached to a request/trace by trace_id. Use for logging a quality score (typically -10..10) with an optional weight (0..1) and metadata. Portkey: POST /feedback.
Esquema de entrada
{
"type": "object",
"properties": {
"trace_id": {
"type": "string",
"description": "The request/trace id to attach feedback to."
},
"value": {
"type": "number",
"description": "Feedback score, typically -10..10."
},
"weight": {
"description": "Relative weight of this feedback, 0..1.",
"type": "number"
},
"metadata": {
"description": "Arbitrary metadata key/values.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"trace_id",
"value"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Prompts recomendados
portkey_get_analytics_graphportkey_get_analytics_graphportkey_list_configsportkey_list_configsportkey_list_configsportkey_get_analytics_graphComunidad
Evidencia