Skip to main content
Glama
rootlyhq

Rootly MCP server

Official
by rootlyhq

Rootly MCP Server

PyPI version PyPI - Downloads Python Version

An MCP server for the Rootly API for Cursor, Windsurf, Claude, and other MCP clients.

Demo GIF

Quick Start

Use the hosted MCP server. No local installation required.

Hosted Transport Options

  • Streamable HTTP (recommended): https://mcp.rootly.com/mcp

  • SSE (stable alternative): https://mcp.rootly.com/sse

  • Code Mode: https://mcp.rootly.com/mcp-codemode

Hosted tool profiles:

  • Full (default): use the URLs above as-is

  • Slim (~70 tools): add ?tool_profile=slim to the hosted URL, for example https://mcp.rootly.com/mcp?tool_profile=slim

  • Header alternative: send X-Rootly-Tool-Profile: slim

  • Server-wide default: set ROOTLY_MCP_HOSTED_TOOL_PROFILE=full|slim

  • Exact custom override: set ROOTLY_MCP_ENABLED_TOOLS=...

General Remote Setup

With OAuth2 (recommended):

{
  "mcpServers": {
    "rootly": {
      "url": "https://mcp.rootly.com/mcp"
    }
  }
}

Your MCP client handles OAuth2 login automatically — a browser window opens for you to authenticate with Rootly. No API token needed.

With API Token:

{
  "mcpServers": {
    "rootly": {
      "url": "https://mcp.rootly.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_ROOTLY_API_TOKEN"
      }
    }
  }
}

SSE (alternative):

{
  "mcpServers": {
    "rootly": {
      "url": "https://mcp.rootly.com/sse"
    }
  }
}

Code Mode:

{
  "mcpServers": {
    "rootly": {
      "url": "https://mcp.rootly.com/mcp-codemode"
    }
  }
}

Agent Setup

With OAuth2 (recommended):

claude mcp add --transport http rootly https://mcp.rootly.com/mcp

# Code Mode:
claude mcp add --transport http rootly-codemode https://mcp.rootly.com/mcp-codemode

With API Token:

claude mcp add --transport http rootly https://mcp.rootly.com/mcp \
  --header "Authorization: Bearer YOUR_ROOTLY_API_TOKEN"

Manual Configuration — Create .mcp.json in your project root:

{
  "mcpServers": {
    "rootly": {
      "type": "http",
      "url": "https://mcp.rootly.com/mcp"
    }
  }
}

Install the extension:

gemini extensions install https://github.com/rootlyhq/rootly-mcp-server

Or configure manually in ~/.gemini/settings.json:

{
  "mcpServers": {
    "rootly": {
      "command": "uvx",
      "args": ["--from", "rootly-mcp-server", "rootly-mcp-server"],
      "env": {
        "ROOTLY_API_TOKEN": "<YOUR_ROOTLY_API_TOKEN>"
      }
    }
  }
}

Add to .cursor/mcp.json or ~/.cursor/mcp.json:

With OAuth2 (recommended):

{
  "mcpServers": {
    "rootly": {
      "url": "https://mcp.rootly.com/mcp"
    }
  }
}

With API Token:

{
  "mcpServers": {
    "rootly": {
      "url": "https://mcp.rootly.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_ROOTLY_API_TOKEN>"
      }
    }
  }
}

Add to ~/.codeium/windsurf/mcp_config.json:

With OAuth2 (recommended):

{
  "mcpServers": {
    "rootly": {
      "serverUrl": "https://mcp.rootly.com/mcp"
    }
  }
}

With API Token:

{
  "mcpServers": {
    "rootly": {
      "serverUrl": "https://mcp.rootly.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_ROOTLY_API_TOKEN>"
      }
    }
  }
}

Add to ~/.codex/config.toml:

With OAuth2 (recommended):

[mcp_servers.rootly]
url = "https://mcp.rootly.com/mcp"

With API Token:

[mcp_servers.rootly]
url = "https://mcp.rootly.com/mcp"
bearer_token_env_var = "ROOTLY_API_TOKEN"

With OAuth2 (recommended):

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "rootly": {
      "url": "https://mcp.rootly.com/mcp"
    }
  }
}

Claude Desktop handles OAuth2 login automatically.

With API Token (via mcp-remote):

{
  "mcpServers": {
    "rootly": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.rootly.com/mcp",
        "--transport",
        "http",
        "--header",
        "Authorization: Bearer <YOUR_ROOTLY_API_TOKEN>"
      ]
    }
  }
}

Related MCP server: OpsLevel MCP

Rootly CLI

Standalone CLI for incidents, alerts, services, and on-call operations.

Install via Homebrew:

brew install rootlyhq/tap/rootly-cli

Or via Go:

go install github.com/rootlyhq/rootly-cli/cmd/rootly@latest

For more details, see the Rootly CLI repository.

Alternative Installation (Local)

Run the MCP server locally if you do not want to use the hosted service.

Prerequisites

  • Python 3.12 or higher

  • uv package manager

    curl -LsSf https://astral.sh/uv/install.sh | sh
  • Rootly API token

API Token Types

Choose the token type based on the access you need:

  • Global API Key: Full access across the Rootly instance. Best for organization-wide visibility.

  • Team API Key: Access limited to entities owned by that team.

  • Personal API Key: Access matches the user who created it.

A Global API Key is recommended for organization-wide queries and for actions that modify data, especially when workflows may span multiple teams, schedules, or incidents.

With uv

{
  "mcpServers": {
    "rootly": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--from",
        "rootly-mcp-server",
        "rootly-mcp-server"
      ],
      "env": {
        "ROOTLY_API_TOKEN": "<YOUR_ROOTLY_API_TOKEN>",
        "ROOTLY_MCP_ENABLE_WRITE_TOOLS": "true"
      }
    }
  }
}

Self-Hosted Transport Options

Choose one transport per server process:

  • Streamable HTTP endpoint path: /mcp

  • SSE endpoint path: /sse

  • Code Mode (experimental) endpoint path: /mcp-codemode in hosted dual-transport mode

Hosted and self-hosted deployments now both expose the full tool surface by default.

  • Hosted default: full surface

  • Hosted slim profile: about 70 high-usage tools via ?tool_profile=slim

  • Self-hosted default: full surface

To restrict either deployment to read-only tools, start the server with --no-enable-write-tools or set ROOTLY_MCP_ENABLE_WRITE_TOOLS=false.

For hosted clients that want the smaller remote profile, append ?tool_profile=slim to the MCP URL or send X-Rootly-Tool-Profile: slim.

AgentCat and Sentry telemetry

Hosted deployments can send MCP telemetry to AgentCat by setting ROOTLY_MCPCAT_PROJECT_ID. To also export AgentCat events to Sentry, provide SENTRY_DSN through the deployment's secret store. The optional ENVIRONMENT defaults to production, and SENTRY_RELEASE defaults to the installed Rootly MCP Server version. Sentry performance tracing is enabled when the exporter is configured. Free-form event text is redacted and actor names are omitted from Sentry-bound telemetry; stable internal actor IDs remain available for correlation.

Telemetry runs on AgentCat v2 (MCP 2026-07-28 spec). Sessions are correlated via a session_id carried in the tool list rather than stateful connections, which suits our stateless hosted transport; initialize and tools/list events are no longer published by the SDK.

To override the hosted or self-hosted default profile entirely, set ROOTLY_MCP_ENABLED_TOOLS (or pass --enabled-tools) with a comma-separated allowlist of exact tool names. When that variable is set, it fully replaces the default selection.

To expose only a specific subset of MCP tools on a self-hosted deployment, set ROOTLY_MCP_ENABLED_TOOLS (or pass --enabled-tools) with a comma-separated allowlist of exact tool names, for example list_incidents,get_incident,get_server_version.

OpenAI Apps domain verification

Hosted deployments expose an unauthenticated domain-verification endpoint used by the OpenAI plugin directory:

  • Endpoint: GET /.well-known/openai-apps-challenge

  • Environment variable: ROOTLY_OPENAI_APPS_CHALLENGE_TOKEN

Set ROOTLY_OPENAI_APPS_CHALLENGE_TOKEN to the token generated in the OpenAI submission portal. The endpoint returns that exact token as text/plain (with Cache-Control: no-store), and returns 404 when the variable is unset or empty. The token is read from the environment at request time — never hardcode or commit it. The route is served on both the dual-transport (--transport both) and profiled streamable-HTTP hosted deployments and is not subject to Bearer authentication.

To discover the exact tool names available under your current self-hosted configuration, run:

ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \
uv run python -m rootly_mcp_server --list-tools

This prints the effective MCP tool names after applying your current settings, including ROOTLY_MCP_ENABLE_WRITE_TOOLS and ROOTLY_MCP_ENABLED_TOOLS.

Smoke-test a self-hosted allowlist:

ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \
ROOTLY_MCP_ENABLED_TOOLS=list_incidents,get_incident,get_server_version \
uv run python -m rootly_mcp_server --transport streamable-http --log-level ERROR

Then connect an MCP client to http://127.0.0.1:8000/mcp and verify tools/list returns only:

get_server_version
get_incident
list_incidents

To include specific write tools for self-hosted testing, add both the write flag and the allowlist:

ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \
ROOTLY_MCP_ENABLE_WRITE_TOOLS=true \
ROOTLY_MCP_ENABLED_TOOLS=create_incident,create_workflow_task,list_teams \
uv run python -m rootly_mcp_server --transport streamable-http --log-level ERROR

Example Docker run (Streamable HTTP):

docker run -p 8000:8000 \
  -e ROOTLY_TRANSPORT=streamable-http \
  -e ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \
  -e ROOTLY_MCP_ENABLE_WRITE_TOOLS=true \
  rootly-mcp-server

Example Docker run (SSE):

