Lillard01/exa-mcp-plus
If you are the rightful owner of exa-mcp-plus and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Exa MCP Server is a powerful Model Context Protocol server designed to enable AI assistants like Claude to perform comprehensive web searches using the Exa AI Search API.
web_search_exa
Real-time web search for general information
research_paper_search_exa
Search for academic papers and citations
company_research_exa
Enterprise intelligence and company analysis
crawling_exa
URL content extraction and structured data retrieval
twitter_search_exa
Enhanced Twitter/X search for social media insights
Exa MCP 服务器 🔍
一个强大的模型上下文协议(MCP)服务器,让 Claude 等 AI 助手能够使用 Exa AI 搜索 API 进行全面的网络搜索。该设置允许 AI 模型以安全、受控和高效的方式访问实时网络/X 信息。
✨ 核心功能
- 🔍 实时网络搜索: 基于 Exa AI 的先进搜索能力
- 📚 学术研究: 专门搜索研究论文和学术内容
- 🏢 企业情报: 全面的商业研究和竞争对手分析
- 🌐 内容提取: 智能爬取和从 URL 提取内容
- 🔗 社交媒体搜索: LinkedIn、Twitter/X 平台搜索功能
- 📖 知识库: Wikipedia 和 GitHub 仓库搜索
- 🛠️ 模块化工具: 根据需要启用/禁用特定搜索工具
- 🔒 安全: 安全且受控的网络信息访问
- ⚡ 快速: 针对性能和可靠性进行优化
- 🎯 智能查询: 支持多种搜索类型和参数配置
- 📊 详细日志: 完整的请求跟踪和调试支持
🆕 最新功能更新 (v2.0.0)
🔧 增强的工具管理
- 工具名称映射: 支持向后兼容的工具名称(如
twitter_search_exa
和twitter_search
) - 动态工具注册: 基于配置动态启用/禁用工具
- 调试模式: 详细的日志记录和错误跟踪
- 请求ID追踪: 每个请求都有唯一标识符便于调试
🐦 Twitter/X 搜索优化
- 域名策略更新: 优先使用 x.com,向后兼容 twitter.com
- 智能查询构建: 改进的用户、话题标签和推文搜索逻辑
- 搜索类型支持: 支持推文、用户、话题标签和综合搜索
- 时间范围过滤: 支持日、周、月、年和全部时间范围
- 结果数量限制: 智能限制最大结果数(最多50个)
🔐 安全性增强
- API密钥验证: 启动时验证 EXA_API_KEY 的存在和有效性
- 错误处理改进: 用户友好的错误消息和详细的错误分类
- 超时控制: 25秒请求超时防止长时间等待
🏗️ 架构改进
- 现代MCP SDK: 升级到最新的 @modelcontextprotocol/sdk v1.12.1
- Smithery CLI 支持: 完整的 Smithery 构建和部署支持
- TypeScript 优化: 完整的类型安全和更好的开发体验
- 模块化设计: 每个工具独立模块,便于维护和扩展
🚀 快速开始
方式一:远程 Exa MCP(推荐)🌐
直接连接到 Exa 托管的 MCP 服务器,无需本地安装:
{
"mcpServers": {
"exa": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.exa.ai/mcp?exaApiKey=your-exa-api-key"
]
}
}
}
方式二:NPM 安装 📦
# 全局安装
npm install -g exa-mcp-server
# 或使用 npx(无需安装)
npx exa-mcp-server --list-tools
方式三:Smithery(自动化设置)🔧
npx -y @smithery/cli install exa --client claude
📋 前置要求
- Node.js: 18.0.0 或更高版本
- npm: 推荐最新版本
- Exa API Key: 从 dashboard.exa.ai/api-keys 获取
- Claude Desktop: 用于 MCP 集成
⚙️ 配置指南
1. 获取 Exa API Key 🔑
- 访问 dashboard.exa.ai/api-keys
- 注册或登录您的账户
- 生成新的 API key
- 复制密钥用于配置
2. 配置 Claude Desktop 🖥️
查找配置文件
方法一:通过 Claude Desktop UI
- 打开 Claude Desktop
- 启用开发者模式(左上角菜单)
- 转到设置 → 开发者 → 编辑配置
方法二:直接文件访问
macOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:
code %APPDATA%\Claude\claude_desktop_config.json
Linux:
code ~/.config/Claude/claude_desktop_config.json
基础配置
{
"mcpServers": {
"exa": {
"command": "npx",
"args": ["-y", "exa-mcp-server"],
"env": {
"EXA_API_KEY": "your-api-key-here"
}
}
}
}
3. 可用工具和配置 🛠️
Exa MCP 服务器包含以下强大工具:
工具名称 | 描述 | 使用场景 | 新功能 |
---|---|---|---|
web_search_exa | 实时网络搜索 | 通用网络信息 | 智能内容提取 |
research_paper_search_exa | 学术论文搜索 | 研究和引用 | 学术源优化 |
company_research_exa | 企业情报 | 公司分析 | 财务信息集成 |
crawling_exa | URL 内容提取 | 文章阅读 | 结构化数据提取 |
competitor_finder_exa | 竞争对手分析 | 市场研究 | 行业洞察 |
linkedin_search_exa | LinkedIn 搜索 | 专业网络 | 职业信息 |
wikipedia_search_exa | Wikipedia 搜索 | 事实信息 | 多语言支持 |
github_search_exa | GitHub 仓库搜索 | 代码和项目 | 代码片段提取 |
twitter_search_exa | Twitter/X 搜索 | 社交媒体洞察 | 🆕 增强搜索类型 |
工具选择配置
{
"mcpServers": {
"exa": {
"command": "npx",
"args": [
"-y",
"exa-mcp-server",
"--tools=web_search_exa,research_paper_search_exa,twitter_search_exa",
"--debug"
],
"env": {
"EXA_API_KEY": "your-api-key-here"
}
}
}
}
调试模式配置
{
"mcpServers": {
"exa": {
"command": "npx",
"args": [
"-y",
"exa-mcp-server",
"--debug"
],
"env": {
"EXA_API_KEY": "your-api-key-here"
}
}
}
}
4. 重启 Claude Desktop 🔄
- 完全退出 Claude Desktop(不只是最小化)
- 重新启动 应用程序
- 验证 连接,查看 MCP 服务器图标
🏠 本地开发
开发前置要求
# 检查 Node.js 版本
node --version # 应该是 18+
# 检查 npm 版本
npm --version
克隆和设置
# 克隆仓库
git clone https://github.com/exa-labs/exa-mcp-server.git
cd exa-mcp-server
# 安装依赖
npm install
# 构建项目
npm run build
# 开发模式运行
npm run dev
本地配置示例
{
"mcpServers": {
"exa": {
"command": "node",
"args": [
"/path/to/exa-mcp-server/.smithery/index.cjs",
"--tools=web_search_exa,twitter_search_exa",
"--debug"
],
"env": {
"EXA_API_KEY": "your-api-key-here"
}
}
}
}
环境变量
# 设置 API key(临时)
export EXA_API_KEY="your-api-key-here"
# 或创建 .env 文件
echo "EXA_API_KEY=your-api-key-here" > .env
🔧 使用示例
命令行使用
# 列出所有可用工具
npx exa-mcp-server --list-tools
# 使用特定工具运行
npx exa-mcp-server --tools=web_search_exa,twitter_search_exa
# 启用调试模式
npx exa-mcp-server --debug
# 使用所有工具运行(默认)
npx exa-mcp-server
编程使用
import { ExaMCPServer } from 'exa-mcp-server';
const server = new ExaMCPServer({
apiKey: process.env.EXA_API_KEY,
tools: ['web_search_exa', 'twitter_search_exa'],
debug: true
});
await server.start();
Twitter/X 搜索高级用法
# 搜索特定类型的推文
npx exa-mcp-server --tools=twitter_search_exa
# 在 Claude 中使用:
# "搜索关于人工智能的最新推文,限制在过去一周内"
# "查找 @elonmusk 的最新推文"
# "搜索 #AI 话题标签的热门内容"
🐛 故障排除
常见问题和解决方案
1. 服务器未找到
# 验证 npm 安装
npm list -g exa-mcp-server
# 如需要重新安装
npm install -g exa-mcp-server
2. API Key 问题
# 测试 API key
curl -H "Authorization: Bearer your-api-key" https://api.exa.ai/search
# 检查环境变量
echo $EXA_API_KEY
3. 连接问题
- 确保 Claude Desktop 完全重启
- 检查配置文件中的 JSON 语法
- 验证文件权限
4. 构建问题
# 清理并重新构建
npm run clean
npm install
npm run build
5. Twitter 搜索问题
# 测试 Twitter 工具
node ./.smithery/index.cjs --tools=twitter_search_exa --debug
# 检查日志
tail -f server_stdout.log
调试模式
# 启用调试日志
DEBUG=exa-mcp-server npx exa-mcp-server
# 检查服务器日志
tail -f server_stdout.log
# 使用本地构建进行调试
node ./.smithery/index.cjs --debug
工具验证
# 验证工具注册
node ./.smithery/index.cjs --list-tools
# 测试特定工具
node ./.smithery/index.cjs --tools=twitter_search_exa --debug
🤝 贡献指南
我们欢迎开源社区的贡献!以下是您可以帮助的方式:
开发设置
- Fork 仓库
- 克隆 您的 fork:
git clone https://github.com/your-username/exa-mcp-server.git cd exa-mcp-server
- 安装 依赖:
npm install
- 创建 功能分支:
git checkout -b feature/amazing-feature
代码风格和标准
# 格式化代码
npm run format
# 代码检查
npm run lint
# 类型检查
npm run type-check
# 运行测试
npm test
贡献指南
- 📝 编写清晰的提交消息
- 🧪 为新功能添加测试
- 📚 根据需要更新文档
- 🔍 遵循现有代码风格
- ✅ 确保所有测试通过
Pull Request 流程
- 更新 README.md 包含更改详情
- 添加 新功能的测试
- 确保 测试套件通过
- 请求 维护者审查
📊 项目结构
exa-mcp-server/
├── src/ # 源代码
│ ├── index.ts # 主入口点
│ ├── tools/ # 工具实现
│ │ ├── webSearch.ts # 网络搜索工具
│ │ ├── twitterSearch.ts # Twitter/X 搜索工具(增强版)
│ │ ├── companyResearch.ts # 企业研究工具
│ │ └── ... # 其他工具
│ ├── types.ts # 类型定义
│ └── utils/ # 工具函数
│ └── logger.js # 日志系统
├── test/ # 测试文件
│ ├── TWITTER_TOOL_IMPROVEMENTS.md # Twitter 工具改进文档
│ ├── test_summary_report.md # 测试总结报告
│ └── ... # 测试脚本
├── .smithery/ # 构建输出
├── package.json # Node.js 依赖
├── tsconfig.json # TypeScript 配置
├── requirements.txt # Python 依赖(可选)
└── README.md # 本文件
📄 许可证
本项目基于 MIT 许可证 - 查看 文件了解详情。
🙏 致谢
- Exa Labs - 提供强大的搜索 API
- Anthropic - 提供 Claude 和 MCP 协议
- 开源社区 - 贡献和反馈
📞 支持
- 📖 文档: Model Context Protocol
- 🐛 问题: GitHub Issues
- 💬 讨论: GitHub Discussions
- 🌐 Exa API: dashboard.exa.ai
🔗 相关项目
如果您觉得有帮助,请给这个仓库点个 ⭐!