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 等在云端实现)等,方便不同环境接入。
  • 安装步骤(本地开发/测试用)

    • 前提条件: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 客户端配置示例与实际部署路径需要结合你的运行环境进行调整。

服务器信息