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

dapr MCP

MCP Server

dapr-mcp是一个将Dapr微服务构建块暴露为AI工具的服务,支持状态管理、发布/订阅消息、服务调用等功能。

工具数

17

提示词数

0

GitHub Stars

2

资源数

0
微服务GoClaudeClaude DesktopClaudeVS Code

安装说明

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

作者 / 组织

CasperGN

提供方

CasperGN

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

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

命令预览

docker run -p 8080:8080 ghcr.io/dapr/dapr-mcp-server:latest

详细介绍

dapr mcp

一个模型上下文协议(MCP)服务器,它将Dapr的微服务构建块作为AI代理的工具公开。

概述

dapr-mcp将AI代理与dapr强大的微服务API连接起来,实现:

  • 状态管理:使用事务支持保存、检索和删除状态
  • 发布/子消息:将事件发布到消息代理
  • 服务调用:调用其他支持Dapr的服务
  • 秘密管理:从配置的存储中安全访问机密
  • 分布式锁定:协调共享资源的访问
  • 绑定:与外部系统(数据库、队列等)交互
  • 对话AI:通过Dapr将任务委派给外部LLM
  • 密码学:加密和解密敏感数据

特性

  • 完全开放遥测可观察性(跟踪、度量、日志)
  • OAuth2.0/OIDC和SPIFFE身份验证支持
  • Kubernetes就绪的健康端点
  • 动态组件发现
  • AI代理的全面安全规则

安装

来源

go install github.com/dapr/dapr-mcp-server/cmd/dapr-mcp-server@latest

从发布

从下载预构建的二进制文件 发布 页面。

码头工人

docker pull ghcr.io/dapr/dapr-mcp-server:latest
docker run -p 8080:8080 ghcr.io/dapr/dapr-mcp-server:latest

快速开始

  1. 初始化Dapr:
dapr init
  1. 运行MCP服务器:
dapr run --app-id dapr-mcp-server --resources-path components -- dapr-mcp-server --http localhost:8080
  1. 将您的AI代理连接到 http://localhost:8080

工具状态

类别工具状态注释
actorsinvoke_actor_methodBeta虚拟actor方法调用
绑定invoke_output_binding稳定外部系统交互
对话对话_with_llm稳定委托给外部llm
cryptoencrypt_data实验可能被某些模型阻止
cryptodecrypt_data实验可能被某些模型阻止
调用invoke_serviceBeta服务来服务调用
lockacquire_lock稳定分布式锁定
lockrelease_lock稳定分布式锁定
元数据组件稳定组件发现
pubsubpublish_event稳定事件发布
pubsubpublish_event_with_metata稳定带标头的事件发布
secretsget_secret稳定单秘密检索
secretsget_bulk_secrets稳定批量秘密检索
statesave_state稳定状态持久性
stateget_state稳定状态检索
statedelete_state稳定状态删除
stateexecute_transactionStable原子状态操作

配置

环境变量

核心配置

变量描述默认值
DAPR_MCP_SERVER_LOG_LEVEL日志级别:调试、信息、警告、错误INFO

开放遥测配置

变量描述默认值
OTEL_EXPORTER_OTLP_ENDPOINT所有信号的OTLP端点(无-禁用)
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT覆盖跟踪端点使用 OTEL_EXPORTER_OTLP_ENDPOINT
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT指标端点的覆盖使用 OTEL_EXPORTER_OTLP_ENDPOINT
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT日志端点的覆盖使用 OTEL_EXPORTER_OTLP_ENDPOINT
OTEL_EXPORTER_OTLP_PROTOCOL协议:grpc、http/protobufgrpc
OTEL_EXPORTER_OTLP_HEADERS标题(键=值,键2=值2)(无)
OTEL_SERVICE_NAME遥测服务名称dapr-mcp-server
OTEL_SERVICE_VERSION服务版本v1.0.0
DAPR_MCP_SERVER_METRICS_ENABLED启用指标导出true
DAPR_MCP_SERVER_LOGS_OTEL_ENABLED通过OTEL导出日志true

验证配置

变量描述默认值
AUTH_ENABLED启用身份验证false
AUTH_MODE模式:禁用、oidc、spiffe、dapr哨兵、混合动力disabled
AUTH_SKIP_PATHS跳过身份验证的路径(逗号分隔)/livez,/readyz,/startupz

OIDC配置

变量描述默认值
OIDC_ENABLED启用OIDC身份验证false
OIDC_ISSUER_URLOIDC提供程序URL(如果启用了OIDC,则需要)
OIDC_CLIENT_ID预期受众(aud声明)(如果启用OIDC,则需要)
OIDC_ALLOWED_ALGORITHMS允许的签名算法RS256,ES256
OIDC_SKIP_ISSUER_CHECK跳过发行者验证(仅限开发人员)false

SPIFFE配置

变量描述默认值
SPIFFE_ENABLED启用SPIFFE身份验证false
SPIFFE_TRUST_DOMAINSPIFFE信任域(如果启用SPIFFE,则需要)
SPIFFE_SERVER_ID此服务器的SPIFFE ID(如果启用了SPIFFE,则需要)
SPIFFE_ENDPOINT_SOCKET工作负载API套接字路径SPIFFE_ENDPOINT_SOCKET env
SPIFFE_ALLOWED_CLIENTS允许的客户端SPIFFE ID(无-全部允许)

Dapr哨兵配置

