Token导航 LogoToken导航TokenDH.com
Streamnative MCP Server logo
运维云端stdio官方级别未说明来源级核验

Streamnative MCP Server

MCP Server

StreamNative MCP Server是一个为AI代理提供与StreamNative Cloud、Apache Kafka和Apache Pulsar集成的标准化接口的服务。

工具数

37

提示词数

0

GitHub Stars

24

资源数

0
云服务GoClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

streamnative

提供方

streamnative

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -i --rm -e SNMCP_ORGANIZATION=my-org -e SNMCP_KEY_FILE=/key.json -v /path/to/key-file.json:/key.json -p 9090:...

详细介绍

StreamNative MCP服务器

用于将AI代理与StreamNative Cloud资源和Apache Kafka/Pulsar消息传递系统集成的模型上下文协议(MCP)服务器。

概述

StreamNative MCP Server为LLM(大型语言模型)和AI代理提供了一个标准接口,用于与StreamNative Cloud服务、Apache Kafka和Apache Pulsar进行交互。此实施遵循 模型上下文协议 规范,使AI应用程序能够通过标准化的接口访问消息服务。

服务器当前正在协商MCP协议版本 2025-11-25, 2025-06-18, 2025-03-26,以及 2024-11-05。默认首选项为 2025-11-25,而较旧的客户端仍然通过协议协商得到支持。

特性

  • StreamNative云集成:

- 通过身份验证连接到StreamNative Cloud资源 - 切换到组织中可用的集群 - 描述集群资源的状态

  • Apache Kafka支持:与Apache Kafka资源交互,包括:

- Kafka管理操作(主题、分区、消费者组) - 架构注册表操作 - Kafka连接操作(\*) - Kafka客户端操作(生产者、消费者)

  • Apache Pulsar支持:与Apache Pulsar资源交互,包括:

- Pulsar管理操作(主题、命名空间、租户、模式等) - Pulsar客户端操作(生产者、消费者) - 功能、来源和水槽管理 - 只读MCP资源,用于上下文、目录和有界管理摘要

  • 多种连接选项:

- 通过服务帐户身份验证连接到StreamNative Cloud - 直接连接到外部Apache Kafka集群 - 直接连接到外部Apache Pulsar集群

\*Kafka Connect操作仅在StreamNative Cloud上进行测试和验证。

安装

Homebrew(macOS和Linux)

安装streamnative mcp服务器的最简单方法是使用Homebrew:

# Add the tap repository
brew tap streamnative/streamnative

# Install streamnative-mcp-server
brew install streamnative/streamnative/snmcp

Docker镜像

StreamNative MCP服务器发布Docker镜像到 streamnative/snmcp,它可以通过docker命令运行stdio服务器和sse服务器。

# Pull image from Docker Hub
docker pull streamnative/snmcp 

Helm Chart(Kubernetes)

charts/snmcp/README.md 通过StreamNative图表存储库安装Helm。

Github发布

访问https://github.com/streamnative/streamnative-mcp-server/releases获取StreamNative MCP服务器的最新二进制文件。

源自

# Clone the repository
git clone https://github.com/streamnative/streamnative-mcp-server.git
cd streamnative-mcp-server

go mod tidy
go mod download

# Build the binary
make

用法

先决条件

如果你想访问你的StreamNative Cloud,你需要准备好以下资源:

  1. 访问 StreamNative云.
  2. StreamNative云组织
  3. StreamNative Cloud实例和集群
  4. 具有管理员角色的服务帐户
  5. 下载服务帐户密钥文件

启动MCP服务器

使用stdio服务器

# Start MCP server with StreamNative Cloud authentication
bin/snmcp stdio --organization my-org --key-file /path/to/key-file.json

# Start MCP server with StreamNative Cloud authentication and pre-configured context
# When --pulsar-instance and --pulsar-cluster are provided, context mutation tools are disabled
bin/snmcp stdio --organization my-org --key-file /path/to/key-file.json --pulsar-instance my-instance --pulsar-cluster my-cluster

# Start MCP server with external Kafka
bin/snmcp stdio --use-external-kafka --kafka-bootstrap-servers localhost:9092 --kafka-auth-type SASL_SSL --kafka-auth-mechanism PLAIN --kafka-auth-user user --kafka-auth-pass pass --kafka-use-tls --kafka-schema-registry-url https://sr.local --kafka-schema-registry-auth-user user --kafka-schema-registry-auth-pass pass

# Start MCP server with external Pulsar
bin/snmcp stdio --use-external-pulsar --pulsar-web-service-url http://pulsar.example.com:8080
bin/snmcp stdio --use-external-pulsar --pulsar-web-service-url http://pulsar.example.com:8080 --pulsar-token "xxx"

# Start MCP server with stdio by docker with StreamNative Cloud authentication
docker run -i --rm -e SNMCP_ORGANIZATION=my-org -e SNMCP_KEY_FILE=/key.json -v /path/to/key-file.json:/key.json -p 9090:9090 streamnative/snmcp stdio

使用SSE(服务器发送事件)服务器

# Start MCP server with SSE and StreamNative Cloud authentication
bin/snmcp sse --http-addr :9090 --http-path /mcp --organization my-org --key-file /path/to/key-file.json

# Start MCP server with SSE and pre-configured StreamNative Cloud context
# When --pulsar-instance and --pulsar-cluster are provided, context mutation tools are disabled
bin/snmcp sse --http-addr :9090 --http-path /mcp --organization my-org --key-file /path/to/key-file.json --pulsar-instance my-instance --pulsar-cluster my-cluster

# Start MCP server with SSE and external Kafka
bin/snmcp sse --http-addr :9090 --http-path /mcp --use-external-kafka --kafka-bootstrap-servers localhost:9092

# Start MCP server with SSE and external Pulsar
bin/snmcp sse --http-addr :9090 --http-path /mcp --use-external-pulsar --pulsar-web-service-url http://pulsar.example.com:8080

# Start MCP server with SSE by docker with StreamNative Cloud authentication
docker run -i --rm -e SNMCP_ORGANIZATION=my-org -e SNMCP_KEY_FILE=/key.json -v /path/to/key-file.json:/key.json -p 9090:9090 streamnative/snmcp sse

多会话脉冲星模式(仅限SSE)

当使用外部Pulsar运行SSE服务器时,您可以启用 多会话模式 以支持每个用户的身份验证。在此模式下,每个HTTP请求都必须包含 Authorization: Bearer 标头,服务器将为每个唯一令牌创建单独的Pulsar会话。

# Start SSE server with multi-session Pulsar mode
bin/snmcp sse --http-addr :9090 --http-path /mcp \
  --use-external-pulsar \
  --pulsar-web-service-url http://pulsar.example.com:8080 \
  --multi-session-pulsar \
  --session-cache-size 100 \
  --session-ttl-minutes 30

主要特点:

  • 每个用户会话:每个用户的Pulsar令牌创建一个单独的会话
  • LRU缓存:当缓存已满时,会话将通过LRU驱逐进行缓存
  • 基于TTL的清理:配置TTL后,空闲会话会自动清理
  • 严格认证:没有有效的请求 Authorization 标头接收HTTP 401未经授权

身份验证流程:

  1. 客户端通过以下方式连接到SSE端点 `Authorization: Bearer

` 头球

  1. 服务器通过尝试创建Pulsar会话来验证令牌
  2. 如果有效,会话将被缓存并重新用于后续请求
  3. 如果无效或缺失,服务器将返回HTTP 401 Unauthorized

配置选项:

标志默认值描述
--multi-session-pulsarfalse启用每个用户的Pulsar会话
--session-cache-size100缓存会话的最大数量
--session-ttl-minutes30驱逐前会话空闲超时
注: 多会话模式仅适用于外部Pulsar模式(--use-external-pulsar)并且仅适用于SSE服务器,不适用于stdio。

命令行选项

Usage:
  bin/snmcp [command]

Available Commands:
  stdio       Start stdio server
  sse         Start sse server
  help        Help about any command

