Adversarial AI · Live web evidence · Human arbitration
The Council of Agents
Four experts — Tech, Finance, Risk, Strategy — debate your problem with cited web evidence, then stop and wait for your verdict.
🔎 Every claim sourced 💥 Positions get attacked 🛑 You arbitrate mid-debate 🌐 WebMCP native
WebMCP bridge
Browser not WebMCP-enabledThe council tools register automatically on every page via document.modelContext.registerTool. In the ChatGPT desktop browser or Chrome 149+ (flag chrome://flags/#enable-webmcp-testing), ask the model to use the SynthCouncil tools on the current page — it can convene, run, read and arbitrate councils, exactly like a human in the UI.
No tools registered yet.
The registerTool call this repository ships (per hackathon rules)
document.modelContext.registerTool({
name: "council_create",
description: "Convene a SynthCouncil session — an adversarial committee of AI experts that debates a problem with live web evidence.",
inputSchema: {
type: "object",
properties: {
topic: { type: "string", description: "The problem to debate" }
},
required: ["topic"]
},
execute: async (input) => {
// Relay to the SynthCouncil engine (no API keys in the browser)
const response = await fetch("https://synthcouncil-api.onrender.com/api/sessions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ topic: input.topic })
});
return response.json();
}
}); WebMCP native document.modelContext.registerTool — the browser's model can run the council itself.
OpenRouter-powered Groq by default; Claude, GPT and more via one key.
Zod contracts A hallucinated JSON shape can never break a debate.
Blackboard + DAG Agents never talk directly — the orchestrator distributes the floor.