变量描述默认值
DAPR_SENTRY_ENABLED启用Dapr Sentry身份验证false
DAPR_SENTRY_JWKS_URLDapr Sentry JWKS端点(如果启用,则需要)
DAPR_SENTRY_TRUST_DOMAIN预期的SPIFFE信任域(如果启用,则为必填项)
DAPR_SENTRY_AUDIENCE预期受众声明(无-未验证)
DAPR_SENTRY_TOKEN_HEADER包含JWT的标题Authorization
DAPR_SENTRY_JWKS_REFRESH_INTERVALJWKS缓存刷新间隔5m

健康终点

Kubernetes兼容的健康端点:

终点目的
GET /livezLiveness探测器-服务器正在运行
GET /readyz就绪探测-服务器可以接受流量
GET /startupz启动探测-初始化完成

开放遥测

指标

度量类型描述
dapr-mcp-server.tool.invocations计数器工具调用总数
dapr-mcp-server.tool.errors计数器工具调用失败
dapr-mcp-server.tool.duration柱状图执行时间(ms)
dapr-mcp-server.tool.in_progressUpDownCounter当前正在执行的工具

跨度属性

每个工具跨度包括:

  • tool.name:正在调用的工具
  • tool.package:包含工具的包
  • dapr.operation:Dapr操作类型
  • dapr.component.type:使用的组件类型
  • outcome:成功或错误

示例:Jaeger设置

# Start Jaeger
docker run -d --name jaeger \
  -p 16686:16686 \
  -p 4317:4317 \
  jaegertracing/all-in-one:latest

# Configure dapr-mcp
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc

# Run server
dapr run --app-id dapr-mcp-server --resources-path components -- dapr-mcp-server --http localhost:8080

身份验证设置

OIDC(OAuth2.0)

export AUTH_ENABLED=true
export AUTH_MODE=oidc
export OIDC_ENABLED=true
export OIDC_ISSUER_URL=https://accounts.google.com
export OIDC_CLIENT_ID=your-client-id

史匹夫

export AUTH_ENABLED=true
export AUTH_MODE=spiffe
export SPIFFE_ENABLED=true
export SPIFFE_TRUST_DOMAIN=example.org
export SPIFFE_SERVER_ID=spiffe://example.org/dapr-mcp
export SPIFFE_ENDPOINT_SOCKET=unix:///tmp/spire-agent/public/api.sock

Dapr哨兵

对于使用Sentry但没有完整SPIRE基础设施的Dapr环境:

export AUTH_ENABLED=true
export AUTH_MODE=dapr-sentry
export DAPR_SENTRY_ENABLED=true
export DAPR_SENTRY_JWKS_URL=http://dapr-sentry:8080/jwks.json
export DAPR_SENTRY_TRUST_DOMAIN=public
export DAPR_SENTRY_AUDIENCE=public  # Optional

注: Dapr Sentry JWT在 sub 索赔但没有 iss 索赔, 这就是为什么他们需要这个专用的认证器而不是OIDC。

混合模式

接受多种身份验证方法(OIDC、SPIFFE和/或Dapr Sentry):

export AUTH_ENABLED=true
export AUTH_MODE=hybrid
export OIDC_ENABLED=true
export OIDC_ISSUER_URL=https://accounts.google.com
export OIDC_CLIENT_ID=your-client-id
export SPIFFE_ENABLED=true
export SPIFFE_TRUST_DOMAIN=example.org
export SPIFFE_SERVER_ID=spiffe://example.org/dapr-mcp
# Optionally add Dapr Sentry as well:
# export DAPR_SENTRY_ENABLED=true
# export DAPR_SENTRY_JWKS_URL=http://dapr-sentry:8080/jwks.json
# export DAPR_SENTRY_TRUST_DOMAIN=public

IDE集成

VS Code

添加 .vscode/mcp.json:

{
  "servers": {
    "dapr-mcp": {
      "type": "http",
      "url": "http://localhost:8080"
    }
  }
}

克劳德桌面版

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "dapr-mcp": {
      "url": "http://localhost:8080"
    }
  }
}

发展

先决条件

  • 转到1.21+
  • Dapr命令行界面
  • Docker(可选,用于本地测试)

建筑

go build -o dapr-mcp-server ./cmd/dapr-mcp-server

测试

go test -v -race ./...

代码检查

golangci-lint run

建筑

cmd/dapr-mcp-server/          # Main entry point
pkg/
  actors/             # Virtual actor tools
  auth/               # Authentication (OIDC, SPIFFE)
  bindings/           # Output binding tools
  conversation/       # LLM conversation tools
  crypto/             # Encryption/decryption tools
  health/             # Health check endpoints
  invoke/             # Service invocation tools
  lock/               # Distributed lock tools
  metadata/           # Component discovery
  mocks/              # Test mocks
  pubsub/             # Pub/Sub tools
  secrets/            # Secret management tools
  state/              # State management tools
  telemetry/          # OTEL instrumentation

贡献

欢迎投稿!拜托:

  1. 克隆该仓库
  2. 创建要素分支
  3. 通过测试进行更改
  4. golangci-lint rungo test ./...
  5. 提交拉取请求

许可证

Apache 2.0-请参阅 许可证 了解详情。

目录标签

目录标签

微服务GoClaude本地部署AI工具状态管理消息发布服务调用分布式锁

支持客户端

Claude DesktopClaudeVS Code

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

17

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP