Azure Data Explorer veritabanlarını sorgulayın ve analiz edin
Claude Desktop config.json'a ekle
{
"mcpServers": {
"pab1it0-adx-mcp-server": {
"command": "python",
"args": [
"-m",
"adx_mcp_server"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/pab1it0/adx-mcp-server.git ~/.mcp/adx-mcp-server
cd ~/.mcp/adx-mcp-server AI asistanlarının KQL sorgularını yürütmesine ve Azure Data Explorer (ADX/Kusto) veritabanlarını standart arabirimler aracılığıyla keşfetmesine olanak sağlayan bir Model Context Protocol (MCP) sunucusu.
Bu sunucu, Azure Data Explorer ve Eventhouse (Microsoft Fabric'te) kümelerine sorunsuz erişim sağlayarak, AI asistanlarının güçlü Kusto Query Language kullanarak verilerinizi sorgulamasına ve analiz etmesine izin verir.
Araçlar listesi yapılandırılabilir, bu nedenle MCP istemcisine hangi araçları kullanıma sunmak istediğinizi seçebilirsiniz. Bu, belirli işlevselliği kullanmıyorsanız veya context window'u çok fazla kullanmak istemiyorsanız yararlıdır.
Azure Data Explorer kümesine izni olan Azure hesabınıza Azure CLI kullanarak giriş yapın.
ADX kümeniz için ortam değişkenlerini .env dosyası veya sistem ortam değişkenleri aracılığıyla yapılandırın:
# Zorunlu: Azure Data Explorer yapılandırması
ADX_CLUSTER_URL=https://yourcluster.region.kusto.windows.net
ADX_DATABASE=your_database
# İsteğe bağlı: Azure Workload Identity kimlik bilgileri
# AZURE_TENANT_ID=your-tenant-id
# AZURE_CLIENT_ID=your-client-id
# ADX_TOKEN_FILE_PATH=/var/run/secrets/azure/tokens/azure-identity-token
# İsteğe bağlı: Özel MCP Server yapılandırması
ADX_MCP_SERVER_TRANSPORT=stdio # http/sse/stdio arasında seçim yapın, varsayılan = stdio
# İsteğe bağlı: Yalnızca stdio olmayan transport'lar için geçerli
ADX_MCP_BIND_HOST=127.0.0.1 # varsayılan = 127.0.0.1
ADX_MCP_BIND_PORT=8080 # varsayılan = 8080
Sunucu, Azure Kubernetes Service (AKS) ortamlarında workload identity yapılandırılmışsa varsayılan olarak WorkloadIdentityCredential kullanır. Gerekli ortam değişkenleri mevcut olduğunda WorkloadIdentityCredential kullanımını önceliklendirer.
AKS ile Azure Workload Identity için, yalnızca şunları yapmanız gerekir:
AZURE_TENANT_ID ve AZURE_CLIENT_ID ortam değişkenlerinin ayarlandığından emin olunADX_TOKEN_FILE_PATH ile özel bir yol belirttiğinizden emin olunBu ortam değişkenleri mevcut değilse, sunucu otomatik olarak DefaultAzureCredential'e geri döner, bu da birden fazla kimlik doğrulama yöntemini sırayla dener.
{
"mcpServers": {
"adx": {
"command": "uv",
"args": [
"--directory",
"<full path to adx-mcp-server directory>",
"run",
"src/adx_mcp_server/main.py"
],
"env": {
"ADX_CLUSTER_URL": "https://yourcluster.region.kusto.windows.net",
"ADX_DATABASE": "your_database"
}
}
}
}
Not: Claude Desktop'ta
Error: spawn uv ENOENThatası görürseniz,uviçin tam yolu belirtmeniz veya yapılandırmadaNO_UV=1ortam değişkenini ayarlamanız gerekebilir.
Bu proje kolay deployment ve izolasyon için Docker desteğini içerir.
Docker image'ını şu komutu kullanarak oluşturun:
docker build -t adx-mcp-server .
Sunucuyu birkaç şekilde Docker ile çalıştırabilirsiniz:
docker run -it --rm \
-e ADX_CLUSTER_URL=https://yourcluster.region.kusto.windows.net \
-e ADX_DATABASE=your_database \
-e AZURE_TENANT_ID=your_tenant_id \
-e AZURE_CLIENT_ID=your_client_id \
adx-mcp-server
Azure Data Explorer kimlik bilgilerinizle bir .env dosyası oluşturun ve ardından şu komutu çalıştırın:
docker-compose up
Konteynerli sunucuyu Claude Desktop ile kullanmak için, Docker'ı ortam değişkenleriyle kullanmak üzere yapılandırmayı güncelleyin:
{
"mcpServers": {
"adx": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "ADX_CLUSTER_URL",
"-e", "ADX_DATABASE",
"-e", "AZURE_TENANT_ID",
"-e", "AZURE_CLIENT_ID",
"-e", "ADX_TOKEN_FILE_PATH",
"adx-mcp-server"
],
"env": {
"ADX_CLUSTER_URL": "https://yourcluster.region.kusto.windows.net",
"ADX_DATABASE": "your_database",
"AZURE_TENANT_ID": "your_tenant_id",
"AZURE_CLIENT_ID": "your_client_id",
"ADX_TOKEN_FILE_PATH": "/var/run/secrets/azure/tokens/azure-identity-token"
}
}
}
}
Bu yapılandırma, Claude Desktop'tan ortam değişkenlerini Docker konteynerine -e bayrağını sadece değişken adıyla ve env nesnesi içinde gerçek değerleri sağlayarak iletir.
HTTP modu deployment'ı için aşağıdaki Docker yapılandırmasını kullanabilirsiniz:
{
"mcpServers": {
"adx": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-p", "8080:8080",
"-e", "ADX_CLUSTER_URL",
"-e", "ADX_DATABASE",
"-e", "ADX_MCP_SERVER_TRANSPORT",
"-e", "ADX_MCP_BIND_HOST",
"-e", "ADX_MCP_BIND_PORT",
"adx-mcp-server"
],
"env": {
"ADX_CLUSTER_URL": "https://yourcluster.region.kusto.windows.net",
"ADX_DATABASE": "your_database",
"ADX_MCP_SERVER_TRANSPORT": "http",
"ADX_MCP_BIND_HOST": "0.0.0.0",
"ADX_MCP_BIND_PORT": "8080"
}
}
}
}
Bu depo, sorunsuz bir geliştirme deneyimi için bir geliştirme konteyneri olarak da kullanılabilir. Dev container kurulumu devcontainer-feature/adx-mcp-server klasöründe yer almaktadır.
Daha fazla ayrıntı için devcontainer README dosyasını kontrol edin.
Katkılar memnuniyetle karşılanır! Herhangi bir öneriniz veya iyileştirmeniz varsa lütfen bir issue açın veya pull request gönderin.
Bu proje, bağımlılıkları yönetmek için uv kullanır. Platformunuz için yönergeleri izleyerek uv yükleyin:
curl -LsSf https://astral.sh/uv/install.sh | sh
Daha sonra virtual environment oluşturabilir ve bağımlılıkları şu şekilde yükleyebilirsiniz:
uv venv
source .venv/bin/activate # Unix/macOS üzerinde
.venv\Scripts\activate # Windows üzerinde
uv pip install -e .
Proje bir src dizin yapısı ile düzenlenmiştir:
adx-mcp-server/
├── src/
│ └── adx_mcp_server/
│ ├── __init__.py # Paket başlatması
│ ├── server.py # MCP server uygulaması
│ ├── main.py # Ana uygulama mantığı
├── Dockerfile # Docker yapılandırması
├── docker-compose.yml # Docker Compose yapılandırması
├── .dockerignore # Docker ignore dosyası
├── pyproject.toml # Proje yapılandırması
└── README.md # Bu dosya
Proje, işlevselliği sağlayan ve regresyonları önlemeye yardımcı olan kapsamlı bir test paketi içerir.
Testleri pytest ile çalıştırın:
# Geliştirme bağımlılıklarını yükleyin
uv pip install -e ".[dev]"
# Testleri çalıştırın
pytest
# Kapsam raporu ile çalıştırın
pytest --cov=src --cov-report=term-missing
Testler şu şekilde düzenlenmiştir:
Yeni özellikler eklerken, lütfen karşılık gelen testleri de ekleyin.
| Araç | Kategori | Açıklama | Parametreler |
|---|---|---|---|
execute_query |
Query | Azure Data Explorer'a karşı KQL sorgusu yürütün | query (string) - Yürütülecek KQL sorgusu |
list_tables |
Discovery | Yapılandırılmış veritabanındaki tüm tabloları listeleme | Yok |
get_table_schema |
Discovery | Belirli bir tablo için şema alın | table_name (string) - Tablo adı |
sample_table_data |
Discovery | Tablodan örnek veri alın | table_name (string), sample_size (int, varsayılan: 10) |
get_table_details |
Discovery | Tablo istatistikleri ve metaveri alın | table_name (string) - Tablo adı |
| Değişken | Açıklama | Örnek |
|---|---|---|
ADX_CLUSTER_URL |
Azure Data Explorer cluster URL'si | https://yourcluster.region.kusto.windows.net |
ADX_DATABASE |
Bağlanılacak veritabanı adı | your_database |
| Değişken | Açıklama | Varsayılan |
|---|---|---|
AZURE_TENANT_ID |
Azure AD tenant ID'si | - |
AZURE_CLIENT_ID |
Azure AD client/application ID'si | - |
ADX_TOKEN_FILE_PATH |
Workload identity token dosyasının yolu | /var/run/secrets/azure/tokens/azure-identity-token |
| Değişken | Açıklama | Varsayılan |
|---|---|---|
ADX_MCP_SERVER_TRANSPORT |
Transport modu: stdio, http veya sse |
stdio |
ADX_MCP_BIND_HOST |
Bağlanılacak host (yalnızca HTTP/SSE) | 127.0.0.1 |
ADX_MCP_BIND_PORT |
Bağlanılacak port (yalnızca HTTP/SSE) | 8080 |
| Değişken | Açıklama | Varsayılan |
|---|---|---|
LOG_LEVEL |
Logging seviyesi: DEBUG, INFO, WARNING, ERROR |
INFO |
MIT
Veritabanları için kolay, hızlı ve güvenli araçlar sağlayan açık kaynak MCP sunucusu.
Baserow veritabanı entegrasyonu ile tablo arama, listeleme ve satır oluşturma, okuma, güncelleme ve silme işlemlerini gerçekleştirebilirsiniz.
Postgres geliştirme ve operasyonları için kapsamlı MCP sunucusu; performans analizi, ayarlama ve sağlık kontrolleri için araçlar içerir.
Supabase'in resmi MCP sunucusu, AI asistanlarını doğrudan Supabase projenize bağlayarak tablo yönetimi, config getirme ve veri sorgulama gibi işlemleri gerçekleştirmelerine olanak tanır.
NodeJS'de MySQL veritabanı entegrasyonu, yapılandırılabilir erişim kontrolleri ve schema incelemesi özellikleri ile sağlanır.
A Qdrant MCP server