Flags:
      --audience string                        The audience identifier for the API server (default "https://api.streamnative.cloud")
      --client-id string                       The client ID to use for authorization grants (default "AJYEdHWi9EFekEaUXkPWA2MqQ3lq1NrI")
      --config-dir string                      If present, the config directory to use
      --enable-command-logging                 When enabled, the server will log all command requests and responses to the log file
      --features strings                       Features to enable, defaults to `all`
  -h, --help                                   help for bin/snmcp
      --issuer string                          The OAuth 2.0 issuer endpoint (default "https://auth.streamnative.cloud/")
      --kafka-auth-mechanism string            The auth mechanism to use for Kafka
      --kafka-auth-pass string                 The auth password to use for Kafka
      --kafka-auth-type string                 The auth type to use for Kafka
      --kafka-auth-user string                 The auth user to use for Kafka
      --kafka-bootstrap-servers string         The bootstrap servers to use for Kafka
      --kafka-ca-file string                   The CA file to use for Kafka
      --kafka-client-cert-file string          The client certificate file to use for Kafka
      --kafka-client-key-file string           The client key file to use for Kafka
      --kafka-schema-registry-auth-pass string The auth password to use for the schema registry
      --kafka-schema-registry-auth-user string The auth user to use for the schema registry
      --kafka-schema-registry-bearer-token string The bearer token to use for the schema registry
      --kafka-schema-registry-url string       The schema registry URL to use for Kafka
      --key-file string                        The key file to use for authentication to StreamNative Cloud
      --log-file string                        Path to log file
      --organization string                    The organization to use for the API server
      --proxy-location string                  The proxy location to use for the API server (default "https://proxy.streamnative.cloud")
      --pulsar-auth-params string              The auth params to use for Pulsar
      --pulsar-auth-plugin string              The auth plugin to use for Pulsar
      --pulsar-token string                    The token to use for Pulsar
      --pulsar-cluster string                  The default cluster to use for the API server
      --pulsar-instance string                 The default instance to use for the API server
      --pulsar-tls-allow-insecure-connection   The TLS allow insecure connection to use for Pulsar
      --pulsar-tls-cert-file string            The TLS cert file to use for Pulsar
      --pulsar-tls-enable-hostname-verification The TLS enable hostname verification to use for Pulsar (default true)
      --pulsar-tls-key-file string             The TLS key file to use for Pulsar
      --pulsar-tls-trust-certs-file-path string The TLS trust certs file path to use for Pulsar
      --pulsar-web-service-url string          The web service URL to use for Pulsar
  -r, --read-only                              Read-only mode
      --server string                          The server to connect to (default "https://api.streamnative.cloud")
      --use-external-kafka                     Use external Kafka
      --use-external-pulsar                    Use external Pulsar
      --http-addr string                       HTTP server address (default ":9090")
      --http-path string                       HTTP server path for SSE endpoint (default "/mcp")
      --multi-session-pulsar                   Enable per-user Pulsar sessions based on Authorization header tokens (only for external Pulsar mode)
      --session-cache-size int                 Maximum number of cached Pulsar sessions when multi-session is enabled (default 100)
      --session-ttl-minutes int                Session TTL in minutes before eviction when multi-session is enabled (default 30)
  -v, --version                                version for bin/snmcp

工具配置

StreamNative MCP服务器支持通过以下方式启用或禁用特定功能组 --features 旗帜。这允许您控制哪些MCP工具可用于您的AI工具。仅启用所需的工具集可以帮助LLM进行工具选择并减少上下文大小。

可用特征

StreamNative MCP服务器允许您使用 --features 旗帜。这有助于您控制AI代理可用的工具,并可以减少LLM的上下文大小。

组合特征集

特性描述
all启用所有功能:StreamNative Cloud、Pulsar和Kafka工具

______________________________________________________________________

Kafka特性

