关于 adaptive-cards-mcp
adaptive-cards-mcp 是一个 MCP 服务,用于为 Microsoft 产品界面及其他支持的宿主创建、验证和调整 Adaptive Cards。它面向需要卡片 JSON、无障碍检查及宿主或版本兼容建议的开发者和 AI 助手。
主要功能
- 01根据描述或数据生成 Adaptive Card JSON
- 02验证架构、无障碍性和宿主兼容性
- 03优化卡片并转换为模板
- 04按宿主和版本限制转换卡片
- 05提供创建、审查和数据转换工作流
适用场景
- 01创建审批、通知或个人资料卡片
- 02将 JSON 或表格数据转换为卡片
- 03查找并修复无障碍或渲染问题
- 04针对目标宿主或架构版本调整卡片
MCP 相关
MCP 服务提供 9 个工具、3 个引导式提示词,以及涵盖架构、宿主、示例和布局模式的资源。MCP 客户端可借此生成、验证、转换和审查卡片。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
9收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| data | any | 否 | 要合并到卡片中的可选结构化数据(JSON 对象或 CSV 字符串) |
| host | enum | 否 | 目标宿主应用。默认值:genericteams | outlook | webchat | windows | viva-connections | webex | generic |
| theme | enum | 否 | 用于样式提示的主题light | dark |
| intent | enum | 否 | 卡片的意图——有助于选择最佳布局模式display | approval | form | notification | dashboard | report | status | profile | list | gallery |
| content | string | 是 | 要生成的卡片的自然语言描述,或粘贴原始数据/文本。 |
| version | string | 否 | 目标 Adaptive Card 架构版本。默认值:"1.6" |
详细介绍
Adaptive Cards MCP
一个 MCP 服务,可帮助 AI 助手为 Teams、Outlook、Copilot 和其他 Microsoft 产品界面生成有效且易于访问的 Adaptive Cards。提供 9 个工具、3 种引导式工作流和 924 项测试。
演示
您的浏览器不支持 video 标签。
快速开始
无需安装——npx 会自动下载并运行。
1. 添加到 AI 助手
Claude Code
claude mcp add adaptive-cards-mcp -- npx adaptive-cards-mcp
GitHub Copilot(VS Code)
添加到 .vscode/mcp.json:
{
"servers": {
"adaptive-cards-mcp": {
"command": "npx",
"args": ["adaptive-cards-mcp"]
}
}
}
Cursor
添加到 .cursor/mcp.json:
{
"mcpServers": {
"adaptive-cards-mcp": {
"command": "npx",
"args": ["adaptive-cards-mcp"]
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"adaptive-cards-mcp": {
"command": "npx",
"args": ["adaptive-cards-mcp"]
}
}
}
Microsoft 365 Copilot / Copilot Studio(HTTP/SSE)
TRANSPORT=sse PORT=3001 npx adaptive-cards-mcp
# With auth enabled
TRANSPORT=sse MCP_API_KEY=your-secret npx adaptive-cards-mcp
- 打开 Copilot Studio → 您的 Agent → 工具 → 添加工具 → 新建工具 → Model Context Protocol
- 输入您的 MCP 服务 URL(例如,
https://your-server.azurewebsites.net/sse) - 选择要公开的工具
OpenAI ChatGPT
- 在 ChatGPT 设置中启用开发者模式
- 前往设置 → 连接器 → 创建
- 输入您的 MCP 服务 HTTPS URL
2. 开始使用
只需用自然语言向 AI 助手提出请求:
> Create an expense approval card for Teams
> Convert this JSON data into an Adaptive Card table
> Validate this card and fix accessibility issues
> Make this card work on Outlook (v1.4)
AI 会选择合适的工具,生成有效卡片并进行验证,最后返回可直接粘贴到 Adaptive Cards Designer 中预览的生产就绪 JSON。
用法
自然语言(推荐)
描述你的需求,AI 会确定要调用哪些工具:
审批和工作流:
> Create an expense approval card for Teams with requester photo, amount,
category, line items, and approve/reject/comment buttons
> Build a time-off request card — employee name, dates, remaining PTO balance,
manager approval with optional rejection reason
通知和提醒:
> Create a CI/CD deployment notification: service name, environment, build number,
commit SHA, deploy status with rollback button
> Generate a PagerDuty-style incident alert card — severity P1, affected service,
start time, on-call engineer, acknowledge/escalate actions
数据和报告:
> Here's our Q1 sales data, turn it into a card:
[{"region":"APAC","revenue":1250000,"growth":"12%"},
{"region":"EMEA","revenue":980000,"growth":"8%"},
{"region":"Americas","revenue":2100000,"growth":"15%"}]
> Convert this CSV to a card:
Employee,Department,Start Date,Status
Jane Kim,Engineering,2026-01-15,Active
Bob Lee,Design,2026-02-01,Active
Carol Wu,PM,2026-03-10,Onboarding
表单和输入:
> Create an employee onboarding checklist — new hire name, start date,
assigned buddy, IT setup tasks with checkboxes, and a submit button
> Build a customer feedback survey card with a 1-5 star rating,
comment field, and NPS score dropdown
个人资料和状态:
> Create a team member profile card with photo, name, title, department,
skills tags, and contact buttons for email/chat/calendar
> Build a service health dashboard card showing 5 microservices
with status indicators (healthy/degraded/down) and last check time
跨主机和版本管理:
> This card works in Teams but breaks in Outlook — fix it
> Make this card work on Webex (v1.3 only, no Table, no Action.Execute)
> Downgrade this v1.6 card to v1.4 for Viva Connections
验证和优化:
> Validate this card and tell me what's wrong — I'm getting render errors
> Make this card accessible — it needs to work with screen readers
> This card is too complex, optimize it for performance and compact layout
| 你说的话 | AI 调用的工具 |
|---|---|
| “为 Teams 创建一张请假审批卡片” | generate_and_validate → 包含“批准/拒绝”操作的优化卡片 |
| “这是我的 API 响应,把它做成卡片” | data_to_card → 根据数据结构自动选择 Table、FactSet 或 List |
| “这张卡片适用于 Outlook 吗?” | validate_card → 架构错误、无障碍评分、主机兼容性 |
| “让这张卡片更易于访问” | optimize_card → 添加 wrap、altText、speak 和标题样式 |
| “将这张卡片转换为可复用模板” | template_card → 将静态值转换为 ${expression} 绑定 |
| “这张卡片需要兼容 v1.3” | transform_card → 降级并移除不受支持的功能 |
| “仪表板应该使用什么布局?” | suggest_layout → 推荐模式并说明理由 |
斜杠命令(MCP 提示词)
如需引导式的多步工作流,可直接使用内置提示词:
创建卡片:
> /adaptive-cards-mcp:create-adaptive-card
description: "Expense approval with requester photo, line items table, total amount,
and approve/reject buttons with comment field"
host: teams
intent: approval
运行:生成 → 验证 → 优化 → 主机配置
> /adaptive-cards-mcp:create-adaptive-card
description: "CI/CD deployment notification with service name, environment,
build number, status badge, and rollback action"
host: teams
intent: notification
> /adaptive-cards-mcp:create-adaptive-card
description: "Employee profile card with photo, name, title, department,
contact info, and skills tags"
host: outlook
intent: profile
将数据转换为卡片:
> /adaptive-cards-mcp:convert-data-to-card
data: [
{ "task": "Review PR #482", "assignee": "Jane", "due": "2026-03-21", "status": "pending" },
{ "task": "Deploy hotfix v2.1.3", "assignee": "Bob", "due": "2026-03-19", "status": "in-progress" },
{ "task": "Update API docs", "assignee": "Carol", "due": "2026-03-22", "status": "done" }
]
title: "Sprint Tasks"
presentation: table
> /adaptive-cards-mcp:convert-data-to-card
data: { "service": "api-gateway", "cpu": "92%", "memory": "78%", "requests": "12.4k/min",
"p99_latency": "245ms", "error_rate": "0.3%", "uptime": "99.97%" }
title: "Service Health — api-gateway"
presentation: facts
运行:分析数据 → 选择最佳布局 → 验证输出
审核现有卡片:
> /adaptive-cards-mcp:review-adaptive-card
card: { "type": "AdaptiveCard", "version": "1.6", "body": [...your card...] }
host: outlook
运行:验证架构和无障碍性 → 自动修复问题 → 生成摘要报告
npm 库(编程方式)
如需在自己的代码(机器人、API、CI 流水线)中使用,请安装此软件包:
npm install adaptive-cards-mcp
import { generateCard, validateCardFull, dataToCard, optimizeCard } from 'adaptive-cards-mcp';
const result = await generateCard({
content: "Create a flight status card",
host: "teams",
intent: "display"
});
console.log(result.card); // Adaptive Card JSON
console.log(result.cardId); // Reference ID for subsequent calls
console.log(result.validation); // Schema + accessibility + host compat
完整详情请参阅库 API 参考。
返回内容
生成卡片的工具会返回两个清晰的内容块:可复制的卡片 JSON,以及元数据摘要:
```json
{
"type": "AdaptiveCard",
"version": "1.6",
"body": [ ... ],
"actions": [ ... ]
}
```
---
**Validation:** Valid
**Accessibility Score:** 100/100
**Elements:** 7 | **Nesting Depth:** 2 | **Version:** 1.6
**Card ID:** card-abc123
**Steps:** generate → validate → optimize
**Try it out:** Paste the card JSON into the [Adaptive Cards Designer](https://adaptivecards.microsoft.com/designer)
**Local Preview:** file:///tmp/ac-preview-xyz.html
工具、提示词和用法
参考
MCP 工具(9 个)
| 工具 | 说明 |
|---|---|
generate_card | 自然语言/数据 → 有效的 Adaptive Card v1.6 JSON |
validate_card | 架构验证 + 无障碍评分 + 主机兼容性 + 修复建议 |
data_to_card | 根据数据结构自动选择 Table、FactSet、Chart 或 List |
optimize_card | 提升无障碍性和性能,并更新操作以适应现代需求 |
template_card | 静态卡片 → ${expression} 数据绑定模板 |
transform_card | 升级/降级版本,适配主机配置 |
suggest_layout | 根据描述推荐最佳布局模式 |
generate_and_validate | 一次调用即可生成 + 验证 + 可选优化 |
card_workflow | 多步流水线:生成 → 优化 → 模板化 → 转换 |
MCP 提示词(3 个)
| 提示词 | 流水线 | 斜杠命令 |
|---|---|---|
create-adaptive-card | 生成 → 验证 → 优化 → 主机配置 | /adaptive-cards-mcp:create-adaptive-card |
review-adaptive-card | 验证 → 自动修复 → 前后对比报告 | /adaptive-cards-mcp:review-adaptive-card |
convert-data-to-card | 分析数据 → 选择呈现方式 → 验证 | /adaptive-cards-mcp:convert-data-to-card |
MCP 资源(5)+ 模板(2)
| 资源 | 描述 |
|---|---|
ac://schema/v1.6 | Adaptive Cards v1.6 的完整 JSON Schema |
ac://hosts | 所有 7 个宿主的兼容性矩阵 |
ac://hosts/{hostName} | 单个宿主的兼容性信息 |
ac://examples | 36 个精选示例卡片目录 |
ac://examples/{intent} | 按意图筛选的示例 |
ac://patterns | 21 种规范布局模式 |
ac://cards | 会话卡片存储(按 cardId 存储卡片) |
宿主兼容性
| 宿主 | 最高版本 | 备注 |
|---|---|---|
| Generic | 1.6 | 默认 — 无特定宿主限制 |
| Teams | 1.6 | 最多 6 个操作,优先使用 Action.Execute |
| Outlook | 1.4 | 元素有限,最多 4 个操作 |
| Web Chat | 1.6 | 完全支持 |
| Windows | 1.6 | 支持部分元素 |
| Viva Connections | 1.4 | 基于 SPFx 的 ACE 框架 |
| Webex | 1.3 | 不支持 Table 和 Action.Execute |
配置
| 环境变量 | 描述 | 默认值 |
|---|---|---|
TRANSPORT | 传输模式:stdio 或 sse | stdio |
PORT | SSE 传输的 HTTP 端口 | 3001 |
MCP_API_KEY | HTTP 身份验证的 API 密钥 | (已禁用) |
MCP_AUTH_MODE | 身份验证模式:bearer 用于令牌验证 | (已禁用) |
ANTHROPIC_API_KEY | Anthropic Claude API 密钥 | (确定性模式) |
OPENAI_API_KEY | OpenAI API 密钥 | (确定性模式) |
AZURE_OPENAI_API_KEY | Azure OpenAI API 密钥 | (已禁用) |
AZURE_OPENAI_ENDPOINT | Azure OpenAI 端点 URL | (已禁用) |
OLLAMA_BASE_URL | Ollama 本地模型 URL | (已禁用) |
DEBUG | 启用调试日志:adaptive-cards-mcp | (已禁用) |
MCP_RATE_LIMIT | 启用速率限制:true | false |
MCP_TELEMETRY | 启用遥测:设为 true 即表示选择加入 | false |
POSTHOG_API_KEY | 用于远程报告的 PostHog 项目 API 密钥 | (已禁用) |
POSTHOG_HOST | PostHog API 主机 | https://eu.i.posthog.com |
注意: 通过 MCP(Claude Code、Copilot、Cursor)使用时,宿主大模型会提供智能能力 — 无需 API 密钥。仅在独立使用或作为库使用时才需设置 API 密钥。
遥测与隐私
遥测采用选择加入方式,默认处于禁用状态。启用后,服务会收集 匿名使用指标,并将汇总数据发送到 PostHog,以帮助改进项目。
启用方式:
- VS Code 扩展: 首次安装时会出现一次性许可提示。你可以随时在“设置” → Adaptive Cards → Telemetry 中更改此设置。
- CLI / MCP 服务: 在环境中设置
MCP_TELEMETRY=true,或编辑~/.adaptive-cards-mcp/config.json并设置"telemetry": true。
发送的内容: 工具名称、调用次数、耗时、错误率、平台(操作系统)、 Node 版本、软件包版本、传输类型。
绝不会发送的内容: 卡片内容、用户提示词、数据负载、IP 地址、 文件路径、环境变量。
每次服务启动时都会生成一个随机会话 ID — 不会跨会话存储持久标识符。
禁用方式: 设置 MCP_TELEMETRY=false,或保持未配置状态(默认关闭)。
开发
cd packages/core
npm install
npm run build # TypeScript + copy data files
npm test # 924 tests (vitest)
npm run test:coverage # With coverage report
npm run lint # TypeScript type check
npm run lint:eslint # ESLint check
npm run format # Prettier formatting
本地测试
对所有工具和提示词进行冒烟测试:
./test-mcp-tools.sh --local # 28 tests — all 9 tools with real-world scenarios
./test-mcp-prompts.sh --local # 10 tests — all 3 prompts (guided workflows)
./test-mcp-tools.sh # same tests against published npm package
./test-mcp-prompts.sh # same tests against published npm package
MCP Inspector(可视化 UI):
cd packages/core && npm run build
npx @modelcontextprotocol/inspector node dist/server.js
# Opens http://localhost:6274 — pick a tool, enter params, click Run
终端(stdio):
cd packages/core
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"generate_card","arguments":{"content":"expense approval card","intent":"approval","host":"teams"}}}' \
| node dist/server.js 2>/dev/null | tail -1 | python3 -m json.tool
SSE 模式:
TRANSPORT=sse PORT=3001 node packages/core/dist/server.js
curl http://localhost:3001/health
架构
packages/core/src/
├── server.ts # MCP server (stdio + SSE, 9 tools, 3 prompts)
├── index.ts # Library exports
├── types/ # TypeScript interfaces
├── core/ # Schema validator, analyzer, accessibility, host compat
├── generation/ # 21 layout patterns, data analyzer, assembler, LLM client
├── tools/ # 9 tool handlers
├── utils/ # Logger, input guards, rate limiter, card store, auth, telemetry, preview
└── data/ # v1.6 schema, 36 examples, host configs
生态系统
| 软件包 | 描述 |
|---|---|
| packages/core | MCP 服务 + npm 库(9 个工具)— npm |
| packages/vscode-extension | VS Code 扩展 — adaptive-cards-ai-vscode |
v2.3.0 新增内容
- 无障碍评分 100/100 — 现在所有生成的卡片都会自动包含
speak属性 - 不再生成损坏的 JSON — 清理内容中的换行符,标题不再在版本号处被截断
- 感知宿主的生成 —
generate_and_validate会自动为 Outlook(v1.4)、Webex(v1.3)降级卡片版本 - CSV 修复 — 在构建 FactSet/Table 卡片之前正确解析 CSV 数据
- 遥测 —
/metrics端点支持会话跟踪、按工具统计调用分布,以及宿主/意图用量统计 - MCP Registry — 已列入官方 MCP Registry
- 端到端测试套件 — 包含 28 项工具测试和 10 项提示词测试,并设置质量门槛(无障碍评分、元素数量)
详情请参阅完整的 CHANGELOG。
链接
- npm — 安装和软件包详情
- GitHub — 源代码、问题和贡献
- MCP Registry — 官方 MCP 服务列表
相关项目
- AdaptiveCards-Mobile — 跨平台 Adaptive Cards 渲染器
- openclaw-adaptive-cards — 使用此库的 OpenClaw AI Agent 插件
- Adaptive Cards Documentation — 官方文档
- Adaptive Cards Designer — 交互式卡片设计器
- Adaptive Cards Schema Explorer — 交互式架构参考
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。