Skip to content

Hosted HTTP transport (multi-tenant)#3

Merged
xTITUSMAXIMUSX merged 1 commit into
mainfrom
feat/hosted-transport
Jul 1, 2026
Merged

Hosted HTTP transport (multi-tenant)#3
xTITUSMAXIMUSX merged 1 commit into
mainfrom
feat/hosted-transport

Conversation

@xTITUSMAXIMUSX

Copy link
Copy Markdown
Collaborator

Adds an optional hosted HTTP transport so VyMCP can run as one shared server that many engineers connect to, each authenticating with their own VyManager token per request — instead of everyone running a local stdio instance. stdio remains the default and is unchanged.

What changed

  • ServerConfig splits server settings from the per-request token; VYMANAGER_API_TOKEN is only required for stdio.
  • VyManagerTokenVerifier validates each request's bearer token against VyManager (cached); tools resolve a per-token client via current_client().
  • Plans are owner-scoped — one engineer cannot apply another's pending change.
  • main() runs stdio or streamable-http per VYMCP_TRANSPORT.

Config (http mode)

VYMCP_TRANSPORT=http, VYMCP_HOST, VYMCP_PORT, VYMCP_PUBLIC_URL (see .env.example).

Verified

Live against VyManager: an MCP http client connects with a bearer token and acts as that user; unauthenticated/invalid tokens are rejected (401); a second token cannot apply the first's plan. Gate green — ruff, mypy, 67 tests.

VyMCP can now run as one shared server (VYMCP_TRANSPORT=http) that many
engineers connect to, each authenticating with their own vym_ token per
request — instead of everyone running a local stdio instance.

- ServerConfig splits server settings from the per-request token; api_token
  only required for stdio
- VyManagerTokenVerifier validates each request's bearer token against
  VyManager (cached); tools resolve a per-token client via current_client()
- plans are owner-scoped so one engineer can't apply another's pending change
- main() runs stdio or streamable-http per config; stdio path unchanged

Verified live against VyManager: http client connects with a bearer token
and acts as that user; unauthenticated/invalid tokens rejected; a second
token cannot apply the first's plan.
@xTITUSMAXIMUSX
xTITUSMAXIMUSX merged commit d9470f6 into main Jul 1, 2026
4 checks passed
@xTITUSMAXIMUSX
xTITUSMAXIMUSX deleted the feat/hosted-transport branch July 1, 2026 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant