{
  "name": "Foundry MCP Server",
  "version": "1.0.0",
  "description": "Real-time access to the Foundry Shopify theme codebase",
  "repository": "fuelmade/foundry",
  "branch": "1.0",
  "iconUrl": "https://foundry.mcp.fuelmade.com/icon.svg",
  "tools": [
    {
      "name": "Ask_Foundry",
      "description": "Ask ANY question about Foundry. Returns a direct answer, all matching features with summaries and preview links (live, theme editor, and in-context for overlays), and options to drill deeper.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "description": "Your question about Foundry features or capabilities."
          }
        },
        "required": [
          "question"
        ]
      },
      "annotations": {
        "title": "Ask Foundry",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_feature",
      "description": "Get feature information. Provide a query for detailed info including computed preview links, related files, and setup requirements. Omit query for the raw manifest of all features — note: the no-query form returns raw manifest data only, preview URLs are NOT computed. Use list_addons() for add-on preview links, or provide a slug/name to get computed previews for a specific feature.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Feature slug (e.g., \"fm-x-cart-gift-with-purchase\") or name (e.g., \"Gift With Purchase\"). Omit for the full manifest."
          }
        }
      },
      "annotations": {
        "title": "Get Feature Info",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_addons",
      "description": "List all fm-x-* add-on features available in Foundry. Returns slug, name, description, status, parentSlug, files, and computed preview URLs (live + editor) for each add-on. Use this instead of get_feature() when you need preview links for multiple add-ons — preview URLs are already included, no further lookups needed.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "title": "List Add-ons",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_docs",
      "description": "Get documentation or architecture diagrams. Omit topic to list available diagrams. Provide an architecture key (\"cart-flow\", \"variant-flow\", \"event-bus\", \"fm-slider\", \"component-patterns\") to get that diagram, or any other term to search technical docs.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "topic": {
            "type": "string",
            "description": "Architecture diagram key or doc search term. Omit to list available diagrams."
          }
        }
      },
      "annotations": {
        "title": "Get Documentation",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_skill",
      "description": "Get AI skill guides. Omit name to list all skills. Provide a name for the full step-by-step guide.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Skill name (e.g., \"foundry-create-slider\", \"foundry-setup-klaviyo\"). Omit to list all."
          }
        }
      },
      "annotations": {
        "title": "Get AI Skill Guide",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_components",
      "description": "List theme components by type.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "sections",
              "blocks",
              "snippets"
            ],
            "description": "sections = main building blocks; blocks = reusable components within sections; snippets = reusable Liquid code"
          }
        },
        "required": [
          "type"
        ]
      },
      "annotations": {
        "title": "List Theme Components",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_section_schema",
      "description": "Get configuration options for a specific section — what can be customized in the theme editor.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "section": {
            "type": "string",
            "description": "Section filename without .liquid extension (e.g., \"header\", \"cart-drawer\")"
          }
        },
        "required": [
          "section"
        ]
      },
      "annotations": {
        "title": "Get Section Schema",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_theme_settings",
      "description": "Get global theme settings configurable in the theme editor. Omit category for a list of setting groups; provide a category to get its settings.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "Setting group name (e.g., \"colors\", \"typography\", \"cart\"). Omit for group names only."
          }
        }
      },
      "annotations": {
        "title": "Get Theme Settings",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "search_locale_keys",
      "description": "Search translation strings used in the theme (button text, labels, messages, etc.).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Text to search for (e.g., \"add to cart\", \"sold out\")"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "title": "Search Locale Keys",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "read_file",
      "description": "Read the contents of a specific file.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "File path within the theme repo (e.g., \"sections/header.liquid\", \"snippets/fm-slider-controls.liquid\")"
          }
        },
        "required": [
          "path"
        ]
      },
      "annotations": {
        "title": "Read File",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_directory",
      "description": "List files and folders in a directory.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Directory path (e.g., \"sections\", \"blocks\", \"_src/scripts\")"
          }
        },
        "required": [
          "path"
        ]
      },
      "annotations": {
        "title": "List Directory",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "search_code",
      "description": "Search for text or patterns in the codebase. Returns matching files and line numbers.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Text or pattern to search for"
          },
          "path": {
            "type": "string",
            "description": "Limit to a directory (e.g., \"sections\", \"_src/scripts\")"
          },
          "extension": {
            "type": "string",
            "description": "Limit to a file type (e.g., \"liquid\", \"js\", \"scss\")"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "title": "Search Code",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    }
  ]
}