mcpField
D
Dapr MCP Server

Dapr MCP Server

本地服务
docs.dapr.io云与基础设施22 周前更新

关于 Dapr MCP Server

dapr-mcp-server 是 Go 编写的 MCP 服务,将 Dapr 构建模块作为工具提供给 AI Agent。它适用于使用 Dapr sidecar 的部署,并按可用组件动态注册工具,支持 stdio 和可流式 HTTP 传输。

主要功能

  1. 01提供 Dapr 状态与发布订阅工具
  2. 02服务调用与 Actor 方法调用
  3. 03密钥、绑定、锁与加密
  4. 04根据运行中的组件动态注册
  5. 05OpenTelemetry 跟踪与指标

适用场景

  1. 01让 AI Agent 读取和写入 Dapr 状态
  2. 02通过已配置的发布订阅组件发布事件
  3. 03调用服务或虚拟 Actor
  4. 04向本地或远程 MCP 客户端开放 Dapr 能力

MCP 相关

它通过 sidecar 将 Dapr 构建模块暴露为 MCP 工具,支持 stdio 和可流式 HTTP 传输,并可选用 OIDC、SPIFFE 或 Dapr Sentry 控制请求。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"dapr-dapr": {
"command": "docker",
"args": [
"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.3"
],
"env": {
"DAPR_GRPC_PORT": "<DAPR_GRPC_PORT>",
"DAPR_API_TOKEN": "<DAPR_API_TOKEN>",
"DAPR_MCP_SERVER_LOG_LEVEL": "<DAPR_MCP_SERVER_LOG_LEVEL>"
}
}
}
}
启动命令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.3
需要配置的环境变量
DAPR_GRPC_PORTgRPC port of the Dapr sidecar
DAPR_API_TOKEN密钥Dapr API token, if the sidecar requires one
DAPR_MCP_SERVER_LOG_LEVELLog level, written as JSON to stderr

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

安装包
ocighcr.io/dapr/dapr-mcp-server:v0.0.3

工具

还没有获取到工具列表

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

详细介绍

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-checkfalse探测运行中服务的 /livez,若收到 200 则以 0 退出,否则以 1 退出。供容器的 HEALTHCHECK 使用。
--health-check-addr <host:port>来自 --http,否则为 localhost:8080--health-check 探测的地址。对于 0.0.0.0 之类的通配主机,将使用 localhost 进行探测。
--versionfalse输出版本并退出。

日志以 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 调用
Actorinvoke_actor_method核心虚拟 Actor 方法调用
状态save_statestate.*幂等保存
状态get_statestate.*只读
状态delete_statestate.*破坏性操作,幂等
状态execute_transactionstate.*原子批处理
发布订阅publish_eventpubsub.*非幂等
发布订阅publish_event_with_metadatapubsub.*添加标头/TTL
绑定invoke_output_bindingbindings.*与外部系统进行 I/O
密钥get_secretsecretstores.*单个密钥
密钥get_bulk_secretssecretstores.*高风险;批量获取
对话converse_with_llmconversation.*委托给下游大模型
加密encrypt_datacrypto.*RSA 加密
加密decrypt_datacrypto.*RSA 解密
锁acquire_locklock.*分布式互斥锁
锁release_locklock.*与 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。

评论

支持 Markdown

第一次接触 MCP?

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

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