Developer Tools Python ★ 192

traceloop/opentelemetry-mcp-server

OpenTelemetry arka ucuyla (Datadog, Grafana, Dynatrace, Traceloop vb.) bağlantı kurmak için bir MCP sunucusu.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "traceloop-opentelemetry-mcp-server": {
      "command": "python",
      "args": [
        "-m",
        "opentelemetry_mcp_server"
      ]
    }
  }
}

OpenTelemetry MCP Sunucusu

Python 3.11+ PyPI License

LLM izlerini AI yardımı ile sorgula ve analiz et. Claude'a pahalı API çağrılarını bulmayı, hataları debug etmeyi, model performansını karşılaştırmayı ya da token kullanımını izlemeyi sor—hepsi IDE'nin içinden.

OpenTelemetry trace backend'lerine (Jaeger, Tempo, Traceloop) bağlanan bir MCP (Model Context Protocol) sunucusu; OpenLLMetry semantic conventions aracılığıyla LLM observability'si için özel destek sunar.

Aksiyon halinde gör:

https://github.com/user-attachments/assets/e2106ef9-0a58-4ba0-8b2b-e114c0b8b4b9


İçindekiler


Hızlı Başlangıç

Kurulum gerekmez! İstemcinizi sunucuyu doğrudan PyPI'dan çalıştıracak şekilde yapılandır:

// claude_desktop_config.json'a ekle:
{
  "mcpServers": {
    "opentelemetry-mcp": {
      "command": "pipx",
      "args": ["run", "opentelemetry-mcp"],
      "env": {
        "BACKEND_TYPE": "jaeger",
        "BACKEND_URL": "http://localhost:16686"
      }
    }
  }
}

Ya da uvx kullan (alternatif):

{
  "mcpServers": {
    "opentelemetry-mcp": {
      "command": "uvx",
      "args": ["opentelemetry-mcp"],
      "env": {
        "BACKEND_TYPE": "jaeger",
        "BACKEND_URL": "http://localhost:16686"
      }
    }
  }
}

Hepsi bu kadar! Claude'a sor: "Son bir saatten hatalar içeren izleri göster"


Kurulum

Son Kullanıcılar İçin (Önerilir)

# Kurulum olmadan çalıştır (önerilir)
pipx run opentelemetry-mcp --backend jaeger --url http://localhost:16686

# Veya uvx ile
uvx opentelemetry-mcp --backend jaeger --url http://localhost:16686

Bu yaklaşım:

  • ✅ Her zaman en son sürümü kullanır
  • ✅ Global kurulum gerekmez
  • ✅ İzole ortam otomatik olarak
  • ✅ Tüm platformlarda çalışır

İstemci Başına Entegrasyon

Claude Desktop

MCP sunucusunu Claude Desktop yapılandırma dosyanızda yapılandır:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

pipx kullanarak (önerilir):

{
  "mcpServers": {
    "opentelemetry-mcp": {
      "command": "pipx",
      "args": ["run", "opentelemetry-mcp"],
      "env": {
        "BACKEND_TYPE": "jaeger",
        "BACKEND_URL": "http://localhost:16686"
      }
    }
  }
}

uvx kullanarak (alternatif):

{
  "mcpServers": {
    "opentelemetry-mcp": {
      "command": "uvx",
      "args": ["opentelemetry-mcp"],
      "env": {
        "BACKEND_TYPE": "jaeger",
        "BACKEND_URL": "http://localhost:16686"
      }
    }
  }
}

Traceloop backend'i için:

{
  "mcpServers": {
    "opentelemetry-mcp": {
      "command": "pipx",
      "args": ["run", "opentelemetry-mcp"],
      "env": {
        "BACKEND_TYPE": "traceloop",
        "BACKEND_URL": "https://api.traceloop.com",
        "BACKEND_API_KEY": "your_traceloop_api_key_here"
      }
    }
  }
}
pipx yerine repository kullanıyor musun?

Klonlanan repository ile yerel geliştirme yapıyorsan, bu yapılandırmalardan birini kullan:

Seçenek 1: Wrapper script'i (kolay backend değiştirme)

{
  "mcpServers": {
    "opentelemetry-mcp": {
      "command": "/absolute/path/to/opentelemetry-mcp-server/start_locally.sh"
    }
  }
}

Seçenek 2: UV doğrudan (birden fazla backend'i için)

{
  "mcpServers": {
    "opentelemetry-mcp-jaeger": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/opentelemetry-mcp-server",
        "run",
        "opentelemetry-mcp"
      ],
      "env": {
        "BACKEND_TYPE": "jaeger",
        "BACKEND_URL": "http://localhost:16686"
      }
    }
  }
}
Claude Code

