Skip to main content
Glama
dburton-influxdata

Telegraf Controller MCP Server

Telegraf Controller MCP Server

A Model Context Protocol (MCP) server that gives AI assistants full control over Telegraf Controller — manage agent fleets, configurations, labels, and health rules using natural language.

License: MIT Node.js MCP


What This Does

Ask your AI assistant (Claude, Cline, etc.) questions like:

  • "Show me all Telegraf agents that haven't reported in the last hour"

  • "Create a configuration for MQTT IoT sensor collection and deploy it"

  • "Label all production agents and assign them the strict monitoring rule"

  • "Merge our CPU, memory, and disk configs into one stack"

  • "Which agents are not reporting and why?"

The MCP server translates natural language → 27 API calls → structured answers, all without leaving your chat interface.


Related MCP server: Metabase MCP Plus

Architecture

┌──────────────────────────┐
│   Claude / Cline / etc.  │
└────────────┬─────────────┘
             │ MCP (stdio)
             ▼
┌──────────────────────────┐
│   Telegraf Controller    │
│      MCP Server          │
│  27 tools · 4 resources  │
│  6 guided prompts        │
└────────────┬─────────────┘
             │ HTTP/REST
             ▼
┌──────────────────────────┐
│   Telegraf Controller    │
│   (port 8888)            │
│  Agent mgmt · Configs    │
│  Labels · Health rules   │
└──────────────────────────┘
             │ Heartbeat (port 8889)
             ▼
┌──────────────────────────┐
│   Telegraf Agents        │
│  (IoT, infra, etc.)      │
└──────────────────────────┘

Quick Start

Prerequisites

1. Start the Telegraf Controller

docker run -d \
  --name telegraf-controller \
  -p 8888:8888 \
  -p 8889:8889 \
  influxdata/telegraf-controller:latest

# Verify
curl http://localhost:8888/health
# → {"status":"healthy","message":"Telegraf Controller is accessible"}

Or use the included Docker Compose:

docker-compose up -d

2. Configure Your MCP Client

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "telegraf-controller": {
      "command": "npx",
      "args": ["-y", "@influxdata/telegraf-controller-mcp-server"],
      "env": {
        "TELEGRAF_CONTROLLER_URL": "http://localhost:8888"
      }
    }
  }
}

Local install (Node.js)

git clone https://github.com/dburton-influxdata/telegraf-controller-mcp-server.git
cd telegraf-controller-mcp-server
npm install && npm run build

Then in your MCP client config:

{
  "mcpServers": {
    "telegraf-controller": {
      "command": "node",
      "args": ["/absolute/path/to/telegraf-controller-mcp-server/build/index.js"],
      "env": {
        "TELEGRAF_CONTROLLER_URL": "http://localhost:8888"
      }
    }
  }
}

Docker

docker run -i --rm --network=host \
  -e TELEGRAF_CONTROLLER_URL=http://localhost:8888 \
  ghcr.io/dburton-influxdata/telegraf-controller-mcp-server:latest

3. Restart Your MCP Client & Test

After restarting Claude Desktop / Cline, ask:

"Check the health of my Telegraf Controller"

You should see the MCP server respond with agent counts, health status, and configuration counts.


Available Tools (27)

Configuration Management (9 tools)

Tool

Description

Modifies State

telegraf-controller_list_configs

List all configurations with metadata

❌ Read-only

telegraf-controller_get_config

Get full TOML content of a config

❌ Read-only

telegraf-controller_get_config_details

Get config metadata (no TOML)

❌ Read-only

telegraf-controller_create_config

Create a new Telegraf configuration

✅ Creates

telegraf-controller_update_config

Update name, TOML, or description

✅ Modifies

telegraf-controller_delete_config

Delete a configuration

✅ Deletes

telegraf-controller_duplicate_config

Clone a configuration

✅ Creates

telegraf-controller_bulk_duplicate_configs

Clone multiple configs at once

