> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getbifrost.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# v1.5.0-prerelease1

> v1.5.0-prerelease1 changelog - 2026-04-01

<Tabs>
  <Tab title="NPX">
    ```bash theme={null}
    npx -y @maximhq/bifrost --transport-version v1.5.0-prerelease1
    ```
  </Tab>

  <Tab title="Docker">
    ```bash theme={null}
    docker pull maximhq/bifrost:v1.5.0-prerelease1
    docker run -p 8080:8080 maximhq/bifrost:v1.5.0-prerelease1
    ```
  </Tab>
</Tabs>

<Update label="Bifrost(HTTP)" description="1.5.0-prerelease1">
  * feat: dedicated provider keys API - keys are now managed via `/api/providers/{provider}/keys` endpoints instead of being embedded in provider create/update payloads
  * feat: VK provider config key\_ids now supports \["\*"] wildcard to allow all keys; empty key\_ids denies all; handler resolves wildcard to AllowAllKeys flag without DB key lookups
  * feat: now plugins can start injecting logs at trace level. Just use `ctx.Log(schemas.LogLevelInfo, "Test log")`
  * feat: add option to disable automatic MCP tool injection per request
  * feat: virtual key MCP configs now act as an execution-time allow-list - tools not permitted by the VK are blocked at inference and MCP tool execution
  * refactor: standardize empty array conventions in bifrost. Empty array means no tools/keys are allowed, \["\*"] means all tools/keys are allowed.
  * feat: add support for request level extra headers in MCP tool execution.
  * fix: add support for `x-bf-mcp-include-clients` and `x-bf-mcp-include-tools` request headers to filter MCP tools/list response when using bifrost as an MCP gateway.
  * refactor: parallelize model listing for providers to speed up startup time.
  * fix: send back accumulated usage in MCP agent mode.
  * feat: MCP configuration now supports assigning virtual keys with per-tool access control.
  * feat: adds option to allow MCP clients to run on all virtual keys without explicit assignment.
  * feat: add support for pricing overrides.
  * feat: add StabilityAI provider support to Bedrock.
  * fix: handle text, vtt, srt response formats in OpenAI transcription response.

  <Warning>
    **v1.5.0 contains multiple breaking changes.** See the [v1.5.0 Migration Guide](/migration-guides/v1.5.0) for full before/after examples and a migration checklist.
  </Warning>

  ## Breaking Changes in This Release

  This prerelease introduces 9 breaking changes. See the **[v1.5.0 Migration Guide](/migration-guides/v1.5.0)** for full before/after examples, automatic migration details, and a step-by-step checklist.

  | #                                                                                                       | Breaking Change                                                                   | Affected                |
  | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ----------------------- |
  | [1](/migration-guides/v1.5.0#breaking-change-1-empty-array-now-means-deny-all)                          | Empty array (`[]`) now means "deny all" on all allow-list fields                  | `config.json`, REST API |
  | [2](/migration-guides/v1.5.0#breaking-change-2-allowed_keys-renamed-to-key_ids)                         | `allowed_keys` renamed to `key_ids` in VK provider configs                        | `config.json`, REST API |
  | [3](/migration-guides/v1.5.0#breaking-change-3-virtual-key-provider_configs-is-deny-by-default)         | Virtual Key `provider_configs` is deny-by-default (empty = no providers)          | `config.json`, REST API |
  | [4](/migration-guides/v1.5.0#breaking-change-4-whitelist-validation)                                    | WhiteList validation: wildcard cannot be mixed, no duplicates                     | REST API                |
  | [5](/migration-guides/v1.5.0#breaking-change-5-weight-is-now-nullable)                                  | `weight` is now nullable (`*float64`) on VK provider configs                      | REST API, Go SDK        |
  | [6](/migration-guides/v1.5.0#breaking-change-6-provider-keys-api-separated)                             | Provider keys API separated - `keys` removed from provider payloads               | REST API                |
  | [7](/migration-guides/v1.5.0#breaking-change-7-compact-plugin-restructured)                             | Compact plugin: `enable_litellm_fallbacks` replaced by three granular options     | Plugin config           |
  | [8](/migration-guides/v1.5.0#breaking-change-8-replicate-image-edits-removed-from-generations-endpoint) | Replicate image edits removed from `/v1/images/generations`                       | REST API                |
  | [9](/migration-guides/v1.5.0#breaking-change-9-ollama-and-sgl-per-key-url-configuration)                | Ollama and SGL moved to per-key URL configuration                                 | `config.json`, REST API |
  | [10](/migration-guides/v1.5.0#breaking-change-10-go-sdk-changes)                                        | Go SDK: `HuggingFaceKeyConfig` removed, `providerRequiresKey()` signature changed | Go SDK                  |

  ***
</Update>

<Update label="Core" description="1.5.0">
  * feat: add DisableAutoToolInject to MCPToolManagerConfig to suppress automatic MCP tool injection per request
  * feat: add BifrostContextKeyMCPAddedTools to context to track MCP tools added to the request
  * refactor: standardize empty array conventions in bifrost. Empty array means deny all, \["\*"] means allow all for models/tools/keys.
  * feat: add support for request-level extra headers in MCP tool execution using BifrostContextKeyMCPExtraHeaders key in context.
  * fix: send back accumulated usage in MCP agent mode.
  * feat: add StabilityAI provider support to Bedrock.
  * fix: handle text, vtt, srt response formats in OpenAI transcription response.
</Update>

<Update label="Framework" description="1.3.0">
  * feat: add provider keys CRUD to configstore and in-memory store
  * feat: add virtual key access management for MCP clients
  * feat: adds option to allow MCP clients to run on all virtual keys
  * feat: add image edit input view on logs
  * refactor: replace string slice with WhiteList type for model restrictions
  * refactor: blacklist models on new convention
  * fix: add blacklisted model field in tableKeyFromSchemaKey
  * feat: logging in plugins
  * chore: adds migration guide for 1.5 and test fixes
</Update>

<Update label="governance" description="1.5.0">
  * refactor: standardize empty array conventions for VK Provider & MCP Configs, and makes Provider Config weight optional for routing
  * feat: VK MCP config now works as an AllowList
  * refactor: standardize empty array conventions for VK Provider Config Allowed Keys
  * refactor: standardize empty array conventions for allowed models
  * refactor: replace string slices with WhiteList for allowlist fields
  * feat: implement scoped pricing override
  * refactor: custom pricing refactor
  * feat: adds option to allow MCP clients to run on all virtual keys
  * refactor: blacklist models on new convention
</Update>

<Update label="jsonparser" description="1.5.0">
  * chore: upgraded core to v1.5.0 and framework to v1.3.0
</Update>

<Update label="litellmcompat" description="0.1.0">
  * chore: upgraded core to v1.5.0 and framework to v1.3.0
</Update>

<Update label="logging" description="1.5.0">
  * feat: add image edit input view on logs
  * feat: logging in plugins
  * feat: implement scoped pricing override
  * refactor: custom pricing refactor
</Update>

<Update label="maxim" description="1.6.0">
  * chore: upgraded core to v1.5.0 and framework to v1.3.0
</Update>

<Update label="mocker" description="1.5.0">
  * chore: upgraded core to v1.5.0 and framework to v1.3.0
</Update>

<Update label="otel" description="1.2.0">
  * chore: upgraded core to v1.5.0 and framework to v1.3.0
</Update>

<Update label="semanticcache" description="1.5.0">
  * chore: upgraded core to v1.5.0 and framework to v1.3.0
</Update>

<Update label="telemetry" description="1.5.0">
  * feat: implement scoped pricing override
  * refactor: custom pricing refactor
</Update>
