Skip to main content

Local outbound bridge agent for MCP capability forwarding

Project description

mcpassistant-gateway

Async local bridge that connects outbound to the remote MCP bridge over WSS and forwards invoke requests to local MCP servers using the MCP Python client library.

Run

pip install -e .
mcpassistant-gateway

mcpassistant-gateway now opens an interactive menu by default. Use /run inside the menu to start the gateway in the same terminal and view realtime logs. Press Ctrl+C while running to stop and return to the menu.

You can also use the built-in CLI helpers instead of editing config.json manually:

mcpassistant-gateway run
mcpassistant-gateway menu
mcpassistant-gateway settings
mcpassistant-gateway config show
mcpassistant-gateway config set --request-timeout-seconds 120
mcpassistant-gateway run --request-timeout-seconds 120

Inside mcpassistant-gateway menu, use slash commands:

/help
/login
/logout
/show
/set request_timeout_seconds 120
/settings
/run

/login behavior:

  • OAuth-first: starts remote OAuth session, opens browser, receives localhost callback, exchanges code, and saves JWT on success.
  • Legacy fallback: if OAuth endpoints are unavailable, falls back to POST /manage/jwt/issue.

For OAuth localhost callback, ensure your auth provider allows:

  • http://127.0.0.1:43110/callback

mcpassistant-gateway initializes MCP client sessions for configured mcpServers (stdio) and opens the outbound bridge connection to the remote server.

Startup token behavior:

  • If AGENT_JWT is already configured (env or config.json), startup continues without prompting.
  • If AGENT_JWT is missing, the CLI shows a styled prompt and asks you to paste the token.
  • If WebSocket auth fails with HTTP 403, the CLI asks for a fresh AGENT_JWT and retries immediately.
  • AGENT_ID is auto-derived from JWT claims (or token fingerprint fallback), so no manual AGENT_ID prompt.
  • Prompted values are saved into resolved config.json, so next runs do not ask again.

Set START_MCP_SERVERS=false if you only want the bridge process.

Configuration can be provided through .env and/or config.json.

If config.json does not exist, it is created automatically on first run with:

  • remote_server_base_url defaulting to https://hub.linkos.in/agent
  • a default mcpServers.filesystem entry scoped to your current working directory

Minimal dynamic .env:

REMOTE_SERVER_BASE_URL=https://your-remote-domain
AGENT_JWT=your_agent_jwt

With this mode:

  • REMOTE_WEBSOCKET_URL is derived as wss://.../connect
  • AGENT_ID and CAPABILITIES are derived from JWT claims (sub, capabilities) if not explicitly set
  • Local MCP calls are handled via MCP client sessions for mcpServers

mcpServers + mcpassistant-gateway-bridge

You can run MCP servers from config (supergateway-style) and derive local HTTP endpoints:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "supergateway", "--stdio", "npx", "-y", "@modelcontextprotocol/server-filesystem", "--port", "3004"],
      "port": 3004
    }
  }
}

Run one server:

mcpassistant-gateway-bridge --config ./config.json --name filesystem

Run all servers in config:

mcpassistant-gateway-bridge --config ./config.json

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcpassistant_gateway-0.1.2.tar.gz (68.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcpassistant_gateway-0.1.2-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file mcpassistant_gateway-0.1.2.tar.gz.

File metadata

  • Download URL: mcpassistant_gateway-0.1.2.tar.gz
  • Upload date:
  • Size: 68.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for mcpassistant_gateway-0.1.2.tar.gz
Algorithm Hash digest
SHA256 64981275d7530be9ed94a0172872aad2de051f8839d9fac692a5391fa883a29c
MD5 97cca9ecf5f0483ad991a5d09a21436d
BLAKE2b-256 710469f800ea9e291fa56a8be0b633f4d8c4fcc961001b7e58e1d042f988e129

See more details on using hashes here.

File details

Details for the file mcpassistant_gateway-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for mcpassistant_gateway-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0de31588d173bbff820dc11e9e90a0d8fe1d248aab09272b5f310ed8ae1cfd05
MD5 c51583c45685f914986601390a632e6d
BLAKE2b-256 2d93c194700cdda920411d9684dd8dff2bff2d3f6a90e62bef78398eb3ddd14a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page