portkey
Read AI-gateway analytics, configs, virtual keys, workspaces and users; log request feedback.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"portkey": {
"url": "https://portkey.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://portkey.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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}.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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#"
}권장 프롬프트
portkey_get_analytics_graphportkey_get_analytics_graphportkey_list_configsportkey_list_configsportkey_list_configsportkey_get_analytics_graph커뮤니티
증거