✅ Creates

telegraf-controller_merge_configs

Combine multiple configs into one

✅ Creates

Agent Management (6 tools)

Tool

Description

Modifies State

telegraf-controller_list_agents

List all agents (filterable by status)

❌ Read-only

telegraf-controller_get_agent_details

Get full details for one agent

❌ Read-only

telegraf-controller_get_agent_summary

Fleet-wide health statistics

❌ Read-only

telegraf-controller_delete_agent

Remove an agent from the controller

✅ Deletes

telegraf-controller_bulk_delete_agents

Remove multiple agents at once

✅ Deletes

telegraf-controller_assign_agent_reporting_rule

Override health threshold for agent

✅ Modifies

Label Management (8 tools)

Tool

Description

Modifies State

telegraf-controller_list_labels

List all labels

❌ Read-only

telegraf-controller_get_label

Get label details

❌ Read-only

telegraf-controller_create_label

Create a new label

✅ Creates

telegraf-controller_update_label

Update label description

✅ Modifies

telegraf-controller_delete_label

Delete a label

✅ Deletes

telegraf-controller_bulk_delete_labels

Delete multiple labels

✅ Deletes

telegraf-controller_assign_label_to_agent

Tag one agent with a label

✅ Modifies

telegraf-controller_bulk_assign_labels_to_agents

Tag multiple agents with labels

✅ Modifies

Reporting Rules (5 tools)

Tool

Description

Modifies State

telegraf-controller_list_reporting_rules

List all health threshold rules

❌ Read-only

telegraf-controller_get_reporting_rule

Get one rule's details

❌ Read-only

telegraf-controller_create_reporting_rule

Define new health threshold

✅ Creates

telegraf-controller_update_reporting_rule

Update thresholds

✅ Modifies

telegraf-controller_delete_reporting_rule

Remove a rule

✅ Deletes

System Tools (3 tools)

Tool

Description

telegraf-controller_health_check

Verify controller is reachable

telegraf-controller_get_heartbeat_info

Get heartbeat endpoint URL

telegraf-controller_get_analytics_instance

Get analytics instance ID


MCP Resources

Read-only data URIs available to your AI client:

URI

Description

telegraf://status

Real-time controller status + agent summary

telegraf://configs

All configurations (names, IDs, descriptions)

telegraf://agents

All agents with current health status

telegraf://reporting-rules

All health threshold rules


MCP Prompts (Guided Workflows)

Pre-built workflows that chain multiple tools together:

Prompt

Description

check-agent-health

Full fleet health report

troubleshoot-not-reporting

Diagnose silent agents step-by-step

create-config-from-template

Guided TOML config creation

deploy-config-to-agents

Walk through deploying configs

optimize-reporting-rules

Analyze and improve health thresholds

agent-fleet-overview

Complete fleet summary


Usage Examples

Natural Language

"List all agents that haven't reported in the last 30 minutes"
→ Uses: list_agents(status_filter="not_reporting")

"Create an IoT sensor config for MQTT topics IOT/+/temperature and IOT/+/humidity"
→ Uses: create_config(name=..., toml=...)

"Assign the production label and strict monitoring rule to all US-East agents"
→ Uses: list_agents + list_labels + bulk_assign_labels_to_agents + assign_agent_reporting_rule

"Merge the CPU, memory, and disk configs into one monitoring stack"
→ Uses: list_configs + merge_configs(...)

Slash Commands (Cline / OpenCode)

# Health check
/mcp telegraf-controller_health_check

# List all agents
/mcp telegraf-controller_list_agents limit=100 page=1

# Get unhealthy agents only
/mcp telegraf-controller_list_agents status_filter=not_reporting

# Create a label
/mcp telegraf-controller_create_label description="env:production"

# Create a config
/mcp telegraf-controller_create_config \
  name="iot-sensors" \
  description="MQTT IoT data collector" \
  toml="[agent]\n  interval = \"10s\"\n\n[[inputs.mqtt_consumer]]\n..."

