Ploidy
FreeNot checkedMCP server that reduces confirmation bias in LLMs by orchestrating structured debates between asymmetric context sessions.
About
MCP server that reduces confirmation bias in LLMs by orchestrating structured debates between asymmetric context sessions.
README
Context-asymmetric structured debate for difficult decisions.
Ploidy gives one side of a debate project context and keeps the other side fresh, then records positions before either side can anchor on the other. It ships as a Python 3.11+ MCP server with SQLite persistence.
Install
pip install ploidy
Add the API extra only when the server itself will generate an automatic debate:
pip install "ploidy[api]"
Recommended local setup: stdio
stdio is the default transport. One MCP client starts one server on
demand, so there is no port or background process to manage.
{
"mcpServers": {
"ploidy": {
"type": "stdio",
"command": "python3",
"args": ["-m", "ploidy"]
}
}
}
The primary tool is debate:
mode="solo": the caller supplies independently generated Deep and Fresh positions. No external model API is required.mode="auto": the server generates both sides through an OpenAI-compatible API. Non-emptycontext_documentsare required so the Deep and Fresh sides are actually asymmetric.
Example auto call:
await debate(
prompt="Should we split the ingestion service?",
mode="auto",
context_documents=["Current topology, incident history, and constraints…"],
context_sources=["architecture-notes"],
)
Configure the API backend before using auto mode:
export PLOIDY_API_BASE_URL=https://api.openai.com/v1
export PLOIDY_API_KEY=...
export PLOIDY_API_MODEL=your-model
Shared server: Streamable HTTP
Use HTTP when multiple MCP clients must share one debate or when Ploidy is deployed as a service:
PLOIDY_TRANSPORT=streamable-http python3 -m ploidy
export PLOIDY_URL=http://127.0.0.1:8765
Configure each client with ${PLOIDY_URL}/mcp (substitute the value;
JSON does not expand shell variables):
{
"mcpServers": {
"ploidy": {
"type": "streamable-http",
"url": "http://127.0.0.1:8765/mcp"
}
}
}
PLOIDY_URL is the base URL used by ploidy-ask and other HTTP
clients. The MCP endpoint is /mcp, and the live HTTP/SSE endpoint is
/v1/debate/stream.
MCP tools
Ploidy 0.4.0 exposes exactly 13 tools. New integrations should use the
unified debate tool. The other 12 remain available for explicit
two-client, phase-by-phase, history, cancellation, and HITL workflows.
| Tool | Purpose |
|---|---|
debate |
Unified auto or solo debate |
debate_start |
Create a Deep session |
debate_join |
Join as Fresh or Semi-Fresh |
debate_position |
Submit an independent position |
debate_challenge |
Submit a semantic challenge |
debate_converge |
Produce the convergence result |
debate_cancel |
Cancel an active debate |
debate_delete |
Permanently delete a debate |
debate_status |
Read current state |
debate_history |
List visible debate history |
debate_solo |
Legacy alias for caller-supplied debate |
debate_auto |
Legacy alias for API-generated debate |
debate_review |
Approve, override, or reject a paused auto debate |
Service configuration
Common environment variables:
PLOIDY_TRANSPORT=stdio # stdio (default) or streamable-http
PLOIDY_PORT=8765
PLOIDY_DB_PATH=~/.ploidy/ploidy.db
PLOIDY_MAX_CONTEXT_TOKENS=20000 # recommended for hosted auto mode
PLOIDY_RATE_CAPACITY=20
PLOIDY_RATE_PER_SEC=1
PLOIDY_RETENTION_DAYS=30
Authentication modes and their limits:
- Admission-controlled self-hosting:
PLOIDY_AUTH_MODE=bearerwithPLOIDY_TOKENS='{"token":"tenant"}'. - OAuth interoperability:
PLOIDY_AUTH_MODE=oauthand an exact publicPLOIDY_OAUTH_ISSUER; v0.4.0 auto-approves clients and therefore is not user login or public admission control. - Migration only:
PLOIDY_AUTH_MODE=bothadds the static-token fallback.
Bearer mode without a configured token is intentionally unauthenticated and is suitable only for loopback development. Public services need a private ingress/gateway or controlled static tokens until OAuth gains resource-owner login and consent.
Container
The published image is immutable by release version:
docker run --rm \
-p 127.0.0.1:8765:8765 \
-v ploidy-data:/data \
ghcr.io/heznpc/ploidy:0.4.0
Or run the checked-in Compose configuration:
docker compose up --build
The image defaults to streamable-http and contains the API,
dashboard, metrics, Redis, and CLI runtime extras.
Documentation
License
MIT
Install Ploidy in Claude Desktop, Claude Code & Cursor
unyly install ploidyInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add ploidy -- uvx ploidyFAQ
Is Ploidy MCP free?
Yes, Ploidy MCP is free — one-click install via Unyly at no cost.
Does Ploidy need an API key?
No, Ploidy runs without API keys or environment variables.
Is Ploidy hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Ploidy in Claude Desktop, Claude Code or Cursor?
Open Ploidy on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Ploidy with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