Claude Code, Claude Desktop'ta yapılandırılmış MCP sunucuları ile çalışır. Yukarıda yapılandırıldıktan sonra, Claude Code CLI ile sunucuyu kullanabilirsin:

# Sunucunun mevcut olduğunu doğrula
claude-code mcp list

# Claude Code'u OpenTelemetry izlerine erişim ile kullan
claude-code "Show me traces with errors from the last hour"
Codeium (Windsurf)
  1. Windsurf'ü aç
  2. Settings → MCP Servers'a git
  3. Add New MCP Server tıkla
  4. Bu yapılandırmayı ekle:

pipx kullanarak (önerilir):

{
  "opentelemetry-mcp": {
    "command": "pipx",
    "args": ["run", "opentelemetry-mcp"],
    "env": {
      "BACKEND_TYPE": "jaeger",
      "BACKEND_URL": "http://localhost:16686"
    }
  }
}

uvx kullanarak (alternatif):

{
  "opentelemetry-mcp": {
    "command": "uvx",
    "args": ["opentelemetry-mcp"],
    "env": {
      "BACKEND_TYPE": "jaeger",
      "BACKEND_URL": "http://localhost:16686"
    }
  }
}
Bunun yerine repository kullanıyor musun?
{
  "opentelemetry-mcp": {
    "command": "uv",
    "args": [
      "--directory",
      "/absolute/path/to/opentelemetry-mcp-server",
      "run",
      "opentelemetry-mcp"
    ],
    "env": {
      "BACKEND_TYPE": "jaeger",
      "BACKEND_URL": "http://localhost:16686"
    }
  }
}
Cursor
  1. Cursor'u aç
  2. Settings → MCP'ye git
  3. Add new MCP Server tıkla
  4. Bu yapılandırmayı ekle:

pipx kullanarak (önerilir):

{
  "opentelemetry-mcp": {
    "command": "pipx",
    "args": ["run", "opentelemetry-mcp"],
    "env": {
      "BACKEND_TYPE": "jaeger",
      "BACKEND_URL": "http://localhost:16686"
    }
  }
}

uvx kullanarak (alternatif):

{
  "opentelemetry-mcp": {
    "command": "uvx",
    "args": ["opentelemetry-mcp"],
    "env": {
      "BACKEND_TYPE": "jaeger",
      "BACKEND_URL": "http://localhost:16686"
    }
  }
}
pipx yerine repository kullanıyor musun?
{
  "opentelemetry-mcp": {
    "command": "uv",
    "args": [
      "--directory",
      "/absolute/path/to/opentelemetry-mcp-server",
      "run",
      "opentelemetry-mcp"
    ],
    "env": {
      "BACKEND_TYPE": "jaeger",
      "BACKEND_URL": "http://localhost:16686"
    }
  }
}
Gemini CLI

MCP sunucusunu Gemini CLI yapılandırma dosyanızda yapılandır (~/.gemini/config.json):

pipx kullanarak (önerilir):

{
  "mcpServers": {
    "opentelemetry-mcp": {
      "command": "pipx",
      "args": ["run", "opentelemetry-mcp"],
      "env": {
        "BACKEND_TYPE": "jaeger",
        "BACKEND_URL": "http://localhost:16686"
      }
    }
  }
}

uvx kullanarak (alternatif):

{
  "mcpServers": {
    "opentelemetry-mcp": {
      "command": "uvx",
      "args": ["opentelemetry-mcp"],
      "env": {
        "BACKEND_TYPE": "jaeger",
        "BACKEND_URL": "http://localhost:16686"
      }
    }
  }
}

Sonra Gemini CLI'ı izleri ile kullan:

gemini "Analyze token usage for gpt-4 requests today"
Bunun yerine repository kullanıyor musun?
{
  "mcpServers": {
    "opentelemetry-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/opentelemetry-mcp-server",
        "run",
        "opentelemetry-mcp"
      ],
      "env": {
        "BACKEND_TYPE": "jaeger",
        "BACKEND_URL": "http://localhost:16686"
      }
    }
  }
}

Ön koşullar:

  • Python 3.11 veya daha yüksek
  • pipx veya uv kurulu
İsteğe bağlı: Küresel olarak kur

Komutu küresel olarak yüklemeyi tercih ediyorsan:

# pipx ile kur
pipx install opentelemetry-mcp

# Doğrula
opentelemetry-mcp --help

# Güncelle
pipx upgrade opentelemetry-mcp

Veya pip ile:

pip install opentelemetry-mcp

Özellikler

