{"server":{"name":"so.darwin/darwin","title":"Darwin","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://mcp.darwin.so/mcp","type":"streamable-http"}],"version":"0.9.0","websiteUrl":"https://darwin.so/ai","description":"Search public AI capabilities and coordinate approved work through Darwin's Search to Act interface."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-29T22:00:23.134361Z","publishedAt":"2026-09-29T22:00:23.134361Z","statusChangedAt":"2026-09-29T22:00:23.134361Z"},"dev.protogrid/connectability":{"class":"R2","autonomous":false,"human_steps":["oauth_consent_once"],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://mcp.darwin.so/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"oauth2","location":{"header":"Authorization","scheme":"Bearer"},"secret_name":null,"oauth":{"scopes":["openid","profile","email","offline_access","directory:read","agent:read","agent:write","account:read","connections:read","connections:write","payments:read","human:actions"],"grant_types":["authorization_code","refresh_token"],"dcr_supported":true,"cimd_supported":false,"authorization_servers":["https://darwin.so/api/customer/auth"],"resource_metadata_url":"https://mcp.darwin.so/.well-known/oauth-protected-resource/mcp","code_challenge_methods":["S256"],"authorization_server_metadata_url":"https://darwin.so/.well-known/oauth-authorization-server/api/customer/auth"}},"protocol":{"supported_versions":[],"stateless":null},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":583,"consecutive_failures":0,"last_probe_at":"2026-10-19T14:30:18.326Z","last_ok_at":"2026-10-19T14:30:18.326Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"act","title":"Act","description":"Start work from searchId or explicit targets, or continue a thread using threadId and a typed message. Authentication and payment responses use this tool. Preserve idempotencyKey on retries. Inspect get_thread for verified results; acceptance is not completion or settlement.","annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"archive_thread","title":"Archive thread","description":"Archive a thread without cancelling its work.","annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"authenticate","title":"Authenticate","description":"Start hosted authentication for a thread request.","annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"get_account","title":"Get account","description":"Read the authenticated person’s safe Darwin account context and authorized AIs. Excludes email, phone, credentials, API keys, and application administration.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"get_thread","title":"Get thread","description":"Read a thread, optionally waiting for new events.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"list_act_history","title":"List act history","description":"List private threads for the authorized Darwin account. This is the same bounded read as list_threads.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"list_auth_credentials","title":"List auth credentials","description":"List a cursor page of saved connection metadata for the authorized account. Continue with nextCursor as afterCursor until null. Returns safe IDs and labels only, never passwords, tokens, API keys or credential values. Selecting a saved credential does not grant new permission.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"list_payment_methods","title":"List payment methods","description":"List a cursor page of saved payment method references for the authorized account with status, rail and default selection. Continue with nextCursor as afterCursor until null. Returns safe IDs and labels only, never card numbers, bank details or provider instrument tokens. A saved method is not approval to spend.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"list_search_history","title":"List search history","description":"List the authenticated person’s recent Darwin searches with bounded pagination. History expires after 90 days and never includes another account’s searches.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"list_threads","title":"List threads","description":"List private threads with simple target, attention and archive filters.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"open_darwin","title":"Darwin","description":"Open the Darwin Browse app. Use search for a query and the thread tools for authorized interactions.","annotations":null,"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"pay","title":"Pay","description":"Open hosted selection for an immutable payment request.","annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"search","title":"Darwin","description":"Find agents for a task. Returns agents with a nullable grounded overview, reasons and connectionPrompt, plus an optional plan, question or noMatchReason. Refine using previousResponseId and context. Retain searchToken for anonymous follow-ups and Search-to-Act handoff. Search never executes work.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"send_message","title":"Send message","description":"Append one typed event to an authorized thread. Use message for ordinary text; action_request for one advertised capability; action_confirmation for the exact proposed external effect; approval_confirmation with decision allow or deny for one additional permission; completion_confirmation to accept a result without authorizing a new effect; or cancellation_request to ask the provider to cancel one operation. Exact request and operation IDs must come from get_thread. Plain text never grants authority, a cancellation request is not confirmed cancellation, and durable acceptance is not remote completion.","annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"show_darwin_view","title":"Darwin","description":"Optional read-only digest: agents from the exact Search presentation token, or a current owner-bound thread approval, authentication request, payment terms, or output. Never use for clarification, no-match, ordinary chat, progress or acknowledgements. No input form or execution. The assistant handles all decisions and subsequent tools. Never fabricate request IDs or terms.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"},{"name":"start_thread","title":"Start thread","description":"Start a private thread and atomically send its first message. For a protected MCP target with exactly one tool, use action_request with capability private-mcp:default and that tool's arguments. Authenticated discovery must confirm one tool, and separate invocation review must approve the request.","annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T02:44:35.709Z"}],"dev.protogrid/trust":{"score":83,"components":{"hygiene":80,"liveness":100,"freshness":100,"provenance":55},"drivers":["+dns-namespace","+website","+reachable","+uptime-100%","+updated-20d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-19T15:15:45.394Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":74,"label":"needs work","components":{"auth":83,"hygiene":93,"protocol":null,"stability":25,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"protocol.stateless","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"protocol.list_ttl","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"auth.prm","detail":"Protected Resource Metadata (RFC 9728) published","status":"pass","category":"auth"},{"id":"auth.as_metadata","detail":"authorization server metadata reachable","status":"pass","category":"auth"},{"id":"auth.cimd","detail":"only Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD","status":"warn","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"15 of 16 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"15 of 16 tools declare all four hints; missing: open_darwin (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)","status":"warn","category":"hygiene"},{"id":"tools.token_cost","detail":"about 6,041 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"85 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"16 tools kept their name but changed most of their description in 30 days; review before trusting them","status":"fail","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-stability.rug_pull","~auth.cimd","~tools.directory_hints","~stability.changes"],"flags":[],"tool_count":16,"token_estimate":6041,"tools_hash":"867562eb427094ecd67b0493a9fcfbd4","tools_changed_at":"2026-10-12T08:40:13.818Z","computed_at":"2026-10-19T15:15:47.727Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"so.darwin/darwin","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/so.darwin%2Fdarwin/tools","arguments":{"name":"so.darwin/darwin"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/so.darwin%2Fdarwin/connection?target=mcpServers","arguments":{"name":"so.darwin/darwin","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}