Connector
Skoor Risk inside Claude (MCP over streamable HTTP).
A minimal MCP server: JSON-RPC 2.0 over POST, request/response only. Tools: list_queue, get_alert, decide_alert, skoor_preflight, program_report, actor_report, weekly_report, metrics. Every write goes through the same services as the dashboard, so the record is identical.
Endpoints
get/connector/manifest.json
Connector manifest
| Auth | None (public) |
|---|---|
| Operation | Connector · GET /connector/manifest.json |
Parameters
None.
Responses
200 — Name, version, transport, MCP URL, protocol version, auth shape and tool names. object
| Field | Type | Notes |
|---|---|---|
| name | string | |
| version | string | |
| description | string | |
| transport | const "streamable-http" | |
| url | string | |
| protocolVersion | string | |
| auth | object | |
| auth.type | const "bearer" | |
| auth.header | string | |
| auth.extraHeaders | string[] | |
| auth.note | string | |
| tools | string[] |
Example
curl -s "https://skoor.ai/risk/connector/manifest.json"
post/mcp
MCP JSON-RPC endpoint
Streamable HTTP, request/response only: initialize, tools/list, tools/call. Notifications (no id) are answered 202 with no body. Body limit 1 MB. Protocol version 2025-06-18.
| Auth | Bearer + X-Operator |
|---|---|
| Operation | Connector · POST /mcp |
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
| tenant (optional) | query | string | Tenant slug. Optional: the bearer token already proves the tenant. Pass it to be explicit. |
Request body (application/json, required) · object
| Field | Type | Notes |
|---|---|---|
| jsonrpc | const "2.0" | |
| id (optional) | string | integer | null | |
| method | string | |
| params (optional) | object |
Responses
200 — A JSON-RPC response (or a batch of them). object
| Field | Type | Notes |
|---|---|---|
| jsonrpc | const "2.0" | |
| id | string | integer | null | |
| result (optional) | object | |
| error (optional) | object | |
| error.code | integer | |
| error.message | string | |
| error.data (optional) | object |
202 — Notification accepted; no body.
400 — X-Operator header required. Error
| Field | Type | Notes |
|---|---|---|
| error | string | What went wrong, in one sentence. |
| requestId (optional) | string | Present once the gateway is live: the X-Request-Id of the failed request. |
401 — Bearer token missing or unknown. Error
| Field | Type | Notes |
|---|---|---|
| error | string | What went wrong, in one sentence. |
| requestId (optional) | string | Present once the gateway is live: the X-Request-Id of the failed request. |
Example
curl -s -X POST "https://skoor.ai/risk/mcp?tenant=demo" \
-H "Authorization: Bearer test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "X-Operator: you@bank.example" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_queue","arguments":{"route":"reviewed","limit":5}}}'
get/mcp
No server-initiated streams
| Auth | None (public) |
|---|---|
| Operation | Connector · GET /mcp |
Parameters
None.
Responses
405 — Streamable HTTP: POST JSON-RPC to this URL. Error
| Field | Type | Notes |
|---|---|---|
| error | string | What went wrong, in one sentence. |
| requestId (optional) | string | Present once the gateway is live: the X-Request-Id of the failed request. |
Example
curl -s "https://skoor.ai/risk/mcp"