@yepcode/mcp-client-connector
v1.0.0
Published
A flexible client connector for Model Context Protocol servers with support for multiple transport methods
Maintainers
Readme
MCP Client Connector
A flexible client connector for Model Context Protocol (MCP) servers with support for multiple transport methods.
Features
- Connect to MCP servers via SSE, WebSocket, or stdio
- Support for both remote servers and local processes
- Automatic package version resolution
- Custom logging support
- Error handling with detailed stderr logs
Installation
npm install @yepcode/mcp-client-connectorUsage
Connect to a remote MCP server
import { MCPClientConnector } from 'mcp-client-connector';
// Connect to a remote MCP server via HTTP/SSE
const connector = new MCPClientConnector({
remoteUrl: 'https://your-mcp-server.com/endpoint'
});
// Connect to a remote MCP server via WebSocket
const wsConnector = new MCPClientConnector({
remoteUrl: 'wss://your-mcp-server.com/socket'
});
try {
const client = await connector.connect();
// Use the MCP client
const result = await client.invoke('some_tool', {
param1: 'value1',
param2: 'value2'
});
console.log(result);
// Close the connection when done
await connector.close();
} catch (error) {
console.error('Error connecting to MCP server:', error);
}Run a local MCP server process
import { MCPClientConnector } from 'mcp-client-connector';
// Connect to a local JavaScript MCP server
const connector = new MCPClientConnector({
language: 'javascript',
package: 'your-mcp-server-package',
version: '1.0.0', // optional, will use latest if not specified
commandArgs: '--some-flag', // optional
envVars: { API_KEY: 'your-api-key' } // optional
});
try {
const client = await connector.connect();
// Use the MCP client
const result = await client.invoke('some_tool', {
param1: 'value1',
param2: 'value2'
});
console.log(result);
// Close the connection when done
await connector.close();
} catch (error) {
console.error('Error connecting to MCP server:', error);
// Access stderr logs if available
if (error instanceof MCPError) {
console.error('Stderr logs:', error.stderrLogs);
}
}Custom Logging
import { MCPClientConnector, Logger } from 'mcp-client-connector';
// Implement your own logger
class MyCustomLogger implements Logger {
info(message: string, ...args: any[]): void {
// Custom info logging implementation
myLoggingService.log('INFO', message, ...args);
}
error(message: string, ...args: any[]): void {
// Custom error logging implementation
myLoggingService.log('ERROR', message, ...args);
}
}
// Use your custom logger
const connector = new MCPClientConnector({
remoteUrl: 'https://your-mcp-server.com/endpoint',
logger: new MyCustomLogger()
});
// The rest of your code...API Reference
MCPClientConnector
The main class for connecting to MCP servers.
Constructor
constructor(options: MCPClientConnectorOptions)Options
RemoteMCPClientConnectorOptionsremoteUrl: string- The URL of the remote MCP serverlogger?: Logger- Optional custom logger implementation
StdioMCPClientConnectorOptionslanguage: string- The language of the MCP server package ('javascript' or 'python')package: string- The name of the MCP server packageversion?: string- Optional specific version of the packagecommandArgs?: string- Optional command line argumentsenvVars?: EnvVars | string- Optional environment variableslogger?: Logger- Optional custom logger implementation
Methods
connect(): Promise<Client>- Connect to the MCP serverclose(): Promise<void>- Close the connectiongetStderrLogs(): string[]- Get any stderr logs from the MCP server (stdio only)
Logger Interface
interface Logger {
info(message: string, ...args: any[]): void;
error(message: string, ...args: any[]): void;
}License
MIT
