@aditya-vaish/kusto-mcp-server
Version:
MCP server for interacting with Kusto databases
58 lines (51 loc) • 1.7 kB
text/typescript
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
// Import tools
import { listTablesTool } from "./tools/list-tables";
import { getTableSchemaTool } from "./tools/get-table-schema";
import { executeQueryTool } from "./tools/execute-query";
import { KustoService } from './services/kustoService';
async function main() {
try {
// Create server instance
const server = new McpServer({
name: process.env.MCP_SERVER_NAME || "kusto-mcp-server",
description: "Kusto MCP Server for Azure Data Explorer integration",
version: process.env.MCP_SERVER_VERSION || "1.0.0",
capabilities: {
resources: {},
tools: {},
},
});
// Register tools individually
server.tool(
listTablesTool.name,
listTablesTool.description,
listTablesTool.parameters,
listTablesTool.handler
);
server.tool(
getTableSchemaTool.name,
getTableSchemaTool.description,
getTableSchemaTool.parameters,
getTableSchemaTool.handler
);
server.tool(
executeQueryTool.name,
executeQueryTool.description,
executeQueryTool.parameters,
executeQueryTool.handler
);
// Start the server
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("Kusto MCP Server running on stdio");
}
catch (error: any) {
console.error("Error starting MCP server:", error.message);
console.error("Stack trace:", error.stack);
process.exit(1);
}
}
main();