systemprompt-mcp 0.14.4

Native Model Context Protocol (MCP) implementation for systemprompt.io. Orchestration, per-server OAuth2, RBAC middleware, and tool-call governance — the core of the AI governance pipeline.
Documentation
use systemprompt_traits::{
    McpServerMetadata, McpServiceProvider, McpServiceProviderError, McpServiceResult,
};

use super::registry::McpServerRegistry;
use crate::mcp_protocol_version_str;

impl McpServiceProvider for McpServerRegistry {
    fn protocol_version(&self) -> &str {
        mcp_protocol_version_str()
    }

    fn find_server(&self, name: &str) -> McpServiceResult<Option<McpServerMetadata>> {
        Self::find_server(self, name)
            .map(|opt| {
                opt.map(|server| McpServerMetadata {
                    name: server.name.clone(),
                    endpoint: format!("/api/v1/mcp/{}/mcp", server.name),
                })
            })
            .map_err(|e| McpServiceProviderError::Internal(e.to_string()))
    }

    fn validate_registry(&self) -> McpServiceResult<()> {
        Self::validate(self).map_err(|_e| McpServiceProviderError::RegistryUnavailable)
    }
}