MCP Client Portal
A lightweight MCP server for client relationship management, enabling client tracking, notes, and search via natural language.
README
MCP Client Portal
A lightweight Model Context Protocol (MCP) server for client relationship management (CRM). Perfect for freelancers, small businesses, and consultants who need simple yet effective client tracking.
🚀 Features
- 👥 Client Management - Add, update, and organize client information
- 🔍 Advanced Search - Find clients by name, company, email, or tags
- 📝 Notes & Interactions - Track meetings, calls, emails, and conversations
- 🏷️ Tagging System - Organize clients with custom tags
- 📊 Status Tracking - Monitor client status (active, prospect, churned)
- 💾 Local Storage - Simple JSON-based storage, no database required
- 🔒 Privacy-First - All data stays on your machine
- ⚡ Zero Configuration - Works out of the box
📦 Quick Start
Install and Run
# Install globally
npm install -g @artik0din/mcp-client-portal
# Or run directly with npx
npx @artik0din/mcp-client-portal
First Client
# Add your first client
add_client name="John Doe" email="john@example.com" company="Acme Corp" status="prospect" tags=["enterprise", "priority"]
# List all clients
list_clients
# Search for a client
search_clients query="john"
🛠️ MCP Client Setup
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"client-portal": {
"command": "npx",
"args": ["@artik0din/mcp-client-portal"]
}
}
}
Other MCP Clients
The server communicates via stdio and follows the MCP protocol. Configure according to your client's requirements.
📋 Available Tools
👥 Client Management
| Tool | Description | Parameters |
|---|---|---|
add_client |
Add new client | name, email, company?, phone?, address?, status?, tags? |
list_clients |
List all clients | status?, tag?, limit? |
get_client |
Get full client details | client_id |
search_clients |
Search clients | query |
update_client |
Update client info | client_id, name?, email?, company?, phone?, address?, status?, tags? |
📝 Notes & Interactions
| Tool | Description | Parameters |
|---|---|---|
add_client_note |
Add note or interaction | client_id, content, type?, subject?, date?, author? |
list_client_interactions |
List interaction history | client_id, type?, limit? |
💡 Usage Examples
Client Management
# Add a new client
add_client name="Sarah Johnson" email="sarah@techstart.io" company="TechStart Inc" phone="+1-555-0123" status="active" tags=["startup", "tech"]
# List active clients only
list_clients status="active"
# List clients with a specific tag
list_clients tag="enterprise"
# Update client status
update_client client_id="123-abc" status="churned"
# Search clients by company
search_clients query="TechStart"
Notes & Interactions
# Add a simple note
add_client_note client_id="123-abc" content="Discussed Q4 requirements. Very interested in enterprise plan."
# Log a phone call
add_client_note client_id="123-abc" type="call" subject="Q4 Planning Call" content="45-minute call about scaling infrastructure. Next steps: send proposal by Friday." author="John Smith"
# Log an email interaction
add_client_note client_id="123-abc" type="email" subject="Proposal Follow-up" content="Sent detailed proposal. Waiting for feedback from technical team."
# Add a meeting with custom date
add_client_note client_id="123-abc" type="meeting" subject="Contract Negotiation" content="Discussed terms and pricing. Agreed on 10% discount for annual plan." date="2024-01-15T14:30:00Z"
# List all interactions for a client
list_client_interactions client_id="123-abc"
# List only phone calls
list_client_interactions client_id="123-abc" type="call"
Advanced Workflows
# Get complete client profile
get_client client_id="123-abc"
# Find all prospects that need follow-up
list_clients status="prospect"
# Track high-value clients
list_clients tag="enterprise"
# Search across all fields
search_clients query="startup"
🏷️ Client Status Types
| Status | Description | Use Case |
|---|---|---|
prospect |
Potential client | Leads, initial contacts |
active |
Current client | Ongoing projects, contracts |
inactive |
Dormant client | Past clients, seasonal |
churned |
Lost client | Cancelled, competitors |
📝 Interaction Types
| Type | Description | Use Case |
|---|---|---|
note |
General note | Internal observations, reminders |
email |
Email exchange | Email conversations, proposals |
call |
Phone/video call | Sales calls, check-ins |
meeting |
In-person/online meeting | Presentations, negotiations |
chat |
Instant messaging | Quick questions, Slack/Teams |
other |
Custom interaction | Social media, events, other |
💾 Data Storage
- Local Storage: Data stored in
~/.mcp-client-portal/clients.json - JSON Format: Human-readable and easily portable
- No Database: Zero setup complexity
- Backup Ready: Simply copy the JSON file
- Privacy First: No cloud dependencies
Data Structure
{
"id": "unique-client-id",
"name": "Client Name",
"company": "Company Inc",
"email": "client@company.com",
"phone": "+1-555-0123",
"status": "active",
"tags": ["enterprise", "priority"],
"notes": [
{
"id": "note-id",
"content": "Note content",
"author": "Your Name",
"createdAt": "2024-01-15T10:30:00Z"
}
],
"interactions": [
{
"id": "interaction-id",
"type": "call",
"subject": "Q4 Planning",
"summary": "Discussed requirements...",
"date": "2024-01-15T14:00:00Z",
"createdAt": "2024-01-15T14:05:00Z"
}
]
}
🔧 Migration & Integration
From Other CRMs
- Export your data to CSV/JSON
- Transform to match the client structure
- Import by adding clients via the MCP tools
- Bulk import scripts available in the repository
To Database Systems
When you outgrow JSON storage:
- Export data:
cp ~/.mcp-client-portal/clients.json backup.json - Transform data for your target database
- Update storage.ts to use database instead of JSON
- Maintains same MCP interface
🏗️ Development
# Clone and setup
git clone https://github.com/artik0din/mcp-client-portal.git
cd mcp-client-portal
npm install
# Development mode
npm run dev
# Build for production
npm run build
📄 License
MIT © 2026 Kevin Valfin
🤝 Contributing
Contributions welcome! Please read the contributing guidelines and submit PRs to the main branch.
Feature requests:
- Custom fields
- Email integration
- Calendar sync
- Export/import tools
- Dashboard views
🐛 Issues
Found a bug? Please file an issue on GitHub with:
- Node.js version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
🔗 Links
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。