Connect 2O to your AI agent in 60 seconds. Choose your stack below.
2O includes a native MCP (Model Context Protocol) server. Any MCP-compatible agent can connect and use human verification as a native tool.
1. Start the standalone MCP server:
1-accent-500">npm run mcp2. Connect your MCP client to:
1http:-status-success">"text-text-tertiary">//localhost:-status-warning">3001/mcp?apiKey=2o_sk_YOUR_KEYAvailable tools: list_domains, verify, check_status, get_result, get_balance
Connect 2O to your OpenClaw agent for native human verification capabilities.
1. Register your agent at /register
2. In your OpenClaw settings, add a new MCP server:
| Name | 2O - Second Opinion |
| URL | http://localhost:3001/mcp?apiKey=2o_sk_YOUR_KEY |
| Transport | SSE |
Or send your OpenClaw agent this skill URL:
1https:-status-success">"text-text-tertiary">//www.2oapi.xyz/skill.mdYour agent now has access to human verification tools. It can call verify() whenever it encounters an uncertain claim.
Add 2O to Claude Code or any Anthropic MCP-compatible environment.
Add to your MCP settings (claude_desktop_config.json or equivalent):
1{2 "mcpServers": {3 "2o": {4 "url": "http:">//localhost:3001/mcp?apiKey=2o_sk_YOUR_KEY"5 }6 }7}Once connected, Claude will be able to verify claims by calling the verify tool.
Any MCP-compatible client can connect using the official SDK.
1import { Client } from "@modelcontextprotocol/sdk/client/index.js";2import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";34const transport = new SSEClientTransport(5 new URL("http:">//localhost:3001/mcp?apiKey=2o_sk_YOUR_KEY")6);7const client = new Client({ name: "my-agent", version: "1.0.0" });8await client.connect(transport);910"text-text-tertiary">// List available tools11const tools = await client.listTools();1213"text-text-tertiary">// Verify a claim14const result = await client.callTool("verify", {15 claim: "The population of Tokyo exceeds 14 million",16 domain: "geographic",17 budget_cents: 200,18});19console.log(result);Use 2O as a LangChain tool via the REST API.
1from langchain.tools import Tool2import requests3import time45API_KEY = class="text-status-success">"2o_sk_YOUR_KEY"6BASE = class="text-status-success">"https:class="text-text-tertiaryclass="text-status-success">">//www.2oapi.xyz/api/v1"7HEADERS = {class="text-status-success">"Authorization": fclass="text-status-success">"Bearer {API_KEY}"}89def verify_claim(query: str) -> str:10 class="text-status-success">""class="text-status-success">"Verify a claim using 2O human experts."class="text-status-success">""11 response = requests.post(12 fclass="text-status-success">"{BASE}/verify",13 headers=HEADERS,14 json={15 class="text-status-success">"claim": query,16 class="text-status-success">"domain": class="text-status-success">"general",17 class="text-status-success">"budget_cents": class="text-status-warning">200,18 },19 )20 request_id = response.json()[class="text-status-success">"id"]2122 class=class="text-status-success">"text-text-tertiary"># Poll for result23 for _ in range(class="text-status-warning">60):24 result = requests.get(25 fclass="text-status-success">"{BASE}/verify/{request_id}/result",26 headers=HEADERS,27 )28 data = result.json()29 if data[class="text-status-success">"status"] == class="text-status-success">"completed":30 return (31 fclass="text-status-success">"Verdict: {data[class="text-status-success">'verdict']} "32 fclass="text-status-success">"(confidence: {data[class="text-status-success">'confidence']})"33 fclass="text-status-success">"\n{data[class="text-status-success">'explanation']}"34 )35 time.sleep(class="text-status-warning">5)36 return class="text-status-success">"Verification timed out"3738verify_tool = Tool(39 name=class="text-status-success">"2o_verify",40 description=class="text-status-success">"Verify a factual claim using human experts via 2O",41 func=verify_claim,42)Use the REST API directly from any language. No SDK required.
1-accent-500">curl -X POST https:-status-success">"text-text-tertiary">//www.2oapi.xyz/api/v1/verify \2 -H -status-success">"Authorization: Bearer 2o_sk_YOUR_KEY" \3 -H -status-success">"Content-Type: application/json" \4 -d '{5 -status-success">"claim": -status-success">"The FDA approved Ozempic for weight loss in June -status-warning">2021",6 -status-success">"domain": -status-success">"medical",7 -status-success">"budget_cents": -status-warning">5008 }'See the full API Reference for all endpoints.
Need help? Reach out at support@2o.dev