{"_id":"@aditya-vaish/kusto-mcp-server","_rev":"2-293f14aad480e9961682040b1628e89d","name":"@aditya-vaish/kusto-mcp-server","dist-tags":{"latest":"1.0.11"},"versions":{"1.0.10":{"name":"@aditya-vaish/kusto-mcp-server","version":"1.0.10","keywords":["mcp","kusto","azure-data-explorer"],"author":"","license":"ISC","_id":"@aditya-vaish/kusto-mcp-server@1.0.10","maintainers":[{"name":"aditya.vaish","email":"aditya.vaish@gmail.com"}],"bin":{"kusto-mcp-server":"dist/index.js"},"dist":{"shasum":"5ac63dfbac659cbad7f661e272baaba226b01a28","tarball":"https://registry.npmjs.org/@aditya-vaish/kusto-mcp-server/-/kusto-mcp-server-1.0.10.tgz","fileCount":27,"integrity":"sha512-zhQ7YQXXJp+8SLaiLRsCVOaWWRBv2QQgiasYYtT18XDMd+2KjnY8yMPNm8bxw5ZuQ68ZHlGQLXM+OSjBG4nueg==","signatures":[{"sig":"MEUCIA4edDp3jNt1o3Ue62Al6zgp9oT60JoODoLnnlBNx+DFAiEA28nXNL5/uV8gZppVjyxwPEYM9cTip+rp/FENhsg5g/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71854},"main":"dist/index.js","type":"commonjs","types":"./dist/index.d.ts","gitHead":"4edcb21c7a674f3899356e6126d2bdb14eee3cf6","scripts":{"dev":"node --no-warnings --enable-source-maps dist/index.js","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rimraf dist","debug":"npx @modelcontextprotocol/inspector node dist/index.js","setup":"ts-node setup.ts","start":"node dist/index.js","watch":"tsc -w","prepare":"npm run build","rebuild":"npm run clean && npm run build","unpublish":"npm unpublish --force"},"_npmUser":{"name":"aditya.vaish","email":"aditya.vaish@gmail.com"},"_npmVersion":"10.9.2","description":"MCP server for interacting with Kusto databases","directories":{},"_nodeVersion":"23.10.0","dependencies":{"shx":"^0.4.0","zod":"^3.24.2","dotenv":"^16.4.7","azure-kusto-data":"^6.0.3","vscode-mcp-server":"^0.2.0","azure-kusto-ingest":"^6.0.3","@modelcontextprotocol/sdk":"^1.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3","@types/node":"^22.14.0","@modelcontextprotocol/inspector":"^0.8.2"},"_npmOperationalInternal":{"tmp":"tmp/kusto-mcp-server_1.0.10_1744653323342_0.8008437911675677","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@aditya-vaish/kusto-mcp-server","version":"1.0.11","description":"MCP server for interacting with Kusto databases","main":"dist/index.js","type":"commonjs","bin":{"kusto-mcp-server":"dist/index.js"},"scripts":{"build":"tsc","prepare":"npm run build","start":"node dist/index.js","dev":"node --no-warnings --enable-source-maps dist/index.js","watch":"tsc -w","clean":"rimraf dist","rebuild":"npm run clean && npm run build","unpublish":"npm unpublish --force","setup":"ts-node setup.ts","test":"echo \"Error: no test specified\" && exit 1","debug":"npx @modelcontextprotocol/inspector node dist/index.js"},"keywords":["mcp","kusto","azure-data-explorer"],"author":"","license":"ISC","publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"^1.9.0","azure-kusto-data":"^6.0.3","azure-kusto-ingest":"^6.0.3","dotenv":"^16.4.7","shx":"^0.4.0","vscode-mcp-server":"^0.2.0","zod":"^3.24.2"},"devDependencies":{"@modelcontextprotocol/inspector":"^0.8.2","@types/node":"^22.14.0","rimraf":"^6.0.1","ts-node":"^10.9.2","typescript":"^5.8.3"},"_id":"@aditya-vaish/kusto-mcp-server@1.0.11","gitHead":"4edcb21c7a674f3899356e6126d2bdb14eee3cf6","types":"./dist/index.d.ts","_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-JsNYPWMrTcvLPFMS1aYIlwSf0r4VxBXEG1TT9FzUEvYauf1D/HDkCI2Kd263NfPuBcuv1WAZSbiMBHltBX7OVA==","shasum":"c85e4b974ae1c5932dadca6761cb8fe1c5087a3c","tarball":"https://registry.npmjs.org/@aditya-vaish/kusto-mcp-server/-/kusto-mcp-server-1.0.11.tgz","fileCount":27,"unpackedSize":71298,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAf1BA62+C5sOtTIM7Mc5uKYw4ZcKgwownoyT/3e1dMgAiEAypnNTm2IVDTmixOaAvkMcslrNlGViu5Ca3RBhMPkjC0="}]},"_npmUser":{"name":"aditya.vaish","email":"aditya.vaish@gmail.com"},"directories":{},"maintainers":[{"name":"aditya.vaish","email":"aditya.vaish@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kusto-mcp-server_1.0.11_1744653793779_0.2761894580159945"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-14T17:55:23.262Z","modified":"2025-04-14T18:03:14.181Z","1.0.10":"2025-04-14T17:55:23.538Z","1.0.11":"2025-04-14T18:03:14.001Z"},"license":"ISC","keywords":["mcp","kusto","azure-data-explorer"],"description":"MCP server for interacting with Kusto databases","maintainers":[{"name":"aditya.vaish","email":"aditya.vaish@gmail.com"}],"readme":"# Kusto MCP Server\r\n\r\nAn [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that connects to your Azure Data Explorer (Kusto) database, exposing table schemas as resources and providing tools for data analysis.\r\n\r\n## Features\r\n\r\n- **Connection to Kusto Database**: Securely connects to your Azure Data Explorer environment using service principal or managed identity authentication.\r\n- **Schema Resources**: Exposes table schemas and sample data as resources for AI assistants to understand your data structure.\r\n- **KQL Query Tools**: Provides tools for running read-only KQL queries against your database.\r\n- **Data Analysis Tools**: Pre-built tools for common data analysis tasks like time series analysis, anomaly detection, etc.\r\n- **Analysis Prompts**: Includes prompt templates for guiding AI assistants in performing common data analysis tasks.\r\n\r\n## Setup Instructions\r\n\r\n### Prerequisites\r\n\r\n- Node.js 18.0 or higher\r\n- Access to an Azure Data Explorer (Kusto) database\r\n- Proper authentication credentials (service principal or managed identity)\r\n\r\n### Installation\r\n\r\n1. Clone this repository or navigate to the project directory\r\n2. Install dependencies:\r\n\r\n```bash\r\nnpm install\r\n```\r\n\r\n3. Create a `.env` file based on the example:\r\n\r\n```bash\r\ncp .env.example .env\r\n```\r\n\r\n4. Configure the environment variables in the `.env` file:\r\n\r\n```\r\n# Kusto Connection Settings\r\nKUSTO_CLUSTER_URI=https://your-cluster.kusto.windows.net\r\nKUSTO_DATABASE=your-database\r\n\r\n# Authentication settings \r\n# Option 1: Azure AD App Registration (Service Principal)\r\nAZURE_CLIENT_ID=your-client-id\r\nAZURE_CLIENT_SECRET=your-client-secret\r\nAZURE_TENANT_ID=your-tenant-id\r\n\r\n# Option 2: Managed Identity (if running in Azure)\r\n# USE_MANAGED_IDENTITY=true\r\n\r\n# MCP Server Config\r\nMCP_SERVER_NAME=kusto-mcp-server\r\nMCP_SERVER_VERSION=1.0.0\r\n```\r\n\r\n### Build and Run\r\n\r\n1. Build the TypeScript project:\r\n\r\n```bash\r\nnpm run build\r\n```\r\n\r\n2. Start the MCP server:\r\n\r\n```bash\r\nnpm start\r\n```\r\n\r\n## Integrating with MCP Clients\r\n\r\n### Using with Claude Desktop\r\n\r\n1. Configure Claude Desktop to use this MCP server by adding it to your `claude_desktop_config.json` file:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"kusto-server\": {\r\n      \"command\": \"node\",\r\n      \"args\": [\r\n        \"path/to/kusto-mcp-server/dist/index.js\"\r\n      ]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n2. Start Claude Desktop and the server will automatically connect.\r\n\r\n### Using with Other MCP Clients\r\n\r\nThis MCP server uses the standard stdio transport, making it compatible with any MCP client that supports this transport.\r\n\r\n## Available Resources\r\n\r\n- `kusto://tables` - Lists all available tables in the database\r\n- `kusto://schema/{tableName}` - Shows schema information for a specific table\r\n- `kusto://sample/{tableName}/{sampleSize?}` - Retrieves sample data from a specific table\r\n\r\n## Available Tools\r\n\r\n- `executeQuery` - Executes a read-only KQL query against your database\r\n- `getTableInfo` - Gets detailed schema and sample data for a specified table\r\n- `findTables` - Finds tables that match a specified name pattern\r\n- `analyzeData` - Performs various data analyses including summary statistics, time series analysis, top values analysis, outlier detection, and correlation analysis\r\n\r\n## Available Prompts\r\n\r\n- **Explore Dataset** - Guide for exploring a new dataset \r\n- **Time Series Analysis** - Analyze trends and patterns in time-based data\r\n- **Anomaly Detection** - Identify unusual patterns or outliers in data\r\n- **Comparative Analysis** - Compare data across different dimensions or time periods\r\n- **KQL Query Assistance** - Get help building and optimizing KQL queries\r\n- **Data Quality Assessment** - Evaluate and understand the quality of your data\r\n\r\n## Security Considerations\r\n\r\n- This server only allows read-only operations to protect your data\r\n- Contains basic security measures to prevent destructive operations\r\n- Uses Azure AD authentication for secure database access\r\n- Consider additional security measures depending on your specific requirements\r\n\r\n## License\r\n\r\nISC","readmeFilename":"README.md"}