项目简介

这是一个基于Model Context Protocol (MCP) 构建的服务器,旨在帮助用户快速在大型在线技术文档网站中找到与特定查询相关的页面。它通过提供一个可被AI客户端(如LLM)调用的工具来实现此功能。

主要功能点

  1. 网站页面发现: 能够抓取指定网站的根URL,发现并获取网站内的页面列表(包含URL和标题)。
  2. 发现结果缓存: 缓存已发现的页面列表,提高对同一网站后续查询的处理速度。
  3. 智能相关性过滤: 利用大型语言模型(LLM,如Google Gemini)根据用户输入的查询,从发现的页面列表中筛选出最相关的页面。
  4. MCP工具服务: 将上述功能作为一个标准的MCP工具暴露给兼容的MCP客户端使用。

这个工具对于在海量技术文档中精准定位所需信息非常有用。

安装步骤

该服务器基于Node.js运行。

  1. 克隆仓库: 使用Git命令将项目代码下载到本地。
  2. 安装依赖: 进入项目目录,使用npm或yarn安装所需的库。
  3. 配置API密钥: 项目需要两个外部服务的API密钥才能正常工作:
    • Google API Key: 用于访问Google Gemini LLM进行相关性过滤。
    • Firecrawl API Key: 用于爬取网站发现页面。 获取密钥后,在项目根目录下创建'.env'文件,并将密钥按照以下格式填入:
    GOOGLE_API_KEY="你的_google_api_key_here"
    FIRECRAWL_API_KEY="你的_firecrawl_api_key_here"
    注意:如果你是将服务器部署给MCP客户端通过npx或Docker使用,这些密钥通常会在客户端的MCP服务器配置中作为环境变量提供,而不是在本地创建'.env'文件。

服务器配置(供MCP客户端使用)

这个MCP服务器主要通过标准输入/输出(stdio)协议与MCP客户端通信。要让MCP客户端(如兼容的VS Code扩展、Claude Desktop等)连接并使用此服务器,你需要在客户端配置中添加一个MCP服务器条目。

配置信息通常包含服务器的名称(例如 'external-doc-reader')以及客户端用来启动服务器进程的命令参数。同时,你还需要通过配置将API密钥作为环境变量传递给服务器进程。

  • 启动命令示例 (使用npx): 'command': 'npx' 'args': '["-y", "@dwcquocxa/external-doc-reader-mcp"]' 'env': 需要包含 'GOOGLE_API_KEY' 和 'FIRECRAWL_API_KEY' 环境变量及其值(通常客户端会提供安全输入的方式获取密钥)。

  • 启动命令示例 (使用Docker - 如果有Docker镜像): 'command': 'docker' 'args': '["run", "-i", "--rm", "-e", "GOOGLE_API_KEY", "-e", "FIRECRAWL_API_KEY", "dwcquocxa/external-doc-reader-mcp"]' 'env': 需要包含 'GOOGLE_API_KEY' 和 'FIRECRAWL_API_KEY' 环境变量及其值。

具体的配置方式请参考你的MCP客户端的文档。

基本使用方法

成功安装并配置MCP服务器后,在兼容的MCP客户端中,你可以通过调用其暴露的工具来使用功能。本服务器提供一个名为'find_relevant_doc_pages'的工具。

通过在客户端输入类似以下格式的命令来调用工具:

'@find_relevant_doc_pages(root_url="https://docs.example.com", query="如何配置身份验证", max_pages_to_discover=30)'

参数说明:

  • 'root_url' (必填,字符串):要搜索的文档网站的根URL。
  • 'query' (必填,字符串):你的搜索问题或关键词。
  • 'max_pages_to_discover' (可选,整数):最多发现的页面数量(范围1-50,默认为20)。

服务器将执行查找和过滤过程,并将最相关的页面URL列表返回给客户端显示。

故障排除

如果在客户端调用工具时遇到问题,请检查:

  • MCP服务器进程是否已成功启动并运行。
  • 'GOOGLE_API_KEY' 和 'FIRECRAWL_API_KEY' 环境变量是否已正确设置并对服务器进程可见。
  • 传递给工具的参数('root_url', 'query', 'max_pages_to_discover')是否符合要求。
  • 目标网站是否允许抓取。
  • 检查MCP服务器或客户端可能的日志输出以获取更详细的错误信息。

信息

分类

网页与API