Class: MCPManager
Defined in: packages/mcp/src/manager.ts:77
MCP Manager for multiple server connections
Provides a unified interface for connecting to multiple MCP servers and aggregating their tools, resources, and prompts.
Example
const manager = new MCPManager();
// Add multiple servers
await manager.addServer({
name: 'github',
transport: { type: 'stdio', command: 'npx', args: ['-y', '@mcp/server-github'] },
toolPrefix: 'github_'
});
await manager.addServer({
name: 'filesystem',
transport: { type: 'stdio', command: 'npx', args: ['-y', '@mcp/server-filesystem'] },
toolPrefix: 'fs_'
});
// Get all tools as Baleybot-compatible tools
const tools = await manager.getTools();
const bot = Baleybot.create({
name: 'assistant',
goal: 'Help with files and code',
tools
});
// Cleanup
await manager.disconnectAll();
Constructors
Constructor
new MCPManager(
options?):MCPManager
Defined in: packages/mcp/src/manager.ts:84
Parameters
options?
MCPClientOptions & object = {}
Returns
MCPManager
Methods
addClientDirectly()
addClientDirectly(
name,client):void
Defined in: packages/mcp/src/manager.ts:162
Add a pre-built MCPClient directly to the manager.
Use this when you have already created and connected a client (e.g., using connectWithTransport with a DockerStdioTransport).
Parameters
name
string
Unique name for this server connection
client
The MCPClient instance to add
Returns
void
addServer()
addServer(
config):Promise<MCPClient>
Defined in: packages/mcp/src/manager.ts:129
Add and connect to an MCP server
Parameters
config
Server configuration
Returns
Promise<MCPClient>
The connected MCPClient
disconnectAll()
disconnectAll():
Promise<void>
Defined in: packages/mcp/src/manager.ts:237
Disconnect all servers
Returns
Promise<void>
getAllClients()
getAllClients():
MCPClient[]
Defined in: packages/mcp/src/manager.ts:219
Get all connected clients
Returns
Array of MCPClient instances
getClient()
getClient(
name):MCPClient|undefined
Defined in: packages/mcp/src/manager.ts:201
Get a specific client by server name
Parameters
name
string
Server name
Returns
MCPClient | undefined
MCPClient or undefined
getPrompt()
getPrompt(
name,args?,serverName?):Promise<MCPPromptMessage[]>
Defined in: packages/mcp/src/manager.ts:453
Get a prompt from any server
Searches all connected servers for the prompt name.
Parameters
name
string
Prompt name
args?
Record<string, string>
Prompt arguments
serverName?
string
Optional server name to get from specifically
Returns
Promise<MCPPromptMessage[]>
Prompt messages
getServerNames()
getServerNames():
string[]
Defined in: packages/mcp/src/manager.ts:210
Get all connected client names
Returns
string[]
Array of server names
getTools()
getTools(
options?):Promise<Record<string,object&object&object&object&Required<Pick<Tool<unknown, {[key:string]:unknown;_meta?: {[key: ...]: ...; };content: (... | ... | ... | ...)[];isError?:boolean;structuredContent?:unknown; } | {[key:string]:unknown;_meta?: {[key: ...]: ...; };toolResult:unknown; }>,"execute">> &object&object|never|object&object&object&object&Required<Pick<Tool<unknown, {[key:string]:unknown;_meta?: {[key: ...]: ...; };content: (... | ... | ... | ...)[];isError?:boolean;structuredContent?:unknown; } | {[key:string]:unknown;_meta?: {[key: ...]: ...; };toolResult:unknown; }>,"execute">> &object&object|never|never|never|never|never>>
Defined in: packages/mcp/src/manager.ts:267
Get all tools from all servers as Baleybot-compatible tools
Tools are cached per server until the server is removed or tools are refreshed.
Parameters
options?
Options for tool retrieval
refresh?
boolean
Force refresh tool cache
Returns
Promise<Record<string, object & object & object & object & Required<Pick<Tool<unknown, {[key: string]: unknown; _meta?: {[key: ...]: ...; }; content: (... | ... | ... | ...)[]; isError?: boolean; structuredContent?: unknown; } | {[key: string]: unknown; _meta?: {[key: ...]: ...; }; toolResult: unknown; }>, "execute">> & object & object | never | object & object & object & object & Required<Pick<Tool<unknown, {[key: string]: unknown; _meta?: {[key: ...]: ...; }; content: (... | ... | ... | ...)[]; isError?: boolean; structuredContent?: unknown; } | {[key: string]: unknown; _meta?: {[key: ...]: ...; }; toolResult: unknown; }>, "execute">> & object & object | never | never | never | never | never>>
Record of tool name to MCPToolDefinition
getToolsFromServer()
getToolsFromServer(
serverName):Promise<Record<string,object&object&object&object&Required<Pick<Tool<unknown, {[key:string]:unknown;_meta?: {[key: ...]: ...; };content: (... | ... | ... | ...)[];isError?:boolean;structuredContent?:unknown; } | {[key:string]:unknown;_meta?: {[key: ...]: ...; };toolResult:unknown; }>,"execute">> &object&object|never|object&object&object&object&Required<Pick<Tool<unknown, {[key:string]:unknown;_meta?: {[key: ...]: ...; };content: (... | ... | ... | ...)[];isError?:boolean;structuredContent?:unknown; } | {[key:string]:unknown;_meta?: {[key: ...]: ...; };toolResult:unknown; }>,"execute">> &object&object|never|never|never|never|never>>
Defined in: packages/mcp/src/manager.ts:307
Get tools from a specific server
Parameters
serverName
string
Server name
Returns
Promise<Record<string, object & object & object & object & Required<Pick<Tool<unknown, {[key: string]: unknown; _meta?: {[key: ...]: ...; }; content: (... | ... | ... | ...)[]; isError?: boolean; structuredContent?: unknown; } | {[key: string]: unknown; _meta?: {[key: ...]: ...; }; toolResult: unknown; }>, "execute">> & object & object | never | object & object & object & object & Required<Pick<Tool<unknown, {[key: string]: unknown; _meta?: {[key: ...]: ...; }; content: (... | ... | ... | ...)[]; isError?: boolean; structuredContent?: unknown; } | {[key: string]: unknown; _meta?: {[key: ...]: ...; }; toolResult: unknown; }>, "execute">> & object & object | never | never | never | never | never>>
Record of tool name to MCPToolDefinition
isConnected()
isConnected(
name):boolean
Defined in: packages/mcp/src/manager.ts:229
Check if a server is connected
Parameters
name
string
Server name
Returns
boolean
true if connected
listAllPrompts()
listAllPrompts():
Promise<MCPPromptWithServer[]>
Defined in: packages/mcp/src/manager.ts:423
List all prompts from all servers
Returns
Promise<MCPPromptWithServer[]>
Array of prompts with server origin
listAllResources()
listAllResources():
Promise<MCPResourceWithServer[]>
Defined in: packages/mcp/src/manager.ts:357
List all resources from all servers
Returns
Promise<MCPResourceWithServer[]>
Array of resources with server origin
listAllTools()
listAllTools():
Promise<MCPToolWithServer[]>
Defined in: packages/mcp/src/manager.ts:328
List all tools from all servers (raw MCP format with server info)
Returns
Promise<MCPToolWithServer[]>
Array of tools with server origin
readResource()
readResource(
uri,serverName?):Promise<MCPResourceContent>
Defined in: packages/mcp/src/manager.ts:386
Read a resource from any server
Searches all connected servers for the resource URI.
Parameters
uri
string
Resource URI
serverName?
string
Optional server name to read from specifically
Returns
Promise<MCPResourceContent>
Resource content
removeServer()
removeServer(
name):Promise<void>
Defined in: packages/mcp/src/manager.ts:177
Remove and disconnect from an MCP server
Parameters
name
string
Server name
Returns
Promise<void>
touchServer()
touchServer(
name):void
Defined in: packages/mcp/src/manager.ts:117
Reset the idle timeout for a server (call on tool use to prevent auto-disconnect).
Parameters
name
string
Returns
void