Rust

2.6 MB of memory.
That's the whole runtime.

zeromcp vs rmcp — side by side.

Dependencies
3 ZeroMCP
vs.
6 Official SDK
Throughput
5.40K req/s ZeroMCP
vs.
2.19K req/s Official SDK
Memory
4 MB ZeroMCP
vs.
2.42 GB Official SDK

This is a hello world

Proc-macro imports, a server builder, tool attribute macros, and transport setup. 12 lines before your tool does anything.

rmcp 12 lines
use rmcp::{Server, Tool, tool};

#[tool(description = "Say hello")]
async fn hello(name: String) -> String {
    format!("Hello, {name}!")
}

#[tokio::main]
async fn main() {
    Server::new("test", "1.0.0")
        .tool(hello)
        .serve_stdio()
        .await;
}

This is the whole server

No proc macros. No server builder. No attribute ceremony.
Register a closure and serve.

ZeroMCP 8 lines
let mut server = Server::new();
server.add_tool("hello", "Say hello",
    Input::new().required("name", "string"),
    |args: Value, _ctx: Ctx| Box::pin(async move {
        let name = args["name"].as_str().unwrap_or("world");
        Ok(Value::String(format!("Hello, {name}!")))
    })
);
server.serve().await;

HTTP Performance — Head to Head

Mixed workload across all 7 MCP method types. 5-minute sustained load in Docker. Actix for ZeroMCP, stdio proxy for the official SDK.

req/s CPU Memory Ratio
ZeroMCP (Actix) 5.40K 0.17% 4 MB 2.5x
Official SDK 2.19K 0.03% 2.42 GB

The official Rust SDK leaks memory — 2.42 GB over 5 minutes. ZeroMCP Actix holds steady at 4 MB.

The tradeoff

Choose rmcp

If you want the macro-based tool registration system and don't mind pinning to nightly-adjacent Rust versions.

  • Macro-based tools — derive macros for tool definitions
  • Spec parity — tracks every spec change immediately
  • Enterprise support — maintained by the MCP specification team at Anthropic
Choose ZeroMCP

If you want stable Rust (1.78+), predictable memory (4 MB flat), and a handler that embeds in Actix or Axum.

  • Stable Rust 1.78+
  • Actix + Axum
  • 4 MB memory — flat under sustained load
  • Built-in sandbox with enforced permissions
  • 5.40K req/s on Actix

Register a function. It's an MCP tool.