Local MCP CRM
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., "@Local MCP CRMCreate a new customer for Acme Inc."
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.
π§© Local MCP CRM
A local-first CRM built on the Model Context Protocol (MCP) β customer & project management exposed as MCP tools, driven by either a custom LlamaIndex ReAct agent or directly from Claude Code.
πΈ Screenshots
Both servers connected inside Claude Code (VS Code extension):

CRM server tools:

Analytics server tools:

Related MCP server: MCP Toolkit Server
π Table of Contents
π― Why this project
This is a small, deliberately layered CRM that doubles as a hands-on demonstration of the
Model Context Protocol β the emerging standard for connecting LLMs to tools and data.
It ships two independent MCP servers (crm and crm-analytics), each exposing a clean
set of tools over stdio, and two different clients talking to them:
A custom agent (
client/) β a LlamaIndexReActAgentwired to a free OpenRouter model, with its own MCP client, tool-schema translation, and a simple multi-turn "collect missing fields" workflow.Claude Code itself β via
.mcp.json, the same servers plug straight into Claude Code (or any other MCP-compatible client) with zero extra glue code.
The point isn't the CRM domain (customers/projects are intentionally simple) β it's the architecture underneath: a clean repository β service β MCP tool β server pipeline that keeps business logic, data access, and protocol plumbing separate and independently testable.
ποΈ Architecture
flowchart LR
subgraph Clients
A["Custom ReAct Agent\n(client/chat.py)"]
B["Claude Code /\nany MCP client"]
end
subgraph Servers["MCP Servers (stdio)"]
C["CRM Server\nservers/crm_server"]
D["Analytics Server\nservers/analytics_server"]
end
subgraph Domain["Domain Layer"]
E["Services\n(validation & business rules)"]
F["Repositories\n(data access)"]
end
G[("SQLite\ncrm.db")]
A -- MCP --> C
A -- MCP --> D
B -- MCP --> C
B -- MCP --> D
C --> E
D --> E
E --> F
F --> GEach layer has one job:
Repositories β raw SQL against SQLite, nothing else.
Services β validation and business rules (e.g. "can't create a project for a customer that doesn't exist").
MCP tools β translate service calls into the
{success, data/error, message}shape every tool returns.Servers β register those tools on a
FastMCPinstance and speak stdio.
β¨ Features
β Customer CRUD β create, look up by name or ID
β Project lifecycle β create, update status (
Active/Delayed/Completed), list by customerβ Analytics β aggregate stats, delayed-project tracking, per-customer reports
β Two independent MCP servers, each with a focused tool surface
β Works as a drop-in MCP integration for Claude Code β no adapter code needed
β Standalone chat agent with tool-calling via LlamaIndex
ReActAgentβ Layered architecture (repository / service / tool / server) β each piece testable in isolation
π οΈ Tech Stack
Layer | Technology |
Protocol | Model Context Protocol ( |
Agent / LLM orchestration | LlamaIndex |
LLM | OpenRouter (free-tier model) / LM Studio (local, optional) |
Database | SQLite |
Language | Python 3.13 |
π§ MCP Tools Reference
crm server
Tool | Description |
| Create a customer ( |
| Look up a customer by name |
| Look up a customer by ID |
| Create a project under a customer |
| Update a project's status |
| List all projects for a customer |
crm-analytics server
Tool | Description |
| Aggregate counts β total customers, total projects, delayed projects |
| List every project currently marked |
| Full project report for a single customer |
π Getting Started
Prerequisites
Python 3.13+
An OpenRouter API key (free tier works) β only needed for the standalone chat agent, not for using the servers from Claude Code
1. Clone & set up a virtual environment
git clone <your-repo-url>
cd local-mcp-crm
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -r requirements.txt2. Configure environment variables
cp .env.example .env
# then fill in OPENROUTER_API_KEY (and LM Studio settings, if you use them)3. Initialize the database
python -m database.schema4. Run it
Option A β standalone chat agent:
python -m client.chatOption B β plug into Claude Code:
cp .mcp.json.example .mcp.json
# replace <ABSOLUTE_PATH_TO_PROJECT> with this project's absolute path
# (on macOS/Linux, point "command" at .venv/bin/python instead of .venv/Scripts/python.exe)Reload Claude Code / run /mcp β you should see crm and crm-analytics connected, as
in the screenshots above.
π Project Structure
local-mcp-crm/
βββ servers/
β βββ crm_server/ # MCP server: customers & projects
β βββ analytics_server/ # MCP server: aggregate analytics
βββ services/ # Business rules & validation
βββ repositories/ # SQLite data access
βββ database/ # Schema + connection helper
βββ client/ # Standalone LlamaIndex ReAct agent
βββ models/ # (reserved for typed domain models)
βββ tests/ # Manual verification scripts
βββ .env.example
βββ .mcp.json.example
βββ requirements.txtπΊοΈ Roadmap
Convert the manual scripts in
tests/into a realpytestsuitePydantic-based input validation at the MCP tool boundary
Package
crm_serverandanalytics_serverinto a single MCP server with resource-based tool groupingCI (lint + tests) on push
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityAmaintenanceA Model Context Protocol server that enables AI assistants like Claude to interact directly with Attio CRM data, supporting operations for companies, people, lists, and tasks through natural language queries.Last updated3335569Apache 2.0
- AlicenseAqualityDmaintenanceA Model Context Protocol server providing tools for DB queries, API calls, file I/O, and text transformations, enabling AI agents like Claude to perform real-world actions.Last updated10MIT
- Alicense-qualityDmaintenanceA Model Context Protocol (MCP) server that provides AI assistants with full access to HubSpot CRM. Manage contacts, companies, deals, pipelines, and associations directly from Claude, Cursor, or any MCP-compatible client.Last updated14MIT
- AlicenseAqualityCmaintenanceAn AI-first business and project management tool that stores data locally in Markdown and JSON files, exposed via the Model Context Protocol (MCP). Enables project, issue, client, contact, and note management through natural language.Last updated25MIT
Related MCP Connectors
Local-first RAG engine with MCP server for AI agent integration.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bhairavaa/local-mcp-crm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server