MCP服务器集成

一个包含多种功能MCP服务器的集合,用于在MCP框架内执行特定任务,如搜索、地图服务、天气查询和Slack通知等。

  • by ShrutiChoubey309
  • 本地部署
  • 更新于
在 GitHub 查看 shrutichoubey309/mcp_servers

使用说明

MCP服务器集成

这个存储库包含我尝试过的所有MCP(模型上下文协议)服务器的完整列表。每个服务器都被设计为执行特定的功能,并在MCP框架内进行兼容性测试。


索引

  1. Brave Search MCP服务器
  2. Tavily搜索MCP服务器
  3. 获取MCP服务器
  4. 谷歌地图MCP服务器
  5. 顺序思维MCP服务器
  6. 天气MCP
  7. Slack MCP服务器

经过测试的MCP服务器

1.Brave Search MCP服务器

  • 目的:使用Brave的搜索引擎执行实时搜索查询。
  • 状态:工作
  • 用例:通用网络搜索,特别是以隐私为重点的搜索结果。
  • 备注:
    • 快速响应。
    • 有时会受到请求配额的限制。
    • 您需要提供API密钥。

从以下位置获取勇敢搜索API密钥:

Brave搜索服务器配置

以下是Brave Search MCP服务器在 mcpServers JSON块:

"mcpServers": {
  "brave-search": {
    "command": "npx",
    "args": [
      "-y",
      "@modelcontextprotocol/server-brave-search"
    ],
    "env": {
      "BRAVE_API_KEY": "API KEY"
    }
  }
}

2.Tavily搜索MCP服务器

  • 目的:使用Tavilly API进行结构化和简洁的网络搜索。
  • 状态:工作
  • 用例:有助于检索增强生成(RAG)管道。
  • 备注:
    • 比Brave更有条理。
    • 适合直接总结答案。
    • 您需要提供API密钥。

从以下位置获取Tavilly Search API密钥:

Tavily服务器配置

"mcpServers": {
  "tavily-mcp": {
    "command": "npx",
    "args": ["-y", "tavily-mcp@0.1.2"],
    "env": {
      "TAVILY_API_KEY": "API KEY"
    }
  }
}

3.获取MCP服务器

  • 目的:从外部URL或API获取基于HTTP GET/POST的通用数据。
  • 状态:工作
  • 用例:可用于抓取或调用任意REST API。
  • 备注:
    • 灵活,但需要请求配置。
    • 需要验证速率限制和标头。

获取服务器配置

"mcpServers": {
  "fetch": {
    "command": "python",
    "args": ["-m", "mcp_server_fetch"]
  }
}

备注:必须先安装Fetch MCP服务器,然后才能运行它。

安装

使用pip安装服务器:

pip install mcp-server-fetch

4.谷歌地图MCP服务器

  • 目的:从谷歌地图API获取地理位置、方向或位置数据。
  • 状态:工作(需要API密钥)
  • 用例:基于位置的查询、方向、附近地点。
  • 备注:
    • 需要Google Cloud帐单和API密钥。
    • 配额可能适用。
    • 您需要提供API密钥。

从以下位置获取您的Google Maps API密钥:

  • 转到 https://console.cloud.google.com/,创建一个项目,并启用所需的Maps API(如Maps JavaScript API、Geocoding API等)。
  • 转到API和服务→ 凭据,单击“创建凭据”→ “API密钥”,并复制生成的密钥。
  • (可选)设置计费并限制密钥以确保安全(推荐)。

谷歌地图服务器配置

"mcpServers": {
  "google-maps": {
    "command": "npx",
    "args": [
      "-y",
      "@modelcontextprotocol/server-google-maps"
    ],
    "env": {
      "GOOGLE_MAPS_API_KEY": "API KEY"
    }
  }
}

5.顺序思维MCP服务器

  • 目的:通过子代理执行实现思维链或多步推理。
  • 状态:工作
  • 用例:需要中间推理或工具调用的任务。
  • 备注:
    • 与嵌套计划配合使用效果良好。
    • 支持递归工具调用。

顺序思维服务器配置

"mcpServers": {
  "sequential-thinking": {
    "command": "npx",
    "args": [
      "-y",
      "@modelcontextprotocol/server-sequential-thinking"
    ]
  }
}

6.天气MCP

这是一个简单的MCP服务器,它使用 weather.gov API获取美国各地的当前天气状况和预报。

  • 目的:使用外部天气API获取当前天气和预报。
  • 状态:工作
  • 用例:每日天气更新、旅行计划等。
  • 备注:
    • 需要城市名称或纬度/经度。
    • 扩展数据可能需要API密钥。

天气服务器配置

"mcpServers": {
  "weather": {
    "command": "uv",
    "args": [
      "run",
      "--with",
      "mcp[cli]",
      "mcp",
      "run",
      "path/to/weather_server.py"
    ]
  }
}

7.Slack MCP服务器

  • 目的:使用Slack Web API向Slack频道或用户发送消息、警报或更新。
  • 状态:工作
  • 用例:非常适合通过RAG管道或外部触发器进行通知、基于机器人的响应和工作流自动化。.
  • 备注:
    • 可用于从其他MCP工具或代理发送状态更新。
    • 支持将频道名称或用户ID作为消息目标。.

设置

  1. 创建Slack应用程序:

    • 访问 Slack应用程序页面
    • 点击“创建新应用”
    • 选择“从头开始”
    • 命名您的应用程序并选择您的工作区
  2. 配置Bot令牌范围: 导航到“OAuth和权限”并添加以下范围:

    • channels:history -查看公共频道中的消息和其他内容
    • channels:read -查看基本频道信息
    • chat:write -以应用程序的身份发送消息
    • reactions:write -在消息中添加表情符号反应
    • users:read -查看用户及其基本信息
    • users.profile:read -查看用户的详细资料
  3. 将应用程序安装到工作区:

    • 点击“安装到工作区”并授权应用程序
    • 保存以开头的“Bot用户OAuth令牌” xoxb-
  4. 获取您的团队ID(以 T)通过以下方式 本指南

Slack服务器配置

"mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567",
        "SLACK_CHANNEL_IDS": "C01234567, C76543210"
      }
    }
  }

MCP服务器设置和集成说明

  • 我开发了一个 MCP工具 它充当客户端层来调用这些服务器并检索结构化响应。
  • 所有服务器都已使用以下命令之一进行了测试: uv, npx,或 python,具体取决于服务器的实现。
  • 根据预期的架构验证每个服务器的输出。

未来整合

我们计划集成额外的MCP服务器,如电子邮件、日历、PDF/文档解析MCP等。


测试策略

我创建了一个内部 MCP工具 它自动化了MCP服务器的测试和执行。它接受:

  • A. 服务器配置JSON 文件
  • A. 用户定义的任务 作为输入

此工具使用 mcp_use 自定义模块 MCPClient 和 MCPAgent 与MCP服务器通信。

示例用法

from mcp_use import MCPAgent, MCPClient

# Load MCP server configuration
client = MCPClient.from_config_file(config_file) # e.g., config_file = "brave_search_server.json"

# Initialize the MCP Agent with any supported LLM
agent = MCPAgent(
    llm=llm,  # e.g., llm = AzureChatOpenAI()
    client=client,
    max_steps=15,
    memory_enabled=True  # Enables built-in conversational memory
)

# Run the agent with a user input
response = await agent.run(user_input)

贡献

欢迎通过pull请求提供额外的MCP包装或建议!


许可证

MIT许可证