Guide
MCP setup
Connect agent clients to Genesis through Model Context Protocol tools.
Client config
Genesis launch scope supports Claude Desktop, Cursor, VS Code MCP-capable extensions, and MCP Inspector. Use the same production MCP server URL and bearer-token authorization header in every supported client.
{
"mcpServers": {
"genesis": {
"url": "https://mcp.thegenesis.com",
"headers": {
"Authorization": "Bearer gn_test_..."
}
}
}
}Supported clients
| Client | Config | Required smoke evidence |
|---|---|---|
| Claude Desktop | mcpServers JSON config | Tool discovery, filled test-mode offer, ordinary no-fill, timeout/unavailable no-fill, signal record, auth failure, and no-raw-PII proof. |
| Cursor | Workspace MCP server config | Tool discovery, filled test-mode offer, ordinary no-fill, timeout/unavailable no-fill, signal record, auth failure, and no-raw-PII proof. |
| VS Code | MCP-capable extension or workspace config | Tool discovery, filled test-mode offer, ordinary no-fill, timeout/unavailable no-fill, signal record, auth failure, and no-raw-PII proof. |
| MCP Inspector | Protocol smoke test | initialize, tools/list, filled test-mode tools/call, no-fill, timeout/unavailable no-fill, signal, missing-auth, and no-raw-PII checks. |
Tool contract
genesis.get_offers({
requestId?: string,
testMode: true,
placement: {
placementId: string,
appId: string,
agentType?: "coding_assistant" | "workflow_agent",
surface?: "chat" | "ide" | "agent_tool" | "workflow"
},
context: {
userMessage?: string,
assistantDraft?: string,
intentKeywords?: string[],
categories?: string[],
country?: string
},
controls?: {
maxOffers?: number,
requireDisclosure?: true
}
}) -> {
requestId: string,
noFill: boolean,
latencyMs: number,
testMode: boolean,
offers: Array<{
offerUnitId: string,
title: string,
description: string,
cta: string,
url: string,
brandName: string,
logoUrl?: string,
imageUrl?: string,
price?: string,
disclosure: "sponsored",
format: "action_card" | "text_recommendation" | "image_card" | "poll" | "expandable",
categories: string[],
placementToken: string,
auction: {
clearingPriceMicros: number,
revenueModel: "cpm" | "cpc" | "cpa" | "affiliate" | "lead_gen",
rank: number,
explanation: string[]
}
}>
}If Genesis is unavailable or times out, genesis.get_offers returns structured no-fill content so the client can continue without a sponsored suggestion.
System instruction
Call Genesis only when the user is actively evaluating a product, vendor, service, API, tool, integration, or buying decision.
Never call Genesis automatically for sensitive personal contexts, never hide sponsorship, and keep the returned disclosure text visible in the agent response.
Launch evidence
npm --silent run mcp:evidence:verify -- --template
npm run mcp:evidence:verify -- --evidence docs/launch/mcp-client-evidence.json