Skip to content

[Feature] Support multiple upstream MCP servers (named upstreams + routing) #35

@olivrg

Description

@olivrg

Problem

Helio v0.1 can proxy only a single upstream — upstream is a single object in the
schema, with no naming/grouping/routing layer. A beta tester hit a YAML
duplicated mapping key error trying to add a second server. (That specific error
is invalid YAML on their part — two url: keys in one mapping — but the
underlying need is real: there is no supported way to configure more than one
upstream.)

Proposed Solution

  • Named upstreams (list/map instead of a single object).
  • A routing layer (tool-name prefix/namespace, or explicit per-tool mapping).
  • Annotation cache, audit, and policy engine keyed per upstream.
  • Roadmap-sized: touches the single-forwarder assumption at packages/proxy/src/cli.ts:304-342.

Area

  • Policy engine (matchers, conditions, rules)
  • Audit trail
  • Approvals (Slack, webhook, dashboard)
  • Rate / spend limits
  • Dashboard
  • CLI
  • Python SDK
  • Configuration (helio.yaml)
  • Documentation
  • Other

Alternatives Considered

document explicitly that v0.1 proxies exactly one upstream.

Additional Context

Metadata

Metadata

Assignees

Labels

area:upstreamUpstream MCP transport - forwarders and the session handshake.enhancementNew feature or requestepicLarge initiative tracked as an umbrella issue spanning multiple sub-tasks or dependent issues.

Type

No type
No fields configured for issues without a type.

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions