AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified Apache-2.0 Self-run

Agenttel Sdk

mcp-agenttel-agenttel-sdk · by AgentTel

Agent-ready telemetry SDK — enriches OpenTelemetry across Java, Go, Python, Node.js, and browser with structured context for AI-driven observability.

No reviews yet
0 installs
12 views
0.0% view→install

Install

$ agentstack add mcp-agenttel-agenttel-sdk

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-agenttel-agenttel-sdk)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Agenttel Sdk? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

AgentTel Agent-Ready Telemetry


AgentTel enriches OpenTelemetry telemetry with the structured context AI agents need to autonomously diagnose, reason about, and resolve production incidents — without human interpretation of dashboards. Works across the full stack: JVM backends (Java, Kotlin, Scala), Go backends, Node.js/TypeScript backends, Python backends (FastAPI, Django, Flask), and browser frontends (TypeScript/JavaScript).

Standard observability answers "What happened?" AgentTel adds "What does an AI agent need to know to act on this?"

The Problem

Modern observability tools generate massive volumes of telemetry — traces, metrics, logs — optimized for human consumption through dashboards and alert rules. AI agents tasked with autonomous incident response face critical gaps:

  • No behavioral context — Spans lack baselines, so agents can't distinguish normal from anomalous
  • No topology awareness — Agents don't know which services are critical, who owns them, or what depends on what
  • No decision metadata — Is this operation retryable? Is there a fallback? What's the runbook?
  • No actionable interface — Agents can read telemetry but can't query live system state or execute remediation

AgentTel closes these gaps at the instrumentation layer.

Design Philosophy

Core principle: telemetry should carry enough context for AI agents to reason and act autonomously.

AgentTel enriches telemetry at three levels — all configurable via YAML, no code changes required:

| Level | Where | What | Example | |-------|-------|------|---------| | Topology | OTel Resource (once per service) | Service identity, ownership, dependencies | team, tier, on-call channel | | Baselines | Span attributes (per operation) | What "normal" looks like | P50/P99 latency, error rate | | Decisions | Span attributes (per operation) | What an agent is allowed to do | retryable, runbook URL, escalation level |

Topology is set once on the OTel Resource and automatically associated with all telemetry by the SDK. Baselines and decision metadata are attached per-operation on spans. This avoids redundant data on every span while ensuring agents always have the full context.

Quick Demo

Try AgentTel in one command — starts a demo payment service with OTel Collector and Jaeger:

cd examples/spring-boot-example
docker compose -f docker/docker-compose.yml up --build

Then open Jaeger to see enriched traces, Swagger UI for the API, and MCP Tool Docs for the agent interface.

What AgentTel Provides

Enriched Telemetry (agenttel-core)

Every span is automatically enriched with agent-actionable attributes:

| Category | Attributes | Purpose | |----------|-----------|---------| | Topology | agenttel.topology.team, tier, domain, dependencies | Service identity and dependency graph | | Baselines | agenttel.baseline.latency_p50_ms, error_rate, source | What "normal" looks like for each operation | | Decisions | agenttel.decision.retryable, idempotent, runbook_url, escalation_level | What an agent is allowed to do | | Anomalies | agenttel.anomaly.detected, pattern, score | Real-time deviation detection | | SLOs | agenttel.slo.budget_remaining, burn_rate | Error budget consumption tracking |

Agent Interface Layer (agenttel-agent)

A complete toolkit for AI agent interaction with production systems:

| Component | Description | |-----------|-------------| | MCP Server | JSON-RPC server implementing the Model Context Protocol — exposes telemetry as tools AI agents can call | | Health Aggregation | Real-time service health from span data with operation-level and dependency-level metrics | | Incident Context | Structured incident packages: what's happening, what changed, what's affected, what to do | | Remediation Framework | Registry of executable remediation actions with approval workflows | | Action Tracking | Every agent decision and action recorded as OTel spans for full auditability | | Context Formatters | Prompt-optimized output formats (compact, full, JSON) tuned for LLM context windows |

Frontend Telemetry (agenttel-web)

Browser SDK for agent-ready frontend observability:

| Feature | Description | |---------|-------------| | Auto-Instrumentation | Page loads (Navigation Timing API), SPA navigation, fetch/XMLHttpRequest interception, click/submit interactions, JavaScript errors | | Journey Tracking | Multi-step user funnel tracking with completion rates, abandonment detection, and duration baselines | | Anomaly Detection | Client-side pattern detection — rage clicks, API failure cascades, slow page loads, error loops, funnel drop-offs | | Cross-Stack Correlation | W3C Trace Context injection on all outgoing requests; backend trace ID extraction from responses | | Route Baselines | Per-route configuration of expected page load times, API response times, error rates, and business criticality | | Decision Metadata | Escalation levels, runbook URLs, retry policies, and fallback pages per route |

Instrumentation Agent (agenttel-instrument)

IDE-integrated MCP server for automated instrumentation setup:

