{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.JlMoreno00/sabor","description":"Recipes, meal plans and shopping lists with SQLite by default; Mealie and Postgres optional.","title":"Sabor","repository":{"url":"https://github.com/JlMoreno00/sabor","source":"github","id":"1425873570"},"version":"0.4.0","packages":[{"registryType":"oci","identifier":"ghcr.io/jlmoreno00/sabor:0.4.0","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://127.0.0.1:9170/mcp"},"runtimeArguments":[{"description":"Publish the MCP endpoint on loopback only.","type":"named","name":"-p","value":"127.0.0.1:9170:8080"},{"description":"Persistent volume for local data.","type":"named","name":"-v","value":"sabor_data:/data"}],"environmentVariables":[{"description":"Preferred response language: es or en; empty leaves it unset.","name":"SABOR_LANGUAGE"},{"description":"Optional TOML configuration path; non-empty environment values override file settings.","name":"SABOR_CONFIG"},{"description":"Comma-separated toolsets to register: core, import, shopping_sync, pricing, preferences and legacy_* sets. Empty registers discovery only; unknown names fail startup.","default":"core,import,shopping_sync","name":"SABOR_TOOLSETS"},{"description":"Recipe backend: sqlite, mealie or postgres. Unset selects mealie when MEALIE_BASE_URL is non-empty, otherwise sqlite.","name":"SABOR_STORE"},{"description":"Postgres connection URL; required only with SABOR_STORE=postgres. Keep it in the environment or a secret store.","isSecret":true,"name":"SABOR_DATABASE_URL"},{"description":"Optional Mealie adapter URL; leave unset to use built-in SQLite. Set together with MEALIE_API_TOKEN.","name":"MEALIE_BASE_URL"},{"description":"Required only for the optional Mealie adapter: API token sent as a bearer token; SQLite needs no token.","isSecret":true,"name":"MEALIE_API_TOKEN"},{"description":"Optional Bring! account email for the shopping_sync toolset; set together with BRING_PASSWORD.","isSecret":true,"name":"BRING_EMAIL"},{"description":"Optional Bring! account password; set together with BRING_EMAIL.","isSecret":true,"name":"BRING_PASSWORD"},{"description":"Opt-in Mercadona pricing provider for the pricing toolset (true/false).","default":"false","name":"SABOR_MERCADONA_ENABLED"},{"description":"Mercadona warehouse code used for prices, e.g. mad1 or bcn1.","default":"mad1","name":"MERCADONA_WAREHOUSE"},{"description":"Enable read-only Open Prices crowd observations; add pricing to SABOR_TOOLSETS. Default false.","default":"false","name":"SABOR_OPEN_PRICES_ENABLED"}]},{"registryType":"pypi","identifier":"sabor-mcp","version":"0.4.0","runtimeHint":"uvx","transport":{"type":"stdio"},"runtimeArguments":[{"type":"named","name":"--python","value":"\u003e=3.12"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-11-14T09:15:42.232287Z","publishedAt":"2026-11-14T09:15:42.232287Z","updatedAt":"2026-11-14T09:15:42.232287Z","isLatest":true}}}
