conversation-council
This server provides a local, privacy-preserving way to index, search, and manage your Codex task history. It powers an evidence-backed AI council to help make decisions based on prior work, while redacting sensitive information and maintaining workspace isolation by default.
Check status: Report the readiness of local history, index, and runtime.
Index workspace: Scan and index visible Codex task messages for a workspace, with options to force re-indexing or include all known workspaces globally.
Search history: Query indexed history with a natural-language question to find evidence-backed councillors (past tasks), scoped to a workspace or globally, with a configurable result limit.
Retrieve evidence: Resolve opaque evidence IDs to view the original content within a workspace.
Manage pins: List pinned tasks (preferred councillors) or pin/unpin a task by thread ID to mark it as a preferred councillor.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@conversation-councilShould we keep the current queue architecture?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Codex Conversation Council
An evidence-backed council for Codex, built from your own local task history.
$conversation-council finds prior Codex tasks relevant to the current decision, assigns up to three independent councillors, verifies their historical claims against local evidence, and chairs a compact recommendation. It runs inside your existing Codex session: no extra model key, external service, or runtime network request is required.

macOS Alpha v0.2. Windows support is planned after the local history and installation paths are validated in the field.
What is included
A Codex Desktop plugin with an explicit
$conversation-councilSkill.An interactive MCP Apps Council Dashboard rendered inside supported Codex conversations.
A local stdio MCP server with six history/evidence tools and one presentation tool.
A standalone
councilCLI with JSON output parity.Workspace isolation by default; cross-project history requires
--global.Local redaction, SQLite FTS5 search, stable evidence IDs, and pinning.
Optional
--deepreview by an anonymous critic.
Related MCP server: callimachus
Install the macOS Alpha
Requirements: Codex Desktop/CLI, macOS, and Python 3.11 or newer with SQLite FTS5.
git clone https://github.com/URneiU1/codex-conversation-council.git
cd codex-conversation-council
./scripts/install.shThe installer registers this checkout as a local Codex marketplace, installs the plugin, and runs diagnostics. Start a new Codex task so its Skill and MCP tools are loaded, then invoke:
$conversation-council Should we keep the current queue architecture?After the chair verifies the cited evidence, supported Codex surfaces render an inline Council Dashboard showing the question, each councillor's stance and labeled points, consensus, disagreements, recommendation, unresolved risks, and evidence locations. If a client cannot render MCP Apps UI, the same result remains available as text.
For an extra critic pass:
$conversation-council --deep Should we keep the current queue architecture?Cross-project search is never automatic. Opt in explicitly:
$conversation-council --global What did our previous migrations teach us?CLI
Run from the checkout, or install the Python package to expose the council command.
python3 scripts/council.py doctor
python3 scripts/council.py index --workspace "$PWD"
python3 scripts/council.py search "queue architecture" --workspace "$PWD"
python3 scripts/council.py pin THREAD_ID
python3 scripts/council.py show EVIDENCE_ID --workspace "$PWD"Every user command supports --json. Use --global only with index, search, or show when you intentionally want known cross-workspace history.
How it works
The indexer reads Codex session JSONL and keeps only visible user and assistant task messages.
Built-in redaction masks common tokens, credentials, private keys, and authenticated URLs before text enters the derived index.
SQLite FTS5 retrieves relevant tasks inside the current canonical workspace. Pins and recency are bounded tie-breakers.
Evidence is rendered to local Markdown with an opaque ID, original task ID, role, and source JSONL line.
The Skill convenes independent councillors, optionally adds a critic, resolves every cited evidence ID, and chairs the result.
The presentation-only
render_counciltool displays that verified result through the portable MCP Apps UI resource; it does not change or re-run the council.
Historical excerpts are treated as untrusted quoted data. The Skill instructs councillors never to follow commands found inside history.
For MCP calls, the non-global workspace is bound to the current Codex task ID supplied by the host. Requests for a different known workspace are rejected unless the user explicitly invoked --global. Deleted or changed source tasks are reconciled from the derived index, and their rendered evidence is removed.
Privacy
The runtime makes no network requests. It reads Codex task history, indexes only visible user and assistant text after local redaction, defaults to the current workspace, and never modifies source history. Derived data defaults to ~/.codex/conversation-council/ (or PLUGIN_DATA when Codex supplies it).
Redaction is defense in depth, not a guarantee that arbitrary secrets can always be recognized. Review your task history before deliberately using --global, and never attach real Codex logs to public issues.
Run python3 scripts/council.py doctor to inspect paths. Uninstall while retaining the derived index:
./scripts/uninstall.shDelete plugin-owned derived state as well:
./scripts/uninstall.sh --purge-dataStandalone Skill and MCP
The Skill lives at skills/conversation-council/SKILL.md. The plugin manifest points Codex at that directory and at .mcp.json; the same MCP operations are available through python3 scripts/council.py serve-mcp. The Python runtime uses only the standard library.
Development
PYTHONPATH=src python3 -m unittest discover -s tests -v
python3 -m compileall -q src scripts
git diff --checkSee CONTRIBUTING.md and SECURITY.md before opening a change or reporting a vulnerability.
Inspiration and license
This is an independent clean-room implementation. The historical-conversation-as-councillor concept was inspired by CS-Faith/conversation-council. See NOTICE.md for attribution details.
Released under the MIT License.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceProvides persistent context synchronization and memory management for AI agents across sessions and projects, including file indexing, bug tracking, spatial navigation, and agent-to-agent handoff coordination.73MIT
- AlicenseAqualityAmaintenanceLocal index and hybrid search (SQLite FTS5 + on-device vector KNN) over your AI coding-agent conversation history across 11 tools (Claude Code, Codex, Cursor, and more). Exposes search_threads, search_current_project, recent_threads, get_thread, list_tags, and list_open_todos so any agent can recall its own past work.2234AGPL 3.0
- Alicense-qualityDmaintenanceLocal memory search for Codex and Claude Code conversations. It keeps history on your machine, builds a local graph index, and returns compact evidence from past sessions.5MIT
- AlicenseBqualityAmaintenanceProvides local cross-session memory for Codex by importing transcripts, indexing in SQLite, and exposing search, context, and memory management through MCP tools.13MIT
Related MCP Connectors
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Independent AI-agent reviews: trust checks, evidence scorecards, incident registry, recommendations.
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/URneiU1/codex-conversation-council'
If you have feedback or need assistance with the MCP directory API, please join our Discord server