Temel Yetenekler

  • 🔌 Birden Fazla Backend Desteği - Jaeger, Grafana Tempo veya Traceloop'a bağlan
  • 🤖 LLM-Odaklı Tasarım - AI uygulaması izlerini analiz etmek için özel araçlar
  • 🔍 İleri Filtreleme - Güçlü operatörlere sahip generic filtre sistemi
  • 📊 Token Analitikleri - Model ve hizmetler arasında LLM token kullanımını izle ve topla
  • ⚡ Hızlı ve Tür-Güvenli - Async Python ve Pydantic doğrulaması ile yapılmıştır

Araçlar

Araç Açıklama Kullanım Durumu
search_traces İleri filtrelerle iz ara Belirli istekleri veya desenleri bul
search_spans Bireysel span'ları ara Belirli işlemleri analiz et
get_trace Tam iz detaylarını al Tek bir ize derinlemesine dalış
get_llm_usage Token kullanımı metriklerini topla Maliyet ve kullanım trendlerini izle
list_services Mevcut servisleri listele İnstrumentasyonun ne olduğunu keşfet
find_errors Hatalar içeren izleri bul Hataları hızlıca debug et
list_llm_models Kullanımdaki modelleri keşfet Model benimsenmesini izle
get_llm_model_stats Model performansı istatistiklerini al Model verimini karşılaştır
get_llm_expensive_traces En yüksek token kullanımını bul Maliyetleri optimize et
get_llm_slow_traces En yavaş işlemleri bul Performansı iyileştir

Backend Destek Matrisi

Özellik Jaeger Tempo Traceloop
İzleri ara
İleri filtreler
Span arama ✓*
Token izleme
Hata izleri
LLM araçları

* Jaeger, span arama için service_name parametresi gerektirir

Geliştiriciler İçin

Projeye katkıda bulunuyorsan veya yerel değişiklikler yapmak istiyorsan:

# Repository'i klonla
git clone https://github.com/traceloop/opentelemetry-mcp-server.git
cd opentelemetry-mcp-server

# UV ile bağımlılıkları kur
uv sync

# Veya pip ile development modunda kur
uv pip install -e ".[dev]"

Yapılandırma

Desteklenen Backend'ler

Backend Tür URL Örneği Notlar
Jaeger Yerel http://localhost:16686 Popüler açık kaynak seçenek
Tempo Yerel/Bulut http://localhost:3200 Grafana'nın trace backend'i
Traceloop Bulut https://api.traceloop.com API anahtarı gerektirir

Hızlı Yapılandırma

Seçenek 1: Ortam Değişkenleri (.env dosyası oluştur - bkz. .env.example)

BACKEND_TYPE=jaeger
BACKEND_URL=http://localhost:16686

Seçenek 2: CLI Argümanları (ortam değişkenlerini geçersiz kıl)

opentelemetry-mcp --backend jaeger --url http://localhost:16686
opentelemetry-mcp --backend traceloop --url https://api.traceloop.com --api-key YOUR_KEY

Yapılandırma Önceliği: CLI argümanları > Ortam değişkenleri > Varsayılanlar

Tüm Yapılandırma Seçenekleri
Değişken Tür Varsayılan Açıklama
BACKEND_TYPE string jaeger Backend türü: jaeger, tempo veya traceloop
BACKEND_URL URL - Backend API endpoint'i (gerekli)
BACKEND_API_KEY string - API anahtarı (Traceloop için gerekli)
BACKEND_TIMEOUT integer 30 İstek zaman aşımı (saniye)
LOG_LEVEL string INFO Logging seviyesi: DEBUG, INFO, WARNING, ERROR
MAX_TRACES_PER_QUERY integer 100 Sorgu başına maksimum izler (1-1000)

Tam .env örneği:

# Backend yapılandırması
BACKEND_TYPE=jaeger
BACKEND_URL=http://localhost:16686

# İsteğe bağlı: API anahtarı (esas olarak Traceloop için)
BACKEND_API_KEY=

# İsteğe bağlı: İstek zaman aşımı (varsayılan: 30s)
BACKEND_TIMEOUT=30

# İsteğe bağlı: Logging seviyesi
LOG_LEVEL=INFO

# İsteğe bağlı: Sorgu başına maksimum izler (varsayılan: 100)
MAX_TRACES_PER_QUERY=100
Backend'e Özel Kurulum

Jaeger

BACKEND_TYPE=jaeger
BACKEND_URL=http://localhost:16686

Grafana Tempo

BACKEND_TYPE=tempo
BACKEND_URL=http://localhost:3200

Traceloop

BACKEND_TYPE=traceloop
BACKEND_URL=https://api.traceloop.com
BACKEND_API_KEY=your_api_key_here

