mcpField
A
adaptive-cards-mcp

adaptive-cards-mcp

ローカル
github.com/VikrantSingh01開発ツール3320 週間前に更新

adaptive-cards-mcp について

adaptive-cards-mcpは、Microsoftの各種画面やほかの対応ホスト向けにAdaptive Cardsを作成、検証、調整するMCPサーバーです。カードJSON、アクセシビリティ確認、ホストやバージョンの互換性情報を必要とする開発者やAIアシスタント向けです。

主な機能

  1. 01説明やデータからAdaptive Card JSONを生成
  2. 02スキーマ、アクセシビリティ、ホスト互換性を検証
  3. 03カードの最適化とテンプレート化
  4. 04ホストやバージョンの制約に合わせて変換
  5. 05作成、レビュー、データ変換のガイド付きワークフロー

活用シーン

  1. 01承認、通知、プロフィールカードの作成
  2. 02JSONや表形式データをカードに変換
  3. 03アクセシビリティや描画の問題を特定して修正
  4. 04対象ホストやスキーマバージョン向けにカードを調整

MCP 対応

MCPサーバーは9個のツール、3個のガイド付きプロンプト、スキーマ、ホスト、例、パターンに関するリソースを公開します。MCPクライアントはこれらを使ってカードを生成、検証、変換、レビューできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"vikrantsingh01-adaptive-cards": {
"command": "npx",
"args": [
"-y",
"adaptive-cards-mcp"
]
}
}
}
起動コマンドnpx -y adaptive-cards-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmadaptive-cards-mcp2.3.0

ツール

9

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
dataanyいいえカードに組み込む任意の構造化データ(JSON オブジェクトまたは CSV 文字列)
hostenumいいえ対象のホストアプリ。デフォルト:genericteams | outlook | webchat | windows | viva-connections | webex | generic
themeenumいいえスタイル設定のヒントに使用するテーマlight | dark
intentenumいいえカードの意図。最適なレイアウトパターンの選択に役立ちますdisplay | approval | form | notification | dashboard | report | status | profile | list | gallery
contentstringはい生成するカードの自然言語による説明、または生データ/テキストを貼り付けます。
versionstringいいえ対象の Adaptive Card スキーマバージョン。デフォルト:"1.6"

詳細

Adaptive Cards MCP

License: MIT TypeScript Adaptive Cards CI npm npm downloads MCP Registry GitHub stars

adaptive-cards-mcp — 9 個のツール、21 個のパターン、924 個のテスト、競合 0 件

Teams、Outlook、Copilot、その他の Microsoft サービス向けに、AI アシスタントが有効でアクセシブルな Adaptive Cards を生成できるよう支援する MCP サーバーです。9 個のツール、3 つのガイド付きワークフロー、924 個のテストを備えています。

ブログ: AI による Adaptive Cards の作成を 10 倍向上させる MCP サーバーを作りました

デモ

