Server data from the Official MCP Registry
High-quality Rust SDK for Model Context Protocol (MCP) with full TypeScript SDK compatibility
High-quality Rust SDK for Model Context Protocol (MCP) with full TypeScript SDK compatibility
This is a comprehensive documentation and development toolkit for the PMCP (Pragmatic Model Context Protocol) SDK. The codebase demonstrates excellent software engineering practices with quality gates, type safety, and clear documentation. Only minor dependency management and security review opportunities were identified. Supply chain analysis found 8 known vulnerabilities in dependencies (1 critical, 3 high severity).
4 files analyzed · 11 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-paiml-pmcp": {
"args": [
"-y",
"{{SERVER_NAME}}-landing"
],
"command": "npx"
}
}
}From the project's GitHub README.
Production-grade Rust implementation of the Model Context Protocol (MCP) - 16x faster than TypeScript, built with Toyota Way quality principles
PMCP is a complete MCP ecosystem for Rust, providing everything you need to build, test, and deploy production-grade MCP servers — in Rust, or from configuration alone:
config.toml alone, no Rust required (pmcp-server-toolkit, pmcp-sql-server, pmcp-openapi-server)Why PMCP?
unwrap() in production codeChoose your path based on experience and preference:
New in v2.9 — this removes the biggest blocker to putting organizational data behind MCP: you no longer need a Rust programmer. Describe a production MCP server over a SQL database or any OpenAPI / HTTP backend in a config.toml — declare the backend, a handful of curated tools, and a Code Mode policy — and a prebuilt binary serves it. No Rust, no recompiling. Curated tools cover the common ~20%; Code Mode handles the long-tail ~80% by generating queries against your schema/spec under a static, default-deny policy. A business analyst curates the API slice in config; the toolkit does the rest.
SQL — SQLite / Postgres / MySQL / Athena (runnable from a checkout of this repo):
cargo install pmcp-sql-server
# Seed a tiny demo DB, then serve it from config alone — two curated tools
# (list_books, books_by_author) + Code Mode for the long tail.
sqlite3 /tmp/pmcp-sqlite-explorer.db < crates/pmcp-sql-server/examples/sqlite-explorer.sql
pmcp-sql-server \
--config crates/pmcp-sql-server/examples/sqlite-explorer.toml \
--schema crates/pmcp-sql-server/examples/sqlite-explorer.sql
OpenAPI / HTTP — any REST backend, with six outgoing-auth models including OAuth passthrough (the server holds no standing credential and forwards the caller's own token, so it can only act as the signed-in user):
cargo install pmcp-openapi-server
# Curated configs ship with the crate — e.g. a London Tube (api_key) showcase and
# a Microsoft-Graph / Excel "Contoso" (oauth_passthrough) example. These talk to a
# live backend, so supply any required credential per the example's comments.
pmcp-openapi-server --config crates/pmcp-openapi-server/examples/london-tube.toml
Want to extend and deploy it? cargo pmcp new my-server --kind sql-server (or --kind openapi-server) scaffolds the same config-driven server as a small crate, ready for cargo pmcp deploy to AWS Lambda / Google Cloud Run / Cloudflare / pmcp.run.
Learn more: the Config-Driven SQL Servers and OpenAPI chapters in the pmcp-book · pmcp-sql-server · pmcp-openapi-server · pmcp-server-toolkit
Build production-ready MCP servers with AI assistance in minutes:
Prerequisites:
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update
# Install cargo-pmcp
cargo install cargo-pmcp
Install Claude Code AI Agent:
# Install the mcp-developer subagent (user-level - works across all projects)
curl -fsSL https://raw.githubusercontent.com/paiml/rust-mcp-sdk/main/ai-agents/claude-code/mcp-developer.md \
-o ~/.claude/agents/mcp-developer.md
# Restart Claude Code
Build your server:
You: "Create a weather forecast MCP server with tools for getting current conditions and 5-day forecasts"
Claude Code: [Invokes mcp-developer subagent]
I'll create a production-ready weather MCP server using cargo-pmcp.
$ cargo pmcp new weather-mcp-workspace
$ cd weather-mcp-workspace
$ cargo pmcp add server weather --template minimal
[Implements type-safe tools with validation]
[Adds comprehensive tests and observability]
[Validates quality gates]
✅ Production-ready server complete with 85% test coverage!
What you get: Production-ready code following Toyota Way principles, with comprehensive tests, structured logging, metrics collection, and zero clippy warnings.
Learn more: AI-Assisted Development Course | AI Agents README
Scaffold and build servers using the cargo-pmcp CLI:
Installation:
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update
# Install cargo-pmcp
cargo install cargo-pmcp
Create a server:
# Create workspace
cargo pmcp new my-mcp-workspace
cd my-mcp-workspace
# Add a server using a template
cargo pmcp add server myserver --template minimal
# Start development server with hot-reload
cargo pmcp dev --server myserver
# Generate and run tests
cargo pmcp test --server myserver --generate-scenarios
cargo pmcp test --server myserver
# Build for production
cargo build --release
Available templates (cargo pmcp add server <name> --template <t>):
minimal - Empty structure for custom serverscalculator - Arithmetic operations (learning)complete_calculator - Full-featured reference implementationsqlite_explorer - Hand-coded Rust database browser (escape hatch)Config-driven kinds (cargo pmcp new <name> --kind <k> — TOML-driven, no per-tool Rust):
sql-server - SQL MCP server over SQLite / Postgres / MySQL / Athena from config.tomlopenapi-server - MCP server over any OpenAPI / HTTP backend from config.tomlLearn more: cargo-pmcp Guide
Use the pmcp crate directly for maximum control:
Installation:
[dependencies]
pmcp = "2.0"
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
schemars = "0.8" # For type-safe tools
Type-safe server example:
use pmcp::{ServerBuilder, TypedTool, RequestHandlerExtra, Error};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
struct WeatherArgs {
#[schemars(description = "City name")]
city: String,
#[schemars(description = "Number of days (1-5)")]
days: Option<u8>,
}
#[derive(Debug, Serialize, JsonSchema)]
struct WeatherOutput {
temperature: f64,
conditions: String,
}
async fn get_weather(args: WeatherArgs, _extra: RequestHandlerExtra) -> pmcp::Result<WeatherOutput> {
// Validate
if args.city.is_empty() {
return Err(Error::validation("City cannot be empty"));
}
let days = args.days.unwrap_or(1);
if !(1..=5).contains(&days) {
return Err(Error::validation("Days must be 1-5"));
}
// Call weather API...
Ok(WeatherOutput {
temperature: 72.0,
conditions: "Sunny".to_string(),
})
}
#[tokio::main]
async fn main() -> pmcp::Result<()> {
let server = ServerBuilder::new()
.name("weather-server")
.version("1.0.0")
.tool("get-weather", TypedTool::new("get-weather", |args, extra| {
Box::pin(get_weather(args, extra))
}).with_description("Get weather forecast for a city"))
.build()?;
server.run_stdio().await?;
Ok(())
}
Learn more: pmcp-book | pmcp-course | API Documentation
High-performance Rust implementation of the MCP protocol.
Key Features:
skills feature, opt-in)call_tool_typed, get_prompt_typed, and auto-paginating list_all_* with bounded safety capunwrap(), comprehensive error handlingLatest Version: pmcp = "2.9"
Documentation:
Full-lifecycle development toolkit — from scaffolding to production deployment.
cargo install cargo-pmcp
cargo pmcp new my-workspace # Scaffold a new workspace
cargo pmcp add server my-server # Add a server with best-practice template
cargo pmcp dev --server my-server # Dev server with hot-reload
cargo pmcp test --server my-server # Auto-generated scenario tests
cargo pmcp loadtest run # Load test with latency percentiles
cargo pmcp pentest run # Security audit (32 checks, SARIF output)
cargo pmcp preview --open # Browser-based widget preview
cargo pmcp deploy --target aws-lambda # Deploy to AWS Lambda, GCR, or Cloudflare
cargo pmcp deploy logs --tail # Stream production logs
Covers the full development lifecycle: scaffolding, dev mode, testing, load testing, security pentesting, MCP Apps preview, schema management, multi-target deployment, secrets, and OAuth setup.
Full command reference: cargo-pmcp Guide
Build production MCP servers over SQL and HTTP backends from a config.toml alone — the toolkit synthesizes curated tools + a Code Mode long tail, so exposing organizational data over MCP no longer needs a Rust programmer.
| Crate | What it is |
|---|---|
pmcp-server-toolkit | The backend-agnostic library: config types, the [[tools]] synthesizer, Code Mode wiring, and the connector/auth seams that the binaries below build on. |
pmcp-sql-server | Shape-A binary serving a SQL database (SQLite / Postgres / MySQL / Athena) from config.toml + a schema file. Ships a runnable sqlite-explorer example. |
pmcp-openapi-server | Shape-A binary serving any OpenAPI / HTTP backend, with six outgoing-auth models (incl. OAuth passthrough). Ships london-tube (api_key) and contoso-m365 (oauth_passthrough, Microsoft Graph + Excel) examples. |
pmcp-toolkit-postgres / -mysql / -athena | Per-backend SQL connectors for the toolkit. |
Both binaries have cargo pmcp new --kind {sql-server,openapi-server} scaffold siblings that generate the same config-driven server as a small, deployable crate. See Path 1 above and the Config-Driven SQL Servers / OpenAPI chapters in the pmcp-book.
27-chapter comprehensive reference guide to building MCP servers with pmcp.
Coverage:
Local development:
make book-serve # Serve at http://localhost:3000
make book-open # Build and open in browser
Interactive course with quizzes, exercises, and real-world projects for mastering MCP development.
Course Structure:
Features:
Local development:
cd pmcp-course && mdbook serve # Serve at http://localhost:3000
AI agent configurations that teach Kiro and Claude Code how to build MCP servers.
Supported AI Assistants:
Kiro (Steering Files) - 10,876 lines of persistent MCP expertise
Claude Code (Subagent) - ~750 lines of focused MCP knowledge
What AI agents know:
Community implementations welcome:
Learn more: AI-Assisted Development Course | ai-agents/
Build rich HTML UI widgets served from MCP servers — works with ChatGPT, Claude, and other MCP clients.
What it does:
widgets/ directory with hot-reloadcargo pmcp app new generates a complete MCP Apps projectQuick start:
# Scaffold a new MCP Apps project
cargo pmcp app new my-widget-app
cd my-widget-app
# Run the server
cargo run
# Preview in browser (separate terminal)
cargo pmcp preview --url http://localhost:3000 --open
# Generate deployment artifacts
cargo pmcp app build --url https://my-server.example.com
Examples:
Learn more: Widget Runtime | Preview Server | E2E Tests
PMCP v2.0 — aligned with the MCP TypeScript SDK v2.0 release (2026-03-22):
2024-11-05cargo pmcp test conformance and mcp-tester conformance CLI integrationFull changelog: CHANGELOG.md
schemarsThe SDK includes 60+ comprehensive examples covering all features:
# Basic examples
cargo run --example c01_client_initialize # Client setup
cargo run --example s01_basic_server # Basic server
cargo run --example c02_client_tools # Tool usage
# Type-safe tools (v1.6.0+)
cargo run --example s16_typed_tools --features schema-generation
cargo run --example s17_advanced_typed_tools --features schema-generation
# Advanced features
cargo run --example s28_authentication # OAuth/Bearer
cargo run --example t01_websocket_transport # WebSocket
cargo run --example m01_basic_middleware # Middleware chain
# Agent Skills (SEP-2640) — dual-surface skill + prompt
cargo run --example s44_server_skills --features skills,full
cargo run --example c10_client_skills --features skills,full
# Testing (mcp-tester is a standalone Cargo project in examples/26-server-tester)
cargo install mcp-tester && mcp-tester test http://localhost:8080
# AI-assisted development
# See ai-agents/README.md for Kiro and Claude Code setup
See examples/README.md for complete list.
Comprehensive testing tool for validating MCP server implementations.
Features:
Installation:
cargo install mcp-server-tester
# Or download pre-built binaries from releases
Usage:
# Test a server
mcp-tester test http://localhost:8080
# Protocol compliance check
mcp-tester compliance http://localhost:8080 --strict
# Connection diagnostics
mcp-tester diagnose http://localhost:8080
Learn more: examples/26-server-tester/README.md
PMCP is built following Toyota Production System principles:
Jidoka (自働化): Automation with human touch
unwrap() in productionGenchi Genbutsu (現地現物): Go and see
Kaizen (改善): Continuous improvement
Metric PMCP (Rust) TypeScript SDK Improvement
────────────────────────────────────────────────────────────────────
Overall Speed 16x 1x 16x faster
Memory Usage <10 MB ~500 MB 50x lower
SSE Parsing 336,921 ev/s 32,691 ev/s 10.3x faster
JSON-RPC Parsing 195,181 docs/s N/A SIMD-optimized
Round-trip Latency <100 μs ~1-2 ms 10-20x faster
Base64 Operations 252+ MB/s N/A Optimized
Run benchmarks:
make bench # General benchmarks
cargo run --example t08_simd_parsing_performance # SIMD-specific
Full WASM support for browser and edge deployment:
Targets:
Quick start:
# Build for Cloudflare Workers
cargo build --target wasm32-unknown-unknown --no-default-features --features wasm
# Deploy
make cloudflare-sdk-deploy
Learn more: WASM Guide | WASM Example
git clone https://github.com/paiml/rust-mcp-sdk
cd rust-mcp-sdk
# Install development tools
make setup
# Run quality checks
make quality-gate
make test-all # All tests
make test-property # Property tests
make coverage # Coverage report
make mutants # Mutation tests
We welcome contributions! Please:
git checkout -b feature/amazing-feature)make quality-gate)See: CONTRIBUTING.md
| Feature | TypeScript SDK v2.0 | PMCP v2.0 (Rust) |
|---|---|---|
| Protocol Version | 2025-11-25 | 2025-11-25 (+ 2024-11-05 compat) |
| Transports | stdio, SSE, WebSocket | stdio, SSE, WebSocket, WASM |
| Authentication | OAuth 2.0, Bearer | OAuth 2.0, Bearer, OIDC |
| Tools | ✓ | ✓ (Type-safe + outputSchema) |
| Prompts | ✓ | ✓ (Workflows) |
| Resources | ✓ | ✓ (Subscriptions) |
| Sampling | ✓ | ✓ |
| MCP Apps | ✓ | ✓ (Preview + DevTools) |
| Agent Skills (SEP-2640) | ✓ | ✓ (dual-surface skill + prompt, byte-equal) |
| Tower Middleware | N/A | ✓ (DNS rebinding, CORS, security headers) |
| Performance | 1x | 16x faster |
| Memory | Baseline | 50x lower |
This project is licensed under the MIT License - see the LICENSE file for details.
Built with 🦀 Rust and ❤️ following Toyota Way principles
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.