Startmcp/README
MCP (Model Context Protocol) Module Overview
The MCP module provides Model Context Protocol support for indusagi, enabling applications to connect with external tools, APIs, and services through a standardized interface.
Primary entrypoint: indusagi/mcp.
Directory Map
indusagi/src/mcp/index.ts- Public exports and main APIindusagi/src/mcp/client.ts- MCPClient for single server connectionsindusagi/src/mcp/client-pool.ts- MCPClientPool for managing multiple serversindusagi/src/mcp/server.ts- MCPServer for creating custom MCP serversindusagi/src/mcp/tool-factory.ts- Convert MCP tools to AgentToolsindusagi/src/mcp/config.ts- Configuration managementindusagi/src/mcp/schema-converter.ts- JSON Schema ↔ TypeBox conversionindusagi/src/mcp/types.ts- Protocol definitionsindusagi/src/mcp/errors.ts- Error handling
Conceptual Flow
- Configure MCP servers in
~/.indusagi/mcp-servers.jsonor project.mcp.json - Create an MCPClientPool with server configurations
- Connect to all servers with
pool.connectAll() - List available tools from each server
- Convert MCP tools to AgentTools for agent use
- Execute tools via the client interface
- Disconnect gracefully on shutdown
What This Module Does
- Manages connections to multiple MCP servers
- Converts MCP protocol to standardized tool definitions
- Provides error handling and recovery
- Supports custom MCP server creation
- Integrates with agent tool systems
- Handles JSON Schema validation and conversion
- Enables resource and prompt access via MCP
Core Features
- MCPClient - Connect to individual MCP servers
- MCPClientPool - Manage multiple server connections
- MCPServer - Build custom MCP servers
- ToolFactory - Convert MCP tools to agent tools
- Config Management - Load/save server configurations
- Schema Conversion - JSON Schema to TypeBox conversion
- Error Handling - Comprehensive error codes and recovery
Documentation
For detailed information, see:
indusagi/docs/mcp/developer-guide.md- Complete API and usage guideindusagi/docs/mcp/integration.md- Integration with Memory and Agentsindusagi/docs/getting-started.md- Quick start guide
Quick Example
import { initializeMCP } from "indusagi/mcp";
import { ToolRegistry } from "indusagi/agent";
const registry = new ToolRegistry();
const { pool, toolCount } = await initializeMCP(registry, process.cwd());
console.log(`Connected to ${pool.getAllClients().length} servers with ${toolCount} tools`);