功能描述文档
all-kafka启用所有Kafka管理和客户端工具,不使用Apache Pulsar和StreamNative Cloud工具
kafka-adminKafka管理操作(所有管理工具)
kafka-clientKafka客户端操作(生产/消费)kafka_client_consume.md, kafka_客户端_生产.md
kafka-admin-topics管理Kafka主题kafka_admin_topics.md
kafka-admin-partitions管理Kafka分区卡夫卡_行政区划.md
kafka-admin-groups管理Kafka消费者组kafka_admin_groups.md
kafka-admin-schema-registry与Kafka模式注册表交互kafka_admin_schema_register.md
kafka-admin-connect管理Kafka Connect连接器kafka_admin_connect.md

______________________________________________________________________

Pulsar特性

功能描述文档
all-pulsar启用所有Pulsar管理和客户端工具,不使用Apache Kafka和StreamNative Cloud工具脉冲资源.md
pulsar-adminPulsar管理操作(所有管理工具)脉冲资源.md
pulsar-clientPulsar客户端操作(生产/消费)pulser_client_consume.md, pulser_client_produce.md
pulsar-admin-brokers管理Pulsar经纪人pulser_admin_brokers.md
pulsar-admin-brokers-status检查Pulsar代理或代理状态pulser_admin_status.md
pulsar-admin-broker-stats访问Pulsar经纪人统计数据pulser_admin_broker_stats.md
pulsar-admin-clusters管理Pulsar集群pulser_admin_clusters.md
pulsar-admin-functions-worker管理Pulsar功能人员pulser_admin_functions_worker.md
pulsar-admin-namespaces管理Pulsar命名空间pulser_admin_namespaces.md
pulsar-admin-namespace-policy配置Pulsar命名空间策略pulser_admin_namespace_policy.md
pulsar-admin-ns-isolation-policy管理命名空间隔离策略脉冲管理隔离策略.md
pulsar-admin-packages管理Pulsar软件包
pulsar-admin-resource-quotas配置资源配额pulser_admin_resource_quotas.md
pulsar-admin-schemas管理Pulsar模式pulser_adm_schemas.md
pulsar-admin-subscriptions管理Pulsar订阅pulser_admin_订阅.md
pulsar-admin-tenants管理Pulsar租户pulser_admin_tenants.md
pulsar-admin-topics管理Pulsar主题pulser_adm_topics.md
pulsar-admin-sinks管理Pulsar IO接收器pulser_adm_links.md
pulsar-admin-functions管理Pulsar功能pulser_admin_functions.md
pulsar-admin-sources管理Pulsar源pulser_admin_sources.md
pulsar-admin-topic-policy配置Pulsar主题策略pulser_admin_topic_policy.md

Pulsar管理功能门还为匹配的管理界面注册只读MCP资源。这些资源使用 pulsar://... URI,返回JSON快照,并与可写工具分开;看见 脉冲资源.md 对于支持的URI模板和安全边界。

______________________________________________________________________

StreamNative云功能

功能描述文档
streamnative-cloud管理StreamNative Cloud上下文并检查资源日志streamnative_cloud.md
functions-as-tools将部署的Pulsar函数动态公开为可调用的MCP工具,并具有自动输入/输出模式处理功能。函数_as_tools.md
注: 使用时 --pulsar-instance--pulsar-cluster 标记在一起,上下文变异工具(sncloud_context_use_cluster, sncloud_context_reset)由于上下文是预先配置的,因此会自动禁用。

您可以根据需要使用 --features 旗帜。例如,要仅启用Pulsar客户端功能:

# Enable only Pulsar client features
bin/snmcp stdio --organization my-org --key-file /path/to/key-file.json --features pulsar-client

检查MCP服务器

你可以使用 @模型上下文协议/检查器 用于检查和测试MCP服务器的工具。这对于调试和验证服务器的配置特别有用。

安装

npm install -g @modelcontextprotocol/inspector

用法

# Inspect a stdio server
mcp-inspector stdio --command "bin/snmcp stdio --organization my-org --key-file /path/to/key-file.json"

# Inspect an SSE server
mcp-inspector sse --url "http://localhost:9090/mcp"