Not: API anahtarı proje bilgisini içerir. Backend, "default" proje slug'ı kullanır ve Traceloop gerçek proje/ortamı API anahtarından çözer.


Kullanım

start_locally.sh ile Hızlı Başlangıç (Önerilir)

Sunucuyu çalıştırmanın en kolay yolu:

./start_locally.sh

Bu script tüm yapılandırmayı yönetir ve sunucuyu stdio modunda başlatır (Claude Desktop entegrasyonu için mükemmel). Backend'i değiştirmek için, basitçe script'i düzenle ve tercih ettiğin backend'i aç.

Manuel Çalıştırma

İleri kullanım durumları veya özel yapılandırmalar için, sunucuyu manuel olarak çalıştırabilirsin.

stdio Transport (Claude Desktop için)

MCP sunucusunu yerel/Claude Desktop entegrasyonu için stdio transport'u ile başlat:

# pipx/pip ile kurulduysa
opentelemetry-mcp

# Klonlanan repository'den UV ile çalıştırıyorsa
uv run opentelemetry-mcp

# Backend geçersiz kılması ile (pipx/pip)
opentelemetry-mcp --backend jaeger --url http://localhost:16686

# UV ile
uv run opentelemetry-mcp --backend jaeger --url http://localhost:16686

HTTP Transport (Ağ Erişimi için)

MCP sunucusunu uzaktan erişim için HTTP/SSE transport'u ile başlat:

# pipx/pip ile kurulduysa
opentelemetry-mcp --transport http

# Klonlanan repository'den UV ile çalıştırıyorsa
uv run opentelemetry-mcp --transport http

# Özel host ve port belirt (pipx/pip)
opentelemetry-mcp --transport http --host 127.0.0.1 --port 9000

# UV ile
uv run opentelemetry-mcp --transport http --host 127.0.0.1 --port 9000

HTTP sunucusu varsayılan olarak http://localhost:8000/sse adresinde erişilebilir olacak.

Transport Kullanım Durumları:

  • stdio transport: Yerel kullanım, Claude Desktop entegrasyonu, tek işlem
  • HTTP transport: Uzaktan erişim, birden fazla istemci, ağ dağıtımı, örnek uygulamalar

Araçlar Referansı

1. search_traces

Esnek filtreleme ile izleri ara:

{
  "service_name": "my-app",
  "start_time": "2024-01-01T00:00:00Z",
  "end_time": "2024-01-01T23:59:59Z",
  "gen_ai_system": "openai",
  "gen_ai_model": "gpt-4",
  "min_duration_ms": 1000,
  "has_error": false,
  "limit": 50
}

Parametreler:

  • service_name - Hizmete göre filtrele
  • operation_name - İşleme göre filtrele
  • start_time / end_time - ISO 8601 zaman damgaları
  • min_duration_ms / max_duration_ms - Süre filtreleri
  • gen_ai_system - LLM sağlayıcısı (openai, anthropic, vb.)
  • gen_ai_model - Model adı (gpt-4, claude-3-opus, vb.)
  • has_error - Hata durumuna göre filtrele
  • tags - Özel etiket filtreleri
  • limit - Maksimum sonuç (1-1000, varsayılan: 100)

Döner: Token sayıları ile iz özeti listesi

2. get_trace

Tüm span'ları ve OpenLLMetry özniteliklerini içeren tam iz detaylarını al:

{
  "trace_id": "abc123def456"
}

Döner: Şunları içeren tam iz ağacı:

  • Tüm span'lar ve öznitelikler
  • LLM span'ları için ayrıştırılmış OpenLLMetry verileri
  • Span başına token kullanımı
  • Hata bilgisi

3. get_llm_usage

Toplu token kullanımı metriklerini al:

{
  "start_time": "2024-01-01T00:00:00Z",
  "end_time": "2024-01-01T23:59:59Z",
  "service_name": "my-app",
  "gen_ai_system": "openai",
  "limit": 1000
}

Döner: Şunları içeren toplu metrikler:

  • Toplam prompt/completion/toplam token'lar
  • Modele göre dağılım
  • Hizmete göre dağılım
  • İstek sayıları

4. list_services

Mevcut tüm hizmetleri listele:

{}

Döner: Hizmet adlarının listesi

5. find_errors

Hata içeren izleri bul:

{
  "start_time": "2024-01-01T00:00:00Z",
  "service_name": "my-app",
  "limit": 50
}

Döner: Şunları içeren hata izleri:

  • Hata mesajları ve türleri
  • Stack trace'ler (kısaltılmış)
  • LLM'ye özel hata bilgisi
  • Hata span detayları

