
Federated MCP
github.com/ruvnet/federated-mcp- Category
- Developer Tools
- Rank
- No. 1719Tools index
Previous survey · No. 1726 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- ruvnet
- GitHub
- 66 stars
- Date
About
rUv's MCP federation implementation following the official spec — proper message framing, transport, and full protocol lifecycle for distributed agent registries.
What it does
Federated MCP is a TypeScript runtime for connecting AI services to distributed tools and data. It offers local and remote communication, capability exchange, HTTP and WebSocket handling, edge task routing, authentication primitives, and deployment-oriented components for Deno, Cloudflare Workers, Supabase, and other named providers.
Why it's ranked here
The project has useful building blocks and unusually broad deployment ambitions, but the supplied implementation does not consistently match its documentation. The core server uses a simple message envelope rather than its defined JSON-RPC types, while the Deno entry point serves a fixed response and exposes most management through an interactive terminal.
What's good
The code separates protocol types, server behavior, authentication, edge handlers, and provider deployment concerns. It includes explicit capability descriptions, structured error responses, configurable logging, JWT signing and verification, HTTP and WebSocket entry points, Cloudflare Durable Object session handling, and a detailed protocol schema covering tools, resources, prompts, cancellation, and completion.
Tradeoffs
Several advertised features are clearer in the README than in the supplied code. The core message handler only recognizes information and capability requests. The Cloudflare worker uses its own message types, and task processing stores input before returning a generic success result. The package manifest supplies one dependency but no scripts, package identity, or documented Node entry point. The Deno launch command requests broad permissions.
How to use it well
Use it as source material for a TypeScript prototype spanning Deno, edge functions, HTTP, and WebSockets. It best suits engineers prepared to reconcile its protocol layers and complete provider integration themselves. Treat the schema and adapters as a starting kit, not a finished federation platform or a general model orchestration product.
Technical notes+
src/packages/core/server.ts implements MCPServer around a custom { type, content } message shape, although src/packages/core/schema.ts separately defines JSON-RPC 2.0 request, notification, response, and error types. src/schema/schema.ts contains draft-07 MCP schema material. src/worker/index.ts provides /info, /capabilities, WebSocket upgrades, Durable Object sessions, and task persistence, using declarations from src/worker/cloudflare.d.ts. src/apps/deno/server.ts starts an HTTP server on port 3000, runs an interactive management loop, and imports SupabaseDeployer; its HTTP handler always returns a fixed online message. src/packages/edge/mcp.ts routes intent detection, meeting information, and webhook messages, while src/packages/edge/server.ts exposes matching HTTP routes. src/packages/core/auth.ts signs and verifies HS512 JWTs through a remote Deno module. package.json declares only @modelcontextprotocol/sdk from the SDK GitHub repository. src/jest.config.js configures ts-jest and expects tests beneath its configured root.
Observed
- License
- MIT License
- Primary language
- TypeScript
- Package surface
- package.json declares @modelcontextprotocol/sdk directly from the TypeScript SDK GitHub repository
- Interfaces
- Interactive Deno terminal, HTTP endpoints, WebSockets, edge HTTP routes, and reusable TypeScript server classes
- Runtime and platform support
- Deno server code and Cloudflare Workers code are present; the README also states Node.js, Supabase, and Fly.io support
- Protocol definitions
- JSON-RPC 2.0 TypeScript types and a draft-07 MCP JSON Schema are included
- Test configuration
- A ts-jest configuration expects tests under a tests root and matches specification or test naming patterns
Read from README.md, package.json, src/jest.config.js, src/worker/index.ts, src/schema/schema.ts, src/worker/cloudflare.ts, src/worker/cloudflare.d.ts, src/apps/deno/server.ts, src/packages/edge/mcp.ts, src/packages/core/auth.ts, src/packages/core/types.ts, src/packages/edge/types.ts, src/packages/core/server.ts, src/packages/edge/server.ts, src/packages/core/schema.ts.
What it can do
Establish MCP connections between distributed agents
Agent registry endpoints and connection parameters → Active federated network connections
Route messages between federated MCP nodes
MCP protocol messages with routing metadata → Delivered messages to target agents
Frame and parse MCP protocol messages
Raw message data and protocol specifications → Structured MCP message objects
Manage MCP connection lifecycle
Connection requests, heartbeats, and termination signals → Connection state changes and status updates
Register and discover distributed agents
Agent metadata and capability descriptions → Updated distributed agent registry
Validate MCP protocol compliance
Message format and protocol interaction patterns → Compliance status and error reports
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.