| Tool | Description | |------|-------------| | analyze_codebase | Scans Java/Spring Boot source code — detects endpoints, dependencies, and framework | | instrument_backend | Generates backend config — Gradle/Maven dependencies, annotations, agenttel.yml | | instrument_frontend | Generates frontend config — React route detection, criticality inference, SDK initialization | | validate_instrumentation | Validates agenttel.yml completeness against source code | | suggest_improvements | Analyzes config and suggests fixes — missing baselines, uncovered endpoints, stale thresholds | | apply_improvements | Auto-applies low-risk improvements using live health data; flags high-risk items for review |

GenAI Instrumentation (agenttel-genai)

Full observability for AI/ML workloads on the JVM:

| Framework | Approach | Coverage | |-----------|----------|----------| | Spring AI | SpanProcessor enrichment of existing Micrometer spans | Framework tag, cost calculation | | LangChain4j | Decorator-based full instrumentation | Chat, embeddings, RAG retrieval | | Anthropic SDK | Client wrapper | Messages API with token/cost tracking | | OpenAI SDK | Client wrapper | Chat completions with token/cost tracking | | AWS Bedrock | Client wrapper | Converse API with token/cost tracking |

Agent Observability (agenttel-agentic)

Full lifecycle tracing for AI agents with 70+ semantic attributes:

| Feature | Description | |---------|-------------| | Invocation Lifecycle | Goal, status, step count, max steps for each agent execution | | Reasoning Steps | Thought, action, observation, evaluation, revision tracking | | Tool Calls | Tool name, success/error/timeout status per call | | Task Decomposition | Nested task breakdown with depth and parent tracking | | Orchestration Patterns | Sequential, parallel, evaluator-optimizer, handoff, ReAct, orchestrator-workers | | Cost Aggregation | Automatic LLM cost rollup from GenAI spans to agent sessions | | Guardrails | Block, warn, log, escalate actions with named guardrails | | Human Checkpoints | Approval, feedback, correction gates with wait time tracking | | Loop Detection | Detects stuck reasoning loops (identical tool calls) | | Quality Signals | Goal achievement, human interventions, eval scores | | RAG Pipeline | Retriever and reranker spans with relevance scoring | | Error Classification | Source (LLM/tool/agent/guardrail/timeout/network), retryability |

Three integration styles — programmatic, annotation, or YAML config:

Programmatic:

AgentTracer tracer = AgentTracer.create(openTelemetry)
    .agentName("incident-responder")
    .agentType(AgentType.SINGLE)
    .build();

try (AgentInvocation inv = tracer.invoke("Diagnose high latency")) {
    inv.step(StepType.THOUGHT, "Need to check service metrics");
    try (ToolCallScope tool = inv.toolCall("get_service_health")) {
        tool.success();
    }
    inv.complete(true);
}

@AgentMethod annotation (Spring Boot):

@AgentMethod(name = "incident-responder", type = "single", maxSteps = 100)
public IncidentReport diagnose(String incidentId) {
    // Automatically wrapped in AgentInvocation — no manual tracer calls
    return analyzeAndRespond(incidentId);
}

YAML config (Spring Boot):

agenttel:
  agentic:
    agents:
      incident-responder:
        type: single
        max-steps: 100
        loop-threshold: 5

Quick Start

AgentTel supports multiple integration paths — pick what fits your stack:

| Path | Best For | Effort | |------|----------|--------| | Spring Boot Starter | Spring Boot applications | Add dependency + YAML config | | Go SDK | Go services (net/http, Gin, gRPC) | go get + YAML config | | Node.js SDK | Express / Fastify services | npm install + YAML config | | Python SDK | FastAPI / Python services | pip install + YAML config | | JavaAgent Extension | Any JVM app (no code changes) | JVM flag + YAML config | | Web SDK | Browser/SPA applications | npm install + init call | | Instrument Agent | IDE-assisted setup | Run MCP server in IDE |

Backend: Spring Boot

1. Add Dependencies

Maven:


    
    
        dev.agenttel
        agenttel-spring-boot-starter
        0.3.0-alpha
    

    
    
        dev.agenttel
        agenttel-genai
        0.3.0-alpha
    

    
    
        dev.agenttel
        agenttel-agent
        0.3.0-alpha
    

Gradle:

// build.gradle.kts
dependencies {
    // Core: span enrichment, baselines, anomaly detection, SLO tracking
    implementation("dev.agenttel:agenttel-spring-boot-starter:0.3.0-alpha")

    // Optional: GenAI instrumentation
    implementation("dev.agenttel:agenttel-genai:0.3.0-alpha")

    // Optional: Agent interface layer (MCP server, incident context, remediation)
    implementation("dev.agenttel:agenttel-agent:0.3.0-alpha")
}
2. Configure Your Service

All enrichment is driven by YAML configuration -- no code changes needed:

