MCP experiment / accountability coaching
"A containerized mind palace for living deliberately, acting efficiently, and getting the damn goals done."
Mecris is a persistent cognitive agent system that extends Claude's narrative thread beyond single sessions. It's designed to help maintain focus, track progress, and provide strategic insight by integrating with your personal data sources.
This is not a chatbot. This is a delegation system that helps you stay accountable to your goals and use your time intentionally.
For detailed setup instructions for different agents, see docs/SETUP_GUIDE.md.
# 1. Install dependencies using uv
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
# 2. Configure environment (copy and edit .env.example if needed)
# Set BEEMINDER_USERNAME, BEEMINDER_AUTH_TOKEN, TWILIO credentials, etc.
# 3. Launch the MCP server
./scripts/launch_server.sh
# 4. Test health endpoint
curl http://127.0.0.1:8000/health┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude Code │◄──►│ FastAPI MCP │◄──►│ Data Sources │
│ (Narrator) │ │ Server │ │ │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │
▼ ├─ Obsidian Vault
┌──────────────┐ ├─ Beeminder API ✅
│ Twilio │ ├─ Claude Monitor ✅
│ Alerts │ └─ Usage Tracker ✅
└──────────────┘Key Tool Categories:
get_narrator_context, get_coaching_insightget_beeminder_status, trigger_language_sync, get_language_velocity_statsget_daily_activity, get_weather_reportget_budget_status, get_real_anthropic_usage, get_unified_cost_statusget_system_health, get_scheduler_queue, trigger_reminder_checkget_daily_aggregate_status (The Majesty Cake 🍰)Key Endpoints:
GET /health - Service health and dependency statusGET /narrator/context - Unified context for Claude narratorGET /beeminder/status - Goal portfolio with risk assessmentGET /usage - Budget status and burn rate analysisPOST /beeminder/alert - Emergency goal notificationsPOST /usage/record - Track API usage sessionsscripts/launch_server.sh - Safe server startup with health checksscripts/shutdown_server.sh - Graceful shutdown with cleanup/docs directorymecris/
├── README.md # This file
├── CLAUDE.md # Core narrator instructions
├── requirements.txt # Python dependencies
├── start_server.py # Main server entry point
├── mcp_server.py # FastAPI application
├── scripts/ # Server management scripts
│ ├── launch_server.sh # Safe server startup
│ └── shutdown_server.sh # Graceful shutdown
├── tests/ # Test suites
│ ├── test_mecris.py # System integration tests
│ └── test_beeminder_live.py # Beeminder API tests
├── logs/ # Application logs and reports
├── docs/ # Technical documentation
└── [data clients] # beeminder_client.py, usage_tracker.py, etc.Mecris currently operates in Stdio Mode, integrated directly with CLI agents (Gemini CLI, Claude Code).
The server is invoked automatically by your agent using:
python mcp_stdio_server.pyStandalone FastAPI/SSE mode is currently disabled and will be reintroduced once secured with OIDC authentication.
source .venv/bin/activate
PYTHONPATH=. pytestYou can test the MCP tools directly via your agent's command interface (e.g., /get_narrator_context).
Set these environment variables in your shell or .env file:
# Beeminder Integration
BEEMINDER_USERNAME=your_username
BEEMINDER_AUTH_TOKEN=your_token
# Twilio Alerts
TWILIO_ACCOUNT_SID=your_sid
TWILIO_AUTH_TOKEN=your_token
TWILIO_FROM_NUMBER=+1234567890
TWILIO_TO_NUMBER=+1234567890
# Optional Configuration
DEBUG=false # Enable debug logging
HOST=127.0.0.1 # Server bind address
PORT=8000 # Server port
LOG_LEVEL=INFO # Logging level/usage/update_budget endpointcurl -X POST http://127.0.0.1:8000/usage/update_budget \
-H "Content-Type: application/json" \
-d '{"remaining_budget": 15.50}'CLAUDE.md - Core narrator instructions and contextCLAUDE_CODE_INTEGRATION.md - Integration with Claude Code CLIdocs/CLAUDE_API_LIMITATIONS.md - Budget tracking approachdocs/ - Additional technical documentationFor issues or questions:
logs/ directorykingdonb/mecris
July 29, 2025
April 13, 2026
Python