Skip to main content

Module mcp

Module mcp 

Source
Expand description

MCP (Model Context Protocol) Support

Provides integration with MCP servers for extending A3S Code with external tools.

§Overview

MCP is an open protocol for connecting AI assistants to external tools and data sources. This module implements:

  • Protocol types: JSON-RPC messages, tool definitions, resources
  • Transport layer: stdio (local processes), HTTP+SSE (remote servers)
  • Client: High-level API for MCP server communication
  • Manager: Lifecycle management for multiple MCP servers
  • Tools integration: Automatic registration of MCP tools to ToolRegistry

§Usage

use a3s_code::mcp::{McpManager, McpServerConfig, McpTransportConfig};

// Create manager
let manager = McpManager::new();

// Register server
let config = McpServerConfig {
    name: "github".to_string(),
    transport: McpTransportConfig::Stdio {
        command: "npx".to_string(),
        args: vec!["-y".to_string(), "@modelcontextprotocol/server-github".to_string()],
    },
    enabled: true,
    env: [("GITHUB_TOKEN".to_string(), "...".to_string())].into(),
    oauth: None,
};
manager.register_server(config).await;

// Connect
manager.connect("github").await?;

// Get tools
let tools = manager.get_all_tools().await;
// tools: [("mcp__github__create_issue", McpTool { ... }), ...]

// Call tool
let result = manager.call_tool("mcp__github__create_issue", Some(json!({
    "title": "Bug report",
    "body": "Description..."
}))).await?;

§Tool Naming Convention

MCP tools are registered with the prefix mcp__<server>__<tool>:

Full NameServerTool
mcp__github__create_issuegithubcreate_issue
mcp__postgres__querypostgresquery

Re-exports§

pub use client::McpClient;
pub use manager::tool_result_to_string;
pub use manager::McpManager;
pub use manager::McpServerStatus;
pub use protocol::CallToolResult;
pub use protocol::McpNotification;
pub use protocol::McpResource;
pub use protocol::McpServerConfig;
pub use protocol::McpTool;
pub use protocol::McpTransportConfig;
pub use protocol::OAuthConfig;
pub use protocol::ServerCapabilities;
pub use protocol::ToolContent;
pub use tools::create_mcp_tools;
pub use tools::McpToolWrapper;

Modules§

client
MCP Client
manager
MCP Manager
protocol
MCP Protocol Type Definitions
tools
MCP Tools Integration
transport
MCP Transport Layer