mcp-federation
Federates a Bitbucket MCP server behind the local gateway, making its repository and pull-request tooling available to MCP clients through a single Streamable HTTP endpoint.
Federates a Confluence MCP server behind the local gateway, exposing Confluence's content and page management tools, with optional tool prefixing and eager loading.
Federates a Jira MCP server behind the local gateway, exposing Jira's tools (issue tracking, projects, and related operations) to the MCP client once the service is activated.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-federationlist my federated services"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-federation
Local MCP gateway that federates multiple OAuth-protected HTTP MCP servers (Jira, Bitbucket, Confluence, …) behind a single Streamable HTTP endpoint.
One place to authorize: OAuth 2.1 (PKCE + Dynamic Client Registration, static
clientIdfallback), silent refresh, re-authorization without restartLazy tool loading: a session sees only
gateway_infountil a service is activatedWorks with any MCP client that speaks Streamable HTTP
Quick start
git clone git@github.com:rahmanroman/mcp-federation.git
cd mcp-federation
npm install
npm link # builds and installs the global `mcp-federation` command
mcp-federation add jira https://mcp.corp.example.com/jira/mcp
mcp-federation startUpdate: git pull && npm install (rebuilds dist/; the link stays). Uninstall: npm unlink -g mcp-federation.
Point your MCP client at http://127.0.0.1:3117/mcp. For Claude Code:
claude mcp add --transport http mcp-federation http://127.0.0.1:3117/mcpRelated MCP server: mcp-gw
CLI
mcp-federation start [-p | --port <n>] [--notify]
mcp-federation add <name> <url> [--prefix <p>]
mcp-federation remove <name>
mcp-federation list
mcp-federation get <name>Config — ~/.mcp-federation/config.json
{
"port": 3117,
"notify": false,
"lazy": true,
"services": {
"jira": { "url": "https://mcp.corp.example.com/jira/mcp" },
"confluence": {
"url": "https://mcp.corp.example.com/confluence/mcp",
"toolPrefix": "confluence_",
"eager": true,
"scope": "read write offline_access",
"clientId": "only-if-no-DCR"
}
}
}Services listed earlier win tool name collisions; use toolPrefix to avoid them. eager exposes a service's tools without activation (for clients that ignore tools/list_changed).
Development
npm test # end-to-end test against mock OAuth-protected servers
npm run probe -- <url> [--register] # check a server's OAuth capabilities (DCR, PKCE, refresh)This server cannot be deployed
Maintenance
Related MCP Connectors
Streamable HTTP MCP server for Google Calendar and Sheets with OAuth login.
Remote MCP server exposing SMI Aware tools, resources, and skills over Streamable HTTP.
Host your MCP tool over streamable HTTP in one command.
Self-hosted federated MCP gateway: one OAuth 2.1 MCP server in front of N apps, user-level scopes.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceAggregates multiple MCP servers behind a single, secure endpoint with unified tool/resource discovery, OAuth authentication, and resilient request routing. Enables users to manage and interact with multiple MCP backends through one centralized interface with load balancing and circuit breakers.2-
- AlicenseNot gradedqualityBmaintenanceAggregates multiple MCP servers into a single HTTP endpoint with tool namespacing, dashboard, and REST API for management.38 npmMIT
- AlicenseNot gradedqualityCmaintenanceAuthenticating reverse proxy for MCP servers providing credential isolation, OAuth2 token management, and composite tool aggregation.BSD Zero Clause
- FlicenseNot gradedqualityCmaintenanceA configurable MCP gateway that runs multiple Streamable HTTP MCP servers and exposes all their tools through a single endpoint, enabling tool aggregation and routing for MCP clients.1-