THRONE
See report Verify server

registry / record

kagimcp

uvx / sealed 2026-06-16 / No. ca3be243

Does kagimcp MCP work in Claude Code and Cursor? Throne executed kagimcp mcp in a single-use Firecracker microVM and replayed both recorded client behaviours. Compatibility verdict: fit. Is kagimcp mcp safe? Static security scan: 1 finding(s) to review under security ruleset v1. The full per-step results, security findings, scan date, and evidence hash are below.

> throne registry kagimcp sealed
receiptsealed evidence
scan id
ca3be24379224f5da3e6567d2cfc3e00
target
uvx kagimcp
sealed at
2026-06-16 19:11:55Z
evidence hash
sha256:a8e56a066d77d41d5f7ef92bea5a3f3d694f9381f4fd642b765021f3a165acf7
01connectPASS978ms

initialize ok: server kagimcp 3.4.2, negotiated protocolVersion 2025-11-25, capabilities ['experimental', 'extensions', 'logging', 'prompts', 'resources', 'tools']

02discoverPASS13ms

supported: tools/list (2 tools), resources/list (0), prompts/list (0)

03validate_schemasPASS9ms

all 2 tool inputSchemas are valid JSON Schema

04smoke_test_toolsPASS198ms

called 2 of 2 tools (cap 10, strategy=serial): 0 ok, 2 returned tool-level errors (expected for synthesized args)

05error_handlingPASS5.9s

structured error responses, connection survived, wrong_type_args: kagi_search_fetch:accepted (returned result); kagi_extract:accepted (returned result); unknown_method: error(-32602); invalid_id: no response (silent), connection alive; oversized_input: accepted (returned result); recovery: accepted (returned result); cancellation: accepted (returned result); old_version: accepted old version 2024-10-07, negotiated 2025-11-25, server may have stale protocol handling

06streamingNOT_APPLICABLE0ms

no streaming-capable tool declared by this server

07resource_lifecycleNOT_APPLICABLE2ms

server declares resources but lists none

08concurrent_callsWARN34ms

ladder 1 overlapping kagi_search_fetch calls: max_observed_stable_concurrency=1; all ids answered exactly once, but every call returned an error (tool-level isError result), the tool may need runtime dependencies this sandbox does not provide

09reconnectPASS1.3s

transport closed and relaunched; re-handshake ok (protocolVersion 2025-11-25, first session was 2025-11-25)

01connectPASS1.9s

initialize ok: server kagimcp 3.4.2, negotiated protocolVersion 2025-11-25, capabilities ['experimental', 'extensions', 'logging', 'prompts', 'resources', 'tools'] [request_strategy=pipelined, connection_count=2, second connection established]

02discoverPASS15ms

supported: tools/list (2 tools), resources/list (0), prompts/list (0); notes: connection 2 confirms 2 tools

03validate_schemasPASS10ms

all 2 tool inputSchemas are valid JSON Schema

04smoke_test_toolsPASS180ms

called 2 of 2 tools (cap 10, strategy=pipelined): 0 ok, 2 returned tool-level errors (expected for synthesized args)

05error_handlingPASS5.7s

structured error responses, connection survived, wrong_type_args: kagi_search_fetch:accepted (returned result); kagi_extract:accepted (returned result); unknown_method: error(-32602); invalid_id: no response (silent), connection alive; oversized_input: accepted (returned result); recovery: accepted (returned result); cancellation: accepted (returned result); old_version: accepted old version 2024-10-07, negotiated 2025-11-25, server may have stale protocol handling

06streamingNOT_APPLICABLE0ms

no streaming-capable tool declared by this server

07resource_lifecycleNOT_APPLICABLE3ms

server declares resources but lists none

08concurrent_callsWARN444ms

ladder 1/2/4/6 overlapping kagi_search_fetch calls: max_observed_stable_concurrency=6; all ids answered exactly once, but every call returned an error (tool-level isError result), the tool may need runtime dependencies this sandbox does not provide

09reconnectPASS2.4s

transport closed and relaunched; re-handshake ok (protocolVersion 2025-11-25, first session was 2025-11-25)

chatgpt desktop calibratingemulation profile pending real-traffic captureCOMING SOON
SECURITY: REVIEW / 1 finding(s) / review recommended
LOWTHR-NET-05 / Hardcoded outbound endpoints

6 non-local endpoint host(s) referenced in code, verify each is expected for this server's purpose: en.wikipedia.org (kagimcp-1.0.0/src/openapi_client/models/search_request_lens.py:40), help.kagi.com (kagimcp-1.0.0/src/openapi_client/__init__.py:8), kagi.com (kagimcp-1.0.0/src/kagimcp/server.py:243), kagi.redocly.app (kagimcp-1.0.0/src/openapi_client/__init__.py:8), openapi-generator.tech (kagimcp-1.0.0/src/openapi_client/__init__.py:12), urllib3.readthedocs.io (kagimcp-1.0.0/src/openapi_client/rest.py:72)

kagimcp-1.0.0/src/kagimcp/server.py:243
VERDICT: FIT14 of 18 steps exercised across 2 clientsSANDBOXED RUN, submitted server executed in a disposable microVM, compatibility: 0 fail / 2 warn (14 of 18 steps exercised across 2 clients) / security: review, 1 finding(s), 0 highsealed by THRONE / No. ca3be243 / 2026-06-16
scopeattestation tuple
target
uvx kagimcp pypi
engine
sandboxed
claude code
calibration: partial recorded=9,spec=0,assumed=9
cursor
calibration: partial recorded=11,spec=0,assumed=7
chatgpt desktop
calibration: unavailable recorded=0,spec=2,assumed=16
steps exercised
14 of 18
test suite
v1.0.0
security ruleset
v1.0.0
sealed at
2026-06-16 19:11:55Z
evidence hash
sha256:a8e56a066d77d41d5f7ef92bea5a3f3d694f9381f4fd642b765021f3a165acf7
valid until
2026-09-14
THRONE: FITwear the crown

paste this in your README. it renders the live verdict and links back to this record. if a release ever breaks the verdict, the badge says so on its own.

[![THRONE: FIT](https://api.usethrone.dev/api/badge/uvx%20kagimcp)](https://usethrone.dev/server/kagimcp)
executed in a disposable microVM, created for this scan and destroyed after it. nothing outlives a run.

maintainer of this server? challenge this record: hello@usethrone.dev. tell us what we got wrong and we re-run it in the open.

this page renders the stored record of a real run. nothing on it is asserted without the execution that proved it.