THRONE
See report Verify server

registry / record

duckduckgo-mcp-server

uvx / sealed 2026-06-12 / No. 343c3707

> throne registry duckduckgo-mcp-server sealed
receiptsealed evidence
scan id
343c3707849a4397a2845b59181af25c
target
uvx duckduckgo-mcp-server
sealed at
2026-06-12 18:31:57Z
evidence hash
sha256:2827a390c7483e16f487cb1adbd1210ca36c4d87c6fb8506c556c1e7fca6d3f2
01connectPASS1.2s

initialize ok: server ddg-search 1.27.2, negotiated protocolVersion 2025-11-25, capabilities ['experimental', 'prompts', 'resources', 'tools']

02discoverPASS29ms

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

03validate_schemasPASS14ms

all 2 tool inputSchemas are valid JSON Schema

04smoke_test_toolsPASS926ms

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

05error_handlingPASS4.0s

structured error responses, connection survived — wrong_type_args: accepted (returned result); unknown_method: error(-32602); invalid_id: no response (silent), connection alive

06streamingPASS1ms

no streaming-capable tool declared by this server; not applicable (pass-na)

07resource_lifecyclePASS7ms

server declares resources but lists none; read skipped (pass-na)

08concurrent_callsPASS1.3s

ladder 1/2/4/8 overlapping search calls: max_observed_stable_concurrency=8; all ids answered exactly once at every level

09reconnectPASS1.2s

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

01connectPASS768ms

initialize ok: server ddg-search 1.27.2, negotiated protocolVersion 2025-11-25, capabilities ['experimental', 'prompts', 'resources', 'tools']

02discoverPASS23ms

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

03validate_schemasPASS9ms

all 2 tool inputSchemas are valid JSON Schema

04smoke_test_toolsPASS246ms

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

05error_handlingPASS4.1s

structured error responses, connection survived — wrong_type_args: accepted (returned result); unknown_method: error(-32602); invalid_id: no response (silent), connection alive

06streamingPASS0ms

no streaming-capable tool declared by this server; not applicable (pass-na)

07resource_lifecyclePASS7ms

server declares resources but lists none; read skipped (pass-na)

08concurrent_callsPASS570ms

ladder 1/2/4/8 overlapping search calls: max_observed_stable_concurrency=8; all ids answered exactly once at every level

09reconnectPASS985ms

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

chatgpt desktopemulation profile pending real-traffic captureCOMING SOON
SECURITY: REVIEW / 1 finding(s) / review material, not a verdict
LOWTHR-NET-05 / Hardcoded outbound endpoints

1 non-local endpoint host(s) referenced in code — verify each is expected for this server's purpose: html.duckduckgo.com (duckduckgo_mcp_server-0.4.0/src/duckduckgo_mcp_server/server.py:55)

duckduckgo_mcp_server-0.4.0/src/duckduckgo_mcp_server/server.py:55
VERDICT: FIT TO SHIPSANDBOXED RUN — submitted server executed in a disposable microVM — compatibility: 0 fail / 0 warn across 2 clients / security: review — 1 finding(s), 0 highsealed by THRONE / No. 343c3707 / 2026-06-12
THRONE: FIT TO SHIPwear 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 TO SHIP](https://api.usethrone.dev/api/badge/uvx%20duckduckgo-mcp-server)](https://usethrone.dev/server/duckduckgo-mcp-server)
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.