MCP 서버

klanex

io.github.chrassy/klanex

이 MCP로 할 수 있는 일

Executes third-party API calls asynchronously with validation, credential vaulting, retries, idempotency support, execution tracking, and audit history.

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.
입력 스키마
{'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
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.
입력 스키마
{'type': 'object', 'required': ['execution_id'], 'properties': {'execution_id': {'type': 'string', 'description': 'the execution ID (exe_...)'}}, 'additionalProperties': False}
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.
입력 스키마
{'type': 'object', 'additionalProperties': False}
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.
입력 스키마
{'type': 'object', 'additionalProperties': False}
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.
입력 스키마
{'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
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).
입력 스키마
{'type': 'object', 'required': ['execution_id'], 'properties': {'execution_id': {'type': 'string', 'description': 'the execution ID (exe_...)'}}, 'additionalProperties': False}
추가됨
replay_execution
2026년 9월 17일 12:40 PM
추가됨
list_executions
2026년 9월 17일 12:40 PM
추가됨
list_connections
2026년 9월 17일 12:40 PM
추가됨
get_usage
2026년 9월 17일 12:40 PM
추가됨
get_execution
2026년 9월 17일 12:40 PM
추가됨
execute
2026년 9월 17일 12:40 PM