docker run -p 8000:8000 \
  -e ROOTLY_TRANSPORT=sse \
  -e ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \
  rootly-mcp-server

Example Docker run (Dual transport + Code Mode):

docker run -p 8000:8000 \
  -e ROOTLY_TRANSPORT=both \
  -e ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \
  rootly-mcp-server

Workflow-Focused Tool Subsets

The full hosted and self-hosted surface exposes 200+ tools. If you want tighter workflow-specific subsets, use ROOTLY_MCP_ENABLED_TOOLS:

🚨 Incident Response (25 tools)

Essential tools for emergency responders and incident commanders

ROOTLY_MCP_ENABLED_TOOLS="list_incidents,get_incident,create_incident,update_incident,search_incidents,find_related_incidents,suggest_solutions,create_incident_action_item,list_incident_action_items,update_incident_form_field_selection,list_teams,get_current_user,list_services,list_severities,get_alert,list_alerts,get_alert_by_short_id,list_escalation_policies,get_escalation_policy,list_on_call_roles,list_schedules,get_schedule_shifts,get_oncall_handoff_summary,get_shift_incidents,list_endpoints"

📅 On-Call Management (35 tools)

For schedule coordinators and on-call managers

ROOTLY_MCP_ENABLED_TOOLS="list_schedules,get_schedule,update_schedule,get_schedule_shifts,list_shifts,create_schedule_rotation,update_schedule_rotation,list_schedule_rotations,get_schedule_rotation,list_schedule_rotation_users,update_schedule_rotation_user,create_on_call_shadow,update_on_call_shadow,list_on_call_shadows,create_override_shift,update_override_shift,list_override_shifts,list_on_call_roles,update_on_call_role,get_oncall_schedule_summary,get_oncall_shift_metrics,check_oncall_health_risk,check_responder_availability,create_override_recommendation,list_teams,get_team,list_users,get_user,get_current_user,list_escalation_policies,update_escalation_policy,list_escalation_paths,update_escalation_path,list_escalation_levels"

📊 Monitoring & Alerting (40 tools)

For platform teams setting up observability

ROOTLY_MCP_ENABLED_TOOLS="list_alerts,get_alert,get_alert_by_short_id,create_alert_group,update_alert_group,list_alert_groups,create_alert_routing_rule,update_alert_routing_rule,list_alert_routing_rules,list_alert_events,get_alert_event,update_alert_event,create_heartbeat,update_heartbeat,list_heartbeats,get_heartbeat,create_pulse,update_pulse,list_pulses,get_pulse,create_dashboard,update_dashboard,list_dashboards,get_dashboard,create_dashboard_panel,update_dashboard_panel,list_status_pages,get_status_page,update_status_page,list_status_page_templates,get_status_page_template,list_communications_templates,update_communications_template,create_live_call_router,update_live_call_router,list_services,list_teams,get_current_user,list_environments,list_severities,list_endpoints"

📋 Post-Incident Analysis (30 tools)

For SREs doing retrospectives and process improvement

ROOTLY_MCP_ENABLED_TOOLS="get_incident,update_incident,find_related_incidents,suggest_solutions,list_incident_action_items,create_incident_action_item,update_incident_form_field_selection,create_post_incident_review,update_post_incident_review,list_post_incident_reviews,get_post_incident_review,create_retrospective_step,update_retrospective_step,list_retrospective_steps,create_retrospective_process,update_retrospective_process,list_retrospective_processes,create_playbook,update_playbook,list_playbooks,get_playbook,create_playbook_task,update_playbook_task,list_causes,get_cause,update_cause,list_incident_types,get_incident_type,update_incident_type,get_current_user"

📈 Analytics & Reporting (15 tools)

For leadership and metrics teams (read-only focus)

ROOTLY_MCP_ENABLED_TOOLS="list_incidents,search_incidents,collect_incidents,list_teams,list_services,list_schedules,get_oncall_shift_metrics,get_shift_incidents,list_dashboards,get_dashboard,list_alerts,list_heartbeats,list_pulses,get_current_user,list_endpoints"

Multiple MCP Instances for Different Teams

You can run multiple MCP instances with different tool subsets:

{
  "mcpServers": {
    "rootly-incident-response": {
      "command": "uvx", "args": ["--from", "rootly-mcp-server", "rootly-mcp-server"],
      "env": {
        "ROOTLY_API_TOKEN": "<token>",
        "ROOTLY_MCP_ENABLED_TOOLS": "list_incidents,get_incident,create_incident,find_related_incidents,suggest_solutions..."
      }
    },
    "rootly-oncall-management": {
      "command": "uvx", "args": ["--from", "rootly-mcp-server", "rootly-mcp-server"],
      "env": {
        "ROOTLY_API_TOKEN": "<token>",
        "ROOTLY_MCP_ENABLED_TOOLS": "list_schedules,update_schedule,create_override_shift,get_oncall_shift_metrics..."
      }
    }
  }
}

With uvx

{
  "mcpServers": {
    "rootly": {
      "command": "uvx",
      "args": [
        "--from",
        "rootly-mcp-server",
        "rootly-mcp-server"
      ],
      "env": {
        "ROOTLY_API_TOKEN": "<YOUR_ROOTLY_API_TOKEN>"
      }
    }
  }
}

Features

  • Dynamic Tool Generation: Automatically creates MCP resources from Rootly's OpenAPI (Swagger) specification

  • Smart Pagination: Uses bounded pagination and compact incident responses to prevent context window overflow

  • API Filtering: Limits exposed API endpoints for security and performance

  • Intelligent Incident Analysis: Smart tools that analyze historical incident data

    • find_related_incidents: Uses TF-IDF similarity analysis to find historically similar incidents

    • suggest_solutions: Mines past incident resolutions to recommend actionable solutions

  • MCP Resources: Exposes incidents, teams, on-call status, and workflow guides as structured resources for AI context

  • Intelligent Pattern Recognition: Automatically identifies services, error types, and resolution patterns

  • On-Call Health Integration: Detects workload health risk in scheduled responders

Supported Tools

The default tool surface depends on deployment profile:

  • Hosted default: about 218 tools

  • Hosted slim profile: about 70 tools

  • Self-hosted default: about 218 tools

Custom Agentic Tools

  • check_oncall_health_risk

  • check_responder_availability

  • collect_incidents

  • create_incident - create a new incident with a scoped set of fields for agent workflows

  • create_override_recommendation

  • find_related_incidents

  • get_incident - retrieve a single incident for direct verification, including PIR-related fields

  • get_alert_by_short_id

  • get_oncall_handoff_summary

  • get_oncall_schedule_summary

  • get_oncall_shift_metrics

  • get_server_version

  • get_shift_incidents

  • list_endpoints

  • list_incidents

  • list_shifts

  • search_incidents

  • suggest_solutions

  • update_incident - scoped incident update tool for summary and retrospective_progress_status

OpenAPI-Generated Tools

Tool naming: all tools use snake_case. The historical camelCase names (e.g. getScheduleShifts, listIncidents) are no longer advertised in tools/list, but remain callable as hidden aliases — they are transparently routed to their snake_case canonical. Update configs and ROOTLY_MCP_ENABLED_TOOLS allowlists to the snake_case names; legacy camelCase allowlist entries are auto-canonicalized.

list_workflow_runs
create_incident_action_item
create_incident_form_field_selection
create_workflow_task
get_alert
get_alert_event
get_alert_group
get_alert_routing_rule
get_alert_source
get_alert_urgency
get_catalog
get_catalog_entity
get_cause
get_current_user
get_custom_form
get_environment
get_escalation_level
get_escalation_path
get_escalation_policy
get_form_field
get_form_field_option
get_functionality
get_functionality_incidents_chart
get_functionality_uptime_chart
get_incident_action_items
get_incident_form_field_selection
get_incident_type
get_on_call_role
get_on_call_shadow
get_override_shift
get_schedule
get_schedule_rotation
get_schedule_shifts
get_service
get_service_incidents_chart
get_service_uptime_chart
get_severity
get_status_page
get_status_page_template
get_team
get_team_incidents_chart
get_user
get_workflow
get_workflow_form_field_condition
get_workflow_group
get_workflow_task
list_alert_events
list_alert_groups
list_alert_routing_rules
list_alert_sources
list_alert_urgencies
list_alerts
list_all_incident_action_items
list_catalog_entities
list_catalogs
list_causes
list_custom_forms
list_environments
list_escalation_levels
list_escalation_levels_paths
list_escalation_paths
list_escalation_policies
list_form_field_options
list_form_fields
list_functionalities
list_incident_action_items
list_incident_alerts
list_incident_form_field_selections
list_incident_types
list_on_call_roles
list_on_call_shadows
list_override_shifts
list_schedule_rotation_active_days
list_schedule_rotation_users
list_schedule_rotations
list_schedules
list_services
list_severities
list_shifts
list_status_page_templates
list_status_pages
list_teams
list_users
list_workflow_form_field_conditions
list_workflow_groups
list_workflows
list_workflow_tasks
update_environment
update_escalation_level
update_escalation_path
update_escalation_policy
update_functionality
update_incident_type
update_on_call_role
update_on_call_shadow
update_override_shift
update_schedule
update_schedule_rotation
update_service
update_severity
update_team
update_workflow
update_incident_form_field_selection
update_workflow_task

Major Expansion: This version includes 50+ new endpoints covering communications, dashboards, playbooks, post-incident reviews, monitoring, and advanced form management - while carefully excluding security-sensitive operations like API key management, user creation/deletion, role management, and webhook configuration.

Delete operations remain disabled in the default tool surface.

On-Call Health Integration

Integrates with On-Call Health to detect workload health risk in scheduled responders.

Setup

Set the ONCALLHEALTH_API_KEY environment variable:

