#4743·bifrost

[Feature]: Forward/aggregate upstream MCP server instructions in gateway initialize response

Author: schroejahr2Created Jun 27, 2026Updated Sep 22, 2026
Labelsfeature

Summary

When Bifrost's MCP Gateway aggregates one or more upstream MCP servers, the gateway's initialize response does not expose any instructions field, and the instructions configured on the upstream servers are silently dropped.

Per the MCP spec, a server may return an instructions string in the initialize result to tell the client how to use its tools/resources. Many servers use this (e.g. Outline's workspace-level "Additional MCP instructions" field). Routed through Bifrost, that guidance never reaches the client.

Reproduce

  1. Configure an upstream MCP server in Bifrost that sets a non-empty instructions value in its initialize result (e.g. self-hosted Outline with "Additional instructions" set under AI settings).
  2. Connect a client to the Bifrost MCP gateway endpoint and run the initialize handshake.
bash
curl -s -X POST http://<bifrost>:8083/mcp \
  -H "Authorization: Bearer <key>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"0.0.1"}}}'

Observed

serverInfo: {"name":"dev","version":"v1.5.11"}
instructions present: false

The gateway builds its own serverInfo and returns no instructions field; upstream instructions are not forwarded. Same on v1.6.0. A source scan finds Instructions only on LLM request params (system message), speech, realtime, and websocket-log types — nothing in the MCP gateway initialize path.

Expected

The gateway's initialize response should surface upstream server instructions. For multiple upstream servers, aggregate them (e.g. concatenated, each prefixed/labeled with its source server name).

Proposed (open to discussion)

  • Aggregate non-empty upstream instructions into the gateway initialize result, labeled per source server.
  • Optional config toggle to enable/disable forwarding, and/or a gateway-level override/prepend string.

Why it matters

Without this, server-authored usage policies and conventions (e.g. "always update this doc on relevant changes") are invisible to the client and have to be duplicated manually in each client's system prompt — defeating the point of setting them on the server.

Environment

  • Bifrost v1.5.11 (also confirmed on v1.6.0), MCP HTTP gateway, multiple aggregated upstream MCP servers.