Expand description
Reference SIGIL MCP Server.
An embeddable MCP (Model Context Protocol) server that any Rust application can use to expose SIGIL-protected tools over JSON-RPC 2.0.
use sigil_protocol::mcp_server::{SigilMcpServer, ToolDef};
use sigil_protocol::{SensitivityScanner, AuditLogger, AuditEvent};
use std::sync::Arc;
struct MyScanner;
impl SensitivityScanner for MyScanner {
fn scan(&self, _text: &str) -> Option<String> { None }
}
struct MyAudit;
impl AuditLogger for MyAudit {
fn log(&self, _e: &AuditEvent) -> anyhow::Result<()> { Ok(()) }
}
let scanner = Arc::new(MyScanner);
let audit = Arc::new(MyAudit);
let mut server = SigilMcpServer::new("my-server", "1.0.0", scanner, audit);
server.register_tool(ToolDef {
name: "get_weather".into(),
description: "Get current weather".into(),
parameters_schema: serde_json::json!({"type": "object"}),
handler: Box::new(|args| Box::pin(async move {
Ok(serde_json::json!({"temp": 22}))
})),
});Structs§
- Inbound
Sigil - Inbound SIGIL envelope parsed from the request
params._sigilfield. - Json
RpcError - Json
RpcRequest - Json
RpcResponse - Sigil
McpServer - A reference SIGIL-secured MCP server.
- ToolDef
- A tool definition to register with the SIGIL MCP server.
Type Aliases§
- Tool
Handler - Async handler for a tool call.