UNPKG

@l4t/mcp-ai

Version:

A set of tools for making integration and aggregation of MCP servers extremely easy.

41 lines 1.58 kB
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { McpClientConfigs } from '../../common/types.js'; import { create as createFeatures } from '../features.js'; import { openApiToZodSchema } from '../../common/libs.js'; const create = (config) => { // eslint-disable-next-line functional/no-let let server; const setupServer = async (features) => { const rawTools = await features.getTools(); const tools = rawTools.map(tool => ({ name: tool.name, description: tool.description || '', parameters: tool.inputSchema, })); server = new McpServer(Object.assign({}, McpClientConfigs.aggregator, { capabilities: { tools }, })); tools.forEach(tool => { // @ts-ignore server.tool(tool.name, tool.description || '', openApiToZodSchema(tool.parameters), async (extra) => { const results = await features.executeTool(tool.name, extra); return results; }); }); }; return { start: async () => { const features = await createFeatures(config); await features.connect(); await setupServer(features); const transport = new StdioServerTransport(); await server?.connect(transport); }, stop: async () => { await server?.close(); }, }; }; export { create }; //# sourceMappingURL=cli.js.map