MCP Directory

How to add Adaptive Cards MCP to Windsurf

Generate, validate, and optimize accessible Adaptive Cards for Teams, Outlook, Copilot, and other Microsoft surfaces. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 27 · stdio · no auth

Windsurf config for Adaptive Cards MCP

claude mcp add adaptive-cards-mcp -- npx adaptive-cards-mcp
{
  "mcpServers": {
    "adaptive-cards-mcp": {
      "command": "npx",
      "args": [
        "adaptive-cards-mcp"
      ]
    }
  }
}

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Adaptive Cards MCP config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Adaptive Cards MCP's tools become available to Cascade.

Before you start

  • Node.js with npx available (the server is fetched and run via npx; no separate install required)
  • An MCP-compatible client (Claude Code, GitHub Copilot, Cursor, Windsurf, etc.)

What Adaptive Cards MCP can do in Windsurf

generate_card

Natural language / data into valid Adaptive Card v1.6 JSON.

validate_card

Schema validation plus accessibility score, host compatibility, and suggested fixes.

data_to_card

Auto-select Table / FactSet / Chart / List based on the shape of the input data.

optimize_card

Improve accessibility, improve performance, and modernize actions.

template_card

Convert a static card into a ${expression} data-bound template.

transform_card

Version upgrade/downgrade and host-config adaptation across hosts.

suggest_layout

Recommend the best layout pattern for a given description, with rationale.

generate_and_validate

Generate, validate, and optionally optimize a card in one call.

Security

No API key needed when used via an MCP client — the host LLM provides the intelligence. Telemetry is opt-in and disabled by default (set MCP_TELEMETRY=true to enable); card content, prompts, data payloads, IPs, file paths, and env vars are never sent. For SSE/HTTP transport you can enable auth with MCP_API_KEY (and MCP_AUTH_MODE=bearer).

Adaptive Cards MCP + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Adaptive Cards MCP config there under the "mcpServers" key and restart the client.

Is Adaptive Cards MCP safe to use with Windsurf?

No API key needed when used via an MCP client — the host LLM provides the intelligence. Telemetry is opt-in and disabled by default (set MCP_TELEMETRY=true to enable); card content, prompts, data payloads, IPs, file paths, and env vars are never sent. For SSE/HTTP transport you can enable auth with MCP_API_KEY (and MCP_AUTH_MODE=bearer).

Do I need an API key?

No. When used via an MCP client (Claude Code, Copilot, Cursor, Windsurf), the host LLM provides the intelligence. API keys (Anthropic/OpenAI/Azure/Ollama) are only needed for standalone or library usage.

Which Microsoft hosts are supported?

Generic (1.6), Teams (1.6), Outlook (1.4), Web Chat (1.6), Windows (1.6), Viva Connections (1.4), and Webex (1.3). The server downgrades cards to each host's max version and removes unsupported features.

Can it run as an HTTP/SSE server?

Yes. Set TRANSPORT=sse PORT=3001 to run it over SSE/HTTP (e.g., for Microsoft 365 Copilot / Copilot Studio or ChatGPT connectors), optionally with MCP_API_KEY for auth.

View repo Full Adaptive Cards MCP page