检查器提供了一个web界面,您可以在其中:

  • 查看可用工具及其模式
  • 测试工具调用
  • 监控服务器响应
  • 调试连接问题

与MCP客户端集成

此服务器可以与任何兼容MCP的客户端一起使用,例如:

  • 克劳德桌面版
  • 其他支持MCP协议的AI助手
  • 使用MCP客户端库构建的自定义应用程序
⚠️ 提醒:请确保您与LLM提供商有一个有效的付费计划,以充分利用MCP服务器。 没有它,您可能会遇到错误: message will exceed the length limit for this chat.

使用Claude Desktop

使用stdio服务器

{
  "mcpServers": {
    "mcp-streamnative": {
      "command": "${PATH_TO_SNMCP}/bin/snmcp",
      "args": [
        "stdio",
        "--organization",
        "${STREAMNATIVE_CLOUD_ORGANIZATION_ID}",
        "--key-file",
        "${STREAMNATIVE_CLOUD_KEY_FILE}"
      ]
    }
  }
}

请记得更换 ${PATH_TO_SNMCP} 与实际路径 snmcp 二进制和 ${STREAMNATIVE_CLOUD_ORGANIZATION_ID}${STREAMNATIVE_CLOUD_KEY_FILE} 分别使用您的StreamNative Cloud组织ID和密钥文件路径。

如果您有以下选择,您可以使用docker镜像启动stdio服务器 码头工人 安装。

{
  "mcpServers": {
    "mcp-streamnative": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SNMCP_ORGANIZATION",
        "-e",
        "SNMCP_KEY_FILE",
        "-v",
        "${STREAMNATIVE_CLOUD_KEY_FILE}:/key.json",
        "streamnative/snmcp",
        "stdio"
      ],
      "env": {
        "SNMCP_ORGANIZATION": "${STREAMNATIVE_CLOUD_ORGANIZATION_ID}",
        "SNMCP_KEY_FILE": "/key.json"
      }
    }
  }
}

使用SSE服务器

首先,安装mcp代理工具:

pip install mcp-proxy

然后配置Claude Desktop以使用SSE服务器:

{
  "mcpServers": {
    "mcp-streamnative-proxy": {
      "command": "mcp-proxy",
      "args": [
        "http://localhost:9090/mcp/sse"
      ]
    }
  }
}

注意:如果mcp代理不在系统PATH中,则需要提供可执行文件的完整路径。例如:

  • 在macOS上: /Library/Frameworks/Python.framework/Versions/3.11/bin/mcp-proxy
  • 在Linux上: /usr/local/bin/mcp-proxy
  • 在Windows上: C:\Python311\Scripts\mcp-proxy.exe

请记得更换 http://localhost:9090/mcp/sse 使用正确的URL。

关于模型上下文协议(MCP)

模型上下文协议(MCP)是一种开放协议,它规范了应用程序如何向LLM提供上下文。MCP通过提供以下功能,帮助在LLM之上构建代理和复杂的工作流程:

  • LLM可以直接插入的预构建集成列表越来越多
  • 在LLM提供商和供应商之间切换的灵活性
  • 在基础架构中保护数据的最佳实践

有关更多信息,请访问 模型上下文协议.io.

发布

_本节介绍如何发布新版本的 snmcp._

  1. 为新版本生成标记(请参阅下面的版本控制):
git tag -a v0.0.1 -m "v0.0.1"
  1. 将标签推送到git仓库:
git push origin refs/tags/v0.0.1

发布工作流程将:

  • 为支持的平台构建Go二进制文件
  • 将二进制文件存档
  • 将发布发布发布到github存储库(参考)

版本控制

此项目使用 森伯 语义。

  • 稳定: vX.Y.Z
  • 预发布: vX.Y.Z-rc.W
  • 快照: vX.Y.Z-SNAPSHOT-commit

许可证

根据Apache许可证版本2.0许可:http://www.apache.org/licenses/LICENSE-2.0

目录标签

目录标签

云服务GoClaude消息中间件本地部署AI集成Kafka接口Pulsar接口

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

37

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP