ROKI Connect

Verified ROKI Connect payments contract for coding agents: operations, schemas, validator.

사용해야 할까요

품질 및 안전성

B
설명 품질
94%
스키마 완전성
76%
이름 품질
80%
오염 위험
100%
권한 일치
80%
프로토콜 준수
100%

발견 사항 (5)

  • LOWTool 'roki_get_doc_section' description lacks action verbroki_get_doc_section에서
  • LOWTool 'roki_get_operation' description lacks action verbroki_get_operation에서
  • LOWTool 'roki_get_authentication_guide' description lacks action verbroki_get_authentication_guide에서
  • LOWTool 'roki_get_webhook_guide' suggests web access but openWorldHint=falseroki_get_webhook_guide에서
  • LOWTool 'roki_verify_webhook_signature' suggests web access but openWorldHint=falseroki_verify_webhook_signature에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,947토큰 (도구 정의)
~730 B일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.30%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "connect": {
      "url": "https://mcp.roki.la/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.roki.la/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (19)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢roki_search_docs(query, limit)

Search the official ROKI Connect corpus (integration guide, API operations and schemas) and return ranked excerpts. Use this first when you need any ROKI-specific fact. Never answer a ROKI question from memory or from another payment gateway's conventions.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "description": "What you need to know, e.g. \"webhook signature\", \"tip fields\", \"idempotency\"."
    },
    "limit": {
      "description": "Maximum results (default 6).",
      "type": "integer",
      "minimum": 1,
      "maximum": 15
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_get_doc_section(ref)

Return the complete text of one section of the integration guide, by number (e.g. "14"), sub-number ("12.1") or title fragment ("webhook").

입력 스키마

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "description": "Section number, sub-number, or a fragment of its title."
    }
  },
  "required": [
    "ref"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_list_operations

List every operation the API actually exposes, plus the operations that are documented as NOT existing. Call this before writing any integration code so you never invent an endpoint.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_get_operation(operation)

Full detail for one operation: method, path, headers, request schema field table, responses, and worked examples.

입력 스키마

{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "description": "operationId (e.g. \"createPayment\"), or \"METHOD /path\" (e.g. \"POST /payments\")."
    }
  },
  "required": [
    "operation"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_get_schema(name)

Return a fully dereferenced JSON Schema by name (e.g. "PaymentCreateRequest", "Payment", "WebhookEvent"). Use it to know the exact field names, types and constraints.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Schema name. Omit to list all available schemas.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_get_error(error)

Explain an HTTP status or an error message returned by the ROKI API: what it means, the likely cause and what to do. Use this instead of guessing when an integration fails.

입력 스키마

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string",
      "description": "HTTP status (\"422\"), or a fragment of the message (\"Pago no encontrado\", \"route could not be found\", \"sandbox\")."
    }
  },
  "required": [
    "error"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_validate_request(operation, payload)

Validate a payload against the official schema WITHOUT sending it, and check the business rules the API enforces. Critical for this API: it ignores unknown fields and returns 201, so a typo produces a misconfigured payment rather than an error. The response names what it dropped in `warnings`, but by then the payment exists - validating here means it is never created. Always validate before writing or shipping integration code.

입력 스키마

{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "description": "operationId, e.g. \"createPayment\"."
    },
    "payload": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "The JSON request body you intend to send."
    }
  },
  "required": [
    "operation",
    "payload"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_check_result(sent, received)

Compare the payment the API returned against the body you sent, and report anything that does not match. Every other check here looks at what you SEND. This one exists for the errors that survive that: the field name was right and the VALUE was wrong. The API answers 201, `warnings` comes back empty because there was nothing to warn about, and the merchant charged something else. Catches the amount off by a factor of 100, fee pass-through asked for and returned as zero, tax that was not applied, `expires_at` already in the past because it was sent as UTC instead of Honduras time, a total that does not add up, and a `transaction_id` parsed as a number. Run it after every createPayment while you are building, and in your own tests afterwards.

입력 스키마

{
  "type": "object",
  "properties": {
    "sent": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "The JSON request body you sent to POST /payments."
    },
    "received": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "The payment object the API returned. Paste the response as-is."
    }
  },
  "required": [
    "sent",
    "received"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_get_integration_example(stack)

Return a complete, runnable integration example for a stack: configuration, API client, checkout flow, webhook handler with signature verification, and polling fallback.

입력 스키마

{
  "type": "object",
  "properties": {
    "stack": {
      "description": "e.g. \"laravel\", \"php\", \"node\", \"express\", \"python\", \"fastapi\". Omit to list what is available.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_get_quickstart

The minimum viable integration sequence, end to end, including the manual portal steps a developer cannot skip.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_get_authentication_guide

How authentication works, how the two environments are selected, where credentials come from, and how to store and rotate them safely.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_get_webhook_guide

Everything about webhooks: portal registration, event types, payload shape, HMAC signature verification over the raw body, idempotent processing, and the polling fallback.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_choose_integration_mode(context)

Decide how to integrate ROKI Connect for a given project (web checkout, embedded card fields, mobile app, invoices or recurring billing) and get the constraints that apply before writing code. The modes and the endpoints behind them are read from the corpus, so this answer cannot describe a mode the API no longer has - or miss one it gained.

입력 스키마

{
  "type": "object",
  "properties": {
    "context": {
      "type": "string",
      "description": "What the project is: e.g. \"Laravel e-commerce checkout\", \"iOS app\", \"card fields on my own page\", \"invoices from an ERP\", \"monthly subscriptions\"."
    }
  },
  "required": [
    "context"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_verify_webhook_signature(raw_body, signature_header, signing_secret)

Check a ROKI-Signature header against the raw body and the signing secret. When it fails, this does not just say "invalid" - it tries the specific wrong constructions developers actually write and tells you which mistake you made. Use it whenever webhook verification rejects real events. On the signing secret: this is ROKI's own server and ROKI issued that secret, so sending it here discloses nothing new. It is used to recompute the HMAC and is never stored, logged or counted.

입력 스키마

{
  "type": "object",
  "properties": {
    "raw_body": {
      "type": "string",
      "description": "The EXACT raw request body as received, byte for byte, before any JSON parsing."
    },
    "signature_header": {
      "type": "string",
      "description": "The full ROKI-Signature header value, e.g. \"t=1719234300,v1=8f3c...\""
    },
    "signing_secret": {
      "type": "string",
      "description": "The signing secret from the portal, for the same environment as the event. Held in memory for the duration of the call only: this server logs no tool arguments."
    }
  },
  "required": [
    "raw_body",
    "signature_header",
    "signing_secret"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_scaffold_integration(stack, mode)

Return the full runnable skeleton for a stack: credential storage, API client, checkout flow, webhook handler with signature verification, and the polling fallback. Use it to start an integration instead of assembling one from memory.

입력 스키마

{
  "type": "object",
  "properties": {
    "stack": {
      "type": "string",
      "description": "e.g. \"laravel\", \"node\", \"express\", \"python\", \"fastapi\", \"php\"."
    },
    "mode": {
      "description": "\"hosted\" (default), \"embedded\" or \"saved-card\".",
      "type": "string"
    }
  },
  "required": [
    "stack"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_audit_integration(focus)

Return the checklist to audit existing ROKI code, ordered by how badly each item fails in production. Use it when reviewing an integration you did not write, or before going live.

입력 스키마

{
  "type": "object",
  "properties": {
    "focus": {
      "description": "Optional area: \"webhooks\", \"security\", \"payments\", \"reversals\".",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪roki_sandbox_try(operation, payload)

Runs a documented operation against the ROKI sandbox using THIS SERVER'S own test credential, and returns the actual response. Use it to prove an integration works instead of assuming it does - especially after roki_validate_request says a payload is valid. You never supply a key: this server holds a sandbox-only credential and refuses to run against production. Amounts are capped and links expire quickly, because the sandbox is shared.

입력 스키마

{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "description": "operationId to run, e.g. \"createPayment\", \"getPayment\", \"voidTransaction\"."
    },
    "payload": {
      "description": "Request body for POST operations, or path values such as {\"id\": 123} / {\"transaction_id\": \"uuid\"}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "operation"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_sandbox_info

Whether the sandbox playground is enabled here, which operations it accepts, its limits, and the sandbox test cards.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢roki_status

Server version, corpus contents and freshness. Safe first call to confirm the connection works. Exposes no credentials and no merchant data.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

권장 프롬프트

search_research
Search for information about [topic] using ROKI Connect
예상 도구: roki_search_docs
find_specific
Find [specific item] using ROKI Connect
예상 도구: roki_search_docs
retrieve_data
Get details about [item] from ROKI Connect
예상 도구: roki_get_doc_section
fetch_info
Fetch [information type] using ROKI Connect
예상 도구: roki_get_doc_section
list_items
List all [items] available in ROKI Connect
예상 도구: roki_list_operations

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 19개
검증됨버전이 기록되지 않음도구 19개