FreshContext MCP 服务器
使用说明(Markdown格式)
-
项目简介
- 该仓库实现了一个基于 MCP 的服务端,核心职责是暴露一组可注册的工具(Tools)、管理资源(Resources)以及定义和渲染 Prompt 模板(Prompts),通过 JSON-RPC 与客户端通信。
- 服务器端包含两种运行形态:本地命令行/Stdio 服务器,以及云端 Cloudflare Workers 部署,均遵循 MCP 的服务契约。
-
主要功能点
- 提供的工具(Examples 一部分):
- extract_github:读取并整理 GitHub 仓库信息,包含 README、星标、语言、话题等,并附带时间戳和信心度。
- extract_hackernews、extract_scholar、extract_yc:分别从 Hacker News、Google Scholar、YC 列表等来源提取带时间戳的数据。
- search_repos:使用 GitHub 搜索 API 获取热门仓库信息。
- package_trends:获取 npm/PyPI 的包信息与更新动态。
- extract_landscape:综合多个来源生成狭义领域的 landscape 报告。
- 安全与访问控制:对 URL、查询、IP、域名进行校验与限流,避免对内部网络的访问。
- 会话与能力声明:服务器通过 MCP 框架注册工具、管理输入输出、输出带有 FreshContext 封装的数据。
- 多传输协议支持:StdIO(本地 CLI 运行)、Web 标准的流式传输(WebSocket/SSE 等在云端实现)等,方便不同环境接入。
- 提供的工具(Examples 一部分):
-
安装步骤(本地开发/测试用)
- 前提条件:Node.js 18+,可选使用 Playwright 进行浏览器驱动。
- 安装依赖并构建:
- 安装依赖并构建代码后会生成可执行的 dist/server.js。
- 构建完成后本地运行:node dist/server.js 即可启动 StdIO MCP 服务器。
- 本地运行示例(简述):
- 安装依赖:npm install
- 构建:npm run build
- 启动:node dist/server.js
- 部署选项(云端 Cloudflare Workers):
- 将 worker/ 目录中的部署内容部署到 Cloudflare,按 README 提供的步骤设置 API_KEY、部署到边缘网络,以获得无 Playwright 依赖的轻量化部署。
-
服务器配置(供 MCP 客户端使用的配置信息描述)
- MCP 客户端在连接服务器时需要提供一个配置,至少包含服务名称、启动命令及参数等信息。以下为基于本仓库信息的准确描述文本(客户端不需要执行本段内容,这段文本用于理解要如何在客户端配置连接):
- server name: freshcontext
- command: node
- args: ["dist/server.js"] 说明:该配置指明了 MCP 客户端应如何启动并连接到本 MCP 服务器。名称与命令参数对应本仓库在本地构建产物的位置与名称,实际路径请根据部署环境调整。
-
基本使用方法
- 使用 MCP 客户端连接后,可以按需调用注册的工具,如 extract_github、extract_scholar、extract_hackernews、extract_yc、search_repos、package_trends、extract_landscape 等。
- 每个工具都定义了输入约束(比如 URL、查询等),调用后返回带时间戳与置信度的结构化文本,供 LLM 使用。
- 如需部署在云端,请参考 Cloudflare Worker 部署脚本与本地 StdIO 两种模式的对照。
-
运行与部署要点
- 本地开发:按上述安装步骤构建并通过 node dist/server.js 运行,客户端通过 MCP 协议与之交互。
- 部署到云端:Cloudflare Workers 版本位于 worker/ 子目录,遵循 Cloudflare 的部署流程。
- 安全性:默认提供基于 API KEY 的 Bearer token 验证(若环境变量中设置了 API_KEY),以及 IP 限流和域名白名单等保护措施,确保服务在可控范围内使用。
-
说明与注意
- 本实现包含完整的服务端注册工具、数据封装(FreshContext)、以及多来源数据抓取逻辑,非单纯示例。
- MCP 客户端配置示例与实际部署路径需要结合你的运行环境进行调整。