使用说明
多平台MCP知识库
一个将模型上下文协议(MCP)服务器与知识库接口集成在一起的全栈应用程序。该项目演示了如何使用模型上下文协议构建一个连接到Google Drive、GitHub和Slack的AI就绪知识库。
技术栈
- 前端:Next.js 15,顺风CSS v4,React 19
- 后端:FastAPI、SQLAlchemy(异步)、PostgreSQL、LangChain、LangGraph
- 主控程序python
mcpSDK(FastMCP)、服务器发送事件(SSE)传输 - 基础设施:Docker编写
建筑
frontend:Next.js应用程序,带有经过身份验证的侧边栏布局和实时连接状态指示器。backend:FastAPI服务处理Auth(谷歌、GitHub、Slack OAuth)和由LangGraph支持的智能MCP代理。mcp/google-drive:提供Google Drive工具的独立MCP服务器。mcp/github:提供GitHub工具的独立MCP服务器。mcp/slack:提供Slack工具的独立MCP服务器。db:用于用户和令牌存储的PostgreSQL数据库。
截图
首页
Google Drive集成
连接
聊天
GitHub集成
连接
聊天
Slack集成
连接
聊天
特性
连接器和工具
1.谷歌云端硬盘
- 列表和搜索:查找包含元数据(大小、修改时间、网络链接)的文件和文件夹。
- 内容读取:从各种文件格式中提取文本:
- 谷歌文档(
.gdoc) - PDF(
.pdf) - Word(
.docx) - PowerPoint(
.pptx) - Excel(
.xlsx) - 文本文件(
.txt,.json,.csv,.md等等)
- 谷歌文档(
- 直接访问:直接在Google Drive中打开文件。
2.GitHub
- 仓库:列出和搜索存储库。
- 问题:列出未解决/已解决的问题。
- 拉取请求:列出PR的状态和分支详细信息。
- 分支:列出存储库分支。
- 文件内容:从存储库读取代码/文本文件。
3.松弛
- 频道:列出公共/私人频道和DM。
- 用户:列出工作区用户以将ID映射到名称。
- 历史:从频道获取消息历史记录。
- 线程:检索深度上下文的完整线程回复。
- 搜索:在工作区中搜索邮件。
设置
-
环境变量: 创建
.env根目录中的文件(请参见.env.example):DATABASE_URL=postgresql+asyncpg://user:password@db/mcpkb # Google OAuth GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret # GitHub OAuth GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret # Slack OAuth SLACK_CLIENT_ID=your_slack_client_id SLACK_CLIENT_SECRET=your_slack_client_secret注意:配置OAuth回调:
- 谷歌
http://localhost:8000/auth/google/callback - github:
http://localhost:8000/auth/github/callback - 松弛:
http://localhost:8000/auth/slack/callback
- 谷歌
-
松弛范围: 确保您的Slack应用程序具有以下用户令牌范围:
channels:history,channels:readgroups:history,groups:readim:history,im:readmpim:history,mpim:readusers:readsearch:read
-
使用Docker运行:
docker compose up -d --build -
访问:
- 前端:http://localhost:3000
- 后端API:http://localhost:8000/docs
发展
我们提供 Makefile 简化常见任务。有关详细指南,请参阅 贡献.md.
# Start the application
make up
# Run linters (Ruff for Python, ESLint for Next.js)
make lint
# Run backend tests
make test
MCP集成
该项目使用模型上下文协议来标准化后端与外部服务的通信方式。每个服务(Google Drive、GitHub、Slack)都作为独立的MCP服务器容器运行。后端充当MCP客户端,通过SSE(服务器发送事件)连接到这些服务器以执行工具。
该架构允许:
- 模块化:每个连接器都是隔离的。
- 可扩展性:连接器可以独立部署。
- AI就绪:这些工具以LLM可以轻松理解和调用的标准格式定义。
