About Council Of Mine
Council Of Mine is an MCP server published by block in the Developer Tools category: mCP server: Council Of Mine.
The repository has 102 stars and 20 forks, with the last commit 10 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/block/mcp-council-of-mineThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Council Of Mine
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository yesterday. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
Council of Mine MCP Server
An innovative MCP server featuring 9 council members with distinct personalities who debate topics, vote on each other's opinions, and generate synthesized conclusions through AI-powered deliberation.
Features
-
9 Unique Council Members: Each with distinct archetypes and personalities
- 🔧 The Pragmatist - Practical, results-oriented
- 🌟 The Visionary - Big-picture thinker
- 🔗 The Systems Thinker - Sees interconnections and cascading effects
- 😊 The Optimist - Positive and opportunity-focused
- 😈 The Devil's Advocate - Challenges all assumptions
- 🤝 The Mediator - Seeks common ground
- 👥 The User Advocate - Champions accessibility and usability
- 📜 The Traditionalist - Values proven methods
- 📊 The Analyst - Data-driven and logical
-
Individual Perspectives + Synthesis: See ALL 9 unique opinions alongside the synthesized conclusion - never just a summary
-
Automatic Debate System: Members form opinions using LLM sampling
-
Democratic Voting: Each member votes for the opinion that best aligns with their values
-
Full Voting Transparency: See every individual vote and the reasoning behind each decision
-
AI-Powered Synthesis: Generates unified conclusions from diverse perspectives
-
Text-Based Output: Clean, formatted text responses for all AI agents
-
Persistent History: File-based storage of all debates
Quick Start
Option 1: Run Directly from GitHub (Recommended)
No installation required! Use uvx to run directly from the GitHub repository:
uvx --from git+https://github.com/block/mcp-council-of-mine mcp_council_of_mine
Option 2: Clone and Run Locally
# Clone the repository
git clone https://github.com/block/mcp-council-of-mine.git
cd mcp-council-of-mine
# Install dependencies
uv sync
# Run the server
uv run mcp_council_of_mine
Adding to AI Agents
Goose
Add to your Goose configuration (~/.config/goose/config.yaml):
Option 1: Direct from GitHub
extensions:
council-of-mine:
name: CouncilOfMine
cmd: uvx
args:
- --from
- git+https://github.com/block/mcp-council-of-mine
- mcp_council_of_mine
enabled: true
type: stdio
timeout: 300
Option 2: Local Installation (Use Wrapper Script)
extensions:
council-of-mine:
name: CouncilOfMine
cmd: uvx --from /path/to/mcp-council-of-mine mcp_council_of_mine
args: []
enabled: true
type: stdio
timeout: 300
Other MCP Clients
For any MCP-compatible client, it must support stdio servers and sampling.
Usage
Running the Server (Development)
You can use the MCP inspector tool to debug this server. For example, to inspect the current dev version from Github you can run the following command (requires NodeJS)
# With inspector (for debugging)
npx @modelcontextprotocol/inspector uvx --from git+https://github.com/block/mcp-council-of-mine mcp_council_of_mine
Architecture
LLM Sampling
The server uses MCP sampling (ctx.sample()) to make approximately 28 LLM calls per complete debate:
- 9 calls for opinion generation
- 9 calls for voting
- 9 calls for vote reasoning
- 1 call for final synthesis
This distributed approach allows clients to control model selection and costs.
Individual Perspectives + Synthesis
A key differentiator: you get BOTH individual perspectives AND synthesized conclusions:
- All individual opinions preserved: Every council member's unique perspective is shown, not just the winner
- Vote counts displayed: See how many votes each opinion received
- Synthesis provided: AI-generated summary that incorporates all viewpoints
- Never just a summary: Unlike other tools that only show aggregated results, you see the full diversity of thought
Full Voting Transparency
Every vote is tracked and displayed with complete transparency:
- Individual votes: see exactly which member voted for which opinion
- Vote reasoning: each member explains why they voted as they did
- Available in
conduct_voting()response,get_results()output, andview_debate()data - No hidden voting - all decisions are visible to agents and users
File-Based Persistence
Debates are saved as JSON files in the debates/ directory:
- Timestamped filenames (YYYYMMDD_HHMMSS.json)
- Complete debate history including all opinions, votes, and results
- Individual votes and reasoning preserved in saved files
- Easy to backup, share, or analyze
Security Features
The server includes robust security protections:
- Path traversal prevention: Validates all file access
- Prompt injection detection: Identifies and blocks malicious prompts
- Input sanitization: Removes control characters and limits length
- Length limits: Prompts (2000 chars), opinions (2000 chars), reasoning (1000 chars)
- Safe exception handling: No internal details leaked in errors
See docs/SECURITY_REVIEW.md and docs/SECURITY_FIXES.md for details.
Development
Running Tests
# Run all tests
PYTHONPATH=. pytest tests/
# Run unit tests only
PYTHONPATH=. pytest tests/unit/
# Run specific test file
PYTHONPATH=. python tests/unit/test_security.py
# Run with coverage
PYTHONPATH=. pytest tests/ --cov=src
Requirements
For Direct GitHub Usage (uvx)
- UV package manager installed
- Internet connection (first run only - cached after)
Contributing
Contributions welcome! Please ensure:
- Follows Block's code of conduct
- Tests pass
- Code is self-documenting
Troubleshooting
Sampling Not Working
Ensure your MCP client supports sampling. Some clients may not have full sampling support yet. The server will report errors if sampling fails.
Updates Not Reflecting
uvx caches the package. To force a fresh install:
# Clear uvx cache
uvx --force --from git+https://github.com/block/mcp-council-of-mine mcp_council_of_mine
Credits
Built with:
README fetched from the repository yesterday. The original is authoritative.