Skip to main content

brainwires_mcp/
lib.rs

1#![deny(missing_docs)]
2//! Brainwires MCP - Model Context Protocol client and types
3//!
4//! This crate provides MCP client functionality for the Brainwires Agent Framework:
5//!
6//! - **McpClient**: Connect to external MCP servers, list/call tools, resources, prompts
7//! - **Transport**: Stdio-based transport layer for MCP communication
8//! - **Types**: JSON-RPC 2.0 types and MCP protocol types (with rmcp compatibility)
9//! - **Config**: MCP server configuration management
10
11// Re-export core types
12pub use brainwires_core;
13
14/// MCP client for connecting to external servers.
15#[cfg(feature = "native")]
16pub mod client;
17/// MCP server configuration management.
18pub mod config;
19/// Stdio-based transport layer for MCP communication.
20#[cfg(feature = "native")]
21pub mod transport;
22/// MCP protocol types and JSON-RPC types.
23pub mod types;
24
25// Re-exports - native-only modules
26#[cfg(feature = "native")]
27pub use client::McpClient;
28#[cfg(feature = "native")]
29pub use transport::{StdioTransport, Transport};
30
31// Re-exports - always available
32#[cfg(feature = "native")]
33pub use config::McpConfigManager;
34pub use config::McpServerConfig;
35
36// JSON-RPC types (always available)
37pub use types::{
38    JsonRpcError, JsonRpcMessage, JsonRpcNotification, JsonRpcRequest, JsonRpcResponse,
39    McpNotification, ProgressParams,
40};
41
42// MCP types (require rmcp, native only)
43#[cfg(feature = "native")]
44pub use types::{
45    CallToolParams, CallToolResult, ClientCapabilities, ClientInfo, Content, GetPromptParams,
46    GetPromptResult, InitializeParams, InitializeResult, ListPromptsResult, ListResourcesResult,
47    ListToolsResult, McpPrompt, McpResource, McpTool, PromptArgument, PromptContent, PromptMessage,
48    PromptsCapability, ReadResourceParams, ReadResourceResult, ResourceContent,
49    ResourcesCapability, ServerCapabilities, ServerInfo, ToolResultContent, ToolsCapability,
50};
51
52/// Prelude module for convenient imports
53pub mod prelude {
54    #[cfg(feature = "native")]
55    pub use super::client::McpClient;
56    #[cfg(feature = "native")]
57    pub use super::config::McpConfigManager;
58    pub use super::config::McpServerConfig;
59    #[cfg(feature = "native")]
60    pub use super::transport::{StdioTransport, Transport};
61    #[cfg(feature = "native")]
62    pub use super::types::{
63        CallToolResult, ClientCapabilities, McpPrompt, McpResource, McpTool, ServerCapabilities,
64    };
65    pub use super::types::{JsonRpcMessage, JsonRpcNotification, JsonRpcRequest, JsonRpcResponse};
66}