使用说明
MCP聊天机器人和研究工具
使用 模型上下文协议(MCP) 它连接到外部工具和资源。该项目演示了一个支持多种传输和动态工具发现的模块化客户端-服务器架构。
🚀 特性
- 模块化客户端架构:通过以下方式将聊天逻辑与连接管理分离
MCPClientManager. - 多服务器支持:同时连接到多个MCP服务器。
- 扩大运输:支持
stdio(本地),sse(标准托管),以及http(现代流式HTTP)协议。 - 动态工具快捷方式:
@<tool_name> <args>:自动将位置参数映射到任何工具的架构。@git <command> <args>GitHub操作的自然简写。
- 双操作模式:
- 可选工具模式:LLM智能地决定何时使用工具。
- 强制刀具模式:强制执行严格的研究工作流程(搜索→ 提取→ 总结)。
- 全面的MCP发现:自动列出和管理所有连接服务器上的工具、资源和提示。
🏗️ 建筑
该项目遵循 客户端主机服务器 架构:
- 客户端/主机(聊天机器人):
mcp_chatbot.py管理UI和LLM交互。 - 经理:
mcp_client_manager.pycapsules所有会话管理、配置加载和传输处理。 - 服务器:独立进程或远程服务(例如。,
research_server.pyGitHub MCP、Fetch MCP)。 - 沟通:使用JSON-RPC
stdio,sse,或http如配置中所定义。
📂 项目组成部分
mcp_chatbot.py:主界面。mcp_client_manager.py:服务器连接和工具路由的核心逻辑。research_server.py:基于本地stdio的研究服务器。servers.json:所有MCP服务器的中央配置。.github/workflows/lint.yml:用于自动linting和格式化的CI管道。
🛠️ 安装
- 先决条件:Python 3.12+和
uv包管理器。 - 安装依赖项:
uv sync - 环境设置:
创建一个
.env文件:HUGGINGFACE_API_KEY=your_key_here GITHUB_TOKEN=your_optional_github_token
🏃 用法
运行聊天机器人
uv run mcp_chatbot.py
通用命令
- 工具快捷方式:
@fetch https://google.com(地图到fetch工具)。 - Git快捷方式:
@git list_commits owner=divyam1408 repo=mcp_chatbot. - 资源快捷方式:
@folders(阅读papers://folders). - 提示命令:
/prompt generate_search_prompt topic=quantum.
🤖 CI/CD
此项目使用 拉夫 对于自动化代码质量:
- 代码检查:
uvx ruff check . - 格式化:
uvx ruff format . - 每次通过GitHub Actions推送时都会自动运行检查。