使用说明
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类似 终点。工具 接受aurl可选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"])以及alivecrawl模式。响应包括根页面和所选子页面及其全文。
安装
-
克隆或复制此目录 进入
mcp_servers文件夹的 Clavis AIklavis存储库。这 目录名是任意的,但是exa_mcp_server建议。 -
安装Python依赖项。在此文件夹中运行:
pip install -r requirements.txt -
设置环境变量。 复制
.env.example向.env和 将占位符API密钥替换为您自己的Exa API密钥。你也可以 自定义服务器将侦听的端口。 -
运行服务器。 使用
server.py通过命令行进入点:python server.py --port 5001 --log-level INFO默认情况下,如果没有,服务器将在端口5000上启动
--port选项是 提供。服务器公开了两个传输端点:服务器发送事件 (SSE) at/sse和 Streamable HTTP 在/mcp. -
与你的法学硕士课程相结合。 启动MCP服务器时,您可以 配置您的LLM客户端(例如Claude Desktop、Cursor或
klavisPython 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许可证条款 在父存储库中。