使用说明
项目简介
本项目是一个基于Model Context Protocol (MCP) 实现的服务端应用,旨在通过集成阿里云百炼的接口,为大型语言模型 (LLM) 客户端提供获取实时热点新闻的工具能力。它允许LLM在需要新闻信息时,通过标准化的协议调用此服务获取最新资讯。
主要功能点
- 热点新闻获取: 提供一个名为 'fetch_hot_news' 的工具,能够实时从阿里云百炼获取热门新闻列表。
- 灵活查询: 支持按新闻分类(如科技、娱乐、社会等)、指定数量以及搜索关键词来筛选新闻。
- 多种传输协议: 支持通过 StdIO 或 SSE (Server-Sent Events) 协议与MCP客户端通信。
安装步骤
本项目提供了 Node.js 和 Python 两种实现,推荐使用 Node.js 版本。
- 克隆仓库:
将项目仓库克隆到本地。
git clone https://github.com/iic-llm-solution/mcp-quanmiao-hotnews.git cd mcp-quanmiao-hotnews - 配置环境:
- 确保已安装 Node.js (版本 >= 14.0.0)。
- 注册阿里云账号,开通阿里云百炼服务,并获取业务空间ID。
- 创建阿里云子账号 (RAM用户),获取 AccessKey ID (AK) 和 AccessKey Secret (SK)。
- 为该RAM用户授权访问 POP 接口和全妙 AliCloudAiMiaoBiFullAccess 权限。
- 将RAM用户导入到百炼用户管理。
- 根据 '.env.example' 文件创建 '.env' 文件,填入你的阿里云 AK/SK 和百炼业务空间ID。
ALIBABA_CLOUD_ACCESS_KEY_ID=<你的阿里云AccessKeyID> ALIBABA_CLOUD_ACCESS_KEY_SECRET=<你的阿里云AccessKeySecret> WORKSPACE_ID=<你的百炼业务空间ID> # 可选:传输方式 stdio 或 sse,默认 stdio # QUANMIAO_MCP_TRANSPORT=sse # 如果选择 sse 模式,需要指定端口,默认 8080 # QUANMIAO_MCP_PORT=8080 - 运行服务: 项目使用 'npx' 命令直接运行 Node.js 模块,无需单独安装依赖。
服务器配置 (供MCP客户端使用)
MCP客户端需要配置此服务器才能与之通信。根据你选择的传输模式,配置方式有所不同:
-
StdIO 模式 (推荐): 客户端配置文件中需要添加一个 MCP 服务器配置条目,指定服务器的启动命令和参数,以及必要的环境变量。例如:
{ "mcpServers": { "fetch_hot_news_server": { // 给这个服务器实例取一个标识名称 "isActive": true, // 是否启用 "name": "fetch_hot_news", // 服务器在协议中声明的名称 "description": "获取热点新闻列表 MCP 服务", // 服务器描述 "command": "npx", // 启动命令 "args": [ "-y", // npx 参数 "@iic-llm-solution/mcp-quanmiao-hotnews-node" // 要运行的包名 ], "env": { // 运行命令所需的环境变量 "ALIBABA_CLOUD_ACCESS_KEY_ID": "<你的阿里云AccessKeyID>", "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "<你的阿里云AccessKeySecret>", "WORKSPACE_ID": "<你的百炼业务空间ID>", "QUANMIAO_MCP_TRANSPORT": "stdio" // 明确指定 StdIO 模式 } } } // ... 其他客户端配置 }客户端启动时会执行指定的 'command' 和 'args' 来启动 MCP 服务器进程,并通过标准输入输出 (StdIO) 与其通信。
-
SSE 模式: SSE 模式下,MCP 服务器作为一个独立的 HTTP 服务运行,客户端通过 HTTP 连接。需要先在命令行启动服务器,并设置 SSE 模式及监听端口:
export QUANMIAO_MCP_TRANSPORT=sse export QUANMIAO_MCP_PORT=8080 # 或其他端口 npx -y @iic-llm-solution/mcp-quanmiao-hotnews-node服务器启动后,客户端配置中指定服务器的类型和基础URL:
{ "mcpServers": { "fetch_hot_news_server_sse": { // 给这个服务器实例取一个标识名称 "isActive": true, // 是否启用 "name": "fetch_hot_news", // 服务器在协议中声明的名称 "type": "sse", // 传输协议类型 "description": "获取热点新闻列表 MCP 服务 (SSE)", // 服务器描述 "baseUrl": "http://127.0.0.1:8080" // 服务器监听的地址和端口 } } // ... 其他客户端配置 }注意:SSE 模式下,阿里云 AK/SK 和 Workspace ID 等环境变量需要在运行 'npx' 命令的环境中设置,而不是在客户端配置的 'env' 字段中。
基本使用方法
在支持 MCP 协议的 LLM 客户端(如 cherry studio)中配置并启用此 MCP 服务器后,当 LLM 需要获取新闻信息时,可以调用服务器提供的 'fetch_hot_news' 工具。在与 LLM 对话时,可以通过提问触发工具调用,例如:
- "请帮我获取最新的科技新闻。"
- "最近有什么娱乐热点?数量限制在5条。"
- "搜索一下关于人工智能的新闻。"
LLM 客户端会根据对话内容构造工具调用的请求(包含分类、数量、关键词等参数),通过 MCP 协议发送给本服务器,本服务器调用阿里云接口获取数据,并将格式化后的新闻信息通过 MCP 协议返回给客户端,最终由 LLM 整合并呈现给用户。
信息
分类
AI与计算