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"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/traceloop/opentelemetry-mcp-server.git ~/.mcp/opentelemetry-mcp-server
cd ~/.mcp/opentelemetry-mcp-server 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
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 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:
MCP sunucusunu Claude Desktop yapılandırma dosyanızda yapılandır:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonpipx 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"
}
}
}
}
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 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"
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"
}
}
}
{
"opentelemetry-mcp": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/opentelemetry-mcp-server",
"run",
"opentelemetry-mcp"
],
"env": {
"BACKEND_TYPE": "jaeger",
"BACKEND_URL": "http://localhost:16686"
}
}
}
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"
}
}
}
{
"opentelemetry-mcp": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/opentelemetry-mcp-server",
"run",
"opentelemetry-mcp"
],
"env": {
"BACKEND_TYPE": "jaeger",
"BACKEND_URL": "http://localhost:16686"
}
}
}
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"
{
"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:
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
| 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 |
| Ö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
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]"
| 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 |
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
| 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_TYPE=jaeger
BACKEND_URL=http://localhost:16686
BACKEND_TYPE=tempo
BACKEND_URL=http://localhost:3200
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.
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ç.
İleri kullanım durumları veya özel yapılandırmalar için, sunucuyu manuel olarak çalıştırabilirsin.
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
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ı:
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 filtreleoperation_name - İşleme göre filtrelestart_time / end_time - ISO 8601 zaman damgalarımin_duration_ms / max_duration_ms - Süre filtrelerigen_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 filtreletags - Özel etiket filtrelerilimit - Maksimum sonuç (1-1000, varsayılan: 100)Döner: Token sayıları ile iz özeti listesi
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ı:
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:
Mevcut tüm hizmetleri listele:
{}
Döner: Hizmet adlarının listesi
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:
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
}
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
}
}
}
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
}
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"
}
Doğal Dil: _"Bugün hangi istekler en
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.
Kodlama ajanlarına Figma verilerine doğrudan erişim sağlayarak tasarım implementasyonunu tek adımda tamamlamalarını sağlar.
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.
gitmcp.io, herhangi bir GitHub repository veya projeye bağlanıp belgelendirme yapabilen genel amaçlı bir remote MCP server'ıdır.
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.
21st.dev'in en iyi tasarım mühendislerinden ilham alarak özel olarak hazırlanmış UI bileşenleri oluşturun.