使用说明
MCP聊天机器人-带工具调用的免费AI聊天机器人
一个使用React和Node.js构建的免费开源聊天机器人,实现了用于工具调用功能的模型上下文协议(MCP)。这个聊天机器人可以在没有任何付费API密钥的情况下工作,并包括多个免费LLM提供商。
特性
-
🤖 多个免费LLM提供商:
- 模拟LLM(不需要API密钥)
- 拥抱面部推理API(免费等级)
- Ollama(当地模特)
-
🛠️ MCP工具调用:
- 使用DuckDuckGo API进行网络搜索
- 使用OpenWeatherMap的天气信息
- 数学计算
-
🎨 现代React用户界面:
- 实时服务器状态
- 提供商选择
- 工具可用性显示
- 响应式设计
-
🔧 轻松设置:
- 无需付费API密钥即可启动
- 简单配置
- Docker支持(即将推出)
快速开始
先决条件
- Node.js(v16或更高版本)
- npm或纱线
安装
-
克隆并安装依赖项:
git clone <your-repo-url> cd mcp-chatbot npm install -
启动开发服务器:
# Start both React app and MCP server npm run dev # Or start them separately: npm start # React app (port 3000) npm run server # MCP server (port 3001) -
打开浏览器: 引导到
http://localhost:3000
配置
环境变量(可选)
创建一个 .env 根目录中的文件以增强功能:
# Hugging Face API (free tier)
HUGGINGFACE_API_KEY=your_huggingface_token
# OpenWeatherMap API (free tier)
OPENWEATHER_API_KEY=your_openweather_token
获取免费API密钥
-
拥抱脸:
- 首选 拥抱脸
- 创建免费帐户
- 生成新令牌
- 免费套餐每月包含30000个请求
-
OpenWeatherMap:
- 首选 OpenWeatherMap
- 注册一个免费帐户
- 获取API密钥
- 免费套餐包括1000次通话/天
用法
基本聊天
聊天机器人与Mock LLM提供商开箱即用,无需API密钥:
- 从提供者下拉列表中选择“模拟LLM(免费)”
- 开始聊天-机器人将回复有用的信息
使用工具
聊天机器人可以自动检测您何时想要使用工具:
- 网页搜索:“搜索有关AI的最新消息”
- 天气“伦敦的天气怎么样?”
- 计算:“计算15*23+7”
切换提供商
- 模拟法学硕士:立即工作,无需设置
- 拥抱脸:将API密钥添加到
.env文件 - 没有:在本地安装Olama并运行模型
建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ React Frontend│ │ MCP Server │ │ External APIs │
│ (Port 3000) │◄──►│ (Port 3001) │◄──►│ (Free Tiers) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ MCP Tools │
│ - Web Search │
│ - Weather │
│ - Calculator │
└─────────────────┘
MCP工具
可用工具
-
搜索web
- 说明:在网络上搜索当前信息
- 参数:
query(字符串) - 用途:DuckDuckGo即时应答API
-
get_weather
- 说明:获取当前天气信息
- 参数:
location(字符串) - 用途:OpenWeatherMap API
-
计算
- 说明:执行数学计算
- 参数:
expression(字符串) - 用途:安全的JavaScript评估
添加新工具
要添加新的MCP工具:
-
定义工具 在……里面
server/mcp-server.js:const mcpTools = { your_tool: { name: "your_tool", description: "Description of your tool", inputSchema: { type: "object", properties: { param1: { type: "string", description: "Parameter description" } }, required: ["param1"] } } }; -
实施该工具:
const toolImplementations = { your_tool: async (params) => { // Your tool implementation return { success: true, result: "Tool result" }; } };
发展
项目结构
mcp-chatbot/
├── src/
│ ├── components/
│ │ └── ChatBot.jsx # Main chatbot component
│ ├── assets/
│ │ └── Manifest.json # MCP configuration
│ └── App.js # React app entry
├── server/
│ └── mcp-server.js # MCP server implementation
├── package.json # Dependencies and scripts
└── README.md # This file
可用脚本
npm start-启动React开发服务器npm run server-启动MCP服务器npm run dev-同时启动两台服务器npm run build-为生产而建npm test-运行测试
故障排除
常见问题
-
服务器未连接:
- 确保MCP服务器在端口3001上运行
- 检查端口3001是否可用
- 使用以下命令重新启动两台服务器
npm run dev
-
API错误:
- 验证API密钥是否正确
- 检查您是否已超过免费等级限制
- 使用模拟LLM提供程序进行测试
-
工具不工作:
- 检查浏览器控制台是否有错误
- 验证工具是否正确实施
- 直接测试工具端点
调试模式
通过设置环境变量启用调试日志记录:
DEBUG=true npm run dev
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
致谢
- 模型上下文协议 对于MCP规范
- 拥抱脸 用于自由推理API
- OpenWeatherMap 获取天气数据
- DuckDuckGo 用于搜索API
路线图
- []Docker容器化
- []更多法学硕士提供者(Anthropic、Cohere)
- []其他MCP工具(文件操作、数据库查询)
- []WebSocket支持实时聊天
- []用户身份验证和聊天记录
- []移动应用程序(React Native)