{
  "serverInfo": {
    "name": "footage.one",
    "version": "1.0.0",
    "description": "footage.one – Professional Digital Asset Management platform for photos, videos, and documents. Steerable by AI agents via Model Context Protocol — included in every plan, also free tier."
  },
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://mcp.footage.one/mcp"
  },
  "capabilities": ["tools", "resources"],
  "auth": {
    "primary": "oauth2",
    "issuer": "https://auth.footage.one/realms/footageone",
    "discovery": "https://auth.footage.one/realms/footageone/.well-known/openid-configuration",
    "description": "OAuth2 (Authorization Code Flow with PKCE) via Keycloak realm 'footageone' is the only currently supported authentication at the MCP endpoint. End-user clients like Claude Desktop trigger a browser login on first tool use; the client manages token lifecycle. Bearer-token auth at the MCP endpoint is on the roadmap but not yet implemented. For headless integrations today, use the REST API directly (https://app.footage.one/api/asset/) with an API token from https://app.footage.one/account."
  },
  "toolDomains": [
    {
      "name": "Assets",
      "tools": [
        "search_assets",
        "get_asset",
        "update_asset",
        "get_asset_download_url",
        "add_keywords_to_asset",
        "remove_keyword_from_asset",
        "get_asset_keywords",
        "generate_description"
      ]
    },
    {
      "name": "Albums",
      "tools": [
        "list_albums",
        "create_album",
        "get_album",
        "update_album",
        "delete_album",
        "add_assets_to_album",
        "remove_assets_from_album",
        "list_sub_albums",
        "create_sub_album",
        "list_album_shares",
        "share_album"
      ]
    },
    {
      "name": "Episodes",
      "tools": ["list_episodes", "get_episode", "add_assets_to_episode", "remove_assets_from_episode"]
    },
    {
      "name": "Storage",
      "tools": [
        "list_storages",
        "get_storage",
        "create_storage",
        "browse_storage",
        "import_storage_items",
        "list_storage_types"
      ]
    },
    {
      "name": "Keywords",
      "tools": ["search_keywords", "get_keyword_suggestions", "disambiguate_freewords"]
    },
    {
      "name": "Account & Teams",
      "tools": ["get_account_info", "list_teams"]
    }
  ],
  "examplePrompts": [
    "List the first five albums and their asset counts.",
    "Find assets tagged with 'Berlin' between April and June 2026 and put them in a new album.",
    "For all assets without description in the album 'Product Photos', generate a German description and save it."
  ],
  "links": {
    "website": "https://www.footage.one",
    "agentic": "https://www.footage.one/agentic",
    "developers": "https://www.footage.one/developers",
    "documentation": "https://www.footage.one/docs/mcp-server",
    "llmsTxt": "https://www.footage.one/llms.txt",
    "restApiRoot": "https://app.footage.one/api/asset/",
    "swaggerUi": "https://app.footage.one/api/asset/swagger-ui.html",
    "apiCatalog": "https://www.footage.one/.well-known/api-catalog",
    "oidcDiscovery": "https://auth.footage.one/realms/footageone/.well-known/openid-configuration",
    "contact": "https://www.footage.one/about"
  }
}
