klanex — надёжные вызовы API
Асинхронное выполнение запросов к сторонним API с повторами, хранением ключей и журналом
Добавьте сервер в «Мои MCP» — получите адрес подключения для Claude и ChatGPT.
Добавить в «Мои MCP»Нужно войти или зарегистрироваться — вернём на эту страницу.
Описание
klanex берёт на себя выполнение HTTP-запросов к сторонним API от имени ИИ-агента и делает их надёжными: проверяет данные по схеме, хранит учётные данные в зашифрованном виде, повторяет запрос при сбоях и ведёт журнал. Можно отправить запрос на выполнение и потом проверить его состояние — в очереди, выполняется, ждёт одобрения, успешно или с ошибкой. Доступны список своих запросов с фильтрами по статусу и времени, повторный запуск завершённого запроса с теми же данными и список сохранённых подключений с учётными данными. Отдельный инструмент показывает тариф и расход лимита за текущий месяц. Нужен аккаунт klanex; число выполнений ограничено тарифом.
Инструменты · 6
из ответа tools/list
execute
execute
Submit an HTTP call to a third-party API for reliable asynchronous execution. klanex validates the payload (optionally against payload_schema), stores credentials encrypted, executes with automatic retries/backoff/circuit breakers, and keeps an audit trail — you submit once and never retry transient failures yourself. Call this instead of making a direct HTTP request whenever the call has side effects (payments, messages, tickets, writes) or the target may be flaky. Prefer connection_id over headers for credentials. Always set idempotency_key for side-effecting calls so resubmitting can never double-execute. Set wait_seconds to block for the result; otherwise poll get_execution with the returned execution_id.
execute(url: string, method?: string, headers?: object, payload?: any, seal_url?: boolean, timeout_ms?: integer, max_attempts?: integer, wait_seconds?: integer, connection_id?: string, payload_schema?: any, idempotency_key?: string, requires_approval?: boolean)
// inputSchema
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "absolute http(s) URL of the target endpoint"
},
"method": {
"type": "string",
"description": "HTTP method: GET, POST, PUT, PATCH, or DELETE (default POST)"
},
"headers": {
"type": "object",
"description": "request headers, typically third-party credentials; encrypted at rest and never readable back. Prefer connection_id so secrets never pass through your context",
"additionalProperties": {
"type": "string"
}
},
"payload": {
"description": "JSON body to send to the target"
},
"seal_url": {
"type": "boolean",
"description": "set true when the URL itself is a secret (webhook URL, presigned URL); it is encrypted and reads back redacted"
},
"timeout_ms": {
"type": "integer",
"description": "per-attempt timeout in milliseconds (default 30000)"
},
"max_attempts": {
"type": "integer",
"description": "maximum delivery attempts, 1-10 (default 5)"
},
"wait_seconds": {
"type": "integer",
"description": "block up to this many seconds (max 55) for a terminal result instead of returning immediately after queueing"
},
"connection_id": {
"type": "string",
"description": "ID of a stored credential connection (con_...) to authenticate the call; see list_connections"
},
"payload_schema": {
"description": "JSON Schema to validate payload against before anything executes; mismatches are rejected synchronously with a correction hint"
},
"idempotency_key": {
"type": "string",
"description": "stable key (max 255 chars) making this submit safe to retry; the same key returns the original execution instead of creating a new one. Always set this for side-effecting calls"
},
"requires_approval": {
"type": "boolean",
"description": "pause for a human approve/reject decision before anything executes; use for destructive or high-stakes actions"
}
},
"additionalProperties": false
}
get_execution
get_execution
Fetch the current state of an execution by ID: status (PENDING_APPROVAL|QUEUED|RUNNING|RETRYING|SUCCEEDED|FAILED), attempts, the target response on success, or a classified error on failure. Retryable failures need no action from you — klanex is still retrying. Header values always read back REDACTED.
get_execution(execution_id: string)
// inputSchema
{
"type": "object",
"required": [
"execution_id"
],
"properties": {
"execution_id": {
"type": "string",
"description": "the execution ID (exe_...)"
}
},
"additionalProperties": false
}
get_usage
get_usage
Report the account's plan and execution usage for the current calendar month: used, included_executions, remaining, and whether overage is allowed. Check this before large batches to avoid hitting a hard quota.
get_usage()
// inputSchema
{
"type": "object",
"additionalProperties": false
}
list_connections
list_connections
List the account's stored credential connections (token vault). Reference a ready connection by its ID in execute's connection_id instead of passing raw headers — the credential is injected at execution time and never passes through your context. Secrets are never returned.
list_connections()
// inputSchema
{
"type": "object",
"additionalProperties": false
}
list_executions
list_executions
List this account's executions, newest first, optionally filtered by status or a created_at time range. Returns next_cursor when a page is full; pass it back as cursor for the next page.
list_executions(limit?: integer, since?: string, until?: string, cursor?: string, status?: string)
// inputSchema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "page size, 1-100 (default 20)"
},
"since": {
"type": "string",
"description": "only executions created at or after this RFC3339 timestamp"
},
"until": {
"type": "string",
"description": "only executions created before this RFC3339 timestamp"
},
"cursor": {
"type": "string",
"description": "opaque next_cursor value from a previous page"
},
"status": {
"type": "string",
"description": "filter by status: QUEUED, RUNNING, RETRYING, SUCCEEDED, or FAILED"
}
},
"additionalProperties": false
}
replay_execution
replay_execution
Re-run a terminal (SUCCEEDED or FAILED) execution as a brand-new execution: same target, byte-exact original payload, same sealed credentials, fresh attempt counter. This is the outage-recovery path — failed calls can be re-executed without regenerating the payload. Each call creates a new execution (deliberately not idempotent).
replay_execution(execution_id: string)
// inputSchema
{
"type": "object",
"required": [
"execution_id"
],
"properties": {
"execution_id": {
"type": "string",
"description": "the execution ID (exe_...)"
}
},
"additionalProperties": false
}
Вопросы, новые серверы, обсуждение MCP
t.me/rusmcp · t.me/RusMcp_bot