使用MCP服务器的人工智能辅助CRM
一个与MCP(模型上下文协议)服务器集成的全栈CRM应用程序,用于学习现实世界的AI代理如何与后端服务通信。该项目包括一个内置的聊天机器人,可以让你使用自然语言提示执行CRM操作——创建联系人、管理交易、更新潜在客户。
我使用FastAPI构建了这一点,这使得同时将每个端点公开为RESTneneneba API和MCP工具变得非常简单。目标是演示如何设计现代应用程序,以便从单个代码库为人类用户和人工智能代理提供服务。
这个项目纯粹是为了教育目的——了解如何构建自己的MCP服务器,如何构建AI代理可以理解的工具,以及AI代理如何在现实世界中与MCP服务器通信。
______________________________________________________________________
我为什么建造这个
人工智能代理现在无处不在。大多数开发人员都知道如何为用户构建API,但构建AI代理可以可靠地理解和使用的API是一种不同的技能。这个项目是我试图用一个真实的、可行的例子来弥合这一差距。
我在这个项目中处理的内容:
- 设计了系统架构和分层结构
- 在FastAPI端点之上构建MCP服务器
- 创建了LLM客户端和AI代理
- 实现了基于Redis的缓存,以加快代理到MPCP的通信,并避免冗余的API调用
- 通过请求标头使用JWT身份验证保护所有MCP访问
- 对REST API和MCP工具实施基于角色的访问控制
______________________________________________________________________
架构概述
CRM+MCP系统架构
分层架构
LLM代理读取用户提示,决定调用哪个MCP工具,执行相应的CRM API,并自动返回结果。
______________________________________________________________________
项目结构
AI-Assisted-CRM-Using-MCP-Server
├─ app
│ ├─ chatbot
│ │ ├─ cache_service.py
│ │ ├─ handle_error.py
│ │ ├─ llm_client.py
│ │ └─ redis_client.py
│ │
│ ├─ core
│ │ ├─ cache_invalidator.py
│ │ ├─ config.py
│ │ └─ security.py
│ │
│ ├─ dependencies
│ │ ├─ auth.py
│ │ └─ permission.py
│ │
│ ├─ models
│ │ ├─ contacts.py
│ │ ├─ deals.py
│ │ ├─ leads.py
│ │ ├─ tasks.py
│ │ └─ users.py
│ │
│ ├─ routes
│ │ ├─ routers
│ │ │ ├─ auth.py
│ │ │ ├─ chat.py
│ │ │ ├─ contacts.py
│ │ │ ├─ dashboard.py
│ │ │ ├─ deals.py
│ │ │ ├─ leads.py
│ │ │ └─ tasks.py
│ │ └─ routes.py
│ │
│ ├─ schemas
│ │ ├─ chat.py
│ │ ├─ contacts.py
│ │ ├─ deals.py
│ │ ├─ leads.py
│ │ ├─ tasks.py
│ │ └─ users.py
│ │
│ ├─ static
│ │ ├─ css
│ │ └─ js
│ │
│ ├─ templates
│ │ ├─ dashboard.html
│ │ ├─ contacts.html
│ │ ├─ deals.html
│ │ ├─ leads.html
│ │ ├─ tasks.html
│ │ ├─ login.html
│ │ └─ register.html
│ │
│ ├─ main.py
│ └─ db.py
│
├─ client.py
├─ run.py
├─ requirements.txt
└─ README.md______________________________________________________________________
安装
1.克隆存储库
git clone https://github.com/yourusername/AI-Assisted-CRM-Using-MCP-Server.git
cd AI-Assisted-CRM-Using-MCP-Server2.安装 uv
我用 uv 对于包管理,它比pip快得多。
pip install uv3.创建虚拟环境
uv init
uv venv激活它:
视窗
.venv\Scripts\activateLinux/macOS
source .venv/bin/activate4.安装依赖项
uv pip install -r requirements.txt5.配置环境变量
创建一个 .env 项目根目录中的文件:
GROQ_API_KEY=your_groq_api_key
JWT_SECRET_KEY=your_secret_key______________________________________________________________________
运行应用程序
python run.py服务器将在以下时间启动:
http://127.0.0.1:8000API文档
FastAPI的交互式Swagger UI可在以下网址获得:
http://127.0.0.1:8000/docsMCP端点
MCP服务器在以下位置公开:
/llm/mcp这是AI代理用于与CRM后端交互的端点,作为一组可调用的MCP工具。
______________________________________________________________________
聊天互动示例
聊天机器人支持用于创建、更新和检索记录的自然语言命令。聊天界面有意不支持使用原始ID的删除操作和查询。
用户提示:
Create a new contact named John Doe with phone number 9876543210内部发生了什么:
- AI代理根据提示解释意图
- 它选择并调用相应的MCP工具
- 该工具执行相应的CRM API
- 结果以自然语言返回给用户
______________________________________________________________________
许可证
该项目是开源的,可在 MIT许可证.
