Mini CRM
Click on "Deploy 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., "@Mini CRM@Mini CRM list all active clients"
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.
Mini CRM / Client Manager MCP Server
Mini CRM is a local Model Context Protocol (MCP) server for managing client records. An MCP client, such as MCP Inspector, can discover the server's tools and resource and use them through the standard MCP protocol.
The project provides a focused implementation with:
Python MCP SDK
2.2.0Python
3.14stdio transport
local JSON storage
no database, cloud service, authentication, frontend, or AI framework
What the server provides
MCP tools
Tool | Purpose |
| Create a new client |
| List all clients or filter by status |
| Retrieve one client by ID |
| Update one or more client fields |
| Delete a client by ID |
MCP resource
Resource URI | Purpose |
| Read-only JSON view of all current clients |
This server does not define custom MCP prompts. The Inspector may still display a Prompts tab because it is a general MCP client, but the CRM functionality is provided by the five tools and the resource above.
Related MCP server: contactapi
Client data model
Each record has this shape:
{
"id": 1,
"name": "Ali Khan",
"email": "ali@example.com",
"phone": "03001234567",
"company": "ABC Solutions",
"status": "lead"
}Allowed statuses are lead, active, and inactive. IDs are generated automatically as positive integers. Email addresses must be valid and unique.
Project files
server.py MCP server, tools, resource, validation, and JSON storage
clients.json Local client records
requirements.txt Python dependency declaration
README.md Project documentation
DEMO_PLAN.md Short live demonstration plan
VIVA_ANSWERS.md Beginner-friendly viva answers
.gitignore Files excluded from version controlInstallation
Open a PowerShell terminal in the project folder:
cd "C:\Users\IT LAND\Downloads\Mini_CRM_MCP_Complete\mini_crm_mcp"
python -m venv venv
.\venv\Scripts\Activate.ps1
python -m pip install -r requirements.txtThe project requires the mcp Python package. The included virtual environment already contains the compatible SDK. The activation step is optional when using the explicit virtual-environment command shown below.
Running with MCP Inspector
The reliable Windows command for this project is:
npx --yes @modelcontextprotocol/inspector .\venv\Scripts\python.exe .\server.pyThis starts MCP Inspector and launches server.py with the Python executable from the project virtual environment. It does not depend on a globally installed uv command.
The terminal prints a URL similar to:
http://127.0.0.1:6274/?MCP_INSPECTOR_API_TOKEN=...Open that URL in a browser. In Inspector:
Find the
python.exeserver entry.Click its connection switch.
Wait for the status to show Connected.
Select Tools to use the five CRM tools.
Select Resources, choose
all_clients, and readclients://all.
If port 6274 is already in use, an Inspector instance is already running. Open http://127.0.0.1:6274 or stop the old Inspector terminal with Ctrl+C before starting a new one.
To run only the MCP server without Inspector:
.\venv\Scripts\python.exe .\server.pyThat command is useful for a direct server check, but Inspector is required for the graphical demonstration.
Tool inputs and examples
add_client
Required inputs: name, email.
Optional inputs: phone, company, and status. The default status is lead.
{
"name": "Sara Ahmed",
"email": "sara@technova.com",
"phone": "03001234567",
"company": "TechNova",
"status": "lead"
}list_clients
Optional input: status. Use all, lead, active, or inactive. The default is all.
{
"status": "lead"
}get_client
Required input: positive integer client_id.
{
"client_id": 1
}update_client
Required input: client_id and at least one update field. Available update fields are name, email, phone, company, and status. Fields that are not supplied remain unchanged.
{
"client_id": 1,
"status": "active"
}delete_client
Required input: positive integer client_id.
{
"client_id": 1
}Every tool returns a structured result. Successful results contain "ok": true; validation and missing-record results contain "ok": false and a readable error message. The server handles empty names, invalid emails, duplicate emails, invalid statuses, invalid IDs, unknown IDs, and empty update requests without crashing.
Reading clients://all
clients://all returns a JSON document like this:
{
"count": 1,
"clients": [
{
"id": 1,
"name": "Sara Ahmed",
"email": "sara@technova.com",
"phone": "03001234567",
"company": "TechNova",
"status": "lead"
}
]
}It is an MCP resource, not a tool, because it provides read-only information and does not perform an operation or modify data.
Inspector screenshots
The screenshots below show the connected MCP Inspector interface for this project.
Available CRM tools
The Tools view exposes the five CRM operations: add_client, list_clients, get_client, update_client, and delete_client.

Client resource
The Resources view shows the clients://all resource and its JSON response.

Prompts view
The Inspector includes a Prompts view as part of its general MCP interface. This project does not define custom prompts, so the list is intentionally empty.

Storage behavior
All records are stored in clients.json using Python's standard json module. The file can start as an empty array:
[]A missing or empty file is treated as an empty CRM. Malformed JSON or a file that does not contain a list of client objects is reported as a storage error. No external database is used.
Example CRM workflow
Call
add_clientto create Sara Ahmed as a lead.Call
list_clientswith{"status": "lead"}to show all leads.Call
update_clientwith{"client_id": 1, "status": "active"}when Sara becomes a customer.Call
get_clientto confirm the updated record.Read
clients://allto view the complete current CRM.
Troubleshooting
Inspector opens but the server is disconnected
Use the explicit command below from the project folder and click the python.exe connection switch in Inspector:
npx --yes @modelcontextprotocol/inspector .\venv\Scripts\python.exe .\server.pyThe terminal says port 6274 is already in use
Open the existing Inspector at http://127.0.0.1:6274, or stop the previous Inspector terminal with Ctrl+C. Do not start many Inspector instances at the same time.
The old Inspector entry says uv is not recognized
That entry uses an old uv launch command. Disconnect it and start Inspector with the explicit Python command above. This project does not require uv.
Tools or resources do not appear
Confirm that Inspector says Connected, then reconnect the python.exe entry. The expected tools are add_client, list_clients, get_client, update_client, and delete_client; the expected resource URI is clients://all.
A client already exists
Email addresses are intentionally unique. Use another email address or update the existing client.
Scope
This project is designed for local development and demonstration with MCP Inspector. It intentionally does not include authentication, a web interface, a cloud service, or an external database. The local JSON file keeps the implementation transparent and easy to inspect while demonstrating the complete MCP tool and resource workflow.
Related MCP Connectors
Manage CenterPoint Connect data across properties, companies, employees, invoices, materials, and…
Create and manage checkout pages, event ticketing, forms, customers, payments and subscriptions.
Create, search, update, and manage data in OnePageCRM.
Client, workout, body composition, retention and finance management for personal trainers.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with Users and Products through a CRUD service REST API, providing tools for listing, creating, reading, updating, and deleting records via HTTP transport.-
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to manage contacts through CRUD operations (list, get, create/upsert by email, update, delete) with OAuth 2.1 authentication.1MIT
- AlicenseAqualityBmaintenanceEnables MCP clients to read, search, create, update, and manage records in Twenty CRM with a safe, composable 14-tool interface and guarded destructive operations.14MIT
- AlicenseAqualityBmaintenanceEnables CRUD operations on PocketBase collections and records, including listing, viewing, creating, updating, and deleting items.77 npmMIT