网页搜索与内容检索工具

Exa MCP Server是一个为LLM提供原子化网页搜索、内容检索、问题解答和深度研究任务的工具集,适用于需要实时网络数据访问的AI应用场景。

  • by Keatum
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 keatum/mcp_exa

使用说明

Exa MCP服务器

此存储库包含MCP(模型上下文协议)服务器集成,用于 这 Exa API此服务器的目标是公开一个集合 属于的 原子工具 LLM可以调用它来搜索网络、检索页面 内容(单页、多页或子页集合),发现 相关页面,回答问题并执行深入的研究任务。这 实现遵循Klavis AI开源中使用的模式 项目,完全用Python编写。

特性

服务器公开了几个工具,每个工具都旨在执行一个功能 并返回易于使用的JSON结果:

  • exa_web_search –执行实时考试搜索。返回搜索列表 包含标题、URL和简短片段的结果。您可以指定 要返回多少结果(num_results,默认值3)以及是否 自动检索每个结果的整页文本(include_text). 当 include_text 是 true,该工具将调用的API内容 每个结果都返回完整的文章文本,而不是一个片段。

  • exa_fetch_content –检索单个网页的完整文本 使用Exa的内容API。在你有一个特定的URL后使用它 喜欢读书。

  • exa_find_similar_links –给定一个URL,在 使用Exa的类似内容的互联网 find类似 终点。工具 接受a url 可选 num_results (默认值3)和 include_text 旗帜。它返回一个包含标题、URL和分数的相关链接列表, 可选地包括每个类似页面的全文。

  • exa_answer_question –问一个自然语言问题,得到一个直接的答案 答案,以及引用。Exa执行搜索并使用LLM 综合一个简洁的答案或详细的总结。你可以通过 include_text 在响应中包含支持源文本。

  • exa_research_start –启动异步研究任务。提供 自然语言 instructions 并可选择 model 或指定 一 output_schema 结构化结果。该工具返回一个任务 可用于轮询完成情况的标识符。

  • exa_research_poll –按其投票方式对之前创建的研究任务进行投票 task_id 以检查其状态并检索结果。完成后 返回的JSON包括结构化数据和引用。

  • exa_fetch_contents –在一次调用中检索多个网页的完整文本。通过以下方式传递URL列表 urls 参数,如果需要,请指定 livecrawl 模式("always", "preferred" 或 "never")以控制Exa是否获取新鲜内容。

  • exa_fetch_subpages –爬出主页以检索链接子页面的内容。提供根 url,要爬网的最大子页面数(subpages),以及可选的列表 subpage_target 关键字(例如。 ["about", "news"])以及a livecrawl 模式。响应包括根页面和所选子页面及其全文。

安装

  1. 克隆或复制此目录 进入 mcp_servers 文件夹的 Clavis AI klavis 存储库。这 目录名是任意的,但是 exa_mcp_server 建议。

  2. 安装Python依赖项。在此文件夹中运行:

    pip install -r requirements.txt
    
  3. 设置环境变量。 复制 .env.example 向 .env 和 将占位符API密钥替换为您自己的Exa API密钥。你也可以 自定义服务器将侦听的端口。

  4. 运行服务器。 使用 server.py 通过命令行进入点:

    python server.py --port 5001 --log-level INFO
    

    默认情况下,如果没有,服务器将在端口5000上启动 --port 选项是 提供。服务器公开了两个传输端点:服务器发送事件 (SSE) at /sse 和 Streamable HTTP 在 /mcp.

  5. 与你的法学硕士课程相结合。 启动MCP服务器时,您可以 配置您的LLM客户端(例如Claude Desktop、Cursor或 klavis Python SDK)指向正在运行的服务器。LLM将发现 通过MCP使用所有可用的Exa工具 list_tools 方法和调用 在适当的时候自动执行。

环境变量

服务器依赖于几个环境变量。您可以定义 这些在a .env 在运行之前,将它们文件或导出到shell中 服务器。

变量 描述
EXA_API_KEY 必修的。 您的Exa API密钥。您可以从Exa生成一个
仪表板。
EXA_MCP_SERVER_PORT 可选。将服务器绑定到的端口。默认为 5000.

安全

此集成使用通过提供的API密钥验证对Exa的请求 这 EXA_API_KEY 环境变量。小心保守这个秘密 并且不要将其提交给版本控制。服务器将引发错误 如果调用工具时密钥丢失。所有工具都是无状态的 并且只将您的请求和API密钥发送到Exa的服务器。

许可证

该项目在MIT许可证下发布。通过贡献或 使用此代码,您同意指定的MIT许可证条款 在父存储库中。