adaptive-cards-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port for SSE transport | 3001 |
| DEBUG | No | Enable debug logging: adaptive-cards-mcp | |
| TRANSPORT | No | Transport mode: stdio or sse | stdio |
| MCP_API_KEY | No | API key for HTTP auth | |
| MCP_AUTH_MODE | No | Auth mode: bearer for token validation | |
| MCP_TELEMETRY | No | Enable metrics collection: true | false |
| MCP_RATE_LIMIT | No | Enable rate limiting: true | false |
| OPENAI_API_KEY | No | OpenAI API key (optional for MCP usage as host LLM provides intelligence) | |
| OLLAMA_BASE_URL | No | Ollama local model URL | |
| ANTHROPIC_API_KEY | No | Anthropic Claude API key (optional for MCP usage as host LLM provides intelligence) | |
| AZURE_OPENAI_API_KEY | No | Azure OpenAI API key | |
| AZURE_OPENAI_ENDPOINT | No | Azure OpenAI endpoint URL |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_cardB | Convert any content — natural language description, structured data, or a combination — into a valid Adaptive Card v1.6 JSON. Returns cardId for reference in subsequent tool calls. |
| validate_cardA | Validate an Adaptive Card JSON against the v1.6 schema. Returns diagnostics with suggested fixes for each error. Accepts card JSON or a cardId from a previous tool call. |
| data_to_cardA | Convert structured data (JSON array, CSV, key-value object) into the optimal Adaptive Card presentation. |
| optimize_cardC | Optimize an existing Adaptive Card. Accepts card JSON or a cardId. |
| template_cardB | Convert a static Adaptive Card into an Adaptive Card Template with ${expression} data binding. |
| transform_cardB | Transform an Adaptive Card: upgrade/downgrade version, apply host-specific constraints, or flatten nesting. |
| suggest_layoutC | Recommend the best Adaptive Card layout pattern for a given description. |
| generate_and_validateA | Generate an Adaptive Card and immediately validate + optionally optimize it in a single call. Reduces tool-call overhead for common workflows. |
| card_workflowC | Execute a multi-step card pipeline in a single call. Steps: generate, validate, optimize, template, transform. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-adaptive-card | Guided workflow to create an Adaptive Card from a description |
| review-adaptive-card | Review an Adaptive Card for accessibility, compatibility, and best practices |
| convert-data-to-card | Convert structured data into the best Adaptive Card presentation |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Adaptive Cards v1.6 Schema | Complete JSON Schema for Adaptive Cards v1.6 |
| Host Compatibility Matrix | Supported versions, elements, actions, and constraints for all hosts |
| Example Cards Catalog | 36 curated example Adaptive Cards |
| Layout Pattern Guide | 21 canonical layout patterns with templates |
| Session Card Store | List of cards stored in the current session (by cardId) |
TDQS
Scored across 9 tools
generate_card and data_to_card overlap significantly since generate_card already accepts structured data, and generate_and_validate/card_workflow both wrap similar generation/validation pipelines. The boundaries between convenience wrappers and the individual tools they wrap are unclear, making tool selection ambiguous.
Most tools follow a verb_noun pattern like validate_card, generate_card, optimize_card, and transform_card, and all names use snake_case. However, generate_and_validate (verb_and_verb), data_to_card (noun_to_noun), and card_workflow (noun_noun) break the dominant convention, creating a mixed but still readable naming scheme.
Nine tools is a reasonable size for an Adaptive Card authoring/processing server and sits comfortably in the ideal range. The count is slightly inflated by redundant convenience wrappers, but the overall scale is appropriate for the domain.
The server covers generation, validation, optimization, transformation, templating, and layout suggestion, which covers most core authoring workflows. However, there is no way to retrieve/list stored cards despite cardId references, and no tool to apply a generated template to data, leaving notable gaps in the lifecycle.