# Create a strict reporting rule
/mcp telegraf-controller_create_reporting_rule \
  name="production-strict" \
  threshold_seconds=300 \
  has_auto_delete=false

Complete Fleet Setup (step-by-step)

1. Check health:
   telegraf-controller_health_check

2. See current state:
   telegraf-controller_get_agent_summary

3. Create environment labels:
   telegraf-controller_create_label description="env:production"
   telegraf-controller_create_label description="location:us-east"
   telegraf-controller_create_label description="type:iot-sensor"

4. Create IoT config:
   telegraf-controller_create_config name="iot-us-east" toml="..."

5. Create strict monitoring rule:
   telegraf-controller_create_reporting_rule name="prod-strict" threshold_seconds=300

6. Assign labels to agents:
   telegraf-controller_bulk_assign_labels_to_agents agent_ids="..." label_ids="..."

7. Assign reporting rule:
   telegraf-controller_assign_agent_reporting_rule agent_id="..." rule_id="..."

Configuration

Environment Variables

Variable

Required

Default

Description

TELEGRAF_CONTROLLER_URL

Yes

http://localhost:8888

Base URL of Telegraf Controller API

MCP Client Config Examples

See the examples/ directory:


Grafana Dashboards

Four pre-built Grafana dashboards are included in grafana/dashboards/:

Dashboard

File

Description

IoT Sensor Monitoring

iot-sensors.json

Real-time MQTT sensor data (temp, humidity, pressure, CO2)

Infrastructure Monitoring

infrastructure.json

CPU, memory, disk, network, Docker metrics

Controller Events

controller-events.json

Config changes, agent lifecycle, label assignments

MCP Server Monitoring

telegraf-mcp-monitoring.json

Agent health, config counts, MCP tool activity

Import Dashboards

# Install Grafana (if not running)
docker run -d -p 3001:3000 --name grafana grafana/grafana:latest

# Import via Grafana UI
# 1. http://localhost:3001 → Dashboards → Import
# 2. Upload JSON files from grafana/dashboards/

