Telegraf Controller MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Telegraf Controller MCP ServerCheck the health of my Telegraf Controller"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
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
Telegraf Controller running (Docker, port 8888)
Node.js 18+ or Docker
MCP-compatible client: Claude Desktop, Cline, or OpenCode
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 -d2. 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 buildThen 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:latest3. 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 |
| List all configurations with metadata | ❌ Read-only |
| Get full TOML content of a config | ❌ Read-only |
| Get config metadata (no TOML) | ❌ Read-only |
| Create a new Telegraf configuration | ✅ Creates |
| Update name, TOML, or description | ✅ Modifies |
| Delete a configuration | ✅ Deletes |
| Clone a configuration | ✅ Creates |
| Clone multiple configs at once | ✅ Creates |
| Combine multiple configs into one | ✅ Creates |
Agent Management (6 tools)
Tool | Description | Modifies State |
| List all agents (filterable by status) | ❌ Read-only |
| Get full details for one agent | ❌ Read-only |
| Fleet-wide health statistics | ❌ Read-only |
| Remove an agent from the controller | ✅ Deletes |
| Remove multiple agents at once | ✅ Deletes |
| Override health threshold for agent | ✅ Modifies |
Label Management (8 tools)
Tool | Description | Modifies State |
| List all labels | ❌ Read-only |
| Get label details | ❌ Read-only |
| Create a new label | ✅ Creates |
| Update label description | ✅ Modifies |
| Delete a label | ✅ Deletes |
| Delete multiple labels | ✅ Deletes |
| Tag one agent with a label | ✅ Modifies |
| Tag multiple agents with labels | ✅ Modifies |
Reporting Rules (5 tools)
Tool | Description | Modifies State |
| List all health threshold rules | ❌ Read-only |
| Get one rule's details | ❌ Read-only |
| Define new health threshold | ✅ Creates |
| Update thresholds | ✅ Modifies |
| Remove a rule | ✅ Deletes |
System Tools (3 tools)
Tool | Description |
| Verify controller is reachable |
| Get heartbeat endpoint URL |
| Get analytics instance ID |
MCP Resources
Read-only data URIs available to your AI client:
URI | Description |
| Real-time controller status + agent summary |
| All configurations (names, IDs, descriptions) |
| All agents with current health status |
| All health threshold rules |
MCP Prompts (Guided Workflows)
Pre-built workflows that chain multiple tools together:
Prompt | Description |
| Full fleet health report |
| Diagnose silent agents step-by-step |
| Guided TOML config creation |
| Walk through deploying configs |
| Analyze and improve health thresholds |
| 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=falseComplete 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 |
| Yes |
| Base URL of Telegraf Controller API |
MCP Client Config Examples
See the examples/ directory:
examples/claude-desktop-local.json— Claude Desktop, local Node.jsexamples/claude-desktop-npx.json— Claude Desktop, npxexamples/claude-desktop-docker.json— Claude Desktop, Docker
Grafana Dashboards
Four pre-built Grafana dashboards are included in grafana/dashboards/:
Dashboard | File | Description |
IoT Sensor Monitoring |
| Real-time MQTT sensor data (temp, humidity, pressure, CO2) |
Infrastructure Monitoring |
| CPU, memory, disk, network, Docker metrics |
Controller Events |
| Config changes, agent lifecycle, label assignments |
MCP Server Monitoring |
| 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"
doneSee docs/GRAFANA_DASHBOARDS.md for full panel descriptions and queries.
Documentation
Document | Description |
Complete reference for all 27 tools with parameters and examples | |
Step-by-step setup for Claude Desktop, Cline, OpenCode | |
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.jsonDevelopment
Build from Source
git clone https://github.com/dburton-influxdata/telegraf-controller-mcp-server.git
cd telegraf-controller-mcp-server
npm install
npm run buildTest with MCP Inspector
npm run inspector
# Opens browser-based MCP inspector at http://localhost:5173Test 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.jsDocker 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:devTroubleshooting
"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 heartbeatMCP server not showing in Claude Desktop
Verify the path to
build/index.jsis absolute (not relative)Check JSON config syntax (no trailing commas)
Check Claude Desktop logs:
macOS:
~/Library/Logs/Claude/mcp*.logWindows:
%APPDATA%\Claude\logs\
Restart Claude Desktop completely
Related Resources
Telegraf Controller MCP Demo — Full IoT demo with sensor simulation, Grafana, and InfluxDB3
InfluxDB3 MCP Server — MCP server for InfluxDB v3
License
MIT — see LICENSE
Built by the InfluxData community · Report an issue
Available Tools
16 toolscreate_configB
Create a new Telegraf configuration
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the configuration | |
| toml | Yes | The Telegraf configuration in TOML format | |
| labels | No | Comma-separated labels (e.g., "production,monitoring") | |
| description | No | Optional description of the configuration |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | Description of the reporting rule | |
| has_auto_delete | No | Whether to automatically delete agents that exceed the threshold | |
| threshold_seconds | Yes | Threshold in seconds before marking agent as not reporting (minimum 60) | |
| auto_delete_threshold_seconds | No | Threshold in seconds before auto-deleting agent (must be greater than threshold_seconds) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be set to true to confirm deletion | |
| agent_id | Yes | The ID of the agent to delete |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| config_id | Yes | The UUID of the configuration to delete |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be set to true to confirm deletion | |
| rule_id | Yes | The UUID of the reporting rule to delete |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | The ID of the agent (instanceId) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| config_id | Yes | The UUID of the configuration to retrieve | |
| parameters | No | JSON string of parameters for substitution (e.g., '{"db_name":"mydb"}') |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| config_id | Yes | The UUID of the configuration |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | The UUID of the reporting rule |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| status_filter | No | Filter agents by status: "ok" or "not_reporting" |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name for the configuration | |
| toml | No | Updated TOML configuration | |
| labels | No | Updated comma-separated labels | |
| config_id | Yes | The UUID of the configuration to update | |
| description | No | Updated description |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes | The UUID of the reporting rule to update | |
| description | No | Updated description | |
| has_auto_delete | No | Updated auto-delete flag | |
| threshold_seconds | No | Updated threshold in seconds | |
| auto_delete_threshold_seconds | No | Updated auto-delete threshold |
TDQS
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.
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.
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.
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.
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.
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
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.
All tools follow a consistent verb_noun pattern: list_, get_, create_, update_, delete_. Even health_check fits the pattern. No camelCase or mixed styles.
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.
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
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
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
An MCP server that integrates with Discord to provide AI-powered features.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to manage infrastructure, applications, databases, and services through the Coolify PaaS platform.74MIT
- AlicenseAqualityCmaintenanceAn MCP server that enables AI assistants to query databases, execute SQL, and manage Metabase resources like dashboards, cards, and collections through natural language.22MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to control Home Assistant via natural language, including device control, automation management, and system configuration.MIT
- AlicenseNot gradedqualityDmaintenanceAn 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.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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