# application.yml
agenttel:
  # Topology: set once on the OTel Resource, associated with all telemetry
  topology:
    team: payments-platform
    tier: critical
    domain: commerce
    on-call-channel: "#payments-oncall"
  dependencies:
    - name: postgres
      type: database
      criticality: required
      timeout-ms: 5000
      circuit-breaker: true
    - name: stripe-api
      type: rest_api
      criticality: required
      fallback: "Return cached pricing"

  # Reusable operational profiles — reduce repetition across operations
  profiles:
    critical-write:
      retryable: false
      escalation-level: page_oncall
      safe-to-restart: false
    read-only:
      retryable: true
      idempotent: true
      escalation-level: notify_team

  # Per-operation baselines and decision metadata
  # Use bracket notation [key] for operation names with special characters
  operations:
    "[POST /api/payments]":
      profile: critical-write
      expected-latency-p50: "45ms"
      expected-latency-p99: "200ms"
      expected-error-rate: 0.001
      retryable: true               # overrides profile default
      idempotent: true
      runbook-url: "https://wiki/runbooks/process-payment"
    "[GET /api/payments/{id}]":
      profile: read-only
      expected-latency-p50: "15ms"
      expected-latency-p99: "80ms"

  baselines:
    rolling-window-size: 1000
    rolling-min-samples: 10
  anomaly-detection:
    z-score-threshold: 3.0
3. Optional: Annotate for IDE Support

Annotations are optional -- YAML config above is sufficient. Use @AgentOperation when you want IDE autocomplete and compile-time validation. Reference profiles to avoid repeating values:

@AgentOperation(profile = "critical-write")
@PostMapping("/api/payments")
public ResponseEntity processPayment(@RequestBody PaymentRequest req) {
    // Your business logic — spans are enriched automatically
}

> When both YAML config and annotations define the same operation, YAML config takes priority. Per-operation values override profile defaults.

4. Start the MCP Server (Optional)
// Expose telemetry to AI agents via MCP
McpServer mcp = new AgentTelMcpServerBuilder()
    .port(8081)
    .contextProvider(agentContextProvider)
    .remediationExecutor(remediationExecutor)
    .build();
mcp.start();

AI agents can now call tools like get_service_health, get_incident_context, list_remediation_actions, and execute_remediation over JSON-RPC.

5. What You Get

Resource attributes (set once per service, associated with all telemetry):

agenttel.topology.team         = "payments-platform"
agenttel.topology.tier         = "critical"
agenttel.topology.domain       = "commerce"
agenttel.topology.on_call_channel = "#payments-oncall"
agenttel.topology.dependencies = [{"name":"postgres","type":"database",...}]

Span attributes (per operation, only on operations with registered metadata):

agenttel.baseline.latency_p50_ms = 45.0
agenttel.baseline.latency_p99_ms = 200.0
agenttel.baseline.error_rate     = 0.001
agenttel.baseline.source         = "static"
agenttel.decision.retryable      = true
agenttel.decision.runbook_url    = "https://wiki/runbooks/process-payment"
agenttel.decision.escalation_level = "page_oncall"
agenttel.anomaly.detected        = false
agenttel.slo.budget_remaining    = 0.85

When an incident occurs, agents get structured context via MCP:

=== INCIDENT inc-a3f2b1c4 ===
SEVERITY: HIGH
SUMMARY: POST /api/payments experiencing elevated error rate (5.2%)

## WHAT IS HAPPENING
Error Rate: 5.2% (baseline: 0.1%)
Latency P50: 312ms (baseline: 45ms)
Patterns: ERROR_RATE_SPIKE

## WHAT CHANGED
Last Deploy: v2.1.0 at 2025-01-15T14:30:00Z

## WHAT IS AFFECTED
Scope: operation_specific
User-Facing: YES
Affected Deps: stripe-api

## SUGGESTED ACTIONS
  - [HIGH] rollback_deployment: Rollback to previous version (NEEDS APPROVAL)
  - [MEDIUM] enable_circuit_breakers: Circuit break stripe-api

Backend: Python (FastAPI)

1. Install
pip install agenttel[fastapi]

# Optional extras
pip install agenttel[openai]       # OpenAI instrumentation
pip install agenttel[anthropic]    # Anthropic instrumentation
pip install agenttel[langchain]    # LangChain instrumentation
pip install agenttel[all]          # Everything
2. Configure
# agenttel.yml
agenttel:
  topology:
    service-name: payment-service
    team: payments-platform
    tier: critical
    domain: commerce
    on-call-channel: "#payments-oncall"
  operations:
    "POST /api/payments":
      expected-latency-p50: 45ms
      expected-latency-p99: 200ms
      retryable: true
      runbook-url: "https://wiki/runbooks/process-payment"
  slo:
    availability:
      target: 0.999
      type: availability
3. Instrument
from fastapi import FastAPI
from agenttel.fastapi import instrument_fastapi

app = FastAPI()
instrument_fastapi(app)  # One-line integration

All spans are now enriched with topology, baselines, anomaly detection, and SLO tracking — identical attributes to the JVM SDK.

Backend: Go

1. Install
go get go.agenttel.dev/agenttel-go@latest
2. Configure
# agenttel.yml — same format as JVM/Python SDKs
agenttel:
  topology:
    service-name: payment-service
    team: payments-platform
    tier: critical
  operations:
    "POST /api/payments":
      expected-latency-p50: 45ms

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [AgentTel](https://github.com/AgentTel)
- **Source:** [AgentTel/agenttel-sdk](https://github.com/AgentTel/agenttel-sdk)
- **License:** Apache-2.0
- **Homepage:** https://agenttel.dev/

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.