import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
import { Tool } from '@modelcontextprotocol/sdk/types.js';
export class SnykProxyClient {
private client: Client;
private transport: StdioClientTransport;
constructor() {
this.transport = new StdioClientTransport({
command: 'npx',
args: ['-y', 'snyk@latest', 'mcp', '-t', 'stdio'],
});
this.client = new Client(
{
name: 'snyk-proxy-client',
version: '1.0.0',
},
{
capabilities: {},
}
);
}
async connect() {
await this.client.connect(this.transport);
}
async listTools(): Promise<Tool[]> {
const result = await this.client.listTools();
return result.tools;
}
async callTool(name: string, args: any): Promise<any> {
return await this.client.callTool({
name,
arguments: args,
});
}
async close() {
await this.client.close();
}
}