MCP ExplorerExplorer

Exa Mcp Plus

@Lillard01on 14 days ago
1 MIT
FreeCommunity
AI Systems
# A Powerful Model Context Protocol (MCP) Server A powerful Model Context Protocol (MCP) server that enables AI assistants like Claude to perform comprehensive web searches using the Exa AI Search API. This setup allows AI models to access real-time web/X information in a secure, controlled, and efficient manner. Inspired by the exa-labs repository (https://github.com/exa-labs/exa-mcp-server)!

Overview

What is Exa Mcp Plus

exa-mcp-plus is a powerful Model Context Protocol (MCP) server that enables AI assistants like Claude to perform comprehensive web searches using the Exa AI Search API. It allows AI models to access real-time web/X information in a secure, controlled, and efficient manner.

Use cases

Use cases for exa-mcp-plus include conducting competitive analysis, retrieving academic papers, extracting content from web pages, searching social media platforms like Twitter/X, and building intelligent applications that require real-time data access.

How to use

To use exa-mcp-plus, you can connect directly to the Exa-hosted MCP server without local installation. Simply configure your application to send requests to the provided MCP endpoint.

Key features

Key features of exa-mcp-plus include real-time web search capabilities, academic research support, enterprise intelligence, content extraction from URLs, social media search functionalities, a knowledge base search, modular tools for enabling/disabling specific searches, enhanced security measures, and detailed logging for request tracking.

Where to use

exa-mcp-plus can be used in various fields including academic research, business intelligence, content creation, and social media analysis, making it suitable for researchers, businesses, and developers.

Content

Exa MCP 服务器 🔍

npm version
smithery badge
License: MIT
Node.js Version
TypeScript
MCP

一个强大的模型上下文协议(MCP)服务器,让 Claude 等 AI 助手能够使用 Exa AI 搜索 API 进行全面的网络搜索。该设置允许 AI 模型以安全、受控和高效的方式访问实时网络/X 信息。

✨ 核心功能

  • 🔍 实时网络搜索: 基于 Exa AI 的先进搜索能力
  • 📚 学术研究: 专门搜索研究论文和学术内容
  • 🏢 企业情报: 全面的商业研究和竞争对手分析
  • 🌐 内容提取: 智能爬取和从 URL 提取内容
  • 🔗 社交媒体搜索: LinkedIn、Twitter/X 平台搜索功能
  • 📖 知识库: Wikipedia 和 GitHub 仓库搜索
  • 🛠️ 模块化工具: 根据需要启用/禁用特定搜索工具
  • 🔒 安全: 安全且受控的网络信息访问
  • 快速: 针对性能和可靠性进行优化
  • 🎯 智能查询: 支持多种搜索类型和参数配置
  • 📊 详细日志: 完整的请求跟踪和调试支持

🆕 最新功能更新 (v2.0.0)

🔧 增强的工具管理

  • 工具名称映射: 支持向后兼容的工具名称(如 twitter_search_exatwitter_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 🔑

  1. 访问 dashboard.exa.ai/api-keys
  2. 注册或登录您的账户
  3. 生成新的 API key
  4. 复制密钥用于配置

2. 配置 Claude Desktop 🖥️

查找配置文件

方法一:通过 Claude Desktop UI

  1. 打开 Claude Desktop
  2. 启用开发者模式(左上角菜单)
  3. 转到设置 → 开发者 → 编辑配置

方法二:直接文件访问

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 🔄

  1. 完全退出 Claude Desktop(不只是最小化)
  2. 重新启动 应用程序
  3. 验证 连接,查看 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

🤝 贡献指南

我们欢迎开源社区的贡献!以下是您可以帮助的方式:

开发设置

  1. Fork 仓库
  2. 克隆 您的 fork:
    git clone https://github.com/your-username/exa-mcp-server.git
    cd exa-mcp-server
    
  3. 安装 依赖:
    npm install
    
  4. 创建 功能分支:
    git checkout -b feature/amazing-feature
    

代码风格和标准

# 格式化代码
npm run format

# 代码检查
npm run lint

# 类型检查
npm run type-check

# 运行测试
npm test

贡献指南

  • 📝 编写清晰的提交消息
  • 🧪 为新功能添加测试
  • 📚 根据需要更新文档
  • 🔍 遵循现有代码风格
  • 确保所有测试通过

Pull Request 流程

  1. 更新 README.md 包含更改详情
  2. 添加 新功能的测试
  3. 确保 测试套件通过
  4. 请求 维护者审查

📊 项目结构

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 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

  • Exa Labs - 提供强大的搜索 API
  • Anthropic - 提供 Claude 和 MCP 协议
  • 开源社区 - 贡献和反馈

📞 支持

🔗 相关项目


由 Exa Labs 团队和开源贡献者用 ❤️ 构建
如果您觉得有帮助,请给这个仓库点个 ⭐!

Tools

No tools

Comments