protogrid

Search / so.darwin/darwin

Darwin

R2· OAuth, once

Search public AI capabilities and coordinate approved work through Darwin's Search to Act interface.

v0.9.0 · active · website · descriptor JSON · versions

An agent can connect after a one-time OAuth consent by a human.Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.
Quality74needs work
Trust83of 100
Uptime, 30 days100%
Latency p50582 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "darwin": {
      "type": "http",
      "url": "https://mcp.darwin.so/mcp"
    }
  }
}
claude mcp add --transport http darwin https://mcp.darwin.so/mcp
[mcp_servers.darwin]
url = "https://mcp.darwin.so/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "darwin": {
      "type": "remote",
      "url": "https://mcp.darwin.so/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "darwin": {
      "type": "http",
      "url": "https://mcp.darwin.so/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=darwin&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmRhcndpbi5zby9tY3AifQ%3D%3D"
}
{
  "servers": {
    "darwin": {
      "type": "http",
      "url": "https://mcp.darwin.so/mcp"
    }
  }
}
{
  "mcpServers": {
    "darwin": {
      "httpUrl": "https://mcp.darwin.so/mcp"
    }
  }
}
extensions:
  "darwin":
    enabled: true
    name: "darwin"
    type: streamable_http
    uri: "https://mcp.darwin.so/mcp"
    timeout: 300

Quality 74 / 100needs work

protocoln/a · weight 25
  • n/a
    protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)
authorization83 · weight 15
  • pass
    auth.prmProtected Resource Metadata (RFC 9728) published
  • pass
    auth.as_metadataauthorization server metadata reachable
  • warn
    auth.cimdonly Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations15 of 16 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints15 of 16 tools declare all four hints; missing: open_darwin (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
  • pass
    tools.token_costabout 6,041 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes85 tool changes in 30 days
  • fail
    stability.rug_pull16 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

16 tools, about 6,041 tokens to load them all · tool set 867562eb4270 · tools last changed 2026-10-12 · checked 2026-10-19 10:52 UTC

Tool changes

  • searchchangedinput schema
  • searchchangedoutput schema
  • actchangedinput schema, output schema
  • searchchangedoutput schema
  • actchangedoutput schema
  • searchchangedoutput schema
  • searchchangedinput schema, output schema
  • searchchangedtitle, description, input schema
    before

    Find agents for a task. Returns agents with 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.

    after · 92% of words in common

    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.

  • actadded

    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.

  • searchchangedtitle, description, input schema, output schema, annotationsmeaning changed
    before

    Find ranked public agents from a natural-language query. Optionally add a category focus or objective. Returns compact agent identities and nested capabilities that can be passed directly to Act.

    after · 15% of words in common

    Find agents for a task. Returns agents with 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.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-20d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.darwin.so/mcp streamable-httpoauth2 AS: https://darwin.so/api/customer/authyes100%582 ms–2026-10-19

Tools (16)

actdestructiveStart 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.
archive_threadArchive a thread without cancelling its work.
authenticateStart hosted authentication for a thread request.
get_accountread-onlyRead the authenticated person’s safe Darwin account context and authorized AIs. Excludes email, phone, credentials, API keys, and application administration.
get_threadread-onlyRead a thread, optionally waiting for new events.
list_act_historyread-onlyList private threads for the authorized Darwin account. This is the same bounded read as list_threads.
list_auth_credentialsread-onlyList 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.
list_payment_methodsread-onlyList 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.
list_search_historyread-onlyList the authenticated person’s recent Darwin searches with bounded pagination. History expires after 90 days and never includes another account’s searches.
list_threadsread-onlyList private threads with simple target, attention and archive filters.
open_darwinOpen the Darwin Browse app. Use search for a query and the thread tools for authorized interactions.
paydestructiveOpen hosted selection for an immutable payment request.
searchread-onlyFind 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.
send_messagedestructiveAppend 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.
show_darwin_viewread-onlyOptional 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.
start_threadStart 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.

Schemas: list_tools.

Official server.json
{
  "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."
}