GitHubスター
36
ユーザー評価
未評価
お気に入り
0
閲覧数
11
フォーク
1
イシュー
0
Prism MCP SDK for Rust
prism-mcp-rs is a production-grade Rust implementation of the Model Context Protocol (MCP) SDK with enterprise-class features for building secure, scalable MCP servers and clients.
Why Prism MCP?
The first MCP SDK designed for production AI systems. While other implementations focus on basic protocol compliance, Prism MCP brings enterprise-grade reliability patterns, zero-downtime operations, and plugin ecosystems that scale.
Built for the AI-first world: Where services need to be fault-tolerant, discoverable, and composable. Where hot-swapping capabilities matters more than cold starts. Where observability isn't optional—it's survival.
From prototype to production in minutes: Clean APIs that hide complexity, but expose power when you need it.
Core Differentiators
1. Advanced Resilience Patterns
- Circuit Breaker Pattern: Automatic failure isolation preventing cascading failures
- Adaptive Retry Policies: Smart backoff with jitter and error-based retry decisions
- Health Check System: Multi-level health monitoring for transport, protocol, and resources
- Graceful Degradation: Automatic fallback strategies when services become unavailable
2. Enterprise Transport Features
- Streaming HTTP/2: Full multiplexing, server push, and flow control support
- Adaptive Compression: Dynamic selection of Gzip, Brotli, or Zstd based on content analysis
- Chunked Transfer Encoding: Efficient handling of large payloads with streaming
- Connection Pooling: Intelligent connection reuse with keep-alive management
- TLS/mTLS Support: Enterprise-grade security with certificate validation
3. Plugin System Architecture
- Hot Reload Support: Update plugins without service interruption
- ABI-Stable Interface: Binary compatibility across Rust versions
- Plugin Isolation: Sandboxed execution with resource limits
- Dynamic Discovery: Runtime plugin loading with dependency resolution
- Lifecycle Management: Automated plugin health monitoring and recovery
4. Protocol Extensions
- Schema Introspection: Complete runtime discovery of server capabilities
- Batch Operations: Efficient bulk request processing with transaction support
- Progressive Content Delivery: Streaming responses for large datasets
- Rich Metadata Support: Comprehensive annotations and capability negotiation
- Custom Method Extensions: Seamless protocol extensibility
5. Production Observability
- Structured Logging: Contextual tracing with correlation IDs
- Metrics Collection: Performance counters, histograms, and gauges
- Distributed Tracing: OpenTelemetry integration for request flow analysis
- Error Forensics: Detailed error context with stack traces and recovery hints
Technical Architecture
Core Components
Component | Description | Key Features |
---|---|---|
Transport Layer | Multi-protocol transport abstraction | STDIO, HTTP/1.1, HTTP/2, WebSocket, SSE |
Protocol Engine | MCP 2025-06-18 implementation | JSON-RPC, batch operations, streaming |
Plugin Runtime | Dynamic extension system | Hot reload, sandboxing, versioning |
Resilience Core | Fault tolerance mechanisms | Circuit breakers, retries, health checks |
Security Module | Authentication and authorization | JWT, OAuth2, mTLS, rate limiting |
Performance Characteristics
- Zero-Copy Operations: Minimal memory allocation in hot paths
- Async/Await Runtime: Tokio-based non-blocking I/O
- Connection Multiplexing: Single TCP connection for multiple streams
- Smart Buffering: Adaptive buffer sizing based on throughput
- CPU Affinity: Thread pinning for cache optimization
Installation
Standard Installation
[dependencies]
prism-mcp-rs = "0.1.0"
tokio = { version = "1", features = ["full"] }
serde_json = "1.0"
async-trait = "0.1"
Feature Matrix
Feature Category | Features | Use Case |
---|---|---|
Core Transports | stdio , http , websocket |
Basic connectivity |
HTTP Extensions | sse , http2 , chunked-encoding , compression |
Advanced HTTP capabilities |
Security | auth , tls |
Authentication and encryption |
Extensions | plugin |
Runtime extensibility |
Bundles | full , minimal |
Convenience feature sets |
Advanced Configuration
# High-performance configuration
[dependencies]
prism-mcp-rs = {
version = "0.1.0",
features = ["http2", "compression", "plugin", "auth", "tls"]
}
# Memory-constrained environments
[dependencies]
prism-mcp-rs = {
version = "0.1.0",
default-features = false,
features = ["stdio"]
}
Clean & Simple API
30-Second Server Setup
use prism_mcp_rs::prelude::*;
#[derive(Clone)]
struct SystemTools;
#[async_trait]
impl ToolProvider for SystemTools {
async fn call_tool(&self, request: CallToolRequest) -> McpResult<CallToolResult> {
match request.name.as_str() {
"system_info" => Ok(CallToolResult::text(format!(
"Host: {}, OS: {}",
gethostname::gethostname().to_string_lossy(),
std::env::consts::OS
))),
_ => Err(McpError::invalid_request("Unknown tool"))
}
}
async fn list_tools(&self) -> McpResult<ListToolsResult> {
Ok(ListToolsResult::from_tools(vec![
Tool::new("system_info", "Get system information")
]))
}
}
#[tokio::main]
async fn main() -> McpResult<()> {
McpServer::builder()
.with_tool_provider(SystemTools)
.with_stdio_transport()
.build()
.await?
.run()
.await
}
Enterprise-Grade Client
use prism_mcp_rs::client::*;
let client = ClientSession::builder()
.with_circuit_breaker() // Auto fault isolation
.with_adaptive_retries() // Smart backoff
.with_health_monitoring() // Continuous health checks
.connect_stdio("./server")
.await?;
// Resilient operations with automatic recovery
let tools = client.list_tools().await?;
let result = client.call_tool("system_info", json!({})).await?;
Hot-Reloadable Plugins
use prism_mcp_rs::plugin::*;
#[plugin]
struct WeatherPlugin {
api_key: String,
}
#[async_trait]
impl ToolPlugin for WeatherPlugin {
async fn call_tool(&self, req: CallToolRequest) -> McpResult<CallToolResult> {
let weather = self.fetch_weather(&req.args["location"]).await?;
Ok(CallToolResult::json(weather))
}
}
// Runtime plugin management
let plugin_manager = PluginManager::new();
plugin_manager.hot_reload("weather_plugin.so").await?; // Zero downtime
Architectural Innovations
Zero-Configuration Service Discovery
Automatic capability negotiation and runtime schema introspection eliminates manual configuration:
// Client automatically discovers and adapts to server capabilities
let client = ClientSession::auto_discover("./server").await?;
let schema = client.introspect().await?; // Full runtime capability discovery
Fault-Tolerant by Design
Built-in resilience patterns prevent cascading failures in distributed AI systems:
// Circuit breakers, retries, and health checks work together automatically
let result = client
.with_fallback(backup_service)
.call_tool_resilient("analyze", data)
.await?; // Never fails catastrophically
Plugin Ecosystem Revolution
Hot-swappable plugins with ABI stability across Rust versions:
// Live plugin updates without service interruption
plugin_manager.hot_swap("analyzer_v2.so", "analyzer_v1.so").await?;
// Automatic dependency resolution and health monitoring
New Use Cases Enabled
Multi-Agent AI Orchestration
Combine multiple AI services with automatic failover and load balancing.
Enterprise Integration Hubs
Connect legacy systems to modern AI tools with protocol translation and security policies.
Real-Time AI Pipelines
Build streaming data processing pipelines with sub-millisecond latency guarantees.
Federated AI Networks
Create distributed AI service meshes with automatic service discovery and routing.
Edge AI Deployment
Deploy AI capabilities to edge devices with offline-first architecture and smart sync.
Production-Ready Performance
Metric | Value | Impact |
---|---|---|
Zero-downtime deployments | < 100ms | Keep AI services running during updates |
Automatic failover | < 50ms | No user-visible service interruptions |
Memory efficiency | 2-12MB baseline | Deploy to edge and resource-constrained environments |
Protocol overhead | < 0.5ms | Sub-millisecond response times for real-time AI |
Documentation
📚 Getting Started
- Quick Start Guide - Installation, setup, and first steps
- AI Tool Integration - Connect to Claude, Cursor, VS Code, Windsurf
- Configuration Examples - Ready-to-use configuration templates
- API Reference - Complete API documentation
🚀 Deployment & Production
- Deployment Guide - Production deployment strategies
- Troubleshooting Guide - Common issues and solutions
🏗️ Development Guides
- Architecture Guide - System design and components
- Plugin Development - Building custom plugins
- Plugin Types Reference - Detailed component specifications
- Error Handling - Comprehensive error management patterns
- Performance Tuning - Optimization strategies
- Authentication Guide - Authentication and authorization
- Development Setup - Development environment and workflows
🔄 Migration & Updates
- Migration Guide - Migrating from other MCP implementations
- Changelog - Version history and breaking changes
🔒 Security & Policies
- Security Policy - Vulnerability reporting and security practices
Contributing
Contributions are welcome! Please review our Contributing Guidelines and Code of Conduct.
See our Contributors for a list of everyone who has contributed to this project.
License
MIT License - see LICENSE for details.
Support
- GitHub Issues: Bug Reports & Feature Requests
- Discord: Community Support
- Email: developers@prismworks.ai
2
フォロワー
7
リポジトリ
0
Gist
0
貢献数