# Or import via API
for f in grafana/dashboards/*.json; do
  curl -s -X POST http://admin:admin@localhost:3001/api/dashboards/import \
    -H "Content-Type: application/json" \
    -d "{\"dashboard\": $(cat $f), \"overwrite\": true, \"folderId\": 0}"
  echo " → Imported: $f"
done

See docs/GRAFANA_DASHBOARDS.md for full panel descriptions and queries.


Documentation

Document

Description

docs/MCP_TOOLS.md

Complete reference for all 27 tools with parameters and examples

docs/INSTALLATION.md

Step-by-step setup for Claude Desktop, Cline, OpenCode

docs/GRAFANA_DASHBOARDS.md

All 4 dashboards: panels, queries, import instructions


Project Structure

telegraf-controller-mcp-server/
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── tools/
│   │   ├── configs.ts        # Configuration management tools
│   │   ├── agents.ts         # Agent management tools
│   │   └── reporting.ts      # Reporting rules tools
│   ├── resources/
│   │   └── index.ts          # 4 MCP resources
│   ├── prompts/
│   │   └── index.ts          # 6 guided prompts
│   └── utils/
│       ├── client.ts         # Telegraf Controller API client
│       └── validation.ts     # Input validation helpers
├── examples/
│   ├── claude-desktop-local.json
│   ├── claude-desktop-npx.json
│   └── claude-desktop-docker.json
├── grafana/
│   └── dashboards/
│       ├── iot-sensors.json
│       ├── infrastructure.json
│       ├── controller-events.json
│       └── telegraf-mcp-monitoring.json
├── docs/
│   ├── MCP_TOOLS.md          # All 27 tools reference
│   ├── INSTALLATION.md       # Setup guide
│   └── GRAFANA_DASHBOARDS.md # Dashboard reference
├── context/                  # Telegraf documentation context files
├── Dockerfile
├── docker-compose.yml
├── package.json
└── tsconfig.json

Development

Build from Source

git clone https://github.com/dburton-influxdata/telegraf-controller-mcp-server.git
cd telegraf-controller-mcp-server
npm install
npm run build

Test with MCP Inspector

npm run inspector
# Opens browser-based MCP inspector at http://localhost:5173

Test Manually

# Initialize the MCP server
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
  | TELEGRAF_CONTROLLER_URL=http://localhost:8888 node build/index.js

# List all tools
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
  | TELEGRAF_CONTROLLER_URL=http://localhost:8888 node build/index.js

Docker Build

docker build -t telegraf-controller-mcp-server:dev .

# Test Docker image
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
  | docker run -i --rm --network=host \
      -e TELEGRAF_CONTROLLER_URL=http://localhost:8888 \
      telegraf-controller-mcp-server:dev

Troubleshooting

"Cannot connect to Telegraf Controller"

# Check controller is running
curl http://localhost:8888/health

# Check from Docker (if MCP runs in Docker)
curl http://host.docker.internal:8888/health

"No agents found"

Agents must send heartbeats to the Controller. Add to any Telegraf config:

[[outputs.http]]
  url = "http://localhost:8889/agents/heartbeat"
  method = "POST"
  data_format = "json"
  [outputs.http.headers]
    Content-Type = "application/json"

Verify heartbeats are arriving:

docker logs telegraf-controller 2>&1 | grep heartbeat

MCP server not showing in Claude Desktop

  1. Verify the path to build/index.js is absolute (not relative)

  2. Check JSON config syntax (no trailing commas)

  3. Check Claude Desktop logs:

    • macOS: ~/Library/Logs/Claude/mcp*.log

    • Windows: %APPDATA%\Claude\logs\

  4. Restart Claude Desktop completely



License

MIT — see LICENSE


Built by the InfluxData community · Report an issue

Available Tools

16 tools
create_configB

Create a new Telegraf configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the configuration
tomlYesThe Telegraf configuration in TOML format
labelsNoComma-separated labels (e.g., "production,monitoring")
descriptionNoOptional description of the configuration

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create a new Telegraf configuration' only indicates a mutation; it does not mention possible validation of the TOML input, conflict behavior on duplicate names, permission requirements, or the return value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler or redundant content. It communicates the core purpose efficiently, earning top marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should at least indicate the operation's result (e.g., returns the created config). It also lacks context about expected input values or validation. For a create tool with multiple parameters, this is insufficient for an agent to fully understand the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema documents all four parameters with descriptions, so the schema coverage is 100%. The tool description adds no additional parameter context beyond what the schema already provides, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function using a specific verb and resource: 'Create a new Telegraf configuration.' It distinguishes the tool from siblings like list_configs, update_config, and delete_config, which handle the same resource differently.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool, prerequisites, or how it compares to alternatives such as create_reporting_rule. It only states what the tool does, leaving the agent to infer usage from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_reporting_ruleB

Create a new reporting rule to define when agents are considered unhealthy

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesDescription of the reporting rule
has_auto_deleteNoWhether to automatically delete agents that exceed the threshold
threshold_secondsYesThreshold in seconds before marking agent as not reporting (minimum 60)
auto_delete_threshold_secondsNoThreshold in seconds before auto-deleting agent (must be greater than threshold_seconds)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions the purpose, not side effects, permissions, reversibility, or consequences of creation (e.g., whether it overwrites existing rules, requires prior configuration, or returns a rule ID). This is a significant gap for a mutating create operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is succinct and front-loaded with the action. It contains no fluff, but it is also quite sparse. It earns a 4 because it is concise without being overly terse for a tool of this simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the schema fully documenting parameters, the description lacks essential context: no usage scenarios, no indication of output or errors, and no clarification of how this tool fits into a workflow with sibling tools. For a create operation with no annotations, the description should provide more functional guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% parameter coverage with descriptions for all 4 fields, so the baseline is 3. The description adds a high-level context ('define when agents are considered unhealthy') but does not elaborate on individual parameters beyond what the schema already specifies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the specific resource 'reporting rule', and adds the purpose 'to define when agents are considered unhealthy'. This distinguishes it from sibling tools like create_config or update_reporting_rule, which target different resources or actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that it's for creating new rules as opposed to updating existing ones, nor does it note any prerequisites or exclusions. A 2 is appropriate because the context is entirely implied by the tool's name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_agentB

Delete a Telegraf agent from the controller

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust be set to true to confirm deletion
agent_idYesThe ID of the agent to delete

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the deletion action but does not disclose that it is irreversible, requires confirmation, or any cascading effects on related configurations. This is a significant gap for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the core purpose. Every word contributes value, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, this description is incomplete. It lacks information about prerequisites, consequences, and the required confirm parameter. While simple, it does not provide enough context for an agent to invoke it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully described in the input schema (100% coverage), so the schema does the heavy lifting. The description adds no additional parameter information, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete) and the resource (Telegraf agent), with context (from the controller). This distinguishes it from sibling delete tools like delete_config and delete_reporting_rule, which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, no prerequisites are mentioned, and no exclusions are stated. The only implied usage is 'when you want to delete an agent,' which is minimal and not differentiated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_configB

Delete a Telegraf configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
config_idYesThe UUID of the configuration to delete

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that it deletes a configuration, but does not mention permanence, side effects, permissions, or error behavior. This is minimal at best.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, extremely concise sentence with no wasted words. It is appropriately sized for a simple delete operation and front-loaded with the key verb and object.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the tool is simple with one parameter fully covered by the schema, the description lacks essential context such as behavior on nonexistent configs, whether deletion is permanent, or any return value details. No annotations or output schema compensate for this, making the description incomplete for an agent to rely on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'config_id', which is already well-described as 'The UUID of the configuration to delete'. The description adds no additional meaning beyond what the schema provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Delete' and the resource 'a Telegraf configuration', which distinguishes it from sibling tools like delete_agent and delete_reporting_rule. It is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, and does not mention any exclusions or prerequisites. It simply states the action with no context for selection among the sibling delete tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_reporting_ruleA

Delete a reporting rule (agents using it will be reassigned to default rule)

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust be set to true to confirm deletion
rule_idYesThe UUID of the reporting rule to delete

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It explicitly notes that agents using the rule will be reassigned to the default rule, which is a valuable side effect beyond the schema. However, it does not mention any other consequences (e.g., irreversibility) or the confirm requirement, which are partially covered by the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with a parenthetical, immediately stating the action and its key effect. It is concise, front-loaded, and contains no filler, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with two parameters, the description covers the core action and the most important side effect. It lacks explicit information about return values or error handling, but given the absence of an output schema and the tool's simplicity, it is reasonably complete, though not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for both rule_id and confirm, so the description adds no additional parameter-level detail. It does not explain formats, valid values, or relationships beyond what the schema already provides, warranting a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Delete' with the resource 'reporting rule', clearly distinguishing it from sibling tools like create_reporting_rule, update_reporting_rule, and get_reporting_rule. The parenthetical about agents being reassigned to the default rule further clarifies the tool's scope and effect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool over alternatives or provide exclusions. The parenthetical implies a scenario (deleting a rule that agents use), but there is no direct comparison with update_reporting_rule or other options, so usage guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_detailsB

Get detailed information about a specific Telegraf agent

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesThe ID of the agent (instanceId)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only repeats the read-only nature of the operation ('Get') without adding context such as what 'detailed information' includes, potential error cases, authentication requirements, or whether the data includes configuration, status, or metadata. This adds little beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no unnecessary words. It front-loads the key information and is efficiently structured, earning every word.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema and no annotations, the description is too thin to fully inform an agent. It does not specify what 'detailed information' covers, how it compares to get_agent_summary, or what kind of response to expect. This lack of completeness could lead to incorrect tool selection or usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the single parameter (agent_id), which is already described as 'The ID of the agent (instanceId)'. The tool description does not add any additional meaning or context for the parameter, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get detailed information') and resource ('a specific Telegraf agent'), which distinguishes it from sibling tools like list_agents (which returns all agents) and get_agent_summary (which likely returns a summary). The focus on a specific agent is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when detailed information for one agent is needed, but it does not explicitly mention when to prefer this over get_agent_summary or other alternatives, nor does it state any exclusions or conditions. Usage context is only implied by the phrase 'a specific agent'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_summaryA

Get a summary of all agents including status breakdown and health percentage

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral transparency burden. It uses 'Get' which implies a read-only operation, and it describes the output content (status breakdown, health percentage). However, it does not explicitly state that the operation is non-mutating or mention any side effects, auth requirements, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the primary action ('Get a summary of all agents') and includes valuable specifics. No waste or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description provides enough context about the return value by mentioning 'status breakdown and health percentage.' It does not fully specify the output structure, but for a summary tool, this is sufficient. The description could be slightly richer in relating to health_check or list_agents, but overall it is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline per the rubric is 4. The description does not need to add parameter meaning, and the schema is empty, so no additional semantics are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a summary of all agents' with specifics about status breakdown and health percentage. This distinguishes it from sibling tools like list_agents (which likely lists agents individually) and get_agent_details (which targets a single agent).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining a high-level overview of all agents, but it does not explicitly contrast with alternatives such as list_agents or get_agent_details. There is no when-to-use vs. when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_configA

Get a Telegraf configuration in TOML format with optional parameter substitution

ParametersJSON Schema
NameRequiredDescriptionDefault
config_idYesThe UUID of the configuration to retrieve
parametersNoJSON string of parameters for substitution (e.g., '{"db_name":"mydb"}')

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description is the sole source of behavioral context. It discloses that the response is in TOML format and that parameter substitution is available, which adds value. However, it does not mention error behavior, authentication needs, or side effects, leaving gaps for a read operation with no annotation safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It conveys the action, resource, format, and optional behavior efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-get tool with two well-described parameters, the description covers the key aspects: what is retrieved, the output format, and the optional substitution. However, it lacks usage guidance and deeper behavioral details (e.g., error handling), but the simplicity and schema richness make it largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers both parameters with clear descriptions (config_id as a UUID, parameters as a JSON string for substitution). The description does not add additional semantics beyond what the schema already provides, so the baseline of 3 for high schema coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') with a clear resource ('Telegraf configuration') and adds the output format ('TOML') and optional parameter substitution, which distinguishes it from sibling tools like list_configs and get_config_details. It clearly states what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives such as list_configs or get_config_details. It does not mention exclusions, prerequisites, or preferred scenarios, leaving the agent to infer usage from the name and context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_config_detailsB

Get detailed metadata about a Telegraf configuration (JSON format)

ParametersJSON Schema
NameRequiredDescriptionDefault
config_idYesThe UUID of the configuration

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It states the operation is a read ('Get'), indicates the response is in JSON format, and that it returns metadata rather than the full configuration. However, it doesn't disclose error behavior, permission requirements, or what fields constitute 'detailed metadata'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence without filler. It front-loads the core action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a single parameter, no output schema, and no annotations, so the description is the primary source of guidance. It covers the basic operation and return format but omits details about the response structure or error cases, making it minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents `config_id` as 'The UUID of the configuration' (100% coverage). The description adds no additional parameter semantics, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed metadata about a Telegraf configuration, with a specific verb ('Get') and resource ('detailed metadata'). However, it doesn't explicitly differentiate between `get_config_details` and the sibling `get_config`, which likely returns the actual configuration content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives like `get_config` or `list_configs`. No exclusions or context are provided, leaving the agent to infer the use case from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reporting_ruleB

Get details of a specific reporting rule

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_idYesThe UUID of the reporting rule

TDQS

B3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get details' without stating whether the operation is read-only, what happens with invalid IDs, response format, or error behavior. This is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no irrelevant words. It is front-loaded with the action and resource, and every word contributes to the meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema and annotations, the description should clarify what 'details' includes or specify behavior for missing rules. The current description is too vague to be fully useful for an agent deciding whether this tool meets its needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes rule_id as 'The UUID of the reporting rule' (100% coverage). The description adds no extra meaning beyond the schema, but since schema coverage is high, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get details of a specific reporting rule' clearly identifies the action (get), the resource (reporting rule), and the specificity (a single rule). It distinguishes from sibling tools like list_reporting_rules, create_reporting_rule, update_reporting_rule, and delete_reporting_rule by indicating a read operation for one item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention that a rule_id is required or that this should be used to retrieve a single rule instead of listing all rules. No prerequisites or context are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

health_checkA

Check the health status of the Telegraf Controller

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It implies a read-only operation but does not explicitly state side-effect-free behavior, return format, error conditions, or any permissions needed. Minimal behavioral context beyond purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words, clearly stating the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter health check tool, the description conveys the core purpose but lacks details about the output format or potential error states. Given no output schema and no annotations, it is minimally adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema imposes no requirements. The description adds no parameter details, but none are needed; a baseline of 4 is appropriate for 0-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'check' with a clear resource 'health status of Telegraf Controller'. It is distinct from sibling tools that manage configs, agents, and reporting rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied for health monitoring but no explicit when-to-use or alternative recommendations are provided. The description does not mention exclusions or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agentsA

List Telegraf agents, optionally filtered by status

ParametersJSON Schema
NameRequiredDescriptionDefault
status_filterNoFilter agents by status: "ok" or "not_reporting"

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the listing action and the optional filter, which is already in the schema. Key behaviors like default filtering behavior, pagination, or read-only safety are not disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and resource. No unnecessary words or repetitions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one optional parameter and no output schema, the description provides adequate understanding of the base function. It could be enhanced by noting default behavior when no filter is given or what the response contains, but these are reasonably implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents the single parameter with an enum and description (100% coverage). The tool description adds 'optionally' and 'by status', which are redundant with the schema's optional status_filter. Minimal added meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List'), the resource ('Telegraf agents'), and a scoping condition ('optionally filtered by status'). This distinguishes it from sibling tools like list_configs or get_agent_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing agents but gives no explicit guidance on when to choose this over alternatives such as get_agent_details or list_reporting_rules. No exclusions or alternative tool references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_configsA

List all Telegraf configurations with metadata

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool returns metadata (not full configurations), which is useful, but it omits information about response structure, pagination, or authentication requirements. For a simple list operation, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficiently worded sentence that front-loads the verb and resource. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description sufficiently conveys the core purpose and return type at a high level. It could add details about the metadata format or mention that all configs are returned without filtering, but it is reasonably complete for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is complete by default. The description adds meaning by clarifying the return includes metadata, but there are no parameter semantics to explain. Baseline 4 applies for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (List) and the resource (all Telegraf configurations) with a qualifier ('with metadata') that distinguishes it from tools like get_config or get_config_details, which target a single configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need to enumerate all Telegraf configurations, but it does not explicitly state when to use this tool versus alternatives like get_config or get_config_details, nor does it provide any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_reporting_rulesA

List all reporting rules that define agent health thresholds

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It implies a read-only listing operation, which is clear. However, it does not mention potential behavior such as pagination, ordering, or what specific rule data is returned. For a simple list operation, it is adequate but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and to the point, with no redundant information or filler. It effectively communicates the tool's purpose in the least words necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description provides enough context to understand what the tool does: lists all reporting rules with a specific focus on health thresholds. It could benefit from mentioning the response format, but for a simple list operation, the purpose is clear and the description is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema coverage is trivially 100%. The description does not need to explain parameters, and the baseline for 0-parameter tools is 4, which is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('List all reporting rules') and the resource ('reporting rules'), with a specific qualifier that they 'define agent health thresholds'. This distinguishes it from sibling tools like list_configs (different resource) and get_reporting_rule (singular vs plural).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as get_reporting_rule (for a specific rule) or health_check (which might involve thresholds). It simply states what it does without any context on when to choose it over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_configB

Update an existing Telegraf configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name for the configuration
tomlNoUpdated TOML configuration
labelsNoUpdated comma-separated labels
config_idYesThe UUID of the configuration to update
descriptionNoUpdated description

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior, but it only states 'Update an existing Telegraf configuration'. It doesn't clarify partial vs full replacement, behavior on missing config_id, or whether the update is atomic or reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with no fluff, appropriately sized for a simple update tool. The description is front-loaded and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters, 1 required, no output schema, and no annotations. The description is minimal and doesn't explain return values, side effects, or what the updated configuration object looks like. It's insufficient for an agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with descriptions for all 5 parameters, so the description doesn't need to add parameter details. It adds no extra meaning, but the baseline is 3 given high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Update') and resource ('existing Telegraf configuration'), clearly distinguishing it from sibling tools like create_config and delete_config.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives. There is no mention of prerequisites, when to prefer create_config or delete_config, or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_reporting_ruleD

Update an existing reporting rule

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_idYesThe UUID of the reporting rule to update
descriptionNoUpdated description
has_auto_deleteNoUpdated auto-delete flag
threshold_secondsNoUpdated threshold in seconds
auto_delete_threshold_secondsNoUpdated auto-delete threshold

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but it only states 'Update' without explaining whether the operation is idempotent, partial or full replacement, or what consequences occur if the rule doesn't exist. Permission requirements and side effects are also unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, but it is under-specified rather than concise. It offers no informative content beyond the tool name, making it fail to earn its place in the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 5 parameters and no output schema, the description should provide more context about its usage and behavior. It only restates the tool name, leaving the agent uninformed about when to use it or what to expect. The schema covers parameters, but the overall context is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 5 parameters, so the schema already provides the necessary parameter semantics. The description itself adds no further parameter information, but the high schema coverage makes the baseline of 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Update an existing reporting rule' is essentially a tautology of the tool name, restating the same verb and resource without adding any distinguishing details. It doesn't differentiate from similar update tools like update_config, nor does it explain what aspects of a reporting rule can be modified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as create_reporting_rule, delete_reporting_rule, or get_reporting_rule. There is no mention of prerequisites, use cases, or conditions that would make this tool the appropriate choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.2/5.0
Disambiguation4/5

Tools are largely distinct, but get_config and get_config_details could be confused without reading descriptions carefully. get_agent_details and get_agent_summary are clearly differentiated by scope.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: list_, get_, create_, update_, delete_. Even health_check fits the pattern. No camelCase or mixed styles.

Tool Count4/5

16 tools is on the higher side but appropriate for managing three distinct resources (configs, agents, reporting rules). Each tool serves a clear purpose and the count is not excessive.

Completeness4/5

Configs and reporting rules have full CRUD coverage. Agents lack create/update operations, but this may be intentional since agents are likely auto-discovered. No major dead ends for the core workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that enables AI assistants to query databases, execute SQL, and manage Metabase resources like dashboards, cards, and collections through natural language.
    22
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables AI assistants to control Home Assistant via natural language, including device control, automation management, and system configuration.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI agents to manage Defined Networking / Managed Nebula infrastructure, supporting tasks like network topology design, host provisioning, and security auditing through natural language.
    4
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dburton-influxdata/telegraf-controller-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server