{
"mcpServers": {
"calculator": {
"args": [],
"command": "/path/to/your/server"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A full featured, enterprise grade rust MCP SDK
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
MIT. View license →
Is it maintained?
Last commit 1 days ago. 77 stars.
Will it work with my client?
Transport: stdio, sse, http. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
This server supports HTTP transport. Be the first to test it — help the community know if it works.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Turbomcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Production-ready Rust SDK for the Model Context Protocol (MCP) with zero-boilerplate macros, modular transport architecture, and WASM support.
TurboMCP 3.0 is a major architectural release featuring a modular 25-crate workspace, unified error handling,
no_stdcore for edge/WASM deployment, individual transport crates, and full MCP 2025-11-25 specification compliance. See the Migration Guide for upgrading from v1 or v2.
[dependencies]
turbomcp = "3.0.2"
tokio = { version = "1", features = ["full"] }
use turbomcp::prelude::*;
#[derive(Clone)]
struct Calculator;
#[server(name = "calculator", version = "1.0.0")]
impl Calculator {
/// Add two numbers together.
#[tool]
async fn add(&self, a: i64, b: i64) -> i64 {
a + b
}
/// Multiply two numbers.
#[tool]
async fn multiply(&self, a: i64, b: i64) -> i64 {
a * b
}
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
Calculator.run_stdio().await?;
Ok(())
}
Save, cargo run, and connect from Claude Desktop:
{
"mcpServers": {
"calculator": {
"command": "/path/to/your/server",
"args": []
}
}
}
TurboMCP uses feature flags for progressive enhancement. The default is stdio only.
| Preset | Includes | Use Case |
|--------|----------|----------|
| default | STDIO | CLI tools, Claude Desktop |
| minimal | STDIO | Same as default (explicit) |
| full | STDIO, HTTP, WebSocket, TCP, Unix, Telemetry | Production servers |
| full-stack | Full + all client transports | Server + Client development |
| all-transports | All transports + channel | Testing and benchmarks |
| Feature | Description |
|---------|-------------|
| stdio | Standard I/O transport (default) |
| http | HTTP/SSE with Axum integration |
| websocket | WebSocket bidirectional transport |
| tcp | Raw TCP socket transport |
| unix | Unix domain socket transport |
| channel | In-process channel (zero-overhead testing) |
| telemetry | OpenTelemetry, metrics, structured logging |
| auth | OAuth 2.1 with PKCE and multi-provider support |
| dpop | DPoP (RFC 9449) proof-of-possession |
| client-integration | Client library with STDIO transport |
| full-client | Client library with all transports |
# Production server with all transports and telemetry
turbomcp = { version = "3.0.2", features = ["full"] }
# Add authentication
turbomcp = { version = "3.0.2", features = ["full", "auth"] }
# Server + client for full-stack development
turbomcp = { version = "3.0.2", features = ["full-stack"] }
TurboMCP provides five attribute macros:
| Macro | Purpose |
|-------|---------|
| #[server] | Define an MCP server with name, version, and transport configuration |
| #[tool] | Register a method as a tool handler with automatic JSON schema generation |
| #[resource] | Register a resource handler with URI pattern matching |
| #[prompt] | Register a prompt template with parameter substitution |
| #[description] | Add rich descriptions to tool parameters |
use turbomcp::prelude::*;
#[derive(Clone)]
struct MyServer;
#[server(
name = "my-server",
version = "1.0.0",
description = "A server with tools, resources, and prompts"
)]
impl MyServer {
//
... [View full README on GitHub](https://github.com/Epistates/turbomcp#readme)