{
  "specVersion": "1.0",
  "host": {
    "displayName": "ECA - Drupal Events, Conditions, Actions",
    "identifier": "ecaguide.org",
    "documentationUrl": "https://ecaguide.org/",
    "logoUrl": "https://ecaguide.org/images/logo.png"
  },
  "entries": [
    {
      "identifier": "urn:air:ecaguide.org:mcp:eca-guide",
      "displayName": "ECA Guide MCP server",
      "type": "application/mcp-server-card+json",
      "url": "https://ecaguide.org/.well-known/mcp/eca-guide.json",
      "description": "Live MCP server for Drupal ECA (Events-Conditions-Actions). Searches the ECA documentation and serves the machine-readable authoring contract for every ECA plugin: configuration keys, allowed values, provided tokens, working example models, and static validation of an eca.eca.*.yml model before it is imported.",
      "capabilities": [
        "search_docs",
        "get_page",
        "list_sections",
        "get_plugin_schema",
        "search_plugins",
        "get_model_examples",
        "validate_model"
      ],
      "representativeQueries": [
        "how do tokens work in Drupal ECA",
        "which ECA action sends an email when content is published",
        "what are the configuration keys for the ECA condition that compares an entity field value",
        "check this Drupal ECA model YAML for errors before I import it"
      ],
      "tags": [
        "drupal",
        "eca",
        "documentation",
        "workflow-automation",
        "no-code"
      ],
      "version": "1.0.0",
      "metadata": {
        "transport": "streamable-http",
        "endpoint": "https://ecaguide.org/mcp"
      }
    },
    {
      "identifier": "urn:air:ecaguide.org:skill:eca-guide",
      "displayName": "ECA Guide agent skill",
      "type": "application/ai-skill+md",
      "url": "https://ecaguide.org/.well-known/skills/eca-guide/SKILL.md",
      "description": "Agent skill for Drupal ECA: core concepts, the sub-module and contrib module map, patterns for developing custom ECA plugins, and how to reach the ECA Guide MCP server.",
      "representativeQueries": [
        "how do I automate Drupal behavior without writing code",
        "which ECA sub-module handles form alterations",
        "how do I write a custom ECA action plugin in PHP"
      ],
      "tags": [
        "drupal",
        "eca",
        "skill",
        "no-code"
      ],
      "version": "3c649c5153052692",
      "metadata": {
        "installUrl": "https://ecaguide.org/.well-known/skills/",
        "installClient": "opencode"
      }
    },
    {
      "identifier": "urn:air:ecaguide.org:docs:llms-full",
      "displayName": "ECA Guide documentation corpus",
      "type": "text/markdown",
      "url": "https://ecaguide.org/llms-full.txt",
      "description": "The complete ECA documentation as a single Markdown file. This is a passive text corpus, not a callable tool: it exposes no operations and answers no queries. It exists as a fallback for agents that cannot connect to the MCP server above, which serves the same knowledge in targeted, far cheaper responses.",
      "representativeQueries": [
        "read the whole Drupal ECA documentation as one file",
        "plain text copy of the ECA guide for offline use"
      ],
      "tags": [
        "drupal",
        "eca",
        "documentation",
        "corpus"
      ],
      "version": "ab60da35e839bc26"
    }
  ]
}
