本项目是一个基于 FastMCP 框架的后端服务,旨在为您的 AI 助手(例如“小智”)提供一个强大的“全能信息服务”。它通过集成多个第三方 API,将它们封装成 AI 助手可以调用的工具。
本服务目前提供以下核心工具:
- 新闻获取 (
news_search): 使用 ITAPI 获取指定分类的最新新闻。 - 网页搜索 (
web_search): 使用 Brave 网页搜索 API (Brave Search) 进行通用的互联网信息查询。 - 网页内容提取 (
fetch_url_content): 获取并解析指定 URL 的主要文本内容。 - 股票查询 (
get_stock_price): 通过 Alpha Vantage 服务获取指定股票代码的实时价格。 - TODO Coze 问答 (
ask_coze_agent): 连接到指定的“扣子 (Coze)”平台上的 AI 应用(Agent/Bot),进行对话式问答。
首先,将本代码库克隆到您的 NAS 或本地计算机上。然后,安装所需的 Python 依赖库:
pip install -r requirements.txt为了让服务正常工作,您需要配置几个平台的 API 密钥和“小智”的终端节点地址。请设置以下环境变量:
XIAOZHI_MCP_ENDPOINT: 必需,小智 MCP 后台提供的 WebSocket 终端地址 (例如ws://192.168.1.10:8090/mcp/ws)。ITAPI_KEY: 用于 ITAPI 新闻获取。BRAVE_API_KEY: 用于 Brave 网页搜索。ALPHA_VANTAGE_KEY: 用于查询股票价格。COZE_API_KEY: 用于连接您的“扣子”机器人。COZE_AGENT_ID: 您想要使用的“扣子”机器人的唯一 ID。
您可以在启动服务前通过命令 export KEY=VALUE 来设置这些变量,或者使用其他方式(如 .env 文件)进行管理。
-
ITAPI 密钥 (
ITAPI_KEY):- 访问 ITAPI 官网。
- 注册并登录后,在 “密钥管理” 页面申请即可。
-
Brave 网页搜索 API 密钥 (
BRAVE_API_KEY):- 访问 Brave Search API 官网。
- 点击 "Get started" 或 "Sign up",注册一个账户。
- 登录后,在您的账户仪表盘中可以找到或创建一个新的 API 密钥。Brave 提供免费的套餐,足够常规使用。
-
Alpha Vantage API 密钥 (
ALPHA_VANTAGE_KEY):- 访问 Alpha Vantage 官网的 API 密钥申请页面。
- 填写表格,即可免费获取一个 API 密钥。
-
扣子 Coze API 密钥和 Bot ID (
COZE_API_KEY,COZE_AGENT_ID):- 访问 扣子 (Coze) 中国区官网。
- 创建或选择一个您想要使用的 Bot。
- 在 Bot 的“发布”页面,创建一个新的发布渠道,类型选择 “API”。
- 在 API 渠道的配置信息中,您就可以找到所需的
API 密钥和Bot ID。
我们强烈推荐使用 Docker 来在 NAS 上部署此服务,因为它可以极大地简化环境配置和管理。
-
构建 Docker 镜像: 在项目根目录下,使用提供的
Dockerfile文件来构建镜像。docker build -t full-info-service . -
运行 Docker 容器: 使用刚刚构建的镜像来启动一个容器。请务必将您的 API 密钥作为环境变量传递给容器。
docker run -d --name mcp-service \ -e XIAOZHI_MCP_ENDPOINT="你的小智MCP终端地址" \ -e ITAPI_KEY="你的ITAPI密钥" \ -e BRAVE_API_KEY="你的Brave搜索密钥" \ -e ALPHA_VANTAGE_KEY="你的AlphaVantage密钥" \ -e COZE_API_KEY="你的Coze密钥" \ -e COZE_AGENT_ID="你的Coze Bot ID" \ --restart always \ full-info-service
-d: 让容器在后台(分离模式)运行。--name mcp-service: 为容器指定一个方便管理的名称。-e: 用于设置环境变量。--restart always: 确保当 NAS 重启或服务意外中断时,容器能自动重新启动。
如果您不想使用 Docker,也可以直接运行 Python 脚本来启动服务。请注意,这种方式主要用于本地测试,因为它不会像 Docker 容器那样自动处理 WebSocket 连接。
- 通过 SSH 登录到您的 NAS。
- 进入项目所在的目录。
- 设置 API 密钥环境变量(同上)。
- 直接运行
server.py:为了确保在您退出 SSH 后服务能持续运行,建议使用python server.py
screen或tmux等工具来管理进程。# 使用 screen 的示例 screen -S mcp-service # 在新的 screen 会话中,设置变量并运行 python server.py # 按下 Ctrl+A 然后按 D 键,即可分离会话并保持程序在后台运行
本项目采用 Creative Commons BY-NC-SA 4.0 (署名-非商业性使用-相同方式共享 4.0 国际) 许可协议。
简而言之,您可以自由地共享和修改本作品,但必须:
- 署名:以合适的方式标明原作者。
- 非商业性使用:不得将本项目用于商业目的。
- 相同方式共享:如果您修改了本项目,您必须以相同的许可证分发您的贡献。