Skip to main content

Module mcp_server

Module mcp_server 

Source
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§

InboundSigil
Inbound SIGIL envelope parsed from the request params._sigil field.
JsonRpcError
JsonRpcRequest
JsonRpcResponse
SigilMcpServer
A reference SIGIL-secured MCP server.
ToolDef
A tool definition to register with the SIGIL MCP server.

Type Aliases§

ToolHandler
Async handler for a tool call.