お使いのブラウザーは 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
  1. Copilot Studio を開き、エージェント → Tools → Add a tool → New tool → Model Context Protocol に進みます
  2. MCP サーバーの URL(例:https://your-server.azurewebsites.net/sse)を入力します
  3. 公開するツールを選択します
OpenAI ChatGPT
  1. ChatGPT の設定で Developer mode を有効にします
  2. Settings → Connectors → Create に進みます
  3. 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 が適切なツールを選び、有効なカードを生成して検証し、本番環境ですぐに使える JSON を返します。この JSON は Adaptive Cards Designer に直接貼り付けてプレビューできます。

使用方法

自然言語(推奨)

必要な内容を説明すると、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 → データ形式に応じてテーブル/FactSet/リストを自動選択
「このカードは 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 リファレンスを参照してください。

返される内容

カードを生成するツールは、2 つの整ったブロックを返します。コピーして使えるカード 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

ツール、プロンプト、使用方法

Adaptive Cards 用の 9 個の MCP ツール

generate_card が Teams 用の休暇承認カードを生成

リファレンス

MCP ツール(9 個)
ツール説明
generate_card自然言語/データ → 有効な Adaptive Card v1.6 JSON
validate_cardスキーマ検証 + アクセシビリティスコア + ホスト互換性 + 修正案
data_to_cardデータ形式に応じてテーブル/FactSet/チャート/リストを自動選択
optimize_cardアクセシビリティとパフォーマンスを向上し、アクションを最新化
template_card静的なカード → ${expression} データバインドテンプレート
transform_cardバージョンのアップグレード/ダウングレード、ホスト設定への適応
suggest_layout説明に最適なレイアウトパターンを提案
generate_and_validate1 回の呼び出しで生成 + 検証 + オプションで最適化
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.6Adaptive Cards v1.6 の完全な JSON Schema
ac://hosts7 つのホストすべてのホスト互換性マトリックス
ac://hosts/{hostName}単一ホストの互換性情報
ac://examples厳選された 36 個のサンプルカードのカタログ
ac://examples/{intent}インテントで絞り込んだサンプル
ac://patterns21 個の標準的なレイアウトパターン
ac://cardsセッションカードストア(cardId によるカード検索)
ホスト互換性
ホスト最大バージョン備考
Generic1.6デフォルト — ホスト固有の制約なし
Teams1.6アクションは最大 6 個。Action.Execute を推奨
Outlook1.4対応要素に制限あり。アクションは最大 4 個
Web Chat1.6完全対応
Windows1.6一部の要素に対応
Viva Connections1.4SPFx ベースの ACE フレームワーク
Webex1.3Table と Action.Execute には非対応
設定
環境変数説明デフォルト
TRANSPORTトランスポートモード:stdio または ssestdio
PORTSSE トランスポート用 HTTP ポート3001
MCP_API_KEYHTTP 認証用 API キー(無効)
MCP_AUTH_MODE認証モード:トークン検証には bearer(無効)
ANTHROPIC_API_KEYAnthropic Claude API キー(決定論的モード)
OPENAI_API_KEYOpenAI API キー(決定論的モード)
AZURE_OPENAI_API_KEYAzure OpenAI API キー(無効)
AZURE_OPENAI_ENDPOINTAzure OpenAI エンドポイント URL(無効)
OLLAMA_BASE_URLOllama ローカルモデル URL(無効)
DEBUGデバッグログを有効化:adaptive-cards-mcp(無効)
MCP_RATE_LIMITレート制限を有効化:truefalse
MCP_TELEMETRYテレメトリーを有効化:オプトインには truefalse
POSTHOG_API_KEYリモート報告用 PostHog プロジェクト API キー(無効)
POSTHOG_HOSTPostHog API ホストhttps://eu.i.posthog.com

注: MCP(Claude Code、Copilot、Cursor)経由で使用する場合、ホスト LLM がインテリジェンスを提供するため、API キーは不要です。スタンドアロン/ライブラリとして使用する場合にのみ API キーを設定してください。

テレメトリーとプライバシー

テレメトリーはオプトインで、デフォルトでは無効です。有効にすると、サーバーは 匿名の使用状況メトリクスを収集し、プロジェクトの改善に役立てるため、集計データを PostHog に送信します。

有効にする方法:

  • VS Code 拡張機能: 初回インストール時に、一度だけ同意を求めるプロンプトが表示されます。設定 → Adaptive Cards → Telemetry でいつでも 変更できます。
  • CLI/MCP サーバー: 環境に MCP_TELEMETRY=true を設定するか、 ~/.adaptive-cards-mcp/config.json を編集して "telemetry": true を設定します。

送信される情報: ツール名、呼び出し回数、所要時間、エラー率、プラットフォーム(OS)、 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/coreMCP サーバー+npm ライブラリ(9 個のツール) — npm
packages/vscode-extensionVS 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 に掲載されました
  • E2E テストスイート — 品質ゲート(アクセシビリティスコア、要素数)を備えた、28 件のツールテストと 10 件のプロンプトテスト

詳細は、CHANGELOG をご覧ください。

リンク

  • npm — インストール方法とパッケージの詳細
  • GitHub — ソースコード、課題、コントリビューション
  • MCP Registry — 公式 MCP サーバーの掲載ページ

関連プロジェクト

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。