Search / io.github.mcpsmiths/tracehub-mcp
tracehub-mcp
L0· runs locallyQuery OTel traces across Jaeger, Tempo, Traceloop, Datadog, Sentry, X-Ray, New Relic, Honeycomb.
v0.13.0 · active · repository · descriptor JSON · versions
Search / io.github.mcpsmiths/tracehub-mcp
L0· runs locallyQuery OTel traces across Jaeger, Tempo, Traceloop, Datadog, Sentry, X-Ray, New Relic, Honeycomb.
v0.13.0 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"tracehub-mcp": {
"command": "uvx",
"args": [
"tracehub-mcp==0.13.0"
],
"env": {
"BACKEND_TYPE": "jaeger",
"BACKEND_URL": "${BACKEND_URL}",
"BACKEND_API_KEY": "${BACKEND_API_KEY}",
"BACKEND_APP_KEY": "${BACKEND_APP_KEY}",
"BACKEND_ENVIRONMENTS": "prd",
"BACKEND_TIMEOUT": "30",
"BACKEND_MAX_RESPONSE_BYTES": "67108864",
"LOG_LEVEL": "INFO",
"MAX_TRACES_PER_QUERY": "500",
"QUERY_CACHE_MAX_ENTRIES": "1024",
"OTEL_SERVICE_NAME": "tracehub-mcp",
"MCP_INCLUDE_ARGS_IN_SPANS": "false"
}
}
}
}claude mcp add tracehub-mcp -e "BACKEND_TYPE=jaeger" -e "BACKEND_URL=${BACKEND_URL}" -e "BACKEND_API_KEY=${BACKEND_API_KEY}" -e "BACKEND_APP_KEY=${BACKEND_APP_KEY}" -e "BACKEND_ENVIRONMENTS=prd" -e "BACKEND_TIMEOUT=30" -e "BACKEND_MAX_RESPONSE_BYTES=67108864" -e "LOG_LEVEL=INFO" -e "MAX_TRACES_PER_QUERY=500" -e "QUERY_CACHE_MAX_ENTRIES=1024" -e "OTEL_SERVICE_NAME=tracehub-mcp" -e "MCP_INCLUDE_ARGS_IN_SPANS=false" -- uvx tracehub-mcp==0.13.0[mcp_servers.tracehub-mcp]
command = "uvx"
args = ["tracehub-mcp==0.13.0"]
env = { "BACKEND_TYPE" = "jaeger", "BACKEND_URL" = "${BACKEND_URL}", "BACKEND_API_KEY" = "${BACKEND_API_KEY}", "BACKEND_APP_KEY" = "${BACKEND_APP_KEY}", "BACKEND_ENVIRONMENTS" = "prd", "BACKEND_TIMEOUT" = "30", "BACKEND_MAX_RESPONSE_BYTES" = "67108864", "LOG_LEVEL" = "INFO", "MAX_TRACES_PER_QUERY" = "500", "QUERY_CACHE_MAX_ENTRIES" = "1024", "OTEL_SERVICE_NAME" = "tracehub-mcp", "MCP_INCLUDE_ARGS_IN_SPANS" = "false" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"tracehub-mcp": {
"type": "local",
"command": [
"uvx",
"tracehub-mcp==0.13.0"
],
"enabled": true,
"environment": {
"BACKEND_TYPE": "jaeger",
"BACKEND_URL": "{env:BACKEND_URL}",
"BACKEND_API_KEY": "{env:BACKEND_API_KEY}",
"BACKEND_APP_KEY": "{env:BACKEND_APP_KEY}",
"BACKEND_ENVIRONMENTS": "prd",
"BACKEND_TIMEOUT": "30",
"BACKEND_MAX_RESPONSE_BYTES": "67108864",
"LOG_LEVEL": "INFO",
"MAX_TRACES_PER_QUERY": "500",
"QUERY_CACHE_MAX_ENTRIES": "1024",
"OTEL_SERVICE_NAME": "tracehub-mcp",
"MCP_INCLUDE_ARGS_IN_SPANS": "false"
}
}
}
}{
"mcpServers": {
"tracehub-mcp": {
"command": "uvx",
"args": [
"tracehub-mcp==0.13.0"
],
"env": {
"BACKEND_TYPE": "jaeger",
"BACKEND_URL": "${BACKEND_URL}",
"BACKEND_API_KEY": "${BACKEND_API_KEY}",
"BACKEND_APP_KEY": "${BACKEND_APP_KEY}",
"BACKEND_ENVIRONMENTS": "prd",
"BACKEND_TIMEOUT": "30",
"BACKEND_MAX_RESPONSE_BYTES": "67108864",
"LOG_LEVEL": "INFO",
"MAX_TRACES_PER_QUERY": "500",
"QUERY_CACHE_MAX_ENTRIES": "1024",
"OTEL_SERVICE_NAME": "tracehub-mcp",
"MCP_INCLUDE_ARGS_IN_SPANS": "false"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=tracehub-mcp&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJ0cmFjZWh1Yi1tY3A9PTAuMTMuMCJdLCJlbnYiOnsiQkFDS0VORF9UWVBFIjoiamFlZ2VyIiwiQkFDS0VORF9VUkwiOiIke0JBQ0tFTkRfVVJMfSIsIkJBQ0tFTkRfQVBJX0tFWSI6IiR7QkFDS0VORF9BUElfS0VZfSIsIkJBQ0tFTkRfQVBQX0tFWSI6IiR7QkFDS0VORF9BUFBfS0VZfSIsIkJBQ0tFTkRfRU5WSVJPTk1FTlRTIjoicHJkIiwiQkFDS0VORF9USU1FT1VUIjoiMzAiLCJCQUNLRU5EX01BWF9SRVNQT05TRV9CWVRFUyI6IjY3MTA4ODY0IiwiTE9HX0xFVkVMIjoiSU5GTyIsIk1BWF9UUkFDRVNfUEVSX1FVRVJZIjoiNTAwIiwiUVVFUllfQ0FDSEVfTUFYX0VOVFJJRVMiOiIxMDI0IiwiT1RFTF9TRVJWSUNFX05BTUUiOiJ0cmFjZWh1Yi1tY3AiLCJNQ1BfSU5DTFVERV9BUkdTX0lOX1NQQU5TIjoiZmFsc2UifX0%3D"
}{
"servers": {
"tracehub-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"tracehub-mcp==0.13.0"
],
"env": {
"BACKEND_TYPE": "jaeger",
"BACKEND_URL": "${BACKEND_URL}",
"BACKEND_API_KEY": "${BACKEND_API_KEY}",
"BACKEND_APP_KEY": "${BACKEND_APP_KEY}",
"BACKEND_ENVIRONMENTS": "prd",
"BACKEND_TIMEOUT": "30",
"BACKEND_MAX_RESPONSE_BYTES": "67108864",
"LOG_LEVEL": "INFO",
"MAX_TRACES_PER_QUERY": "500",
"QUERY_CACHE_MAX_ENTRIES": "1024",
"OTEL_SERVICE_NAME": "tracehub-mcp",
"MCP_INCLUDE_ARGS_IN_SPANS": "false"
}
}
}
}{
"mcpServers": {
"tracehub-mcp": {
"command": "uvx",
"args": [
"tracehub-mcp==0.13.0"
],
"env": {
"BACKEND_TYPE": "jaeger",
"BACKEND_URL": "${BACKEND_URL}",
"BACKEND_API_KEY": "${BACKEND_API_KEY}",
"BACKEND_APP_KEY": "${BACKEND_APP_KEY}",
"BACKEND_ENVIRONMENTS": "prd",
"BACKEND_TIMEOUT": "30",
"BACKEND_MAX_RESPONSE_BYTES": "67108864",
"LOG_LEVEL": "INFO",
"MAX_TRACES_PER_QUERY": "500",
"QUERY_CACHE_MAX_ENTRIES": "1024",
"OTEL_SERVICE_NAME": "tracehub-mcp",
"MCP_INCLUDE_ARGS_IN_SPANS": "false"
}
}
}
}extensions:
"tracehub-mcp":
enabled: true
name: "tracehub-mcp"
type: stdio
cmd: "uvx"
args:
- "tracehub-mcp==0.13.0"
envs:
"BACKEND_TYPE": "jaeger"
"BACKEND_URL": "${BACKEND_URL}"
"BACKEND_API_KEY": "${BACKEND_API_KEY}"
"BACKEND_APP_KEY": "${BACKEND_APP_KEY}"
"BACKEND_ENVIRONMENTS": "prd"
"BACKEND_TIMEOUT": "30"
"BACKEND_MAX_RESPONSE_BYTES": "67108864"
"LOG_LEVEL": "INFO"
"MAX_TRACES_PER_QUERY": "500"
"QUERY_CACHE_MAX_ENTRIES": "1024"
"OTEL_SERVICE_NAME": "tracehub-mcp"
"MCP_INCLUDE_ARGS_IN_SPANS": "false"
timeout: 300
Placeholders to fill from your own secret store: ${BACKEND_API_KEY}, ${BACKEND_APP_KEY}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknownNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo ~liveness-unmeasured +updated-5d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] PyPIthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
tracehub-mcp | pypi | 0.13.0 | – | BACKEND_API_KEY, BACKEND_APP_KEY |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.mcpsmiths/tracehub-mcp",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.13.0",
"packages": [
{
"version": "0.13.0",
"transport": {
"type": "stdio"
},
"identifier": "tracehub-mcp",
"registryType": "pypi",
"environmentVariables": [
{
"name": "BACKEND_TYPE",
"format": "string",
"choices": [
"jaeger",
"tempo",
"traceloop",
"datadog",
"sentry",
"xray",
"newrelic",
"honeycomb"
],
"default": "jaeger",
"isRequired": true,
"description": "Which observability backend to query."
},
{
"name": "BACKEND_URL",
"format": "string",
"isRequired": true,
"description": "Backend API endpoint, e.g. http://localhost:16686 for Jaeger, https://api.datadoghq.com for Datadog, https://api.newrelic.com/graphql for New Relic, or https://api.honeycomb.io for Honeycomb. For the X-Ray backend this is decorative only (e.g. https://xray.us-east-1.amazonaws.com) - never dereferenced for a live request."
},
{
"name": "BACKEND_API_KEY",
"format": "string",
"isSecret": true,
"description": "API key or auth token. Required for Traceloop, Datadog, Sentry, New Relic, and Honeycomb; not used by Jaeger, Tempo, or X-Ray. For New Relic this must be a User API key, not an Ingest or License key; for Honeycomb this must be a Configuration Key, not an Ingest or Management key."
},
{
"name": "BACKEND_AWS_REGION",
"format": "string",
"description": "AWS region, e.g. us-east-1. Required for the X-Ray backend only - X-Ray authenticates via boto3's standard AWS credential chain, not BACKEND_API_KEY."
},
{
"name": "BACKEND_NEWRELIC_ACCOUNT_ID",
"format": "string",
"description": "New Relic account ID, required for the New Relic backend only - NerdGraph queries are user-scoped, not account-scoped, so this identifies which account's data to read."
},
{
"name": "BACKEND_HONEYCOMB_DATASET",
"format": "string",
"description": "Honeycomb dataset slug, required for the Honeycomb backend only - the Query Data API is dataset-scoped."
},
{
"name": "BACKEND_APP_KEY",
"format": "string",
"isSecret": true,
"description": "Datadog Application key, required in addition to BACKEND_API_KEY for the Datadog backend only."
},
{
"name": "BACKEND_TEMPO_INSTANCE_ID",
"format": "string",
"description": "Grafana Cloud stack/instance ID, used with BACKEND_API_KEY for Basic Auth (Tempo backend only, required for Grafana Cloud-hosted Tempo, not needed for self-hosted Tempo)."
},
{
"name": "BACKEND_SENTRY_ORG",
"format": "string",
"description": "Sentry organization slug, required for the Sentry backend only."
},
{
"name": "BACKEND_SENTRY_PROJECT",
"format": "string",
"description": "Sentry project slug, optional for the Sentry backend - narrows queries to one project."
},
{
"name": "BACKEND_ENVIRONMENTS",
"format": "string",
"default": "prd",
"description": "Comma-separated environments for the Traceloop backend only."
},
{
"name": "BACKEND_TIMEOUT",
"format": "number",
"default": "30",
"description": "Request timeout in seconds."
},
{
"name": "BACKEND_MAX_RESPONSE_BYTES",
"format": "number",
"default": "67108864",
"description": "Ceiling on the decoded size of any single backend response, in bytes (1 to 1073741824). An oversized body is refused before it is buffered or parsed."
},
{
"name": "LOG_LEVEL",
"format": "string",
"choices": [
"DEBUG",
"INFO",
"WARNING",
"ERROR"
],
"default": "INFO",
"description": "Logging level."
},
{
"name": "MAX_TRACES_PER_QUERY",
"format": "number",
"default": "500",
"description": "Maximum traces validated per query (1-1000)."
},
{
"name": "SLOW_REQUEST_THRESHOLD_MS",
"format": "number",
"description": "Logs a WARNING for any backend request slower than this, independent of LOG_LEVEL. Unset disables slow-request logging."
},
{
"name": "QUERY_CACHE_TTL_SECONDS",
"format": "number",
"description": "Cache backend query results for this many seconds with in-flight request coalescing; finite, > 0 and at most 86400 (one day). Unset disables the cache."
},
{
"name": "QUERY_CACHE_MAX_ENTRIES",
"format": "number",
"default": "1024",
"description": "Upper bound on the number of cached query results held at once (1-100000); the least-recently-used entry is evicted first."
},
{
"name": "OTEL_EXPORTER_OTLP_ENDPOINT",
"format": "string",
"description": "Enables opt-in OTel self-instrumentation of tool calls when set. Unset means zero overhead - no TracerProvider is configured and no middleware is registered."
},
{
"name": "OTEL_SERVICE_NAME",
"format": "string",
"default": "tracehub-mcp",
"description": "Service name reported in self-instrumentation spans, only used when OTEL_EXPORTER_OTLP_ENDPOINT is set."
},
{
"name": "MCP_INCLUDE_ARGS_IN_SPANS",
"format": "string",
"choices": [
"true",
"false"
],
"default": "false",
"description": "Include tool call arguments/results as OTel span attributes when self-instrumentation is enabled. Off by default since they may contain sensitive data."
}
]
}
],
"repository": {
"url": "https://github.com/mcpsmiths/tracehub-mcp",
"source": "github"
},
"description": "Query OTel traces across Jaeger, Tempo, Traceloop, Datadog, Sentry, X-Ray, New Relic, Honeycomb."
}