What it is
MCP (Model Context Protocol) is the open standard AI tools use to talk to external systems - the same way OTLP is the open standard your services use to ship telemetry. Telemtra's MCP server at https://mcp.telemtra.io/mcp gives any MCP-capable client read-only query tools over your workspace: logs, traces, metrics, the service map, and alert rules.
It is not tied to one vendor. Claude Code, Claude Desktop, Cursor, Cline, Windsurf, VS Code with Copilot, and any agent built on an MCP client library all connect the same way. OTLP in, MCP out - open standards in both directions.
Create an MCP key
MCP uses dedicated key scopes. Your existing ingest keys will not work here - and MCP keys cannot ingest - so a leaked credential on either side stays contained.
- In the app, open Settings → API keys.
- Give the key a name and pick a scope: MCP (read) for query-only access, or MCP (read + write) to also let your assistant manage resources - today that means alert rules.
- Copy the key once - it is shown a single time.
Claude Code
One command:
claude mcp add --transport http telemtra https://mcp.telemtra.io/mcp \
--header "Authorization: Bearer YOUR_MCP_KEY" Then just ask: "check telemtra - why is checkout-api erroring?"
Claude Desktop
Claude Desktop's Connectors UI expects OAuth, so connect through the mcp-remote bridge instead (requires Node.js). Open Settings → Developer → Edit Config and add:
{
"mcpServers": {
"telemtra": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.telemtra.io/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer YOUR_MCP_KEY"
}
}
}
} The header value goes through an env variable on purpose: Claude Desktop on Windows mangles spaces inside args entries, so "Authorization: Bearer ..." written directly as an argument fails with a confusing 'C:\Program' is not recognized error. The env pattern works on every platform. Fully quit Claude Desktop (including the system tray on Windows) and reopen - the config is only read at startup.
Gemini CLI
One command:
gemini mcp add --transport http \
--header "Authorization: Bearer YOUR_MCP_KEY" \
telemtra https://mcp.telemtra.io/mcp Codex CLI
Codex reads the bearer token from an environment variable:
export TELEMTRA_MCP_KEY=YOUR_MCP_KEY
codex mcp add telemtra --url https://mcp.telemtra.io/mcp \
--bearer-token-env-var TELEMTRA_MCP_KEY Make sure TELEMTRA_MCP_KEY is set in the shell Codex launches from (add it to your shell profile).
Cursor
Add to .cursor/mcp.json in your project (or the global ~/.cursor/mcp.json):
{
"mcpServers": {
"telemtra": {
"url": "https://mcp.telemtra.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_KEY"
}
}
}
} Any MCP client
The server speaks MCP over streamable HTTP. Point any MCP client library (official SDKs exist for Python, TypeScript, Go, Java, and more) at the endpoint with the key in the Authorization header:
URL: https://mcp.telemtra.io/mcp
Header: Authorization: Bearer YOUR_MCP_KEY Available tools
Every key gets the read tools, scoped to the workspace that owns it:
- search_logs - full-text log search with service, environment, and severity filters.
- find_traces / get_trace - find slow or failing traces, then walk one trace as a span tree with per-span durations and errors.
- list_metrics / query_metrics - discover metric names, then pull time series with rate, delta, or average aggregation.
- get_service_map - services and the calls between them, with request counts, error counts, and p95 latency.
- list_services - everything reporting telemetry.
- list_alerts - configured alert rules and when each last fired.
Keys created with the MCP (read + write) scope additionally get write tools. Today that means alert management - so your assistant can finish the loop: diagnose an error spike, then set up the alert that catches the next one:
- create_alert_rule - new log, metric, or trace-latency alert rules.
- update_alert_rule - tune thresholds, windows, filters, and scope; notification settings are preserved.
- enable_alert_rule / disable_alert_rule - toggle rules without deleting them.
Responses are capped and formatted for a model's context window - the 50 relevant log lines, not fifty thousand rows.
Security model
- Read-only by default. A standard MCP key exposes query tools only - no write, delete, or configuration access.
- Writes are opt-in and bounded. Write tools require the separate read + write scope, and even then the server exposes no delete: an assistant can create, tune, and toggle alert rules, but can never destroy one or touch anything else.
- Dedicated key scopes. MCP keys cannot ingest telemetry; ingest keys cannot read. Creating any MCP key is a deliberate action by a workspace owner or admin.
- Tenant isolation. Every query is scoped to the workspace that owns the key, the same enforcement the app itself uses.
- Revocable. Revoke the key in Settings → API keys and access stops immediately.
What to ask
Once connected, your assistant can answer questions like:
- "Why did checkout-api throw 500s in the last hour? Find the trace and show me where it failed."
- "Which service has the worst p95 right now?"
- "Are any alerts firing? What triggered the last one?"
- "Show ERROR logs from payment-api since the deploy 30 minutes ago."
- "Graph memory usage for inventory-api over the last 6 hours."
Pair it with the AI agent quickstart and the loop closes: your AI instruments the app, and the same AI investigates what got collected.