GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
Query OTel traces across Jaeger, Tempo, Traceloop, Datadog, Sentry, X-Ray, New Relic, Honeycomb.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
BACKEND_TYPE, BACKEND_URL, BACKEND_API_KEY, BACKEND_AWS_REGION, BACKEND_NEWRELIC_ACCOUNT_ID, BACKEND_HONEYCOMB_DATASET, BACKEND_APP_KEY, BACKEND_TEMPO_INSTANCE_ID, BACKEND_SENTRY_ORG, BACKEND_SENTRY_PROJECT, BACKEND_ENVIRONMENTS, BACKEND_TIMEOUT, BACKEND_MAX_RESPONSE_BYTES, LOG_LEVEL, MAX_TRACES_PER_QUERY, SLOW_REQUEST_THRESHOLD_MS, QUERY_CACHE_TTL_SECONDS, QUERY_CACHE_MAX_ENTRIES, OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_SERVICE_NAME, MCP_INCLUDE_ARGS_IN_SPANS「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"tracehub": {
"command": "uvx",
"args": [
"tracehub-mcp"
],
"env": {
"BACKEND_TYPE": "your-value",
"BACKEND_URL": "your-value",
"BACKEND_API_KEY": "your-value",
"BACKEND_AWS_REGION": "your-value",
"BACKEND_NEWRELIC_ACCOUNT_ID": "your-value",
"BACKEND_HONEYCOMB_DATASET": "your-value",
"BACKEND_APP_KEY": "your-value",
"BACKEND_TEMPO_INSTANCE_ID": "your-value",
"BACKEND_SENTRY_ORG": "your-value",
"BACKEND_SENTRY_PROJECT": "your-value",
"BACKEND_ENVIRONMENTS": "your-value",
"BACKEND_TIMEOUT": "your-value",
"BACKEND_MAX_RESPONSE_BYTES": "your-value",
"LOG_LEVEL": "your-value",
"MAX_TRACES_PER_QUERY": "your-value",
"SLOW_REQUEST_THRESHOLD_MS": "your-value",
"QUERY_CACHE_TTL_SECONDS": "your-value",
"QUERY_CACHE_MAX_ENTRIES": "your-value",
"OTEL_EXPORTER_OTLP_ENDPOINT": "your-value",
"OTEL_SERVICE_NAME": "your-value",
"MCP_INCLUDE_ARGS_IN_SPANS": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add tracehub --env BACKEND_TYPE=your-value --env BACKEND_URL=your-value --env BACKEND_API_KEY=your-value --env BACKEND_AWS_REGION=your-value --env BACKEND_NEWRELIC_ACCOUNT_ID=your-value --env BACKEND_HONEYCOMB_DATASET=your-value --env BACKEND_APP_KEY=your-value --env BACKEND_TEMPO_INSTANCE_ID=your-value --env BACKEND_SENTRY_ORG=your-value --env BACKEND_SENTRY_PROJECT=your-value --env BACKEND_ENVIRONMENTS=your-value --env BACKEND_TIMEOUT=your-value --env BACKEND_MAX_RESPONSE_BYTES=your-value --env LOG_LEVEL=your-value --env MAX_TRACES_PER_QUERY=your-value --env SLOW_REQUEST_THRESHOLD_MS=your-value --env QUERY_CACHE_TTL_SECONDS=your-value --env QUERY_CACHE_MAX_ENTRIES=your-value --env OTEL_EXPORTER_OTLP_ENDPOINT=your-value --env OTEL_SERVICE_NAME=your-value --env MCP_INCLUDE_ARGS_IN_SPANS=your-value -- uvx tracehub-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"tracehub": {
"command": "uvx",
"args": [
"tracehub-mcp"
],
"env": {
"BACKEND_TYPE": "your-value",
"BACKEND_URL": "your-value",
"BACKEND_API_KEY": "your-value",
"BACKEND_AWS_REGION": "your-value",
"BACKEND_NEWRELIC_ACCOUNT_ID": "your-value",
"BACKEND_HONEYCOMB_DATASET": "your-value",
"BACKEND_APP_KEY": "your-value",
"BACKEND_TEMPO_INSTANCE_ID": "your-value",
"BACKEND_SENTRY_ORG": "your-value",
"BACKEND_SENTRY_PROJECT": "your-value",
"BACKEND_ENVIRONMENTS": "your-value",
"BACKEND_TIMEOUT": "your-value",
"BACKEND_MAX_RESPONSE_BYTES": "your-value",
"LOG_LEVEL": "your-value",
"MAX_TRACES_PER_QUERY": "your-value",
"SLOW_REQUEST_THRESHOLD_MS": "your-value",
"QUERY_CACHE_TTL_SECONDS": "your-value",
"QUERY_CACHE_MAX_ENTRIES": "your-value",
"OTEL_EXPORTER_OTLP_ENDPOINT": "your-value",
"OTEL_SERVICE_NAME": "your-value",
"MCP_INCLUDE_ARGS_IN_SPANS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"tracehub": {
"type": "stdio",
"command": "uvx",
"args": [
"tracehub-mcp"
],
"env": {
"BACKEND_TYPE": "your-value",
"BACKEND_URL": "your-value",
"BACKEND_API_KEY": "your-value",
"BACKEND_AWS_REGION": "your-value",
"BACKEND_NEWRELIC_ACCOUNT_ID": "your-value",
"BACKEND_HONEYCOMB_DATASET": "your-value",
"BACKEND_APP_KEY": "your-value",
"BACKEND_TEMPO_INSTANCE_ID": "your-value",
"BACKEND_SENTRY_ORG": "your-value",
"BACKEND_SENTRY_PROJECT": "your-value",
"BACKEND_ENVIRONMENTS": "your-value",
"BACKEND_TIMEOUT": "your-value",
"BACKEND_MAX_RESPONSE_BYTES": "your-value",
"LOG_LEVEL": "your-value",
"MAX_TRACES_PER_QUERY": "your-value",
"SLOW_REQUEST_THRESHOLD_MS": "your-value",
"QUERY_CACHE_TTL_SECONDS": "your-value",
"QUERY_CACHE_MAX_ENTRIES": "your-value",
"OTEL_EXPORTER_OTLP_ENDPOINT": "your-value",
"OTEL_SERVICE_NAME": "your-value",
"MCP_INCLUDE_ARGS_IN_SPANS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
BACKEND_AWS_REGION envBACKEND_NEWRELIC_ACCOUNT_ID envBACKEND_HONEYCOMB_DATASET envBACKEND_TEMPO_INSTANCE_ID envBACKEND_SENTRY_ORG envBACKEND_SENTRY_PROJECT envBACKEND_ENVIRONMENTS envBACKEND_TIMEOUT envBACKEND_MAX_RESPONSE_BYTES envLOG_LEVEL envMAX_TRACES_PER_QUERY envSLOW_REQUEST_THRESHOLD_MS envQUERY_CACHE_TTL_SECONDS envQUERY_CACHE_MAX_ENTRIES envOTEL_EXPORTER_OTLP_ENDPOINT envOTEL_SERVICE_NAME envMCP_INCLUDE_ARGS_IN_SPANS envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント mcpsmiths で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:BACKEND_TYPE, BACKEND_URL, BACKEND_API_KEY, BACKEND_APP_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.13.1)がレジストリに届いたのは6 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Also listed on the official MCP registry as io.github.mcpsmiths/tracehub-mcp (the registry's own ?search= endpoint can surface an outdated version first; this exact-name endpoint always reflects the current isLatest release), and on mcprush.
Give your AI assistant a direct line into your observability backend. tracehub-mcp is an MCP (Model Context Protocol) server that lets Claude, Cursor, Windsurf, Gemini CLI, or any MCP client query OpenTelemetry traces from your LLM/GenAI application and reason about them — find expensive calls, debug errors, compare model performance, track token usage — without you copy-pasting trace JSON into a chat window.
It speaks OpenTelemetry's gen_ai.* semantic conventions natively, so it understands prompts, completions, token usage, and finish reasons as first-class concepts, not just generic span attributes.
tracehub-mcp started as a fork of traceloop/opentelemetry-mcp-server (Apache 2.0) — full attribution and fork history are in NOTICE. It's grown into an 8-backend, security-hardened server maintained independently under mcpsmiths; see What's Different From Upstream below for the parts that are new here.
tracehub-mcp is on PyPI. No install step needed — uvx fetches and runs it in one shot:
// claude_desktop_config.json
{ "mcpServers": { "tracehub-mcp": { "command": "uvx", "args": ["tracehub-mcp"], "env": { "BACKEND_TYPE": "jaeger", "BACKEND_URL": "http://localhost:16686" } } } }
Or from Claude Code directly:
claude mcp add tracehub-mcp -e BACKEND_TYPE=jaeger -e BACKEND_URL=http://localhost:16686 -- uvx tracehub-mcp
That's it. Ask your assistant: _"Show me traces with errors from the last hour."_
See MCP Client Setup for Cursor, Windsurf, VS Code, and Gemini CLI, and Installation for pip/pipx/from-source alternatives.
BACKEND_API_KEY; credentials embedded in BACKEND_URL are rejected).boto3, requires an AWS region and standard AWS credentials (not an API key). Because OTel span attributes land in unindexed X-Ray segment *metadata* by default (only *annotations* are queryable), native server-side filtering is narrower here than for the other backends — see the Backend Support Matrix.All eight implement the same BaseBackend interface, so every MCP tool works identically regardless of which one you point the server at. See Configuration for per-backend setup.
Upstream opentelemetry-mcp-server shipped Jaeger, Tempo, and Traceloop. tracehub-mcp adds Datadog and Sentry as full backends — not thin wrappers, but complete implementations of every tool (search, span search, trace hydration, service discovery, health checks). Along the way, all five backends — including the three inherited from upstream — were hardened to a consistent bar:
http:// URL, because their auth is a bearer token / API+App key pair that has no business going out over plaintext.filters parameter) are validated against an allowlist pattern before being spliced into the query string, closing off structural injection through a crafted field name.limit or when the backend stops returning a continuation cursor, whichever comes first, so a single tool call can't degrade into an unbounded crawl.now() for a missing timestamp or a literal "unknown" for a missing service_name/operation_name — since a fabricated value would silently corrupt trace ordering, duration aggregation, and any tool that groups by service or operation. (The three backends inherited from upstream — Jaeger, Tempo, Traceloop — predate this discipline and haven't been retrofitted; that's deliberate scope discipline, not an oversight, mirroring this project's own precedent of not reaching into shared/inherited code without full regression coverage for it.)All of this is backed by 458 passing tests (2 skipped, zero regressions), a clean ruff check and mypy --strict run, and two rounds of adversarial CodeRabbit review on the new backends.
tracehub-mcp is on PyPI. Pick whichever of these your workflow already uses — they're equivalent.
uvx (no install step)uvx tracehub-mcp --backend jaeger --url http://localhost:16686
This is what the Quick Start config above uses — uv fetches the package and runs the tracehub-mcp entry point in one shot, nothing left behind on disk between runs.
pip / pipxpipx install tracehub-mcp
tracehub-mcp --backend jaeger --url http://localhost:16686
git clone https://github.com/mcpsmiths/tracehub-mcp.git
cd tracehub-mcp uv sync
uv run tracehub-mcp --backend jaeger --url http://localhost:16686
Use this if you're developing locally, want to pin to a specific commit, or want the dev tooling installed (uv sync --group dev).
# The image's CMD binds 0.0.0.0 inside the container, so a caller token is
Authorization: Bearer $MCP_HTTP_BEARER_TOKEN.export MCP_HTTP_BEARER_TOKEN=$(openssl rand -hex 32) docker run --rm -p 8000:8000 \ -e BACKEND_TYPE=jaeger -e BACKEND_URL=http://host.docker.internal:16686 \ -e MCP_HTTP_BEARER_TOKEN \ -e MCP_ALLOWED_HOSTS=localhost \ ghcr.io/mcpsmiths/tracehub-mcp:latest
Backend responses are capped at BACKEND_MAX_RESPONSE_BYTES (64 MiB decoded by default) before they are buffered, but a container that serves many sessions still benefits from Docker's own guard rails: add --memory 1g --restart unless-stopped (or the Compose equivalents) so a process that does exhaust memory is contained and comes back without an operator.
Runs HTTP transport by default (the image's CMD) and refuses to start without MCP_HTTP_BEARER_TOKEN - or the explicit -e MCP_ALLOW_UNAUTHENTICATED_HTTP=true opt-out, which hands every peer that can reach the published port your backend's full read scope. Clients connect to http://localhost:8000/mcp with Authorization: Bearer ; /health and /ready (the image's HEALTHCHECK) never need the token. Because the CMD binds 0.0.0.0, the container validates the Host header only when MCP_ALLOWED_HOSTS is set - always set it to the hostnames clients use (localhost in the example above, the public name in a real deployment); * turns Host validation off and may not be mixed with names (the server refuses to start). This is also the form to use for MCP clients whose config takes a command/args pair pointing at docker directly (Cursor, Windsurf) instead of a local binary - pass the same -e MCP_HTTP_BEARER_TOKEN=... in args.
Prerequisites: Python 3.11+, plus uv for Options 1 and 3; Docker for Option 4.
Configuration comes from environment variables, CLI flags, or both. Precedence: CLI arguments > environment variables > defaults.
# .env (see .env.example)
BACKEND_TYPE=jaeger BACKEND_URL=http://localhost:16686
# Equivalent via CLI flags
tracehub-mcp --backend jaeger --url http://localhost:16686
| Variable | Type | Default | Description
冒頭だけを表示しています。続きはリポジトリで読めます