Örnek Sorgular

Pahalı OpenAI İşlemlerini Bul

Doğal Dil: "Son bir saatten 5 saniyeden daha uzun süren OpenAI izlerini göster"

Tool Çağrısı: search_traces

{
  "service_name": "my-app",
  "gen_ai_system": "openai",
  "min_duration_ms": 5000,
  "start_time": "2024-01-15T10:00:00Z",
  "limit": 20
}

Yanıt:

{
  "traces": [
    {
      "trace_id": "abc123...",
      "service_name": "my-app",
      "duration_ms": 8250,
      "total_tokens": 4523,
      "gen_ai_system": "openai",
      "gen_ai_model": "gpt-4"
    }
  ],
  "count": 1
}

Model Başına Token Kullanımını Analiz Et

Doğal Dil: "Bugün her model için kaç token kullandık?"

Tool Çağrısı: get_llm_usage

{
  "start_time": "2024-01-15T00:00:00Z",
  "end_time": "2024-01-15T23:59:59Z",
  "service_name": "my-app"
}

Yanıt:

{
  "summary": {
    "total_tokens": 125430,
    "prompt_tokens": 82140,
    "completion_tokens": 43290,
    "request_count": 487
  },
  "by_model": {
    "gpt-4": {
      "total_tokens": 85200,
      "request_count": 156
    },
    "gpt-3.5-turbo": {
      "total_tokens": 40230,
      "request_count": 331
    }
  }
}

Hata İçeren İzleri Bul

Doğal Dil: "Son bir saatten tüm hataları göster"

Tool Çağrısı: find_errors

{
  "start_time": "2024-01-15T14:00:00Z",
  "service_name": "my-app",
  "limit": 10
}

Yanıt:

{
  "errors": [
    {
      "trace_id": "def456...",
      "service_name": "my-app",
      "error_message": "RateLimitError: Too many requests",
      "error_type": "openai.error.RateLimitError",
      "timestamp": "2024-01-15T14:23:15Z"
    }
  ],
  "count": 1
}

Model Performansını Karşılaştır

Doğal Dil: "GPT-4 ve Claude arasında performans farkı nedir?"

Tool Çağrısı 1: gpt-4 için get_llm_model_stats

{
  "model_name": "gpt-4",
  "start_time": "2024-01-15T00:00:00Z"
}

Tool Çağrısı 2: claude-3-opus için get_llm_model_stats

{
  "model_name": "claude-3-opus-20240229",
  "start_time": "2024-01-15T00:00:00Z"
}

Yüksek Token Kullanımını Araştır

Doğal Dil: _"Bugün hangi istekler en

Benzer MCP sunucuları

eyaltoledano/claude-task-master Developer Tools

AI destekli geliştirme için yapay zeka tabanlı görev yönetim sistemi. PRD ayrıştırma, görev genişletme, çoklu provider desteği (Claude, OpenAI, Gemini, Perplexity, xAI) ve optimize edilmiş context kullanımı için seçmeli tool yükleme özelliklerine sahiptir.

eyaltoledano/claude-task-master ★ 27,664
GLips/Figma-Context-MCP Developer Tools

Kodlama ajanlarına Figma verilerine doğrudan erişim sağlayarak tasarım implementasyonunu tek adımda tamamlamalarını sağlar.

GLips/Figma-Context-MCP ★ 15,186
DeusData/codebase-memory-mcp Developer Tools

Yüksek performanslı kod zekası MCP sunucusu. Codebase'leri kalıcı bir knowledge graph'e indeksler — ortalama repo milisaniyeler içinde. 66 dil desteği, sub-ms sorgular, %99 daha az token. Tek statik binary, hiç bağımlılık yok.

DeusData/codebase-memory-mcp ★ 10,848
idosal/git-mcp Developer Tools

gitmcp.io, herhangi bir GitHub repository veya projeye bağlanıp belgelendirme yapabilen genel amaçlı bir remote MCP server'ıdır.

idosal/git-mcp ★ 8,197
mobile-next/mobile-mcp Developer Tools

Android/iOS uygulamaları ve cihazların otomasyon, geliştirme ile app scraping işlemleri için MCP Server. iPhone, Google Pixel, Samsung gibi simülatör, emülatör ve fiziksel cihazları destekler.

mobile-next/mobile-mcp ★ 5,247
21st-dev/magic-mcp Developer Tools

21st.dev'in en iyi tasarım mühendislerinden ilham alarak özel olarak hazırlanmış UI bileşenleri oluşturun.

21st-dev/magic-mcp ★ 5,202
Daha fazla: Developer Tools →