{
  "specVersion": "1.0",
  "host": {
    "displayName": "Layer",
    "identifier": "https://layer.ai",
    "documentationUrl": "https://layer.ai/docs"
  },
  "entries": [
    {
      "identifier": "urn:air:layer.ai:server:creative",
      "displayName": "Layer MCP Server",
      "type": "application/mcp-server-card+json",
      "data": {
        "name": "Layer MCP Server",
        "description": "Generate and edit images, video, 3D, and audio; run Blueprint workflows; train styles; assemble video timelines; upload and score files.",
        "url": "https://mcp.app.layer.ai/mcp",
        "transport": "streamable-http",
        "documentation_url": "https://layer.ai/docs/mcp",
        "setup_url": "https://layer.ai/docs/mcp/setup",
        "authorization": {
          "type": "oauth2",
          "flow": "authorization_code",
          "pkce_required": true,
          "dynamic_client_registration": true,
          "authorization_servers": [
            "https://auth.app.layer.ai/"
          ],
          "authorization_server_metadata": "https://auth.app.layer.ai/.well-known/oauth-authorization-server",
          "scopes_supported": [
            "openid",
            "profile",
            "email",
            "offline_access"
          ],
          "description": "Unauthenticated requests return 401 with a `WWW-Authenticate: Bearer resource_metadata=…` challenge pointing at the RFC 9728 protected-resource metadata for that server. Follow it to the authorization server, register dynamically, and run the authorization-code + PKCE flow.",
          "protected_resource_metadata": "https://mcp.app.layer.ai/.well-known/oauth-protected-resource/mcp"
        },
        "tool_count": 57,
        "tools": [
          "cancel_agent_turn",
          "cancel_inference",
          "cancel_training_run",
          "cancel_workflow_run",
          "compose_image",
          "create_reference_set",
          "estimate_forge_price",
          "estimate_training_price",
          "estimate_video_timeline_price",
          "estimate_workflow_price",
          "execute_forge",
          "execute_workflow",
          "export_parallax",
          "export_tileset",
          "export_ui_kit",
          "get_agent_response",
          "get_base_model",
          "get_blueprint_system_config",
          "get_file_scores",
          "get_files",
          "get_forge_instructions",
          "get_forge_run",
          "get_generation_run",
          "get_inference_tool",
          "get_instructions",
          "get_project",
          "get_reference_set",
          "get_trained_model",
          "get_training_status",
          "get_trend",
          "get_workflow_instructions",
          "get_workflow_run",
          "get_workspace",
          "import_workflow",
          "list_agents",
          "list_base_models",
          "list_chat_sessions",
          "list_file_lifecycle_statuses",
          "list_inference_tools",
          "list_output_scoring_rules",
          "list_projects",
          "list_reference_sets",
          "list_training_runs",
          "list_trends",
          "list_workflows",
          "list_workspaces",
          "pack_sprite_sheet",
          "render_text",
          "render_video_timeline",
          "request_file_upload_url",
          "run_inference_tool",
          "score_files",
          "send_agent_message",
          "set_file_lifecycle_status",
          "split_sprite_sheet",
          "start_training",
          "upload_file"
        ],
        "mcp_apps": {
          "supported": true,
          "specification": {
            "name": "MCP Apps",
            "extension": "io.modelcontextprotocol/ui",
            "version": "2026-01-26",
            "url": "https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx",
            "documentation_url": "https://apps.extensions.modelcontextprotocol.io/api/"
          },
          "mime_type": "text/html;profile=mcp-app",
          "view_delivery": "inline",
          "view_url_template": "https://mcp.app.layer.ai/apps/{view}/index.html",
          "description": "Layer's creative MCP server ships an MCP Apps view. Tools that carry `_meta.ui.resourceUri` return a `ui://` HTML resource the host renders inline, so a generation appears as an interactive result in the conversation rather than as a run id to poll. Hosts that do not negotiate the `io.modelcontextprotocol/ui` extension are unaffected — the tools return their normal structured result.",
          "documentation_url": "https://layer.ai/docs/mcp",
          "views": [
            {
              "uri": "ui://layer/execute-generation",
              "name": "execute-generation",
              "mimeType": "text/html;profile=mcp-app",
              "url": "https://mcp.app.layer.ai/apps/execute-generation/index.html"
            }
          ],
          "tools": [
            {
              "name": "execute_forge",
              "resource_uri": "ui://layer/execute-generation"
            },
            {
              "name": "execute_workflow",
              "resource_uri": "ui://layer/execute-generation"
            },
            {
              "name": "run_inference_tool",
              "resource_uri": "ui://layer/execute-generation"
            }
          ]
        }
      },
      "description": "Generate and edit images, video, 3D, and audio; run Blueprint workflows; train styles; assemble video timelines; upload and score files.",
      "capabilities": [
        "cancel_agent_turn",
        "cancel_inference",
        "cancel_training_run",
        "cancel_workflow_run",
        "compose_image",
        "create_reference_set",
        "estimate_forge_price",
        "estimate_training_price",
        "estimate_video_timeline_price",
        "estimate_workflow_price",
        "execute_forge",
        "execute_workflow",
        "export_parallax",
        "export_tileset",
        "export_ui_kit",
        "get_agent_response",
        "get_base_model",
        "get_blueprint_system_config",
        "get_file_scores",
        "get_files",
        "get_forge_instructions",
        "get_forge_run",
        "get_generation_run",
        "get_inference_tool",
        "get_instructions",
        "get_project",
        "get_reference_set",
        "get_trained_model",
        "get_training_status",
        "get_trend",
        "get_workflow_instructions",
        "get_workflow_run",
        "get_workspace",
        "import_workflow",
        "list_agents",
        "list_base_models",
        "list_chat_sessions",
        "list_file_lifecycle_statuses",
        "list_inference_tools",
        "list_output_scoring_rules",
        "list_projects",
        "list_reference_sets",
        "list_training_runs",
        "list_trends",
        "list_workflows",
        "list_workspaces",
        "pack_sprite_sheet",
        "render_text",
        "render_video_timeline",
        "request_file_upload_url",
        "run_inference_tool",
        "score_files",
        "send_agent_message",
        "set_file_lifecycle_status",
        "split_sprite_sheet",
        "start_training",
        "upload_file"
      ],
      "representativeQueries": [
        "generate a game character sprite from a text prompt",
        "turn this concept art into a rigged 3D model with PBR textures",
        "train a custom style on my studio's own artwork",
        "estimate what a video generation costs before running it"
      ],
      "tags": [
        "mcp",
        "generative-ai",
        "games",
        "image",
        "video",
        "3d",
        "audio"
      ]
    },
    {
      "identifier": "urn:air:layer.ai:server:management",
      "displayName": "Layer Management MCP Server",
      "type": "application/mcp-server-card+json",
      "data": {
        "name": "Layer Management MCP Server",
        "description": "Administer a workspace: projects, groups, members, roles, usage limits, and Creative Unit consumption. Kept separate so admin tools do not crowd the creative toolset.",
        "url": "https://mcp.app.layer.ai/mcp-management",
        "transport": "streamable-http",
        "documentation_url": "https://layer.ai/docs/mcp/management",
        "setup_url": "https://layer.ai/docs/mcp/management/setup",
        "authorization": {
          "type": "oauth2",
          "flow": "authorization_code",
          "pkce_required": true,
          "dynamic_client_registration": true,
          "authorization_servers": [
            "https://auth.app.layer.ai/"
          ],
          "authorization_server_metadata": "https://auth.app.layer.ai/.well-known/oauth-authorization-server",
          "scopes_supported": [
            "openid",
            "profile",
            "email",
            "offline_access"
          ],
          "description": "Unauthenticated requests return 401 with a `WWW-Authenticate: Bearer resource_metadata=…` challenge pointing at the RFC 9728 protected-resource metadata for that server. Follow it to the authorization server, register dynamically, and run the authorization-code + PKCE flow.",
          "protected_resource_metadata": "https://mcp.app.layer.ai/.well-known/oauth-protected-resource/mcp-management"
        },
        "tool_count": 31,
        "tools": [
          "add_group_member",
          "add_project_members",
          "clear_ai_policy",
          "create_group",
          "create_invite",
          "create_project",
          "delete_group",
          "delete_project",
          "get_ai_policy",
          "get_effective_ai_policy",
          "get_project",
          "get_workspace_usage",
          "invite_member",
          "list_group_members",
          "list_groups",
          "list_invites",
          "list_projects",
          "list_workspace_members",
          "list_workspaces",
          "patch_ai_policy",
          "reactivate_member",
          "remove_group_member",
          "remove_group_usage_limit",
          "remove_project_member",
          "resend_invite",
          "revoke_invite",
          "set_ai_policy",
          "set_group_usage_limit",
          "suspend_member",
          "update_group_role",
          "update_project"
        ],
        "mcp_apps": {
          "supported": false,
          "specification": {
            "name": "MCP Apps",
            "extension": "io.modelcontextprotocol/ui",
            "version": "2026-01-26",
            "url": "https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx",
            "documentation_url": "https://apps.extensions.modelcontextprotocol.io/api/"
          },
          "views": [],
          "tools": []
        }
      },
      "description": "Administer a workspace: projects, groups, members, roles, usage limits, and Creative Unit consumption. Kept separate so admin tools do not crowd the creative toolset.",
      "capabilities": [
        "add_group_member",
        "add_project_members",
        "clear_ai_policy",
        "create_group",
        "create_invite",
        "create_project",
        "delete_group",
        "delete_project",
        "get_ai_policy",
        "get_effective_ai_policy",
        "get_project",
        "get_workspace_usage",
        "invite_member",
        "list_group_members",
        "list_groups",
        "list_invites",
        "list_projects",
        "list_workspace_members",
        "list_workspaces",
        "patch_ai_policy",
        "reactivate_member",
        "remove_group_member",
        "remove_group_usage_limit",
        "remove_project_member",
        "resend_invite",
        "revoke_invite",
        "set_ai_policy",
        "set_group_usage_limit",
        "suspend_member",
        "update_group_role",
        "update_project"
      ],
      "representativeQueries": [
        "list the projects in my Layer workspace",
        "invite a teammate to a workspace and set their role",
        "how many Creative Units has this workspace spent this month"
      ],
      "tags": [
        "mcp",
        "management",
        "workspace",
        "administration"
      ]
    },
    {
      "identifier": "urn:air:layer.ai:api:rest",
      "displayName": "Layer REST API",
      "type": "application/openapi+json",
      "url": "https://layer.ai/openapi.json",
      "description": "HTTP API for generating and editing images, video, 3D, and audio, training custom styles, running Blueprint workflows, and managing workspaces. Base URL https://api.app.layer.ai/api.",
      "capabilities": [
        "generate",
        "edit",
        "estimate",
        "train",
        "workflow",
        "upload",
        "score"
      ],
      "representativeQueries": [
        "call an HTTP API to generate a game asset",
        "poll a long-running image generation until it finishes",
        "upload a reference image and generate from it over REST"
      ],
      "tags": [
        "rest",
        "openapi",
        "generative-ai",
        "games"
      ]
    },
    {
      "identifier": "urn:air:layer.ai:skills:layer",
      "displayName": "Layer Agent Skills",
      "type": "application/json",
      "url": "https://layer.ai/.well-known/agent-skills/index.json",
      "description": "Procedural instructions for working with Layer, as SKILL.md documents an agent can load before it calls anything: how to authenticate, how to connect an MCP client, and how to generate assets, train a custom style, run a Blueprint workflow, and administer a workspace. Each entry's `digest` is the SHA-256 of the document served at its `url`.",
      "capabilities": [
        "layer-api-authentication",
        "layer-connect-mcp",
        "layer-generate-assets",
        "layer-manage-workspace",
        "layer-run-workflows",
        "layer-train-custom-style"
      ],
      "representativeQueries": [
        "how do I authenticate against Layer",
        "how do I connect an MCP client to Layer",
        "how do I train a custom style and generate with it"
      ],
      "tags": [
        "agent-skills",
        "documentation",
        "procedural"
      ]
    }
  ]
}
