{
  "service": "metabase",
  "displayName": "Metabase",
  "categories": [
    "Data",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "mb_api_key_...",
      "description": "Metabase API key sent with the X-API-Key header. Create an API key from Admin settings > Authentication > API keys in Metabase.",
      "extraFields": [
        {
          "key": "instanceUrl",
          "label": "Instance URL",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "https://metabase.example.com",
          "description": "Your public HTTPS Metabase instance URL. URLs ending in /api are also accepted."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.metabase.com",
  "actions": [
    {
      "id": "metabase.get_card",
      "service": "metabase",
      "name": "get_card",
      "description": "Retrieve one Metabase card by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A positive numeric Metabase ID."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A Metabase entity ID string."
              }
            ],
            "description": "A Metabase numeric ID or entity ID string."
          },
          "legacyMbql": {
            "type": "boolean",
            "description": "Whether to request the legacy MBQL response shape."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for retrieving one Metabase card."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "card": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Metabase entity object."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for one Metabase card."
      }
    },
    {
      "id": "metabase.get_collection",
      "service": "metabase",
      "name": "get_collection",
      "description": "Retrieve one Metabase collection by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A positive numeric Metabase ID."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A Metabase entity ID string."
              }
            ],
            "description": "A Metabase numeric ID or entity ID string."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving one Metabase collection."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Metabase entity object."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for one Metabase collection."
      }
    },
    {
      "id": "metabase.get_current_user",
      "service": "metabase",
      "name": "get_current_user",
      "description": "Get the Metabase user associated with the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Metabase entity object."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for the current Metabase user."
      }
    },
    {
      "id": "metabase.get_dashboard",
      "service": "metabase",
      "name": "get_dashboard",
      "description": "Retrieve one Metabase dashboard by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A positive numeric Metabase ID."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A Metabase entity ID string."
              }
            ],
            "description": "A Metabase numeric ID or entity ID string."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving one Metabase dashboard."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "dashboard": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Metabase entity object."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for one Metabase dashboard."
      }
    },
    {
      "id": "metabase.get_database",
      "service": "metabase",
      "name": "get_database",
      "description": "Retrieve one Metabase database by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A positive numeric Metabase ID."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A Metabase entity ID string."
              }
            ],
            "description": "A Metabase numeric ID or entity ID string."
          },
          "include": {
            "type": "string",
            "enum": [
              "tables",
              "tables.fields"
            ],
            "description": "Related database data to include."
          },
          "includeEditableDataModel": {
            "type": "boolean",
            "description": "Whether to include editable data model metadata."
          },
          "excludeUneditableDetails": {
            "type": "boolean",
            "description": "Whether to exclude details the API key cannot edit."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for retrieving one Metabase database."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "database": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Metabase entity object."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for one Metabase database."
      }
    },
    {
      "id": "metabase.list_cards",
      "service": "metabase",
      "name": "list_cards",
      "description": "List Metabase cards, also known as questions.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "enum": [
              "archived",
              "table",
              "using_model",
              "bookmarked",
              "using_segment",
              "all",
              "mine",
              "database"
            ],
            "description": "Card list filter."
          },
          "modelId": {
            "type": "integer",
            "minimum": 1,
            "description": "Model ID to filter cards by."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Metabase cards."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "cards": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Metabase entity object."
            },
            "description": "Metabase cards returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for Metabase cards."
      }
    },
    {
      "id": "metabase.list_collections",
      "service": "metabase",
      "name": "list_collections",
      "description": "List Metabase collections visible to the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "archived": {
            "type": "boolean",
            "description": "Whether to include archived collections."
          },
          "excludeOtherUserCollections": {
            "type": "boolean",
            "description": "Whether to exclude other users' personal collections."
          },
          "namespace": {
            "type": "string",
            "minLength": 1,
            "description": "Collection namespace to filter by."
          },
          "personalOnly": {
            "type": "boolean",
            "description": "Whether to return only personal collections."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Metabase collections."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "collections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Metabase entity object."
            },
            "description": "Metabase collections returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for Metabase collections."
      }
    },
    {
      "id": "metabase.list_dashboards",
      "service": "metabase",
      "name": "list_dashboards",
      "description": "List Metabase dashboards visible to the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "enum": [
              "all",
              "mine",
              "archived"
            ],
            "description": "Dashboard list filter."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Metabase dashboards."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "dashboards": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Metabase entity object."
            },
            "description": "Metabase dashboards returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for Metabase dashboards."
      }
    },
    {
      "id": "metabase.list_databases",
      "service": "metabase",
      "name": "list_databases",
      "description": "List Metabase databases visible to the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "include": {
            "type": "string",
            "enum": [
              "tables",
              "schemas"
            ],
            "description": "Related database data to include."
          },
          "includeAnalytics": {
            "type": "boolean",
            "description": "Whether to include analytics database metadata."
          },
          "saved": {
            "type": "boolean",
            "description": "Whether to return saved query databases."
          },
          "includeEditableDataModel": {
            "type": "boolean",
            "description": "Whether to include editable data model metadata."
          },
          "excludeUneditableDetails": {
            "type": "boolean",
            "description": "Whether to exclude details the API key cannot edit."
          },
          "includeOnlyUploadable": {
            "type": "boolean",
            "description": "Whether to return only uploadable databases."
          },
          "routerDatabaseId": {
            "type": "integer",
            "minimum": 1,
            "description": "Router database ID to filter by."
          },
          "canQuery": {
            "type": "boolean",
            "description": "Whether to return databases the API key can query."
          },
          "canWriteMetadata": {
            "type": "boolean",
            "description": "Whether to return databases the API key can edit metadata for."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Metabase databases."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "databases": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Metabase entity object."
            },
            "description": "Metabase databases returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for Metabase databases."
      }
    },
    {
      "id": "metabase.search",
      "service": "metabase",
      "name": "search",
      "description": "Search Metabase content visible to the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Search text."
          },
          "context": {
            "type": "string",
            "enum": [
              "search-bar",
              "search-app",
              "command-palette",
              "entity-picker",
              "data-picker",
              "type-filter",
              "basic-actions",
              "browse",
              "embedding-setup",
              "document",
              "library",
              "dependencies",
              "model-migration",
              "api",
              "metabot"
            ],
            "description": "Metabase search context."
          },
          "archived": {
            "type": "boolean",
            "description": "Whether to search archived content."
          },
          "collectionId": {
            "type": "integer",
            "minimum": 1,
            "description": "Collection ID to search within."
          },
          "tableDatabaseId": {
            "type": "integer",
            "minimum": 1,
            "description": "Database ID to filter table search results by."
          },
          "models": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "dashboard",
                "table",
                "dataset",
                "segment",
                "collection",
                "measure",
                "transform",
                "document",
                "database",
                "action",
                "indexed-entity",
                "metric",
                "card"
              ],
              "description": "Metabase model type to include in search results."
            },
            "description": "Metabase model types to include."
          },
          "includeDashboardQuestions": {
            "type": "boolean",
            "description": "Whether to include dashboard questions."
          },
          "includeMetadata": {
            "type": "boolean",
            "description": "Whether to include result metadata."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for searching Metabase content."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Metabase entity object."
            },
            "description": "Metabase search results returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Metabase API response object."
          }
        },
        "additionalProperties": false,
        "description": "Output payload for Metabase search results."
      }
    }
  ]
}
