关于 Dapr MCP Server
dapr-mcp-server 是 Go 编写的 MCP 服务,将 Dapr 构建模块作为工具提供给 AI Agent。它适用于使用 Dapr sidecar 的部署,并按可用组件动态注册工具,支持 stdio 和可流式 HTTP 传输。
主要功能
- 01提供 Dapr 状态与发布订阅工具
- 02服务调用与 Actor 方法调用
- 03密钥、绑定、锁与加密
- 04根据运行中的组件动态注册
- 05OpenTelemetry 跟踪与指标
适用场景
- 01让 AI Agent 读取和写入 Dapr 状态
- 02通过已配置的发布订阅组件发布事件
- 03调用服务或虚拟 Actor
- 04向本地或远程 MCP 客户端开放 Dapr 能力
MCP 相关
它通过 sidecar 将 Dapr 构建模块暴露为 MCP 工具,支持 stdio 和可流式 HTTP 传输,并可选用 OIDC、SPIFFE 或 Dapr Sentry 控制请求。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e DAPR_GRPC_PORT -e DAPR_API_TOKEN -e DAPR_MCP_SERVER_LOG_LEVEL ghcr.io/dapr/dapr-mcp-server:v0.0.3DAPR_GRPC_PORTgRPC port of the Dapr sidecarDAPR_API_TOKEN密钥Dapr API token, if the sidecar requires oneDAPR_MCP_SERVER_LOG_LEVELLog level, written as JSON to stderr本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/dapr/dapr-mcp-server:v0.0.3stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
dapr-mcp-server
一个模型上下文协议(MCP)服务,将 Dapr 的构建块作为工具提供给 AI Agent。
简介
dapr-mcp-server 是一个 Go MCP 服务,连接 Dapr sidecar,并为 AI Agent 提供一组精选工具,覆盖 Dapr 的各个构建块:状态、发布/订阅、密钥、服务调用、Actor、绑定、分布式锁、加密和对话组件。工具会根据实时组件集动态注册——如果部署中没有发布/订阅代理,就不会提供发布/订阅工具。
支持两种传输方式:用于本地 IDE 集成(Claude Desktop、Cursor、VS Code、Claude Code)的 stdio,以及用于远程或共享部署的 可流式 HTTP。每次工具调用都会附带 OpenTelemetry 跟踪跨度、指标和可选的日志导出;请求可通过 OIDC、SPIFFE、Dapr Sentry 或三者的混合方式进行限制。
完整文档请参阅 docs.dapr.io / developing-ai / mcp。
快速开始
在 Dapr sidecar 旁运行二进制文件,并使用 dapr run 启动(从 安装 页面安装):
dapr init
# stdio, for local MCP clients that launch the server themselves
dapr run --app-id dapr-mcp-server --resources-path resources -- dapr-mcp-server
# streamable HTTP, for remote clients
dapr run --app-id dapr-mcp-server --resources-path resources -- dapr-mcp-server --http :8080
使用 --http 时,任何 MCP 客户端都可以连接到 http://localhost:8080/。容器映像面向 Kubernetes,Dapr sidecar 注入器会通过 dapr.io/enabled: "true" 和 dapr.io/app-id Pod 注解添加 sidecar。完整操作指南(组件、身份验证、OTEL、验证)请参阅入门指南。
安装
| 方法 | 命令 |
|---|---|
| 容器 | docker pull ghcr.io/dapr/dapr-mcp-server:latest |
| 二进制文件 | 从 Releases 下载并放入 PATH |
| 从源代码安装(Go 1.26.6+) | go install github.com/dapr/dapr-mcp-server/cmd/dapr-mcp-server@latest |
该服务已列入官方 MCP Registry,条目为 io.github.dapr/dapr-mcp-server,因此能够浏览注册表的 MCP 客户端可以将其作为容器安装。
配置
配置指南提供了完整的环境变量参考。
| 标志 | 默认值 | 用途 |
|---|---|---|
--http <addr> | 未设置(stdio) | 在此地址提供可流式 HTTP 服务,而非使用 stdin/stdout。健康探针通过 /livez、/readyz 和 /startupz 提供。 |
--health-check | false | 探测运行中服务的 /livez,若收到 200 则以 0 退出,否则以 1 退出。供容器的 HEALTHCHECK 使用。 |
--health-check-addr <host:port> | 来自 --http,否则为 localhost:8080 | --health-check 探测的地址。对于 0.0.0.0 之类的通配主机,将使用 localhost 进行探测。 |
--version | false | 输出版本并退出。 |
日志以 JSON 格式写入 stderr,因此不会与 stdout 上的 stdio 传输内容混在一起。当无法访问 Dapr sidecar 时,/readyz 会返回 503。
HTTP 传输专用设置:
| 环境变量 | 默认值 | 用途 |
|---|---|---|
DAPR_MCP_CORS_ORIGIN | 未设置(不发送 CORS 标头) | 允许浏览器调用服务的来源,例如 https://app.example.com。仅当其他来源上的基于浏览器的 MCP 客户端需要访问时才设置。 |
文档
| 页面 | 用途 |
|---|---|
| 概览 | 了解服务是什么、架构、功能及适用场景 |
| 快速入门 | 安装、配置组件、运行和验证 |
| 工具参考 | 每个工具的架构、输入、输出和安全标志 |
| 配置 | 环境变量、标志和传输设置 |
| 身份验证 | OIDC、SPIFFE、Dapr Sentry、混合模式 |
| 可观测性 | 跟踪、指标和日志 |
为此代码库做贡献的 AI 编码 Agent:请参阅 AGENTS.md。人类贡献者:请参阅 CONTRIBUTING.md。
工具一览
所有工具及其在工具参考中的条目链接。核心工具始终注册;条件工具仅在存在匹配的 Dapr 组件时注册。服务会跟踪 Dapr 热重载的组件:每当客户端列出工具或调用 get_components 时,它都会检查 sidecar,在某个构建模块的首个组件出现时添加其工具,在最后一个组件移除时删除其工具,并通知已连接的客户端工具列表已更改。
| 类别 | 工具 | 注册条件 | 备注 |
|---|---|---|---|
| 元数据 | get_components | 核心 | 始终首先调用 |
| 调用 | invoke_service | 核心 | 服务间 HTTP 调用 |
| Actor | invoke_actor_method | 核心 | 虚拟 Actor 方法调用 |
| 状态 | save_state | state.* | 幂等保存 |
| 状态 | get_state | state.* | 只读 |
| 状态 | delete_state | state.* | 破坏性操作,幂等 |
| 状态 | execute_transaction | state.* | 原子批处理 |
| 发布订阅 | publish_event | pubsub.* | 非幂等 |
| 发布订阅 | publish_event_with_metadata | pubsub.* | 添加标头/TTL |
| 绑定 | invoke_output_binding | bindings.* | 与外部系统进行 I/O |
| 密钥 | get_secret | secretstores.* | 单个密钥 |
| 密钥 | get_bulk_secrets | secretstores.* | 高风险;批量获取 |
| 对话 | converse_with_llm | conversation.* | 委托给下游大模型 |
| 加密 | encrypt_data | crypto.* | RSA 加密 |
| 加密 | decrypt_data | crypto.* | RSA 解密 |
| 锁 | acquire_lock | lock.* | 分布式互斥锁 |
| 锁 | release_lock | lock.* | 与 acquire_lock 配对使用 |
开发
go build -o dapr-mcp-server ./cmd/dapr-mcp-server
go test -race ./...
golangci-lint run ./...
完整的贡献者 / AI Agent 指南(构建命令、添加工具的模式、测试策略、DCO 流程)请参阅 AGENTS.md。
贡献
欢迎贡献——请通过议题模板提交议题,按照 DCO 签署提交,并遵循拉取请求模板。完整工作流程请参阅 CONTRIBUTING.md。
安全问题:请勿公开提交议题——请改为遵循 Dapr 安全问题披露流程。
许可证
Apache 2.0——请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。