About Prism MCP Rs
Prism MCP Rs is an MCP server published by prismworks-ai in the AI category: enterprise-grade Rust implementation of Anthropic's MCP protocol.
The repository has 46 stars and 4 forks, with the last commit 20 days ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/prismworks-ai/prism-mcp-rsThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Prism MCP Rs
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 9 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
1 check has not been run yet.
Releases
README
Prism MCP Rust SDK
PrismWorks ecosystem role — September 2026
The reusable Rust connectivity and generic request-control substrate for MCP clients and servers. See the current strategy and implementation plan for source evidence, boundaries and remove/modify/add work. Databridle integration is planned unless a versioned passing report establishes otherwise. These documents supersede older expansion and maturity claims below; existing setup/API instructions remain reference material.
prism-mcp-rs is an async Rust SDK for building Model Context Protocol (MCP) clients and servers. Version 3 implements the stateless MCP 2026-07-28 lifecycle natively while retaining production-grade MCP 2025-11-25 interoperability.
Protocol compatibility
| Revision | Client | Server | Lifecycle |
|---|---|---|---|
| MCP 2026-07-28 | Native | Native | Stateless server/discover and self-describing requests |
| MCP 2025-11-25 | Compatible | Compatible | Stateful initialize and initialized notification |
ProtocolMode::Auto is the default. Clients try 2026 discovery first and downgrade only when the peer explicitly returns JSON-RPC Method not found; protocol, authentication, transport, and malformed-response failures never trigger a downgrade. Servers accept both revisions by default. Use ModernOnly or LegacyOnly to pin a deployment. See Protocol Versions for the behavior matrix and known limits.
Modern clients automatically complete bounded input_required flows through ClientRequestHandler. Servers can originate those flows with MultiRoundToolHandler, which receives opaque continuation state and request-scoped client capabilities. HTTP and STDIO implement opt-in subscriptions/listen; HTTP uses request-scoped SSE and STDIO uses cancellation to close the long-lived request.
The official io.modelcontextprotocol/tasks extension is opt-in. Servers register durable work with add_task_tool or add_task_tool_with_fallback, or use add_composed_task_tool to transition from MRTR input into durable execution. Clients enable the extension, then use automatic task completion or the typed get_task, update_task, and cancel_task APIs. Task handles are caller-bound, TTL-limited, cancellable, and support multi-round input.
Capability status
| Area | Status | Feature |
|---|---|---|
| STDIO client/server | Implemented; default | stdio |
| HTTP client/server | Implemented | http |
| MCP 2026 subscriptions | Implemented for HTTP and STDIO | http or stdio |
| MCP Tasks extension | Implemented with MRTR composition; opt in | core |
| WebSocket | Implemented | websocket |
| SSE notifications | Implemented | sse |
| HTTP/2 helpers | Implemented | http2 |
| Compression | Implemented | compression |
| OAuth client primitives | Implemented; application integration required | auth with http |
| Fine-grained RBAC and rate limiting | Implemented; opt in | core |
| TLS 1.3 mutual authentication | Implemented for HTTP | http,tls |
| OTLP/OpenTelemetry tracing | Implemented; opt in | otel |
| Endpoint balancing and failover | Implemented; reactive and process-local | core plus chosen transports |
| Native plugins | Implemented for trusted code | plugin |
| Sandboxed plugins | Not implemented | — |
| CPU affinity | Host/deployment responsibility | — |
| Service discovery and active health probing | Not implemented | — |
The default request policy is backward-compatible and permits requests. Production services should authenticate at the transport boundary and install a deny-by-default policy. Native plugins execute in process and are not a security boundary.
Install
[dependencies]
prism-mcp-rs = "3"
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"
serde_json = "1"
Enable only what the application uses:
prism-mcp-rs = {
version = "3",
features = ["http", "tls", "auth", "otel"]
}
full enables every optional feature. The minimum supported Rust version is 1.85.
Minimal STDIO server
use prism_mcp_rs::prelude::*;
use std::collections::HashMap;
struct Echo;
#[async_trait]
impl ToolHandler for Echo {
async fn call(&self, arguments: HashMap<String, Value>) -> McpResult<ToolResult> {
let message = arguments
.get("message")
.and_then(Value::as_str)
.unwrap_or_default();
Ok(ToolResult {
content: vec![ContentBlock::text(message)],
is_error: Some(false),
structured_content: None,
meta: None,
})
}
}
#[tokio::main]
async fn main() -> McpResult<()> {
let server = McpServer::create("echo-server", "1.0.0");
server
.add_tool(
"echo",
Some("Echo a message"),
json!({
"type": "object",
"properties": { "message": { "type": "string" } },
"required": ["message"]
}),
Echo,
)
.await?;
server
.run_with_transport(StdioServerTransport::new())
.await
}
STDIO servers must reserve stdout for MCP frames; write diagnostics through tracing or stderr.
Production controls
The SDK provides shared request context, deny-by-default RBAC, per-principal/per-method token-bucket limiting, TLS 1.3 mTLS, W3C trace propagation with OTLP export, and conservative endpoint failover. These controls are opt-in because identity verification, certificates, quotas, and availability policy belong to the host application.
See Production Controls for integration examples and explicit trust boundaries.
Verification
cargo fmt --all -- --check
cargo clippy --all-features --all-targets -- -D warnings
cargo test --all-features
cargo test --doc --all-features
cargo bench --features bench,plugin,http --bench all_benchmarks
CI also runs the pinned upstream MCP conformance referee against both adapters. The maintained 2026 server-stateless scenario passes 30/30 checks; selected client metadata, tool, header, and JSON Schema scenarios pass 29/29 checks with no baselines.
Benchmark results depend on hardware, enabled features, handlers, payloads, and network conditions. The checked-in benchmark report is a development snapshot, not an SLA.
Documentation
- Documentation index
- Getting started
- AI tool integration
- Architecture
- Deployment
- Production controls
- Troubleshooting
- Examples
- API reference
Contributing and security
Read CONTRIBUTING.md before opening a change. Report vulnerabilities privately according to SECURITY.md; do not use a public issue for a suspected vulnerability.
License
MIT. See LICENSE.
README fetched from the repository 9 hours ago. The original is authoritative.