{
  "mcpServers": {
    "rootly": {
      "command": "uvx",
      "args": ["--from", "rootly-mcp-server", "rootly-mcp-server"],
      "env": {
        "ROOTLY_API_TOKEN": "your_rootly_token",
        "ONCALLHEALTH_API_KEY": "och_live_your_key"
      }
    }
  }
}

Usage

check_oncall_health_risk(
    start_date="2026-02-09",
    end_date="2026-02-15"
)

Returns at-risk users who are scheduled, recommended safe replacements, and action summaries.

Example Skills

Pre-built Claude Code skills:

🚨 Rootly Incident Responder

This skill:

  • Analyzes production incidents with full context

  • Finds similar historical incidents using ML-based similarity matching

  • Suggests solutions based on past successful resolutions

  • Coordinates with on-call teams across timezones

  • Correlates incidents with recent code changes and deployments

  • Creates action items and remediation plans

  • Provides confidence scores and time estimates

Quick Start:

# Copy the skill to your project
mkdir -p .claude/skills
cp examples/skills/rootly-incident-responder.md .claude/skills/

# Then in Claude Code, invoke it:
# @rootly-incident-responder analyze incident #12345

It demonstrates a full incident response workflow using Rootly tools and GitHub context.

On-Call Shift Metrics

Get on-call shift metrics for any time period, grouped by user, team, or schedule. Includes primary/secondary role tracking, shift counts, hours, and days on-call.

get_oncall_shift_metrics(
    start_date="2025-10-01",
    end_date="2025-10-31",
    group_by="user"
)

On-Call Handoff Summary

Complete handoff: current/next on-call + incidents during shifts.

# All on-call (any timezone)
get_oncall_handoff_summary(
    team_ids="team-1,team-2",
    timezone="America/Los_Angeles"
)

# Regional filter - only show APAC on-call during APAC business hours
get_oncall_handoff_summary(
    timezone="Asia/Tokyo",
    filter_by_region=True
)

Regional filtering shows only people on-call during business hours (9am-5pm) in the specified timezone.

Returns: schedules with current_oncall, next_oncall, and shift_incidents

MCP Resources for Context

AI agents can access these resources for situational awareness:

  • incident://{incident_id} - Detailed incident information for specific incidents

  • team://{team_id} - Team details including name, color, and metadata

  • rootly://incidents - List of recent incidents for quick reference

  • rootly://oncall-status - Current on-call status across all schedules (critical for incident response)

  • rootly://workflow-guide - Step-by-step workflow guidance for common operations

Example usage: "Check the current on-call status" → AI reads rootly://oncall-status resource

Shift Incidents

Incidents during a time period, with filtering by severity/status/tags.

get_shift_incidents(
    start_time="2025-10-20T09:00:00Z",
    end_time="2025-10-20T17:00:00Z",
    severity="critical",  # optional
    status="resolved",    # optional
    tags="database,api"   # optional
)

Returns: incidents list + summary (counts, avg resolution time, grouping)

Contributing

See CONTRIBUTING.md for developer setup and guidelines.

Play with it on Postman

About Rootly AI Labs

This project was developed by Rootly AI Labs, where we're building the future of system reliability and operational excellence. As an open-source incubator, we share ideas, experiment, and rapidly prototype solutions that benefit the entire community. Rootly AI logo

Available Tools

27 tools
attachAlertC

Attach alerts to an incident from provided data

Path Parameters:

  • incident_id (Required): No description.

Responses:

  • 200 (Success): alert created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
incident_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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 full burden for behavioral disclosure. It mentions 'alert created' on success and 'unauthorized for invalid token' on failure, but lacks details on permissions needed, whether it's idempotent, rate limits, or what happens if alerts are already attached. For a mutation tool, this is insufficient context.

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

Conciseness3/5

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

The description is front-loaded with the core purpose but includes verbose, redundant sections like path parameters and responses that duplicate schema information. The response examples add clutter without value. It could be more streamlined by focusing on unique insights rather than repeating structured data.

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's complexity (2 parameters with nested objects, no annotations, but has output schema), the description is incomplete. It doesn't explain the 'data' parameter's role or the relationship between alerts and incidents, and while the output schema exists, the description's response examples don't add clarity. For a mutation tool, this leaves critical gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It lists 'incident_id' as a required path parameter with no description, and includes response examples but no explanation of the 'data' parameter's structure or meaning. The description fails to add meaningful semantics beyond the bare schema, leaving parameters poorly documented.

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

Purpose3/5

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

The description states the tool 'Attach alerts to an incident from provided data', which provides a clear verb ('Attach') and resource ('alerts to an incident'). However, it doesn't differentiate from sibling tools like 'createIncident' or 'listIncidentAlerts', leaving the specific role ambiguous. The purpose is understandable but lacks sibling context.

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 offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing incident or alerts), exclusions, or comparisons to siblings like 'createIncident' or 'listIncidentAlerts'. Usage is implied but not explicitly defined, leaving gaps for agent decision-making.

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

createAlertC

Creates a new alert from provided data

Responses:

  • 201 (Success): alert created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: resource not found

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 422: invalid request

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the tool creates an alert, implying a write operation, but fails to mention authentication requirements, rate limits, side effects, or what happens on failure beyond HTTP error codes. The inclusion of HTTP response examples (201, 401, 422) adds some value, but overall, the description is insufficient for a mutation tool with zero annotation coverage.

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

Conciseness3/5

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

The description is front-loaded with the core purpose but includes verbose HTTP response details that may not be essential for tool selection. While the response examples provide context, they add bulk without directly aiding in understanding when or how to use the tool. The structure could be more focused on usage rather than API response formatting.

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's complexity (a mutation with nested parameters, no annotations, and an output schema), the description is incomplete. It lacks details on parameter meanings, behavioral constraints, and differentiation from siblings. Although an output schema exists, the description does not adequately cover the input semantics or usage context, making it insufficient for effective agent decision-making.

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

Parameters1/5

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

The schema description coverage is 0%, meaning parameters are undocumented in the schema. The description does not compensate by explaining the 'data' parameter or its nested structure (e.g., attributes like 'summary', 'source', 'labels'), leaving the agent with no semantic understanding of required inputs. This is inadequate for a tool with one complex, required parameter.

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

Purpose3/5

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

The description states 'Creates a new alert from provided data', which clearly indicates the verb ('creates') and resource ('alert'), establishing the basic purpose. However, it lacks specificity about what constitutes an 'alert' in this context and does not differentiate from sibling tools like 'createIncident' or 'attachAlert', leaving ambiguity about when to use this versus other creation tools.

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 prerequisites, such as required permissions or dependencies, nor does it compare to sibling tools like 'createIncident' or 'listAlerts'. This absence of contextual usage information leaves the agent without clear direction for tool selection.

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

createEnvironmentC

Creates a new environment from provided data

Responses:

  • 201 (Success): environment created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 422: invalid request

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 of behavioral disclosure. It mentions HTTP response codes (201, 401, 422) and content types, which adds useful context about success, authentication errors, and invalid requests. However, it lacks details on permissions, side effects, rate limits, or what 'environment' means in this context, leaving gaps for a creation tool.

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

Conciseness3/5

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

The description is front-loaded with the core purpose but includes verbose HTTP response details that may not all be necessary for an AI agent. The response examples are generic and repetitive, adding bulk without unique value. It could be more streamlined by focusing on essential behavioral insights rather than full API documentation.

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?

Given the tool's complexity (1 parameter with nested objects), no annotations, and an output schema present, the description is moderately complete. It covers basic behavioral aspects like response codes but misses key details: parameter semantics, differentiation from siblings, and context about what an 'environment' entails. The output schema reduces the need to explain return values, but gaps remain in usage and input guidance.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only states 'from provided data' without explaining the input structure or meaning. The input schema has 1 parameter with nested properties (e.g., name, color, slack_channels), but the description adds no semantic details beyond what's inferred from the schema, failing to address the coverage gap.

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's purpose: 'Creates a new environment from provided data.' This specifies the verb ('creates') and resource ('environment'), making it easy to understand what the tool does. However, it doesn't differentiate from sibling tools like 'createService' or 'createTeam', which follow similar patterns for 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), differentiate from similar creation tools in the sibling list, or specify use cases. The only implied context is from the name 'createEnvironment', but no explicit usage instructions are given.

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

createFunctionalityC

Creates a new functionality from provided data

Responses:

  • 201 (Success): functionality created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 422: invalid request

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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 mentions HTTP response codes (201, 401, 422) and content types, which adds some context about success/error conditions and authentication needs. However, it fails to describe critical behavioral traits like required permissions, rate limits, idempotency, or what 'functionality' represents in this system.

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

Conciseness3/5

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

The description is front-loaded with the core purpose but then devotes excessive space to HTTP response details that belong in API documentation rather than a tool description. The response examples with placeholder JSON add bulk without value, making the description longer than necessary for its informational 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 creation tool with complex nested parameters (0% schema coverage) and no annotations, the description is inadequate. While it mentions some HTTP behaviors, it lacks crucial context about what a 'functionality' is, required permissions, data validation rules, or relationship to sibling tools. The existence of an output schema helps slightly but doesn't compensate for these gaps.

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

Parameters1/5

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

