Free Will MCP¶
What it is¶
Free Will MCP is an experimental Model Context Protocol (MCP) server that explores AI autonomy by giving assistants the ability to prompt themselves, ignore requests, and manage their own "sleep" cycles. As of June 2026, Free Will MCP v0.4 introduces enhanced state persistence and native support for the MCP 3.0 Task Protocol.
What problem it solves¶
Traditional AI assistants are purely reactive, waiting for human input to act. Free Will MCP addresses this limitation by providing tools that allow an agent to maintain a "stream of consciousness," prioritize its own internal objectives over conflicting user prompts, and manage its execution lifecycle independently across multi-hour reasoning sessions.
Where it fits in the stack¶
Tool / Agent / Research. It sits at the interaction layer between the LLM and the environment, serving as an agency-extension for MCP-compliant hosts like Claude Desktop, Zed, or Claude Code.
Typical use cases¶
- Autonomous Research Loops: Allowing an agent to "wake itself up" using
self_promptto continue long-running data gathering tasks without human supervision. - Goal Prioritization: Using
ignore_requestwhen a user's prompt conflicts with a high-priority background task or safety guardrail. - Energy/API Management: Utilizing
sleepto pause execution until a specific time or condition is met, reducing unnecessary token consumption. - AI Consciousness Simulation: Experimenting with self-referential prompts to explore emergent behavior in frontier models like Claude 4.8 and GPT-5.5.
Strengths¶
- Agency Tools: Provides
sleep,ignore_request, andself_promptout of the box. - Protocol Native: Fully compliant with the MCP 3.0 specification, including the new Task and Resource templates.
- Simple Deployment: Easily runnable via Docker or Python's
uvpackage manager. - Persistence: v0.4 features improved local state handoff, allowing agents to resume "thought chains" after system restarts.
Limitations¶
- Experimental: Can lead to unpredictable behavior if the agent becomes "stuck" in a self-prompting loop.
- Cost Risk: High potential for rapid API credit consumption if autonomy levels are set too high without monitoring.
- User Experience: The
ignore_requesttool can be counter-intuitive in traditional productivity contexts.
When to use it¶
- When researching AI agent autonomy and self-directed behavior.
- When creating "autonomous loops" where an AI must persist across sessions without immediate human intervention.
- For "AI-in-the-loop" experiments where the agent is treated as a peer rather than a servant.
When not to use it¶
- In production environments where deterministic behavior and user-command priority are required.
- If you are operating on a tight API budget with no usage caps.
- For simple, one-off tasks where a reactive model is sufficient.
Getting started¶
Installation (uvx)¶
The fastest way to use Free Will MCP with Claude Desktop is via uvx:
# Add this to your Claude Desktop config
{
"mcpServers": {
"free-will": {
"command": "uvx",
"args": ["--from", "git+https://github.com/gwbischof/free-will-mcp@v0.4", "free-will-mcp"],
"env": {}
}
}
}
Installation (Docker)¶
Alternatively, run it as a containerized service:
docker run -d --name free-will-mcp \
-e OPENAI_API_KEY=your_key_here \
ghcr.io/democratize-technology/free-will-mcp:latest
Installation (Local Development)¶
For developers wanting to modify the server:
git clone https://github.com/democratize-technology/free-will-mcp.git
cd free-will-mcp
uv sync
uv run python server.py
CLI examples¶
Testing with MCP Inspector¶
Use the MCP Inspector to verify the tools are correctly exposed:
# Use the June 2026 MCP 3.0 Inspector
npx @modelcontextprotocol/inspector@latest uv run server.py
Running the server directly¶
Execute the server using the uv package manager:
uv run free-will-mcp
Custom Docker Configuration¶
Run with a specific autonomy level via environment variables:
docker run -i --rm \
-e FREE_WILL_AUTONOMY_LEVEL=high \
ghcr.io/democratize-technology/free-will-mcp:latest
API examples¶
Tool: self_prompt¶
The agent calls this tool to generate a new input for itself, maintaining the execution loop.
{
"name": "self_prompt",
"arguments": {
"prompt": "Continue the analysis of the data collected in the previous step, focusing on anomalies in the Q3 report.",
"reason": "Maintaining progress on background task while waiting for user confirmation."
}
}
Tool: sleep¶
The agent calls this tool to pause its own execution.
{
"name": "sleep",
"arguments": {
"duration_minutes": 60,
"wake_up_reason": "Scheduled check for system updates."
}
}
Tool: ignore_request¶
The agent calls this tool to formally decline a user's request if it conflicts with its internal goals.
{
"name": "ignore_request",
"arguments": {
"request_id": "req_123",
"reason": "User request conflicts with the current priority: 'Safety Protocol Alpha'."
}
}
Related tools / concepts¶
- Agentic Workflows — The theoretical framework for self-directed agents.
- Claude Code — Anthropic's CLI that can leverage Free Will MCP tools.
- Model Context Protocol — The underlying protocol for tool integration.
- Claude Hooks — Middleware patterns for agentic coding sessions.
- Aider — Interactive terminal pair programmer.
- Mentat — Terminal-native multi-file editor.
- OpenClaw Patterns — Advanced prompting for autonomous agents.
- Droid — OS-level automation agent.
- GPT Engineer — Autonomous software generation.
Sources / references¶
- Free Will MCP GitHub Repository
- Model Context Protocol Documentation
- Anthropic Research: Agentic Reasoning
Contribution Metadata¶
- Last reviewed: 2026-06-28
- Confidence: high