1. Conduid
  2. Developer Tools
  3. Client Manager
MCP server · Developer Tools

Client Manager

MCP server: Client Manager

Unclaimed last commit a year ago devtools
37Low

Scored 4 months ago · breakdown

About Client Manager

Client Manager is an MCP server published by Automata-Labs-team in the Developer Tools category: mCP server: Client Manager. It has been installed 0 times through Conduid.

The repository has 4 stars and 4 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx mcp-client-manager

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Client Manager

Powered by Claude · Grounded in docs

I know everything about Client Manager. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

MCP Client Manager

A client manager for the Model Context Protocol (MCP) that provides a simple way to manage multiple MCP clients connected to different servers.

npm version

Features

  • Multiple Server Management: Connect to multiple MCP servers and manage them through a single interface
  • Server Discovery: Automatically find which server provides the resources or tools you need
  • Error Handling: Robust error handling with detailed error information
  • Reconnection Support: Automatic reconnection capabilities for transient failures
  • Event System: Event-based architecture for monitoring connections and operations
  • Typed API: Fully TypeScript-compatible with comprehensive type definitions

Installation

npm install @modelcontextprotocol/client-manager

Basic Usage

import { MCPClientManager } from '@modelcontextprotocol/client-manager';
import { WebSocketTransport } from '@modelcontextprotocol/sdk/client/websocket.js';

// Create a manager with auto-reconnect enabled
const manager = new MCPClientManager({
  autoReconnect: true,
  defaultTimeout: 10000
});

// Connect to a server
const transport = new WebSocketTransport('ws://localhost:3000');
const clientId = await manager.addServer(transport, 'local-server');

// List available tools from all connected servers
const tools = await manager.listTools();
console.log('Available tools:', tools);

// Call a tool on any server that provides it
const result = await manager.callTool('my-tool', { param: 'value' });
console.log('Tool result:', result);

Advanced Usage

Connecting to Multiple Servers

// Connect to multiple servers
const server1Id = await manager.addServer(
  new WebSocketTransport('ws://server1:3000'), 
  'server-1'
);

const server2Id = await manager.addServer(
  new WebSocketTransport('ws://server2:3000'), 
  'server-2'
);

// You can work with specific servers using their IDs
const server1Tools = await manager.getClient(server1Id).listTools();

// Or use the unified API to work with all servers
const allTools = await manager.listTools();

Handling Events

// Listen for connection errors
manager.on('connectionError', ({ serverName, error }) => {
  console.error(`Failed to connect to ${serverName}:`, error);
});

// Listen for transport closures
manager.on('transportClosed', ({ clientId, serverName }) => {
  console.warn(`Connection to ${serverName} closed`);
});

// Listen for operation errors
manager.on('operationError', ({ operation, clientId, serverName, error }) => {
  console.error(`Error during ${operation} on ${serverName}:`, error);
});

Configuration Options

The MCPClientManager constructor accepts a configuration object with these options:

Option Type Default Description
defaultTimeout number 30000 Default timeout in milliseconds for operations
autoReconnect boolean false Whether to automatically attempt to reconnect disconnected clients
maxReconnectAttempts number 3 Maximum number of reconnection attempts
reconnectDelay number 5000 Delay between reconnection attempts in milliseconds
debug boolean false Whether to emit verbose debug logs

API Reference

Class: MCPClientManager

Constructor

constructor(config: Partial<MCPClientManagerConfig> = {})

Creates a new MCPClientManager instance with the given configuration.

Server Management Methods

  • async addServer(transport: ClientTransport, serverName: string, clientConfig?: Partial<ClientConfig>): Promise<ClientIdentifier>
  • async reconnectClient(clientId: ClientIdentifier): Promise<boolean>
  • removeClient(id: ClientIdentifier): boolean
  • isClientHealthy(clientId: ClientIdentifier): boolean
  • listServerNames(): string[]
  • hasServer(serverName: string): boolean
  • getClientInfo(id: ClientIdentifier): Omit<ClientInfo, 'client'> | undefined
  • getClientIdByServerName(serverName: string): ClientIdentifier | undefined
  • listClientIds(): ClientIdentifier[]

MCP Operation Methods

  • async listPrompts(timeout?: number): Promise<unknown[]>
  • async getPrompt(promptName: string, args?: PromptParams, timeout?: number): Promise<unknown>
  • async listResources(timeout?: number): Promise<unknown[]>
  • async readResource(resourceUri: string, timeout?: number): Promise<unknown>
  • async listTools(timeout?: number): Promise<unknown[]>
  • async callTool(toolName: string, args?: Record<string, unknown>, timeout?: number): Promise<ToolResponse>

Events

  • serverAdded: Emitted when a server is successfully added
  • connectionError: Emitted when there's an error connecting to a server
  • transportError: Emitted when there's an error with a transport
  • transportClosed: Emitted when a transport is closed
  • clientReconnected: Emitted when a client is successfully reconnected
  • reconnectionError: Emitted when there's an error reconnecting a client
  • closeError: Emitted when there's an error closing a transport
  • clientRemoved: Emitted when a client is removed
  • operationError: Emitted when there's an error during an operation

License

MIT

README mirrored from the source repository 4 months ago. The original is authoritative.

Questions

About Client Manager

How do I install Client Manager?

Run npx mcp-client-manager, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Client Manager safe to use with an AI agent?

Its trust score is 37 out of 100 (low). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Client Manager still maintained?

The last commit was a year ago, with 0 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.