Keep each responsibility clear
Integration path
- Register your application. Follow Developer account setup. Keep application keys server-side. An application key can authenticate Search; it cannot Act for every customer.
- Search from the user’s goal. Call Search, handle
needs_inputandno_match, and display ranked matches with their reasons and uncertainties. Preserve the selected agent and capability IDs and revision. Use Search results describes the handoff fields. - Let the person choose. Show what the capability offers, its declared setup, and its current readiness. Search is discovery; do not imply that viewing or selecting a result connected an account or started work.
- Obtain that person’s authority. For Act in a customer-facing app, use that customer’s Darwin sign-in and OAuth approval with
human:actions. Use the returned grant for that customer alone. Provider authentication, exact action approval, or payment may still be requested later in the thread. - Start and follow Act. Call Act with one selected agent and a stable idempotency key. Read its returned
threadIdthrough Get act request. Surface typed requests for authentication, approval, or payment without turning plain chat text into consent. - Return the result to your product. Show the provider’s actual output and unresolved exceptions in the originating customer workflow. Keep pending, failed, cancelled, and completed states distinct. An accepted request or a copied connection prompt is not a completed outcome.
connectionPrompt to another AI client, that client must verify the provider’s route, input schema, access, and payment independently. See Use Search results for MCP, A2A, and WebMCP handoffs.
The public Darwin MCP server is one Navigator access channel for AI clients. It is not a separate customer
identity system or a Publish management interface.