wgc
Version:
The official CLI tool to manage the GraphQL Federation Platform Cosmo
33 lines • 1.92 kB
JavaScript
import { Command } from 'commander';
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { registerListSubgraphsTool, registerSubgraphVerifySchemaChangesTool, registerFederatedGraphTools, registerGetSubgraphsTool, registerSchemaChangeProposalWorkflowTool, registerDreamQueryWorkflowTool, registerVerifyQueryAgainstRemoteSchemaTool, registerVerifyQueryAgainstInMemorySchemaTool, registerIntrospectSubgraphTool, registerSupergraphChangelogTool, registerSearchDocsTool, registerVerifyRouterConfigTool, } from './tools/index.js';
export default (opts) => {
const command = new Command('mcp');
command.description('Start the Cosmo MCP server');
command.action(async () => {
// Create an MCP server
const server = new McpServer({
name: 'Cosmo MCP Server',
version: '0.0.1',
});
// Register all tools
registerListSubgraphsTool({ server, opts });
registerGetSubgraphsTool({ server, opts });
registerSubgraphVerifySchemaChangesTool({ server, opts });
registerFederatedGraphTools({ server, opts });
registerSchemaChangeProposalWorkflowTool({ server, opts });
registerDreamQueryWorkflowTool({ server, opts });
registerVerifyQueryAgainstRemoteSchemaTool({ server, opts });
registerVerifyQueryAgainstInMemorySchemaTool({ server, opts });
registerIntrospectSubgraphTool({ server, opts });
registerSupergraphChangelogTool({ server, opts });
registerSearchDocsTool({ server, opts });
registerVerifyRouterConfigTool({ server, opts });
// Start receiving messages on stdin and sending messages on stdout
const transport = new StdioServerTransport();
await server.connect(transport);
});
return command;
};
//# sourceMappingURL=index.js.map