otel-instrumentation-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Host binding for HTTP/SSE | |
| MCP_PORT | No | Port for HTTP/SSE transport | 8080 |
| GITHUB_TOKEN | No | GitHub personal access token for authentication | |
| SERVICE_NAME | No | Service name for telemetry | otel-instrumentation-mcp-server |
| SERVICE_PORT | No | Port for HTTP transport (overrides MCP_PORT) | |
| GITHUB_APP_ID | No | GitHub App ID | |
| MCP_TRANSPORT | No | Transport type (stdio, http, sse) | stdio |
| SERVICE_VERSION | No | Service version | 0.15.0 |
| SERVICE_INSTANCE_ID | No | Instance identifier | local |
| GITHUB_INSTALLATION_ID | No | GitHub App installation ID | |
| GITHUB_APP_PRIVATE_KEY_PATH | No | Path to GitHub App private key file | |
| OTEL_EXPORTER_OTLP_ENDPOINT | No | OTLP collector endpoint | http://localhost:4317 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_opentelemetry_reposB | List OpenTelemetry repositories Returns a list of OpenTelemetry repositories |
| list_opentelemetry_issuesC | Get OpenTelemetry repository issues Returns issues from a specific OpenTelemetry repository Args: repo: Repository name (e.g. opentelemetry-python) |
| search_opentelemetry_issuesB | Search OpenTelemetry repository issues Search for issues in a specific OpenTelemetry repository using keywords Args: repo: Repository name (e.g. opentelemetry-python) keywords: Keywords to search for in issues |
| get_opentelemetry_examplesB | Get OpenTelemetry examples Returns a list of OpenTelemetry demo services and examples |
| get_opentelemetry_examples_by_languageB | Get OpenTelemetry examples by language Returns OpenTelemetry examples for a specific programming language Args: language: Programming language (e.g. python, java, go) |
| get_opentelemetry_docs_by_languageB | Get OpenTelemetry documentation by language and version Returns OpenTelemetry documentation for a specific programming language and version Args: language: Programming language (e.g. python, java, go) version: Version to retrieve (e.g. "v1.2.3", "latest", or None for latest) |
| get_semantic_conventionsB | Get OpenTelemetry semantic conventions from the semantic-conventions repository Returns semantic conventions from the OpenTelemetry semantic-conventions repository as markdown documentation files. Args: category: Optional category filter (e.g., "http", "database", "messaging") count: Maximum number of files to retrieve (default: 50) |
| get_instrumentation_score_specA | Get the Instrumentation Score specification Returns the main specification document for the Instrumentation Score standard, which provides a standardized metric for assessing OpenTelemetry instrumentation quality. |
| get_instrumentation_score_rulesA | Get Instrumentation Score rules Returns scoring rules from the Instrumentation Score specification. Rules can be filtered by ID, impact level, or target type. Args: rule_ids: Comma-separated list of rule IDs to fetch (e.g., "RES-001,SPA-001") impact_levels: Comma-separated list of impact levels (e.g., "Critical,Important") targets: Comma-separated list of targets (e.g., "Resource,Span") |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| ask_about_code | Ask a question about a code snippet. Generates a user message asking for analysis and OpenTelemetry documentation for a code snippet. Args: code_snippet: The code snippet to analyze and find documentation for Returns: PromptMessage: A formatted message containing the analysis request |
| autoinstrumentation_prompt | Ask a question about a code snippet. Generates a user message asking for autoinstrumentation updates to the code snippet. Args: code_snippet: The code snippet to analyze and find documentation for Returns: PromptMessage: A formatted message containing the autoinstrumentation request |
| custom_instrumentation_prompt | Ask a question about a code snippet. Generates a user message asking for custom instrumentation updates to the code snippet. Args: code_snippet: The code snippet to analyze and find documentation for Returns: PromptMessage: A formatted message containing the custom instrumentation request |
| instrumentation_score_analysis_prompt | Analyze instrumentation quality using the Instrumentation Score specification. Generates a user message asking for instrumentation quality analysis based on the Instrumentation Score rules and best practices. Args: telemetry_data: Optional telemetry data (traces, metrics, logs) to analyze service_name: Optional service name to focus the analysis on focus_areas: Optional comma-separated focus areas (e.g., "traces,metrics,resource_attributes") Returns: PromptMessage: A formatted message containing the instrumentation analysis request |
| instrumentation_score_rules_prompt | Explain Instrumentation Score rules and their importance. Generates a user message asking for explanation of the Instrumentation Score rule system, including rule categories, impact levels, and implementation guidance. Args: rule_categories: Optional comma-separated rule categories (e.g., "RES,SPA,MET") impact_levels: Optional comma-separated impact levels (e.g., "Critical,Important") Returns: PromptMessage: A formatted message containing the rules explanation request |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct purpose: rules, spec, docs, examples, semantic conventions, repos, issues, and search. There's no overlap; even the two 'by language' tools differentiate between documentation and examples.
All tool names follow a consistent verb_noun pattern with snake_case, using clear prefixes like get_, list_, search_. Suffixes like _by_language are applied uniformly, making the naming predictable and easy to navigate.
With 9 tools, the server is well-scoped for its purpose as a reference and documentation resource for OpenTelemetry instrumentation. Each tool serves a clear role without being excessive or insufficient.
The tool set covers essential aspects: rules, spec, docs, examples, conventions, and repository interaction. A minor gap is the lack of a direct tool to compute or evaluate an instrumentation score, but the provided tools offer foundational information for that purpose.