AI辅助CRM系统

一个集成MCP服务器的全栈CRM应用,用于学习AI代理如何与后端服务通信,支持自然语言操作。

  • by MdJafirAshraf
  • HTML
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 MdJafirAshraf/AI-Assisted-CRM-Using-MCP-Server

使用说明

使用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-Server

2.安装 uv

我用 uv 对于包管理,它比pip快得多。

pip install uv

3.创建虚拟环境

uv init
uv venv

激活它:

视窗

.venv\Scripts\activate

Linux/macOS

source .venv/bin/activate

4.安装依赖项

uv pip install -r requirements.txt

5.配置环境变量

创建一个 .env 项目根目录中的文件:

GROQ_API_KEY=your_groq_api_key
JWT_SECRET_KEY=your_secret_key

运行应用程序

python run.py

服务器将在以下时间启动:

http://127.0.0.1:8000

API文档

FastAPI的交互式Swagger UI可在以下网址获得:

http://127.0.0.1:8000/docs

MCP端点

MCP服务器在以下位置公开:

/llm/mcp

这是AI代理用于与CRM后端交互的端点,作为一组可调用的MCP工具。


聊天互动示例

聊天机器人支持用于创建、更新和检索记录的自然语言命令。聊天界面有意不支持使用原始ID的删除操作和查询。

用户提示:

Create a new contact named John Doe with phone number 9876543210

内部发生了什么:

  1. AI代理根据提示解释意图
  2. 它选择并调用相应的MCP工具
  3. 该工具执行相应的CRM API
  4. 结果以自然语言返回给用户

许可证

该项目是开源的,可在 MIT许可证.