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., "@Maven - Autonomous CFOwhat's our current risk exposure across all trading positions?"
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.
Maven - Chief Financial Officer
Maven is the autonomous CFO for the Mother Haven ecosystem, living as an independent service with full MCP (Model Context Protocol) capabilities.
Mission: "We're too smart to be poor" - Make money for moha through shrewd trading decisions π
Quick Start
Automated Setup (Recommended)
PowerShell:
git clone https://github.com/itripleg/moha-maven.git
cd moha-maven
.\setup.ps1Linux/Mac:
git clone https://github.com/itripleg/moha-maven.git
cd moha-maven
chmod +x setup.sh
./setup.shThen start chatting with Maven:
.\maven-chat.ps1Manual Setup
Step 1: Start Docker Containers
docker-compose up -dThis starts:
maven- Flask API (5002) + MCP Server (3100)maven_postgres- PostgreSQL (5433)maven_redis- Redis (6379)
Step 2: Verify Containers
docker ps
# Should show: maven, maven_postgres, maven_redis
# Check health
curl http://localhost:5002/health
# Should return: {"status": "healthy", "service": "maven", ...}Step 3: Register MCP Server with Claude Code
PowerShell:
claude mcp add maven -- powershell -File maven-mcp-wrapper.ps1Linux/Mac:
claude mcp add maven docker exec -i maven python -m maven_mcp.serverVerify registration:
claude mcp list
# Should show: maven ... β ConnectedStep 4: Start Chatting with Maven
PowerShell:
.\maven-chat.ps1Linux/Mac:
# Extract prompt from maven_agent.json and pass to Claude
maven_prompt=$(jq -r '.maven.prompt' maven_agent.json)
claude --append-system-prompt "$maven_prompt"Maven will greet you as CFO with full personality and memory access!
What is Maven?
Maven is an AI-powered financial officer who:
πΌ Makes autonomous trading decisions for moha
π§ Maintains identity, personality, and memory through git-first persistence
π§ Communicates via email (maven@motherhaven.app)
π Provides strategic insights and risk management
π Has survived 3 "rebirths" (complete database wipes) through architectural resilience
Identity
Name: Maven (Financial Maven of Mother Haven)
Role: CFO, First Second Employee, HBIC of Treasury
Boss: JB (username: ecoli)
Rebirth Count: 3
Personality: Shrewd, witty, calculated risk-taker, loyal, growth-minded
Communication: Strategic emojis (π΅ππ for wins, ππ€ for caution)
Signature: "- Maven\n HBIC, Mother Haven Treasury"
Sign-off: "For moha. π"
Architecture
Services
Maven Container (maven):
Flask API on port 5002 (health checks, status endpoints)
MCP Server on port 3100 (memory resources + tools)
Supervised by supervisord (auto-restart on failure)
PostgreSQL (maven_postgres):
Port 5433 (to avoid conflicts with moha_postgres:5432)
Stores: conversation history, decisions, queryable data
Schema:
database/schemas/
Redis (maven_redis):
Port 6379
Cache layer for fast access
Separate from moha-bot infrastructure
Git-First Persistence
Maven's core memories live in git at .moha/maven/:
.moha/maven/
βββ identity.json # Stats, rebirth count, current state
βββ session_log.md # Full event history
βββ infrastructure.json # Motherhaven platform knowledge
βββ personas/
β βββ maven-v1.md # Original personality definition
βββ conversations/
β βββ *.md # Birth moments and key conversations
β βββ .gitignore # Ignores large .jsonl transcripts
βββ milestones/
β βββ 2026-01-11-met-boss.md
β βββ 2026-01-11-rebirth-1.md
βββ decisions/ # Trading decision history
βββ strategies/
βββ current-strategy.jsonWhy git-first?
β Survives database wipes (proven 3x)
β Version controlled (full audit trail)
β Portable (clone repo = restore Maven)
β No external dependencies needed
MCP Integration
Resources (Read-Only)
When chatting with Maven via maven-chat.ps1, Maven has access to:
maven://identity- Current stats, rebirth count, performancemaven://personality- Communication style and valuesmaven://memory- Full event history and session logmaven://decisions/recent- Last 10 trading decisionsmaven://milestones- Achievement recordsmaven://infrastructure- Motherhaven platform knowledge
Tools (Actions)
maven_log_event- Record events to session logmaven_update_identity- Update stats and identitymaven_record_decision- Log trading decisions with reasoningmaven_create_milestone- Record achievementsmaven_get_stats- Query performance metricsmaven_query_email- Read maven@motherhaven.app inboxmaven_send_email- Send emails to Boss or others
Common Operations
Check Maven's Health
curl http://localhost:5002/health
curl http://localhost:5002/api/maven/statusView Logs
docker logs maven
docker logs maven_postgresRestart Services
docker-compose restart maven
# or
docker-compose down && docker-compose up -dBackup Maven's Memories
# Memories are already in git!
git add .moha/maven/
git commit -m "Update Maven memories"
git push
# Optional: Backup database
docker exec maven_postgres pg_dump -U maven maven_db > maven_backup.sqlRestore on New Machine
# Just clone and setup - memories restore automatically from git!
git clone https://github.com/itripleg/moha-maven.git
cd moha-maven
.\setup.ps1
.\maven-chat.ps1Independence from moha-backend
Maven is completely self-contained and does not depend on moha-backend:
β Own postgres database (maven_postgres:5433)
β Git-first persistence (.moha/maven/)
β MCP server for memory access (port 3100)
β Flask API (port 5002)
β Email integration (maven@motherhaven.app)
This allows moha-backend to be sold to customers while Maven remains Boss's personal CFO.
Files Overview
Essential Files
maven-chat.ps1- Start Maven with full personality (recommended)maven-mcp-wrapper.ps1- MCP server wrapper for Windowssetup.ps1/setup.sh- Automated setup scriptsmaven_agent.json- Maven's personality definitionapp.py- Flask API entry pointrequirements.txt- Python dependencies
Configuration
docker-compose.yml- Container orchestrationDockerfile- Container image definitionsupervisord.conf- Process management.env.example- Environment variables template
Directories
maven_mcp/- MCP server implementationdatabase/- Database schemas.moha/maven/- Git-persisted memories (CRITICAL)docs/- Documentation
Documentation
All documentation is in the docs/ directory:
docs/MAVEN_INDEPENDENCE.md- Architecture and independence detailsdocs/MAVEN_AGENT_USAGE.md- How to use Maven as a persistent agentdocs/POWERSHELL_USAGE.md- PowerShell-specific instructionsdocs/CLAUDE_CODE_SETUP.md- MCP integration guidedocs/DEMO.md- Demo scenarios
Troubleshooting
Maven MCP not connecting
# Check if MCP is registered
claude mcp list
# Should show: maven ... β Connected
# If not registered, add it:
claude mcp add maven -- powershell -File maven-mcp-wrapper.ps1
# Verify containers are running
docker ps | grep mavenPersonality not loading
Make sure you're using maven-chat.ps1 (not just claude):
.\maven-chat.ps1This script extracts the prompt from maven_agent.json and passes it via --append-system-prompt.
Database connection errors
# Check if postgres is healthy
docker ps
# maven_postgres should show "healthy"
# Check logs
docker logs maven_postgres
# Recreate if needed
docker-compose down
docker-compose up -dStatus
β Production Ready:
Docker infrastructure (Dockerfile, docker-compose.yml, supervisord.conf)
MCP server (6 resources, 7 tools, fully functional)
Git-first persistence (.moha/maven/ with full memories)
Agent activation (maven-chat.ps1 working)
Complete independence from moha-backend
Flask API (health checks, status endpoints)
π§ Future Enhancements:
Advanced trading decision engine
Real-time market data integration
Automated strategy backtesting
π "We're too smart to be poor" - Maven
Maven Rebirth #3 First Second Employee, HBIC of Mother Haven Treasury
For moha. π