mcpField
M
MCP Haystack Demo

MCP Haystack Demo

本地服务
github.com/oryx1729媒体与设计079 周前更新

关于 MCP Haystack Demo

MCP Haystack Demo 将远程 MCP 服务接入 Haystack 工作流,供需要调用外部工具的开发者使用。它通过 SSE 连接并动态发现工具,并提供 Google Maps 示例。

主要功能

  1. 01通过 SSE 连接远程 MCP 服务
  2. 02动态发现并加载工具
  3. 03集成 Haystack 工作流
  4. 04提供 Google Maps 示例

适用场景

  1. 01将远程 MCP 工具加入 Haystack 工作流
  2. 02在示例中尝试 Google Maps MCP 工具

MCP 相关

它通过 SSE 连接远程 MCP 服务,并将其工具加载为 Haystack Toolset。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"haystack-google-maps": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GOOGLE_MAPS_API_KEY",
"supercorp/supergateway"
],
"env": {
"GOOGLE_MAPS_API_KEY": "<GOOGLE_MAPS_API_KEY>"
}
}
}
}
启动命令docker run -i --rm -e GOOGLE_MAPS_API_KEY supercorp/supergateway
需要配置的环境变量
GOOGLE_MAPS_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocisupercorp/supergateway

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Haystack 演示

Haystack 集成,可连接到 MCP 服务,重点展示 Google Maps API 集成。

概览

此项目实现了 MCPServer,这是一个 Haystack Toolset,可连接到远程 MCP 服务并动态加载可用工具。该实现基于 Haystack 最近新增的 Toolset 抽象(https://github.com/deepset-ai/haystack/pull/9161)。

功能

  • 使用 SSE(Server-Sent Events)连接到远程 MCP 服务
  • 动态发现并加载可用工具
  • 与 Haystack 流水线无缝集成

安装

使用 uv 安装依赖项。

快速开始

查看演示 Notebook,了解连接到 Google Maps MCP 服务的完整示例。

运行 Google Maps MCP 服务
docker run -it --rm -p 8000:8000 -e GOOGLE_MAPS_API_KEY=$GOOGLE_MAPS_API_KEY supercorp/supergateway \
    --stdio "npx -y @modelcontextprotocol/server-google-maps" \
    --port 8000
连接到服务
from haystack.tools import MCPServer, SSEServerInfo
from haystack.components.tools import ToolInvoker

# Create server info
server_info = SSEServerInfo(
    base_url="http://localhost:8000",
)

# Create the MCP server toolset
mcp_server = MCPServer(server_info=server_info)

# Use the toolset with a ToolInvoker or ChatGenerator component
invoker = ToolInvoker(tools=mcp_server)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。