The description provides no information about parameters beyond implying that 'provided data' is needed. With 0% schema description coverage and a complex nested input schema (1 top-level parameter with many sub-properties), the description fails to add any meaningful semantic context about what data should be provided or how to structure it.

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 action ('Creates') and resource ('new functionality from provided data'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'createEnvironment' or 'createService' beyond the resource type, which prevents a perfect score.

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 like 'listFunctionalities' or other create tools. The description lacks context about prerequisites, appropriate scenarios, or exclusions, offering only basic operational information.

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

createIncidentC

Creates a new incident from provided data

Responses:

  • 201 (Success): incident created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 422: invalid causes association

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.2/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. It mentions HTTP response codes (201, 401, 422) and content types, which adds some behavioral context like success and error conditions. However, it lacks critical details for a mutation tool: required permissions, whether the operation is idempotent, rate limits, or side effects. The description is insufficient for safe and effective use.

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

Conciseness3/5

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

The description is front-loaded with the core purpose but then devotes most space to HTTP response examples, which are verbose and not directly helpful for tool selection. The structure is somewhat cluttered, with markdown formatting that adds noise. It could be more concise by focusing on actionable information rather than API response details.

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 complexity (mutation tool with nested objects, no annotations, schema coverage 0%, but has output schema), the description is incomplete. It fails to explain the parameter structure, does not leverage the output schema to clarify return values, and omits behavioral traits like authentication needs or data requirements. The response examples add minor context but do not compensate for major gaps.

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

Parameters1/5

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

The input schema has 1 parameter with 0% description coverage in the schema itself. The tool description does not mention any parameters, their meanings, or how to structure the 'data' object. With no parameter information in the description and poor schema coverage, the agent lacks essential guidance on what data to provide.

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

Purpose3/5

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

The description states the tool 'Creates a new incident from provided data', which clearly indicates a write operation (create) on a resource (incident). However, it does not differentiate from sibling tools like 'createAlert' or 'createService', leaving ambiguity about when to create an incident versus other entities. The purpose is clear but lacks sibling differentiation.

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. With siblings like 'createAlert', 'createService', and 'listIncidents', there is no indication of prerequisites, context, or exclusions. The response examples hint at error conditions (e.g., 401 for invalid token), but this does not constitute usage guidance for tool selection.

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

createIncidentActionItemC

Creates a new action item from provided data

Path Parameters:

  • incident_id (Required): No description.

Responses:

  • 201 (Success): incident_action_item created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 422: invalid request

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
incident_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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. While it mentions HTTP responses (201, 401, 422), it doesn't explain key behavioral traits: whether this is a mutation (implied by 'creates' but not explicit), what permissions are needed, if there are rate limits, or how errors are handled beyond status codes. The response examples are generic ('key': 'value'), adding little value.

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

Conciseness3/5

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

The description is somewhat structured with sections for path parameters and responses, but it's inefficient. The first sentence is clear, but the response details are verbose with generic examples that don't add useful information. It could be more front-loaded and concise by removing redundant examples or integrating key details into the main description.

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 complexity (2 parameters with nested objects, no annotations, but has an output schema), the description is incomplete. It lacks guidance on usage, doesn't explain parameter meanings beyond a bare list, and provides minimal behavioral context. The output schema exists, so return values don't need description, but other gaps make this inadequate for a mutation tool.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the input schema provides no parameter descriptions. The description adds minimal value: it lists 'incident_id' as a required path parameter but gives no description, and it doesn't mention the 'data' parameter at all. For a tool with 2 parameters and complex nested objects, this leaves most semantics undocumented.

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's purpose: 'Creates a new action item from provided data'. This specifies the verb ('creates') and resource ('action item'), making it easy to understand what the tool does. However, it doesn't differentiate from sibling tools like 'createIncident' or 'listIncidentActionItems' beyond the resource name, so it's not a perfect 5.

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. There's no mention of prerequisites (e.g., needing an existing incident), when-not-to-use scenarios, or comparisons to sibling tools like 'listIncidentActionItems'. The agent must infer usage from the tool name and parameters alone.

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

createIncidentTypeC

Creates a new incident_type from provided data

Responses:

  • 201 (Success): incident_type created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: resource not found

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 422: invalid request

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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 mentions HTTP response codes (201, 401, 422) which indicate success, authentication, and validation behaviors, adding some context beyond the basic 'creates' action. However, it lacks critical details like required permissions, rate limits, side effects, or whether the operation is idempotent, which are important for a mutation tool.

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

Conciseness3/5

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

The description is front-loaded with the core purpose, but it's cluttered with HTTP response details and JSON examples that don't add value for tool selection. The response information could be better handled by an output schema. The structure is somewhat organized but includes unnecessary verbosity.

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 complexity (1 parameter with nested objects), no annotations, and an output schema exists, the description is incomplete. It fails to explain the input parameter semantics, doesn't leverage the output schema to avoid redundancy, and omits behavioral context like authentication needs. For a creation tool with rich nested parameters, this leaves significant gaps.

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

Parameters1/5

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

The schema description coverage is 0%, meaning none of the parameters are documented in the schema. The description provides no information about the 'data' parameter or its nested structure (attributes like name, color, description, etc.). This leaves the agent completely in the dark about what data to provide and in what format.

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's purpose: 'Creates a new incident_type from provided data'. This is a specific verb ('Creates') and resource ('incident_type'), making the tool's function unambiguous. However, it doesn't differentiate from sibling tools like 'createIncident' or 'createSeverity' beyond the resource name, which is why it doesn't reach the highest score.

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 prerequisites, context, or how it differs from other creation tools in the sibling list (e.g., createIncident, createService). This leaves the agent without direction on appropriate usage scenarios.

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

createServiceC

Creates a new service from provided data

Responses:

  • 201 (Success): service created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 422: invalid request

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/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 mentions HTTP response codes (201, 401, 422) and content types, which adds some context about error handling and success conditions. However, it doesn't describe critical behavioral aspects like authentication requirements, rate limits, side effects, or what 'service' means in this context, leaving significant gaps for a mutation tool.

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

Conciseness3/5

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

The description is moderately structured with a brief purpose statement followed by HTTP response details. However, the response examples are generic placeholders ('key': 'value') that don't add value, and the formatting with markdown and code blocks makes it less concise than it could be. The front-loaded purpose statement is good, but the response details could be more efficiently presented.

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?

Given the complexity (1 parameter with nested objects, no annotations, but has output schema), the description is partially complete. It covers basic purpose and response codes, but lacks crucial context about the 'service' domain, input requirements, and behavioral traits. The existence of an output schema reduces the need to describe return values, but the description still misses important operational context for a creation tool.

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

Parameters2/5

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

The schema description coverage is 0%, meaning none of the parameters have descriptions in the schema itself. The tool description mentions 'provided data' but provides no details about what data is needed, what a 'service' consists of, or how to structure the input. This fails to compensate for the complete lack of schema documentation, leaving parameters largely unexplained.

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's purpose as 'Creates a new service from provided data', which is a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'createEnvironment', 'createTeam', or 'createWorkflow', which all follow the same 'create X from provided data' pattern, so it doesn't fully distinguish itself from alternatives.

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 like 'listServices' or other creation tools. It doesn't mention prerequisites, dependencies, or contextual factors that would help an agent decide between this and sibling tools like 'createEnvironment' or 'createTeam'.

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

createSeverityC

Creates a new severity from provided data

Responses:

  • 201 (Success): severity created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 422: invalid request

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 of behavioral disclosure. It mentions HTTP response codes (201, 401, 422) and content types, which adds some behavioral context like success conditions and error handling. However, it lacks details on permissions, side effects, rate limits, or what 'creates' entails operationally. The description doesn't contradict annotations, but it's incomplete for a mutation tool.

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

Conciseness3/5

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

The description is front-loaded with the core purpose, but it includes verbose HTTP response details that may not be essential for tool selection. The structure mixes purpose with response examples, making it less streamlined. Some sentences (like the response examples) could be trimmed or moved elsewhere for better conciseness.

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?

Given the tool's complexity (1 parameter with nested objects), no annotations, and an output schema present, the description is partially complete. It covers the basic purpose and some behavioral aspects (HTTP responses), but it lacks parameter explanations, usage context, and detailed operational traits. The output schema likely handles return values, so the description doesn't need to explain those, but it should do more for a creation tool.

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

Parameters2/5

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

The schema description coverage is 0%, meaning the input schema provides no parameter descriptions. The tool description doesn't explain the 'data' parameter or its nested structure (attributes like name, color, severity, etc.). While it implies data is needed to create a severity, it adds minimal semantic value beyond what's inferred from the tool name. This fails to compensate for the low schema coverage.

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's purpose: 'Creates a new severity from provided data.' This specifies the verb ('creates') and resource ('severity'), making the action unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'createIncident' or 'createService' beyond the resource type, which is why it's not a 5.

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 prerequisites (e.g., authentication), compare with sibling tools like 'listSeverities', or specify use cases. The only implied context is from the HTTP response examples, but this isn't explicit usage advice.

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

createTeamC

Creates a new team from provided data

Responses:

  • 201 (Success): team created

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 422: invalid association

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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 full burden for behavioral disclosure. It mentions HTTP response codes (201, 401, 422) which indicate success, authentication failure, and validation errors, adding some behavioral context. However, it doesn't address critical aspects like required permissions, whether this is a mutating operation, rate limits, or what happens on duplicate team names. The response format examples are generic placeholders ('key': 'value') rather than actual team data structures.

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

Conciseness3/5

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

The description is reasonably concise with the core purpose stated upfront, but the HTTP response documentation is verbose relative to its utility. The response examples use placeholder JSON ('key': 'value') rather than actual team data, making them less helpful. The structure separates purpose from response details clearly, but the response section could be more efficiently presented.

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 creation tool with no annotations, 0% schema description coverage, and complex nested parameters, this description is inadequate. While an output schema exists (which reduces the need to describe return values), the description fails to explain the single required parameter or any of the 20+ nested attributes. The HTTP response codes add some context, but the placeholder examples don't show actual team creation responses. The agent would struggle to understand what data to provide.

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

Parameters1/5

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

The input schema has 0% description coverage, meaning parameter descriptions are entirely missing from the structured schema. The tool description provides absolutely no information about parameters - it doesn't mention the 'data' parameter at all, let alone explain what attributes are needed to create a team. This leaves 1 required parameter and numerous nested properties completely undocumented in the description.

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 verb ('Creates') and resource ('a new team'), making the purpose unambiguous. However, it doesn't differentiate this tool from sibling creation tools like createEnvironment, createService, or createIncidentType, which all follow the same 'Creates a new X' pattern.

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. There are multiple sibling creation tools (createEnvironment, createService, etc.), but no indication of what distinguishes team creation from creating other resources. No prerequisites, dependencies, or contextual usage hints are mentioned.

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

createWorkflowB

Creates a new workflow from provided data

Responses:

  • 201 (Success): admins can set 'locked' while creating a workflow

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 403: non-admins can't set 'locked' while creating a workflow

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/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 of behavioral disclosure. It adds valuable context about permission-based constraints (admins can set 'locked', non-admins cannot) and includes HTTP response codes (201, 401, 403) with examples. However, it doesn't describe what 'workflow' means in this context, what data is required, or the full behavioral implications of creating a workflow.

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 poorly structured with excessive HTTP response detail that belongs in API documentation rather than an AI tool description. The first line is clear, but the subsequent response code sections are verbose and not front-loaded with essential information. The description could be much more concise while retaining the permission constraints.

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?

Given that there's an output schema (per context signals), the description doesn't need to explain return values. However, for a creation tool with no annotations, the description should provide more context about what a 'workflow' is, what data it expects, and the implications of creation. The permission constraints are helpful but insufficient for full contextual understanding.

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 input schema has 0 parameters with 100% description coverage, so the baseline is 4. The description doesn't need to explain parameters, and it appropriately doesn't attempt to do so. The mention of 'provided data' in the purpose statement is sufficient given the empty parameter schema.

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's purpose: 'Creates a new workflow from provided data'. This specifies the verb ('creates') and resource ('workflow'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'createAlert' or 'createService' beyond the resource name.

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. While it mentions admin vs non-admin permissions for the 'locked' field, this is about behavioral constraints rather than usage context. There's no mention of prerequisites, when this tool is appropriate, or how it relates to sibling tools like 'listWorkflows'.

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

get_all_incidents_matchingB

Get all incidents matching a query by automatically fetching multiple pages.

This tool automatically handles pagination to fetch multiple pages of results.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_resultsNoMaximum number of results to return
queryNoSearch query to filter incidents by title/summary

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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 key behavioral traits: automatic pagination handling and fetching of multiple pages. However, it lacks details on rate limits, error handling, authentication requirements, or what 'matching a query' entails beyond the schema's description. The description doesn't contradict annotations (since there are none), but it's incomplete for a tool that likely interacts with a complex incident management system.

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 extremely concise and well-structured: two sentences that directly state the tool's core functionality and its key automation feature. Every sentence earns its place by adding value (the second sentence clarifies the pagination behavior). It's front-loaded with the main purpose, making it easy to scan and understand quickly.

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 that there's an output schema (which handles return values), no annotations, and 100% schema coverage for parameters, the description is reasonably complete. It covers the essential behavior (automatic pagination) that isn't captured in structured fields. However, it misses usage guidelines compared to siblings and lacks some behavioral context (e.g., performance implications), keeping it from a perfect score.

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%, so the schema already fully documents both parameters ('max_results' and 'query'). The description adds no additional meaning beyond what's in the schema—it doesn't explain query syntax, examples, or how 'max_results' interacts with pagination. With high schema coverage, the baseline is 3, and the description doesn't compensate with extra insights.

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's purpose: 'Get all incidents matching a query by automatically fetching multiple pages.' It specifies the verb ('Get'), resource ('incidents'), and key behavior ('automatically fetching multiple pages'). However, it doesn't explicitly differentiate from its sibling 'search_incidents_paginated', which appears to serve a similar paginated search function, leaving some ambiguity about when to choose one over the other.

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 the sibling tool 'search_incidents_paginated' or explain any differences (e.g., automatic vs. manual pagination, performance trade-offs, or query capabilities). Without this context, an agent might struggle to choose between these two similar tools.

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

getCurrentUserB

Get current user

Responses:

  • 200 (Success): user found

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses authentication behavior (401 for invalid token) and success response format, which is valuable. However, it doesn't mention rate limits, caching behavior, or whether this is a read-only operation (though 'Get' implies it).

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 poorly structured with unnecessary formatting for API documentation (HTTP status codes, Content-Type headers, JSON examples). This adds noise without helping the AI agent understand when and how to use the tool effectively.

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?

Given the tool has an output schema (context signals indicate 'Has output schema: true'), the description doesn't need to explain return values in detail. However, for a user retrieval tool with authentication implications, more guidance on usage context would be beneficial despite the structured output coverage.

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 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description appropriately doesn't add parameter information beyond what's already covered, maintaining focus on the tool's purpose and responses.

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's purpose with 'Get current user', which is a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'listUsers', which might retrieve multiple users versus this tool's focus on the authenticated user only.

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 like 'listUsers'. It mentions authentication context in the 401 response example, but this is implicit rather than explicit usage advice for the agent.

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

listAlertsD

List alerts

Query Parameters:

  • include: No description.

  • page_number: No description.

  • page_size: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
includeNo
page_numberNo
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.9/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. The description only states 'List alerts' without explaining what the tool actually does behaviorally—whether it returns all alerts, filtered alerts, paginated results, or requires authentication. The inclusion of query parameters and response examples in the description adds some context about pagination and output format, but this is minimal and doesn't cover critical aspects like permissions, rate limits, or error handling.

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

Conciseness3/5

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

The description is structured with sections for query parameters and responses, which is organized. However, it's overly verbose in some areas (e.g., repeating 'No description' for parameters) while being too brief in others (e.g., the core purpose is just two words). The response example adds length without clear utility. Overall, it's not efficiently front-loaded, but the structure attempts to convey information.

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 complexity (3 parameters, no annotations, schema coverage 0%, but has an output schema), the description is incomplete. It mentions an output schema exists (with a 200 response example), which reduces the need to detail return values, but it fails to explain the tool's behavior, parameter usage, or differentiation from siblings. For a listing tool with pagination parameters, more context on how to use it effectively is missing.

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

Parameters2/5

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

The schema description coverage is 0%, meaning none of the 3 parameters have descriptions in the schema. The description lists the parameters ('include', 'page_number', 'page_size') but provides no semantic information about what they do, their expected values, or how they affect the listing. For example, it doesn't explain what 'include' might filter or what the pagination parameters control. This fails to compensate for the lack of schema documentation.

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 states 'List alerts' which is a tautology that merely restates the tool name. It doesn't specify what kind of alerts, from what system, or what scope. While 'list' is a clear verb and 'alerts' is the resource, this is too vague to be helpful. It doesn't distinguish from sibling tools like 'listIncidentAlerts' or 'listIncidents' which might handle similar data.

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?

The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools that might handle alerts or related data (e.g., 'listIncidentAlerts', 'attachAlert', 'createAlert'), but the description doesn't mention any of them or provide context about when this specific listing tool is appropriate versus others.

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

list_endpointsA

List all available Rootly API endpoints with their descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/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 states what the tool does but lacks details on behavioral traits like whether it requires authentication, has rate limits, returns paginated results, or includes metadata. This is a significant gap for a tool with no annotation coverage.

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, efficient sentence with zero waste. It is front-loaded with the core purpose ('List all available Rootly API endpoints') and adds a useful detail ('with their descriptions') without redundancy.

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?

Given the tool's complexity is low (0 parameters, no nested objects) and an output schema exists, the description is somewhat complete for its purpose. However, it lacks behavioral context (e.g., authentication needs, response format hints), which is a gap since no annotations are provided to compensate.

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 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't add parameter details, and the baseline for 0 parameters is 4, as it avoids unnecessary information.

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 specific action ('List all available Rootly API endpoints') and resource ('endpoints'), with the additional detail of including 'their descriptions'. It distinguishes itself from siblings like listAlerts or listIncidents by specifying it's about API endpoints, not other entities.

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 prerequisites, such as needing authentication or specific permissions, nor does it suggest when this tool is appropriate over other listing tools (e.g., for discovering API capabilities rather than operational data).

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

listEnvironmentsD

List environments

Query Parameters:

  • include: No description.

  • page_number: No description.

  • page_size: No description.

  • filter_search: No description.

  • filter_slug: No description.

  • filter_name: No description.

  • filter_color: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

  • sort: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_colorNo
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_nameNo
filter_searchNo
filter_slugNo
includeNo
page_numberNo
page_sizeNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. The description only states 'List environments' with no information about whether this is a read-only operation, what permissions are required, whether results are paginated (though parameters suggest they are), rate limits, or what the response contains. For a tool with 12 parameters and no annotation coverage, this is completely inadequate.

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?

While technically concise with 'List environments' as the main description, this is under-specification rather than effective conciseness. The inclusion of the parameter list with 'No description' for each parameter adds bulk without value. The structure is poor - the response example shows generic JSON without explaining what environment data looks like, making the overall description inefficient despite its brevity.

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

Completeness1/5

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

Given the complexity (12 parameters, no annotations, no schema descriptions) and the existence of an output schema, the description is completely inadequate. While the output schema might document return values, the description fails to explain what 'environments' are, how filtering works, when to use pagination parameters, or any behavioral aspects. For a listing tool with extensive filtering capabilities, this leaves the agent with insufficient context.

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

Parameters1/5

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

Schema description coverage is 0% (none of the 12 parameters have descriptions in the schema), and the description provides no meaningful parameter information beyond listing parameter names. The description includes a 'Query Parameters' section that merely repeats parameter names with 'No description' for each, adding zero semantic value. This fails to compensate for the complete lack of schema descriptions.

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 states 'List environments' which is a tautology that merely restates the tool name. It doesn't specify what an 'environment' is in this context (development, staging, production environments?) or what information is included in the listing. While the verb 'list' is clear, the resource 'environments' lacks context, making the purpose vague.

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 about when to use this tool versus alternatives. There are multiple sibling tools with 'list' prefixes (listAlerts, listIncidents, listServices, etc.), but the description doesn't differentiate this tool from those or indicate when filtering environments is appropriate versus using other listing tools. The description provides zero usage context.

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

listFunctionalitiesD

List functionalities

Query Parameters:

  • include: No description.

  • page_number: No description.

  • page_size: No description.

  • filter_search: No description.

  • filter_name: No description.

  • filter_backstage_id: No description.

  • filter_cortex_id: No description.

  • filter_opslevel_id: No description.

  • filter_external_id: No description.

  • filter_slug: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

  • sort: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_backstage_idNo
filter_cortex_idNo
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_external_idNo
filter_nameNo
filter_opslevel_idNo
filter_searchNo
filter_slugNo
includeNo
page_numberNo
page_sizeNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior1/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 but provides almost none. It mentions a 200 success response with a content type, but doesn't describe pagination behavior, rate limits, authentication requirements, error conditions, or what constitutes a 'functionality' in this system. The example response is generic and unhelpful.

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?

While technically concise with minimal text, this is under-specification rather than effective conciseness. The structure includes sections for query parameters and responses, but these sections contain no useful information. The description wastes space on empty parameter descriptions and a generic example response that doesn't help an agent understand the tool.

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

Completeness1/5

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

For a tool with 15 parameters, no annotations, and complex filtering capabilities, this description is completely inadequate. While an output schema exists, the description doesn't explain what 'functionalities' are, how they relate to other resources, what filtering logic applies, or any behavioral characteristics. This leaves an agent with insufficient context to use the tool effectively.

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

Parameters1/5

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

With 15 parameters and 0% schema description coverage, the description provides no meaningful parameter information. Every parameter is listed with 'No description' - this adds zero value beyond what the bare schema already provides. The description fails completely to compensate for the schema's lack of documentation.

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 states 'List functionalities' which is a tautology - it merely restates the tool name without providing any meaningful context about what 'functionalities' are in this system. While it's clear this is a list operation, it doesn't distinguish what functionalities represent or how they differ from other listable resources like alerts, incidents, or services.

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 about when to use this tool versus alternatives. With multiple sibling list tools (listAlerts, listIncidents, listServices, etc.), there's no indication of what makes 'functionalities' distinct or when an agent should choose this specific list operation over others. The description offers zero contextual guidance.

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

listIncidentActionItemsC

List incident action items

Path Parameters:

  • incident_id (Required): No description.

Query Parameters:

  • include: No description.

  • page_number: No description.

  • page_size: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
incident_idYes
includeNo
page_numberNo
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions pagination parameters (page_number, page_size) in the parameter section but doesn't explain pagination behavior in the description text. It shows a response example but doesn't describe what 'success' means or typical return formats. For a listing tool with pagination, this leaves significant behavioral gaps about how results are structured and returned.

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 poorly structured - it starts with a brief purpose statement then dumps parameter documentation that adds no value (repeating 'No description' four times). The response section includes an example but without explanation. While not verbose, it's inefficiently organized with redundant information that doesn't help the agent understand the tool better.

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 tool with 4 parameters (0% schema coverage), no annotations, and sibling tools that suggest a complex incident management system, the description is inadequate. It doesn't explain what action items are, how they relate to incidents, what the response structure looks like beyond a trivial example, or how pagination works. While there's an output schema (implied by the response example), the description doesn't leverage this to provide meaningful context.

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

Parameters2/5

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

Schema description coverage is 0%, so all 4 parameters are undocumented in the schema. The description lists parameters with labels but provides 'No description' for each one. It doesn't explain what 'incident_id' should contain, what 'include' might filter or expand, or how pagination parameters work. The description adds minimal value beyond what's already visible in the parameter names themselves.

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

Purpose3/5

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

The description states 'List incident action items' which provides a clear verb ('List') and resource ('incident action items'), but it doesn't differentiate from sibling tools like 'listIncidentAlerts' or 'listIncidents' - it's unclear what distinguishes action items from other incident-related entities. The purpose is understandable but lacks specificity about what action items are in this context.

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 about when to use this tool versus alternatives. With sibling tools like 'listIncidentAlerts', 'listIncidents', and 'createIncidentActionItem', there's no indication of when action item listing is appropriate versus listing other incident-related entities or creating new action items. The description offers no context about prerequisites or typical use cases.

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

listIncidentAlertsD

List incident alerts

Path Parameters:

  • incident_id (Required): No description.

Query Parameters:

  • include: No description.

  • filter_source: No description.

  • filter_services: No description.

  • filter_environments: No description.

  • filter_groups: No description.

  • filter_labels: No description.

  • filter_started_at_gt: No description.

  • filter_started_at_gte: No description.

  • filter_started_at_lt: No description.

  • filter_started_at_lte: No description.

  • filter_ended_at_gt: No description.

  • filter_ended_at_gte: No description.

  • filter_ended_at_lt: No description.

  • filter_ended_at_lte: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

  • page_number: No description.

  • page_size: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_ended_at_gtNo
filter_ended_at_gteNo
filter_ended_at_ltNo
filter_ended_at_lteNo
filter_environmentsNo
filter_groupsNo
filter_labelsNo
filter_servicesNo
filter_sourceNo
filter_started_at_gtNo
filter_started_at_gteNo
filter_started_at_ltNo
filter_started_at_lteNo
incident_idYes
includeNo
page_numberNo
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior1/5

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

No annotations are provided, and the description offers zero behavioral context. It doesn't disclose whether this is a read-only operation, what permissions are required, how pagination works, rate limits, or what happens when filters are applied. For a tool with 21 parameters and no annotation coverage, this is completely inadequate.

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?

While technically concise with 'List incident alerts', the description is under-specified rather than efficiently structured. The parameter listing with repeated 'No description' adds bulk without value. The response example is minimal and uninformative.

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

Completeness1/5

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

For a complex tool with 21 parameters, no annotations, and 0% schema coverage, the description is completely inadequate. It doesn't explain what 'incident alerts' are, how filtering works, what the include parameter does, or how pagination behaves. The output schema exists but the example is trivial ('key': 'value'), providing no meaningful context.

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

Parameters1/5

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

Schema description coverage is 0%, meaning none of the 21 parameters have descriptions in the schema. The description section merely lists parameter names with 'No description' for each, adding zero semantic value. This fails to compensate for the complete lack of schema documentation.

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

Purpose3/5

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

The description states 'List incident alerts' which provides a basic verb+resource combination, but it's vague about scope and doesn't differentiate from sibling tools like 'listAlerts' or 'listIncidents'. It doesn't specify whether this lists alerts for a specific incident or all incident alerts.

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 on when to use this tool versus alternatives like 'listAlerts' or 'listIncidents'. The description doesn't mention prerequisites, context, or exclusions. The agent must infer usage from the parameter structure alone.

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

listIncidentsC

List incidents

Query Parameters:

  • page_number: No description.

  • page_size: No description.

  • filter_search: No description.

  • filter_kind: No description.

  • filter_status: No description.

  • filter_private: No description.

  • filter_user_id: No description.

  • filter_severity: No description.

  • filter_severity_id: No description.

  • filter_labels: No description.

  • filter_types: No description.

  • filter_type_ids: No description.

  • filter_environments: No description.

  • filter_environment_ids: No description.

  • filter_functionalities: No description.

  • filter_functionality_ids: No description.

  • filter_services: No description.

  • filter_service_ids: No description.

  • filter_teams: No description.

  • filter_team_ids: No description.

  • filter_cause: No description.

  • filter_cause_ids: No description.

  • filter_custom_field_selected_option_ids: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

  • filter_updated_at_gt: No description.

  • filter_updated_at_gte: No description.

  • filter_updated_at_lt: No description.

  • filter_updated_at_lte: No description.

  • filter_started_at_gt: No description.

  • filter_started_at_gte: No description.

  • filter_started_at_lt: No description.

  • filter_started_at_lte: No description.

  • filter_detected_at_gt: No description.

  • filter_detected_at_gte: No description.

  • filter_detected_at_lt: No description.

  • filter_detected_at_lte: No description.

  • filter_acknowledged_at_gt: No description.

  • filter_acknowledged_at_gte: No description.

  • filter_acknowledged_at_lt: No description.

  • filter_acknowledged_at_lte: No description.

  • filter_mitigated_at_gt: No description.

  • filter_mitigated_at_gte: No description.

  • filter_mitigated_at_lt: No description.

  • filter_mitigated_at_lte: No description.

  • filter_resolved_at_gt: No description.

  • filter_resolved_at_gte: No description.

  • filter_resolved_at_lt: No description.

  • filter_resolved_at_lte: No description.

  • filter_closed_at_gt: No description.

  • filter_closed_at_gte: No description.

  • filter_closed_at_lt: No description.

  • filter_closed_at_lte: No description.

  • filter_in_triage_at_gt: No description.

  • filter_in_triage_at_gte: No description.

  • filter_in_triage_at_lt: No description.

  • filter_in_triage_at_lte: No description.

  • sort: comma separated if needed. eg: created_at,updated_at

  • include: comma separated if needed. eg: sub_statuses,causes,subscribers

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_acknowledged_at_gtNo
filter_acknowledged_at_gteNo
filter_acknowledged_at_ltNo
filter_acknowledged_at_lteNo
filter_causeNo
filter_cause_idsNo
filter_closed_at_gtNo
filter_closed_at_gteNo
filter_closed_at_ltNo
filter_closed_at_lteNo
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_custom_field_selected_option_idsNo
filter_detected_at_gtNo
filter_detected_at_gteNo
filter_detected_at_ltNo
filter_detected_at_lteNo
filter_environment_idsNo
filter_environmentsNo
filter_functionalitiesNo
filter_functionality_idsNo
filter_in_triage_at_gtNo
filter_in_triage_at_gteNo
filter_in_triage_at_ltNo
filter_in_triage_at_lteNo
filter_kindNo
filter_labelsNo
filter_mitigated_at_gtNo
filter_mitigated_at_gteNo
filter_mitigated_at_ltNo
filter_mitigated_at_lteNo
filter_privateNo
filter_resolved_at_gtNo
filter_resolved_at_gteNo
filter_resolved_at_ltNo
filter_resolved_at_lteNo
filter_searchNo
filter_service_idsNo
filter_servicesNo
filter_severityNo
filter_severity_idNo
filter_started_at_gtNo
filter_started_at_gteNo
filter_started_at_ltNo
filter_started_at_lteNo
filter_statusNo
filter_team_idsNo
filter_teamsNo
filter_type_idsNo
filter_typesNo
filter_updated_at_gtNo
filter_updated_at_gteNo
filter_updated_at_ltNo
filter_updated_at_lteNo
filter_user_idNo
includeNocomma separated if needed. eg: sub_statuses,causes,subscribers
page_numberNo
page_sizeNo
sortNocomma separated if needed. eg: created_at,updated_at

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions pagination parameters and includes an example response format, but doesn't describe authentication requirements, rate limits, error conditions, or whether this is a read-only operation. The response example is minimal and doesn't explain the actual structure of incident data.

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 poorly structured - it starts with a tautological purpose statement, then dumps 61 parameter names with 'No description' labels in a massive unhelpful list. The response section includes an example but it's minimal and uninformative. This is not concise but rather under-specified with wasted space on repetitive 'No description' annotations.

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 tool with 61 parameters, no annotations, and complex filtering capabilities, the description is severely inadequate. It doesn't explain the incident domain, filtering logic, pagination behavior, or response structure. While there's an output schema mentioned, the description doesn't bridge the gap between the minimal input documentation and what users need to effectively use this complex tool.

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

Parameters2/5

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

With only 3% schema description coverage (only 2 of 61 parameters have descriptions), the description attempts to compensate by listing all parameters with 'No description' labels, but this adds no actual semantic value. The minimal descriptions for 'sort' and 'include' parameters are helpful but insufficient given the massive parameter count. The description fails to explain what any of the filter parameters actually filter by or their expected formats.

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 states 'List incidents' which is a tautology of the tool name 'listIncidents'. It doesn't specify what kind of incidents, from what system, or what the output contains. While it's clear this is a listing operation, it lacks specificity about the resource domain or scope.

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 about when to use this tool versus alternatives like 'search_incidents_paginated' or 'get_all_incidents_matching'. The description doesn't mention prerequisites, access requirements, or typical use cases for this specific listing approach versus other incident-related tools.

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

listIncident_TypesC

List incident types

Query Parameters:

  • include: No description.

  • page_number: No description.

  • page_size: No description.

  • filter_slug: No description.

  • filter_name: No description.

  • filter_color: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

  • sort: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_colorNo
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_nameNo
filter_slugNo
includeNo
page_numberNo
page_sizeNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/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 full burden. 'List incident types' implies a read-only operation but doesn't disclose pagination behavior, rate limits, authentication needs, or what the response contains. The example JSON is generic ('key': 'value'), adding no value. This leaves critical behavioral traits undocumented.

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

Conciseness3/5

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

The description is front-loaded with the purpose but wastes space listing parameters without descriptions and includes a generic, unhelpful example. While not verbose, the structure is inefficient—the parameter list adds no value, and the example doesn't clarify usage. It could be more concise by omitting these non-contributory sections.

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 11 parameters with 0% schema coverage, no annotations, and sibling tools, the description is incomplete. It lacks guidance on usage, parameter meanings, and behavioral context. Although an output schema exists (implied by 'Has output schema: true'), the description doesn't leverage this to explain return values or success conditions, leaving significant gaps for agent understanding.

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

Parameters1/5

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

Schema description coverage is 0%, with 11 parameters all undocumented in the schema. The description lists parameters under 'Query Parameters' but provides no descriptions (e.g., 'No description' for each). It fails to add any meaning beyond the schema, such as explaining filter logic, pagination defaults, or sort options, leaving parameters entirely opaque.

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 'List incident types' is a tautology that merely restates the tool name. It provides no additional specificity about what 'list' entails (e.g., paginated results, filtering capabilities) or distinguishes it from sibling list tools like listIncidents or listServices. While the verb+resource is clear, it lacks differentiation and depth.

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. With siblings like listIncidents and search_incidents_paginated, there's no indication of whether this tool is for metadata lookup, filtering incident types specifically, or other use cases. The description offers no context, prerequisites, or exclusions.

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

listServicesD

List services

Query Parameters:

  • include: No description.

  • page_number: No description.

  • page_size: No description.

  • filter_search: No description.

  • filter_name: No description.

  • filter_slug: No description.

  • filter_backstage_id: No description.

  • filter_cortex_id: No description.

  • filter_opslevel_id: No description.

  • filter_external_id: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

  • sort: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_backstage_idNo
filter_cortex_idNo
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_external_idNo
filter_nameNo
filter_opslevel_idNo
filter_searchNo
filter_slugNo
includeNo
page_numberNo
page_sizeNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. The description only states 'List services' with no information about whether this is a read-only operation, pagination behavior, authentication requirements, rate limits, or what happens when filters are applied. It lacks any behavioral context beyond the basic action.

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?

While technically concise with 'List services', the structure is poor because it includes extensive parameter and response sections that provide no value (all marked 'No description'). The front-loaded purpose is under-specified, and the bulk of the text is wasted space that doesn't help the agent.

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 15 parameters with 0% schema coverage, no annotations, and sibling tools that suggest this is part of a service management system, the description is severely incomplete. While an output schema exists (mentioned in context signals), the description doesn't explain what 'services' are, filtering logic, pagination behavior, or relationship to other tools. It fails to provide necessary context for effective use.

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

Parameters1/5

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

Schema description coverage is 0% (no parameter descriptions in schema), and the description explicitly states 'No description' for all 15 parameters. The description adds zero semantic meaning beyond what's already in the bare schema types. With 15 undocumented parameters, this is a critical gap.

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 states 'List services' which is a tautology of the tool name 'listServices'. It doesn't specify what type of services are being listed, what resource is being accessed, or how this differs from sibling tools like 'listAlerts', 'listTeams', or 'listWorkflows'. The purpose is minimally stated but lacks differentiation and specificity.

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?

There is absolutely no guidance on when to use this tool versus alternatives. The description doesn't mention any prerequisites, context for usage, or comparison to sibling tools like 'search_incidents_paginated' or other list tools. It provides zero usage context.

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

listSeveritiesD

List severities

Query Parameters:

  • include: No description.

  • page_number: No description.

  • page_size: No description.

  • filter_search: No description.

  • filter_slug: No description.

  • filter_name: No description.

  • filter_severity: No description.

  • filter_color: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

  • sort: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_colorNo
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_nameNo
filter_searchNo
filter_severityNo
filter_slugNo
includeNo
page_numberNo
page_sizeNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.9/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 full burden for behavioral disclosure. The description mentions pagination parameters (page_number, page_size) and filtering parameters, implying this is a read-only listing operation with filtering and pagination capabilities. However, it doesn't explicitly state whether this is a read-only operation, what permissions might be required, or any rate limits. The inclusion of a 200 response example suggests successful operation but lacks detail about error cases or behavioral traits.

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

Conciseness3/5

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

The description is structured with clear sections (Query Parameters, Responses) which helps organization. However, it's inefficiently verbose - listing 13 parameters with 'No description' adds bulk without value. The core purpose ('List severities') is front-loaded but overly brief. The response example is minimal and uninformative. The structure is organized but contains significant wasted space.

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 13 parameters with 0% schema coverage and no annotations, the description is incomplete. While an output schema exists (implied by the 200 response section), the example provided is minimal ('key': 'value') and doesn't demonstrate actual severity data structure. For a listing tool with extensive filtering capabilities, the description should explain what severities are, how filtering works, and what the response contains. The current description leaves too many gaps for effective tool use.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for 13 undocumented parameters. The description lists all parameters but provides 'No description' for each one, adding no semantic meaning beyond what the schema already provides (parameter names and types). While it organizes parameters into 'Query Parameters' and 'Responses' sections, this doesn't explain what the parameters actually do or how to use them effectively.

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 states 'List severities' which is a tautology of the tool name 'listSeverities'. It doesn't specify what 'severities' are (e.g., incident severity levels, alert severity levels) or provide any context about the resource being listed. While it uses a clear verb ('List'), it lacks specificity about the domain or resource type.

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?

The description provides no guidance on when to use this tool versus alternatives. There are sibling tools like 'listIncidents', 'listAlerts', and 'createSeverity', but the description doesn't explain when to list severities versus when to create them or when severity information might be needed in other contexts. No usage context or prerequisites are mentioned.

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

listTeamsD

List teams

Query Parameters:

  • include: No description.

  • page_number: No description.

  • page_size: No description.

  • filter_search: No description.

  • filter_slug: No description.

  • filter_name: No description.

  • filter_backstage_id: No description.

  • filter_cortex_id: No description.

  • filter_opslevel_id: No description.

  • filter_external_id: No description.

  • filter_color: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

  • sort: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_backstage_idNo
filter_colorNo
filter_cortex_idNo
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_external_idNo
filter_nameNo
filter_opslevel_idNo
filter_searchNo
filter_slugNo
includeNo
page_numberNo
page_sizeNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.5/5.0
Behavior1/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions a 200 success response with example JSON, but provides no meaningful behavioral information about pagination behavior, rate limits, authentication requirements, error conditions, or what 'success' actually means. The example JSON with 'key': 'value' is completely uninformative about actual response structure.

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?

While the description is structured with sections, it's not appropriately sized for its purpose. The parameter listing with 'No description' repeated 16 times adds bulk without value. The example response with generic 'key': 'value' is wasted space. The description is simultaneously verbose (repetitive parameter formatting) and under-specified (lacking meaningful content).

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

Completeness1/5

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

For a tool with 16 parameters, 0% schema description coverage, no annotations, and complex filtering capabilities, this description is completely inadequate. While there is an output schema (implied by 'Has output schema: true'), the description provides no meaningful context about what teams are, how filtering works, pagination behavior, or response format. The example JSON is useless for understanding actual return values.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for 16 undocumented parameters. While it lists all parameter names, every single one is marked 'No description.' The description adds no semantic meaning beyond what's already in the schema property names. Parameters like 'filter_backstage_id', 'filter_cortex_id', 'filter_opslevel_id' remain completely unexplained despite being critical filtering options.

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 states 'List teams' which is a tautology of the tool name 'listTeams'. It provides no additional context about what 'teams' are in this system, what information is returned, or how this differs from other list tools like 'listUsers' or 'listServices'. While it does specify the verb+resource, it doesn't distinguish from siblings or provide meaningful purpose clarification beyond the obvious.

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?

The description provides absolutely no guidance on when to use this tool versus alternatives. There are multiple other list/search tools in the sibling set (listAlerts, listIncidents, listServices, etc.), but no indication of when teams listing is appropriate versus other entity types. No prerequisites, no exclusions, no comparison to similar tools.

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

listUsersC

List users

Query Parameters:

  • page_number: No description.

  • page_size: No description.

  • filter_search: No description.

  • filter_email: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

  • sort: comma separated if needed. eg: created_at,updated_at

  • include: comma separated if needed. eg: email_addresses,phone_numbers

Responses:

  • 200 (Success): user found

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
  • 401: responds with unauthorized for invalid token

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_emailNo
filter_searchNo
includeNocomma separated if needed. eg: email_addresses,phone_numbers
page_numberNo
page_sizeNo
sortNocomma separated if needed. eg: created_at,updated_at

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions pagination parameters and filtering capabilities, it doesn't describe authentication requirements (though the 401 response example hints at token-based auth), rate limits, whether this is a read-only operation, what happens with large result sets, or typical response formats beyond the minimal example. The description provides some operational context but leaves critical behavioral aspects unspecified.

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 poorly structured with redundant formatting. It wastes space repeating 'No description' for most parameters and includes verbose HTTP response documentation that belongs in an API spec rather than an MCP tool description. The core purpose statement is buried under unnecessary technical details, making it inefficient for an AI agent to parse quickly.

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 tool with 10 parameters, no annotations, and complex filtering capabilities, this description is inadequate. While there's an output schema (implied by the context signals), the description doesn't provide enough context about the tool's behavior, usage patterns, or relationship to sibling tools. The response examples are generic and unhelpful, failing to illustrate actual user data structures.

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 only 20% (only 'include' and 'sort' have descriptions in schema), but the description compensates by providing parameter lists with some examples. However, most parameters have 'No description' in the text, and the examples are minimal. The description adds marginal value beyond the schema but doesn't fully explain parameter purposes, formats, or constraints for the majority of parameters.

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 states 'List users' which is a tautology of the tool name 'listUsers'. It provides no additional specificity about what kind of users, from what system, or what scope. While it's clear this is a listing operation, it doesn't distinguish itself from potential sibling list tools or provide meaningful context beyond the name.

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?

There is absolutely no guidance about when to use this tool versus alternatives. The description doesn't mention any prerequisites, context for usage, or comparison to sibling tools like 'getCurrentUser' or other list operations. The agent receives zero direction about appropriate use cases.

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

listWorkflowsC

List workflows

Query Parameters:

  • include: comma separated if needed. eg: form_field_conditions,genius_tasks

  • sort: comma separated if needed. eg: created_at,updated_at

  • page_number: No description.

  • page_size: No description.

  • filter_search: No description.

  • filter_name: No description.

  • filter_slug: No description.

  • filter_created_at_gt: No description.

  • filter_created_at_gte: No description.

  • filter_created_at_lt: No description.

  • filter_created_at_lte: No description.

Responses:

  • 200 (Success): success

    • Content-Type: application/vnd.api+json

    • Example:

{
  "key": "value"
}
ParametersJSON Schema
NameRequiredDescriptionDefault
filter_created_at_gtNo
filter_created_at_gteNo
filter_created_at_ltNo
filter_created_at_lteNo
filter_nameNo
filter_searchNo
filter_slugNo
includeNocomma separated if needed. eg: form_field_conditions,genius_tasks
page_numberNo
page_sizeNo
sortNocomma separated if needed. eg: created_at,updated_at

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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. The description mentions a 200 success response with an example, but doesn't explain pagination behavior, rate limits, authentication requirements, or what happens when filters return no results. For an 11-parameter listing tool with zero annotation coverage, this represents a significant gap in behavioral context.

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

Conciseness3/5

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

The description is reasonably structured with clear sections for query parameters and responses, but contains redundant information. The parameter descriptions repeat what's already in the schema (like the enum values for include and sort), and the response section could be more concise. While not excessively verbose, some content doesn't earn its place.

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 an 11-parameter listing tool with no annotations, the description is incomplete. While an output schema exists (mentioned in context signals), the description still lacks crucial context about pagination behavior, filtering logic, authentication requirements, and error scenarios. The response example is minimal ('key: value') and unhelpful. Given the complexity and parameter count, this description leaves too many unanswered questions.

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

Parameters2/5

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

Schema description coverage is only 18%, meaning most parameters lack documentation in the schema. The description attempts to compensate by listing all parameters with brief notes, but provides meaningful descriptions for only 2 parameters (include and sort). The other 9 parameters have 'No description' or just type information, leaving their purpose and usage unclear. This partial compensation is insufficient given the low schema coverage.

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 begins with 'List workflows' which is a tautology of the tool name 'listWorkflows'. It doesn't specify what kind of workflows (e.g., incident workflows, automation workflows) or provide any distinguishing context. While it's clear this is a listing operation, it lacks the specificity needed to differentiate it from other list tools in the sibling set like listAlerts, listIncidents, etc.

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. There's no mention of prerequisites, typical use cases, or comparison with other listing tools in the sibling set (like listIncidents or listTeams). The agent receives no help in determining when this specific workflow listing tool is appropriate.

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

search_incidents_paginatedC

Search incidents with enhanced pagination control.

This tool provides better pagination handling than the standard API endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_numberNoPage number to retrieve
page_sizeNoNumber of results per page (max: 100)
queryNoSearch query to filter incidents by title/summary

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/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 full burden. It mentions 'enhanced pagination control' and 'better pagination handling' but doesn't disclose behavioral traits like rate limits, authentication needs, error handling, or what 'enhanced' entails (e.g., cursor-based vs. offset). The description is too vague to adequately inform agent behavior.

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 two sentences with zero waste, front-loading the core purpose. It's appropriately sized but could be more informative. Every sentence earns its place, though it lacks depth.

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?

Given 3 parameters with 100% schema coverage and an output schema exists, the description doesn't need to explain return values. However, as a search tool with no annotations, it should provide more context on usage scenarios, limitations, or how it differs from siblings. It's minimally adequate but has clear gaps in behavioral 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?

Schema description coverage is 100%, so the schema already documents all parameters (page_number, page_size, query). The description adds no meaning beyond the schema—it doesn't explain parameter interactions, query syntax, or default behaviors. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose3/5

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

The description states the tool 'Search incidents with enhanced pagination control' which clarifies the verb (search) and resource (incidents). However, it doesn't differentiate from sibling tools like 'listIncidents' or 'get_all_incidents_matching' beyond mentioning 'enhanced pagination control' without specifics. The purpose is clear but lacks sibling differentiation.

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 mentions 'better pagination handling than the standard API endpoint' but doesn't specify when to use this tool versus alternatives like 'listIncidents' or 'get_all_incidents_matching'. No explicit guidance on when-not-to-use or prerequisites is provided, leaving usage context vague.

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

TDQS

C2.3/5.0
Disambiguation4/5

Most tools are clearly distinct by resource and action, such as createIncident vs listIncidents, with minimal overlap. However, get_all_incidents_matching and search_incidents_paginated both search incidents, potentially causing confusion, and attachAlert vs createAlert have subtle differences that might not be immediately clear from names alone.

Naming Consistency3/5

The majority of tools follow a consistent verb_noun pattern (e.g., createIncident, listServices), but there are notable deviations like get_all_incidents_matching (snake_case with underscores), list_endpoints (snake_case), and search_incidents_paginated (mixed style). This inconsistency reduces predictability, though the core pattern is still readable.

Tool Count2/5

With 27 tools, the count feels heavy for an incident management domain, especially given some redundancy (e.g., multiple incident search tools). While the domain is broad, the tool set could be more streamlined, as many tools are simple CRUD operations that might be better consolidated or scoped down to avoid overwhelming agents.

Completeness4/5

The tool set covers a wide range of incident management resources (incidents, alerts, services, teams, etc.) with create and list operations for most, providing good lifecycle coverage. However, there are gaps in update and delete operations for many resources, which could limit agent workflows, though the core create and list functions are well-represented.

Maintenance

ActivityActive
ResponsivenessResponsive

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

  • An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform

  • The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.

  • The OpenRouter MCP server plugs OpenRouter into the AI tools you already use. Once connected, your assistant can pull live OpenRouter data (models, prices, your credits, rankings, and docs) and send quick test messages, all without leaving your editor.

  • MCP server for Linear project management and issue tracking

Related MCP Servers

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/rootlyhq/rootly-mcp-server'

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