An AI-first personal CRM you interact with entirely through natural language.
š¦ Mob ā AI-First Personal CRM
Mob is a personal CRM you interact with entirely through natural language. Built as an MCP server, there are no forms, no dashboards, no buttons ā just talk about your relationships and Mob keeps track.
"Mob" is the name for a group of kangaroos.
What It Does
Mob helps you maintain meaningful relationships by remembering everything about the people in your life:
- Contacts ā Store names, birthdays, addresses, work info, food preferences, and more
- Relationships ā Map how people are connected (family, friends, colleagues, partners)
- Activities ā Log phone calls, coffee dates, dinners, and shared experiences
- Life Events ā Record milestones like graduations, weddings, new jobs, and moves
- Reminders ā Never forget a birthday, follow-up, or check-in
- Notes ā Pin important things to remember about someone
- Gifts & Debts ā Track gift ideas and money owed
- Tags ā Organize contacts with flexible labels
How It Works
Mob is an MCP server. You connect to it with an MCP-compatible AI client, and interact using natural language:
You: "Add a new contact: Sarah Chen, she works at Google as a senior engineer"
You: "Log that I had coffee with Mike yesterday at Blue Bottle"
You: "When is Tom's birthday?"
You: "Remind me to call Lisa next Tuesday"
You: "Who haven't I talked to in a while?"
The AI assistant interprets your intent and calls the appropriate MCP tools behind the scenes.
Connecting
MCP Connection Details
| Setting | Value |
|---|---|
| Transport | Streamable HTTP |
| Server URL | http://localhost:3000/mcp |
| Auth | OAuth 2.0 with PKCE |
Recommended Client
We recommend Joey MCP Client for connecting to Mob.
Connecting with other MCP clients
Any MCP-compatible client that supports Streamable HTTP transport and OAuth can connect. Configure your client with the server URL above and it will be guided through the OAuth flow.
Operating Modes
Persistent Mode (Default)
Full-featured mode with user accounts. Create an account with your name, email, and password. Your data is stored permanently in a local SQLite database.
mob-crm start
Forgetful Mode
Ephemeral mode for demos or privacy-sensitive use. No login required ā data exists only for the session and is automatically destroyed on disconnect or after 2 hours.
mob-crm start --forgetful
Development
Prerequisites
- Node.js 20+
- npm
Getting Started
# Install dependencies
npm install
# Run in development mode (auto-reload)
npm run dev
# Run tests
npm test
# Build for production
npm run build
# Start production server
npm start
Deployment
Mob stores its data in a SQLite database. For deployment, configure the MOB_DATA_DIR environment variable to point to a persistent storage directory:
# Set the data directory for SQLite storage
export MOB_DATA_DIR=/var/data/mob-crm
# Start the server
npm start
The server will create and manage its SQLite database files in the specified directory. Ensure this directory is on persistent storage (not an ephemeral filesystem) to retain data across restarts.
Project Structure
mob-mcp-crm/
āāā docs/
ā āāā FEATURES.md # Full feature specification
āāā src/
ā āāā server/ # MCP server setup, Streamable HTTP transport
ā āāā auth/ # OAuth PKCE flow, account management
ā āāā db/ # SQLite schema, migrations, queries
ā āāā services/ # Business logic per entity
ā āāā tools/ # MCP tool definitions and handlers
ā āāā notifications/ # Notification generation and delivery
āāā tests/
ā āāā unit/ # Pure function tests
ā āāā integration/ # Service + database tests
ā āāā e2e/ # MCP protocol tests
āāā public/
āāā index.html # Homepage / landing page
Documentation
- Feature Specification ā Comprehensive specification covering all entities, MCP tools, auth, elicitation, and testing strategy
License
MIT
Tools (3)
manage_contactsStore and retrieve contact information including names, birthdays, addresses, and work details.log_activityRecord interactions like phone calls, coffee dates, and shared experiences.set_reminderCreate reminders for birthdays, follow-ups, or check-ins.Environment Variables
MOB_DATA_DIRDirectory path for persistent SQLite database storageConfiguration
{"mcpServers": {"mob": {"command": "npx", "args": ["-y", "@benkaiser/mob-mcp-crm"], "env": {"MOB_DATA_DIR": "/path/to/data"}}}}