pagerduty-mcp
OfficialThis server provides MCP tools to read (and optionally write) PagerDuty data, covering incidents, alerts, services, schedules, on-call, and more.
Incidents: list, get, notes, change events, outlier/past/related incidents
Alerts: list/get alerts from incidents, alert grouping settings
Services: list/get services, service change events, technical service dependencies
Schedules: list/get schedules (both classic v2 and next-gen v3), schedule users, v3 rotations, rotation events, custom shifts, overrides
On-Call: list on-calls with filters
Teams & Users: list/get teams, team members, current user, users
Escalation Policies: list/get
Event Orchestrations: list/get, router, service, global configurations
Status Pages: list pages, severities, impacts, statuses, posts, post updates
Analytics: responder metrics, incident metrics by service/team/all, responder load
Log Entries: list/get
Webhooks: list/get subscriptions
Extension Schemas: list/get
Business Services: list, dependencies
Priorities: list all
Incident Workflows: list/get
Change Events: list/get, service/incident related
Provides tools to manage incidents, services, schedules, event orchestrations, and more directly from your MCP-enabled client, with embedded React UIs for incident management, on-call management, and service dependency visualization.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pagerduty-mcpShow me the current incidents"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PagerDuty's official MCP Server
This repository is deprecated and now read-only. Development has moved to PagerDuty's hosted Remote MCP Server — see the docs there for setup instructions.
PagerDuty's local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account, allowing you to manage incidents, services, schedules, event orchestrations, and more directly from your MCP-enabled client.
Quick start
You need uv and a PagerDuty User API Token — see
Prerequisites and Authentication.
PAGERDUTY_USER_API_KEY="your-token" uvx pagerduty-mcpBy default only read-only tools are exposed. Add --enable-write-tools to allow tools that modify
your PagerDuty account. Then point your MCP client at the server —
Cursor, VS Code,
Claude Desktop, or Docker.
Prefer no local install? PagerDuty hosts a Remote MCP Server with OAuth support.
Related MCP server: runframe-mcp-server
Contents
The full documentation lives in docs/ and is readable directly on GitHub.
Getting Started
Introduction — what the MCP server is and what it can do
Installation
Remote Server
Remote MCP Server Setup — PagerDuty-hosted, no local install. Maintained on the PagerDuty Knowledge Base.
Configuration
Tools Reference
Tools Overview — every tool, read/write type, and description
Use Cases
Experimental
Experimental Overview — MCP Apps and the
experimentalbranch
Community
Contributing
Support
PagerDuty's MCP server is an open-source project, and as such, we offer only community-based support. If assistance is required, please open an issue in GitHub or PagerDuty's community forum.
Contributing
If you are interested in contributing to this project, please refer to our Contributing Guidelines and the development setup guide.
Available Tools
63 toolsget_alert_from_incidentARead-onlyIdempotent
Get a specific alert from an incident.
Both IDs must be known, non-empty PagerDuty IDs (e.g. "PALERT123").
If the alert ID is not known, use list_alerts_from_incident to discover
the incident's alerts instead of calling this tool with an empty or
placeholder alert_id.
Args:
incident_id: The ID of the incident
alert_id: The ID of the alert
Returns:
Alert details
| Name | Required | Description | Default |
|---|---|---|---|
| alert_id | Yes | ||
| incident_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| body | No | |
| self | Yes | |
| type | Yes | |
| status | Yes | |
| service | No | |
| summary | Yes | |
| html_url | Yes | |
| incident | No | |
| severity | No | |
| alert_key | Yes | |
| created_at | Yes | |
| suppressed | No | |
| integration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral details such as the requirement that both IDs must be 'known, non-empty PagerDuty IDs', which is not captured by annotations. This provides additional context beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-line purpose, a note on ID requirements, usage guidance with a sibling reference, and an Args section. Every sentence adds value, and the critical information is front-loaded. No redundancy or waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with two required string parameters, no nested objects, and an existing output schema, the description is fully complete. It covers purpose, ID format, usage alternatives, and return value ('Alert details'). The output schema handles detailed return structure, so no further explanation needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions in the schema), so the description must compensate. It includes an 'Args' section explaining incident_id and alert_id as 'The ID of the incident' and 'The ID of the alert', plus the note that IDs must be non-empty PagerDuty IDs. This adds meaningful semantic context beyond the bare property names, though deeper format details could improve it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific alert from an incident' using a specific verb and resource. It distinguishes itself from the sibling tool 'list_alerts_from_incident' by noting that this tool retrieves a single alert given both IDs, while the list tool is for discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (when both IDs are known) and when not to (if alert ID is unknown, use list_alerts_from_incident). It warns against using empty or placeholder alert_id, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alert_grouping_settingBRead-onlyIdempotent
Get details for a specific alert grouping setting.
Args:
setting_id: The ID of the alert grouping setting to retrieve
Returns:
Alert grouping setting details
| Name | Required | Description | Default |
|---|---|---|---|
| setting_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the alert grouping setting |
| name | No | An optional short-form string that provides succinct information about an AlertGroupingSetting object suitable for primary labeling of the entity. It is not intended to be an identifier. |
| type | Yes | The type of alert grouping configuration |
| config | Yes | The configuration for the alert grouping setting based on the type |
| services | Yes | The array of one or many Services with just ServiceID/name that the AlertGroupingSetting applies to. Type of content_based_intelligent allows for only one service in the array. |
| created_at | No | The ISO8601 date/time an AlertGroupingSetting got created at. |
| updated_at | No | The ISO8601 date/time an AlertGroupingSetting last got updated at. |
| description | No | An optional description in string that provides more information about an AlertGroupingSetting object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false, which fully convey the behavioral profile. The description adds no additional behavioral context beyond restating 'Get details'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, but includes an 'Args' and 'Returns' section that largely duplicates schema and is not needed. It could be more concise by omitting these structural elements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an existing output schema, the description is minimally adequate but lacks parameter semantics and does not leverage the output schema (though not required). It fails to provide distinct guidance from its sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It merely lists 'setting_id' without any additional meaning, such as format, source, or constraints. This is insufficient for a parameter that is not self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get details for a specific alert grouping setting,' which is a specific verb+resource. It distinguishes from sibling tool 'list_alert_grouping_settings' which lists all settings, and other get tools target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing details for a specific setting by ID, but it does not explicitly mention when to use this vs alternatives like 'list_alert_grouping_settings' or provide excluding conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_business_service_dependenciesARead-onlyIdempotent
Get dependencies for a business service.
Args:
business_service_id: The ID of the business service
Returns:
JSON string with relationships list
| Name | Required | Description | Default |
|---|---|---|---|
| business_service_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no extra behavioral context beyond that, but does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one line for purpose, a brief args/returns format. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature (1 parameter, read-only, idempotent), and the presence of an output schema, the description is complete enough for an AI agent to understand and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining 'The ID of the business service', adding meaning to the single required parameter. This is sufficient for a simple ID parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get dependencies for a business service', specifying a specific verb and resource. It distinguishes from sibling tools like 'get_technical_service_dependencies' and 'get_service' by targeting business services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'get_technical_service_dependencies'). No context on prerequisites or typical use cases is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_change_eventARead-onlyIdempotent
Get details about a specific change event.
Args:
change_event_id: The ID of the change event to retrieve
Returns:
ChangeEvent details
| Name | Required | Description | Default |
|---|---|---|---|
| change_event_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The unique identifier of the change event |
| links | No | List of links with 'href' and 'text' properties for additional context (read-only) |
| images | No | List of images with 'src', 'href', and 'alt' properties for visual context (read-only) |
| source | No | The unique location of the affected system (read-only) |
| summary | Yes | A brief text summary of the event (maximum 1024 characters) |
| services | No | An array of references to services associated with this change event (read-only) |
| timestamp | No | The date and time when the change event occurred (read-only) |
| integration | No | Reference to the integration that created this change event (read-only) |
| routing_key | No | The 32-character integration key used for routing the event (read-only) |
| custom_details | No | Additional details about the change event that can be updated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which cover the key behavioral traits. The description adds little beyond stating the action, so no contradiction and adequate but not enhanced transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using a standard docstring format with only two sentences. Every word earns its place; no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with an output schema, the description covers the essential inputs and high-level return. It does not detail errors or permissions, but given the annotations and single parameter, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly documents the parameter 'change_event_id' with its purpose ('The ID of the change event to retrieve'), adding meaningful context beyond the schema's type and title alone. The schema itself has 0% description coverage, so the description fills that gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get details about a specific change event.' This provides a specific verb and resource, and distinguishes from sibling tools like list_change_events which list multiple events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives. The description does not mention list_change_events or other get_* tools, and there is no when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_escalation_policyCRead-onlyIdempotent
Get a specific escalation policy.
Args:
policy_id: The ID of the escalation policy to retrieve
Returns:
Escalation policy details
| Name | Required | Description | Default |
|---|---|---|---|
| policy_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the escalation policy |
| name | Yes | The name of the escalation policy |
| teams | No | The teams associated with this escalation policy |
| summary | No | A short-form, server-generated string that provides succinct information about the escalation policy |
| html_url | No | The URL at which this escalation policy is accessible in the PagerDuty UI |
| self_url | No | The API URL at which this escalation policy is accessible |
| services | No | The services that are using this escalation policy |
| num_loops | No | The number of times the escalation policy will repeat after reaching the end of its escalation |
| created_at | No | The date/time when this escalation policy was created |
| updated_at | No | The date/time when this escalation policy was last updated |
| description | No | The description of the escalation policy |
| escalation_rules | Yes | The ordered list of escalation rules for the policy |
| on_call_handoff_notifications | No | Determines how on call handoff notifications will be sent for users on theescalation policy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds no behavioral information beyond what the annotations provide, such as rate limits, authentication needs, or return value structure. Minimal value added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence for the purpose, followed by a clear args/returns structure. Every sentence serves a purpose without unnecessary fluff. However, it could be slightly more structured by separating narrative from docstring.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single required parameter, output schema exists), the description covers the basics: get by ID and return details. It does not mention related tools for obtaining IDs or any side effects. With annotations covering safety, it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, but it only restates the parameter as 'The ID of the escalation policy to retrieve,' which adds little beyond the schema's title 'Policy Id.' No additional constraints or format details are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific escalation policy,' specifying the verb 'Get' and the resource 'escalation policy.' This distinguishes it from sibling tools like list_escalation_policies, which performs a different operation. However, it lacks additional context about what an escalation policy is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a policy ID from list_escalation_policies) or when not to use it. The only implied usage is that it requires a policy_id, but no explicit usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_orchestrationBRead-onlyIdempotent
Get details for a specific event orchestration.
Args:
orchestration_id: The ID of the event orchestration to retrieve
Returns:
The event orchestration details
| Name | Required | Description | Default |
|---|---|---|---|
| orchestration_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | ID of the Orchestration. |
| name | Yes | Name of the Orchestration. |
| self | Yes | The API show URL at which the object is accessible |
| team | No | Reference to the team that owns the Orchestration. If none is specified, only admins have access. |
| routes | No | Number of different Service Orchestration being routed to |
| version | No | Version of the Orchestration. |
| created_at | Yes | The date the Orchestration was created at. |
| created_by | No | Reference to the user that has created the Orchestration. |
| updated_at | Yes | The date the Orchestration was last updated. |
| updated_by | No | Reference to the user that has updated the Orchestration last. |
| description | No | A description of this Orchestration's purpose. |
| integrations | No | List of integrations for the orchestration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe read behavior. The description's 'Get details' aligns with this, but it adds no extra behavioral context (e.g., error handling, rate limits). Since annotations carry the transparency burden, a 3 is appropriate for not contradicting and providing basic alignment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a clear structure: one sentence for purpose, followed by Args and Returns sections. Every sentence is necessary, and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, output schema present), the description is minimally adequate. However, the context includes many sibling tools for orchestration retrieval, and this description does not clarify when to use this specific variant, reducing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, orchestration_id, has 0% schema description coverage. The description's 'The ID of the event orchestration to retrieve' merely restates the parameter name without adding format, source, or validation rules. With no compensation for low coverage, the parameter semantics are minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get details for a specific event orchestration,' conveying verb (Get) and resource (event orchestration) clearly. However, it fails to differentiate from sibling tools like get_event_orchestration_global or get_event_orchestration_router, which retrieve similar but distinct orchestration types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have an orchestration_id, but it provides no guidance on when not to use this tool or when to use alternative orchestration retrieval tools. Sibling tools cover different orchestration scopes, yet no exclusions or recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_orchestration_globalARead-onlyIdempotent
Get the Global Orchestration configuration for a specific event orchestration.
Args:
orchestration_id: The ID of the event orchestration to retrieve global configuration for
Returns:
The global orchestration configuration
| Name | Required | Description | Default |
|---|---|---|---|
| orchestration_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| orchestration_path | No | The orchestration global path configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description simply restates the purpose without adding behavioral context such as authentication requirements, error handling, or response format. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two clear sentences plus a structured Args/Returns section. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple GET operation with one required parameter, and an output schema exists. The description adequately specifies what is retrieved and the required argument, though it lacks mention of error scenarios or prerequisites. Completeness is high given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description includes an Args section that explains the sole parameter `orchestration_id`, adding meaning beyond the input schema which only provides type and title. This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'Global Orchestration configuration', and the tool name further distinguishes it from siblings like get_event_orchestration_service by specifying 'global'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool vs alternatives, nor does it mention when not to use it. Usage is implied but not clarified relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_orchestration_routerARead-onlyIdempotent
Get the router configuration for a specific event orchestration.
Args:
orchestration_id: The ID of the event orchestration to retrieve router for
Returns:
The event orchestration router configuration
| Name | Required | Description | Default |
|---|---|---|---|
| orchestration_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| orchestration_path | No | The orchestration router path configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds no additional behavioral context beyond these annotations. It does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with docstring-style Args/Returns. It is front-loaded and every part earns its place. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, existing annotations, output schema), the description is mostly complete. It explains the parameter and purpose, leaving return format to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the single parameter orchestration_id by stating 'The ID of the event orchestration to retrieve router for', which is missing from the schema (0% coverage). Could be improved by specifying the expected format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'router configuration for a specific event orchestration'. It distinguishes itself from siblings like get_event_orchestration by targeting a specific subcomponent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_event_orchestration vs. get_event_orchestration_router). The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_orchestration_serviceARead-onlyIdempotent
Get the Service Orchestration configuration for a specific service.
Args:
service_id: The ID of the service to retrieve the orchestration configuration for
Returns:
The service orchestration configuration
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| orchestration_path | No | The orchestration service path configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds no additional behavioral context such as authentication requirements, rate limits, or side effects. It is adequate but does not enhance transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences for purpose and one line for the argument. It is front-loaded with the main action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and an output schema, the description is minimally complete. It states what it returns ('The service orchestration configuration') but does not elaborate on the structure or give usage examples. The output schema can fill the gap, so a score of 3 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameters documented in schema), so the description must compensate. It explains the sole parameter 'service_id' as 'The ID of the service to retrieve the orchestration configuration for', which adds minimal meaning beyond the schema title 'Service Id'. This is a basic paraphrase, not rich semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'Service Orchestration configuration', and the scope 'for a specific service'. This distinguishes it from sibling tools like get_event_orchestration (general) and get_event_orchestration_global (global).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or compare to other orchestration tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_extension_schemaARead-onlyIdempotent
Get a specific extension schema by ID.
Args:
schema_id: The ID of the extension schema to retrieve
Returns:
Extension schema details
| Name | Required | Description | Default |
|---|---|---|---|
| schema_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The extension schema ID |
| key | No | Machine-friendly display label |
| url | No | The webhook payload destination URL for this extension |
| type | No | The object type (always extension_schema) |
| label | No | Human-friendly display label |
| summary | No | A short-form summary of the extension schema |
| icon_url | No | URL for the small (18x18) logo |
| logo_url | No | URL for the large logo (75px high, max 300px wide) |
| guide_url | No | Link to the extension's support guide |
| send_types | No | The PagerDuty incident event types that activate this extension |
| description | No | A long description of the extension |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds 'Get' and return value indication but does not provide additional behavioral context such as authentication needs or rate limits. Minimal extra value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with the primary action stated in the first line. Every sentence serves a purpose: the action, parameter explanation, and return indication. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no nested objects, output schema present), the description is complete. It covers what the tool does, what input it expects, and what it returns. The output schema handles return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'schema_id' has a clear description: 'The ID of the extension schema to retrieve.' This adds meaning beyond the schema's title 'Schema Id', compensating for the 0% schema description coverage. For a simple ID parameter, this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get a specific extension schema by ID' with a specific verb and resource. This distinguishes it from sibling tool 'list_extension_schemas' which lists all schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. The name and description imply it's for a single schema by ID, but there's no mention of when not to use it or comparisons with related tools like list_extension_schemas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incidentBRead-onlyIdempotent
Get a specific incident.
Args:
incident_id: The ID or number of the incident to retrieve.
query_model: Optional query parameters for additional information to include
Returns:
Incident details
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | ||
| query_model | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the incident |
| title | Yes | A succinct description of the nature, symptoms, cause, or effect of the incident |
| status | Yes | The current status of the incident |
| service | Yes | The service the incident is on |
| summary | No | A short summary of the incident |
| priority | No | The priority of the incident (e.g. P1, P2) |
| created_at | Yes | The time the incident was first triggered |
| updated_at | Yes | The time the incident was last modified |
| assignments | No | The users assigned to the incident |
| resolved_at | No | The time the incident became resolved or null if the incident is not resolved |
| incident_number | Yes | The number of the incident. This is unique across your account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds no significant behavioral context beyond 'Get', which is consistent. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short, structured with Args/Returns. No fluff, but could be slightly more concise with a single line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple get tool with an output schema. Missing explanation of query_model options and when to use include. Satisfies minimum requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Incident_id is described clearly but query_model only says 'Optional query parameters'. The input schema already contains detailed descriptions for the nested include field. Description adds minimal value over schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Get a specific incident', clearly identifying the action and resource. This distinguishes it from siblings like list_incidents which retrieve multiple incidents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_incidents for multiple, or other get_* tools). Usage must be inferred from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incident_metrics_allARead-onlyIdempotent
Get full-period aggregated incident metrics from PagerDuty Analytics.
Returns rollup metrics for the entire requested period including percentile
distributions (P50, P75, P90, P95) for ack and resolve times. These percentile
fields are ONLY available from this endpoint — not from the per-team or per-service
grouped endpoints.
Args:
created_at_start: ISO8601 DateTime. Incidents created before this are omitted.
created_at_end: ISO8601 DateTime. Incidents created on/after this are omitted.
team_ids: Only incidents related to these teams will be included.
service_ids: Only incidents related to these services will be included.
urgency: Filter by urgency: 'high' or 'low'.
time_zone: The time zone for results (e.g. 'America/New_York').
order: Sort order: 'asc' or 'desc'.
order_by: Field to sort results by.
Returns:
JSON string of AnalyticsAggregatedMetrics object.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | ||
| urgency | No | ||
| order_by | No | ||
| team_ids | No | ||
| time_zone | No | ||
| service_ids | No | ||
| created_at_end | Yes | ||
| created_at_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds useful behavioral context about the aggregated nature and percentile fields, but does not cover rate limits or auth details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections but slightly verbose. The parameter list is helpful, though it could be more concise. Overall, every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 params, 2 required), the description covers purpose, usage guidelines, parameter semantics, return type, and differentiation. Output schema exists, so return value details are not needed. Complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides detailed explanations for all 8 parameters, including meaning and expected formats, fully compensating for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets full-period aggregated metrics, with specific verb and resource. It differentiates from sibling tools by highlighting the availability of percentile distributions only from this endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool vs alternatives: 'These percentile fields are ONLY available from this endpoint — not from the per-team or per-service grouped endpoints.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incident_metrics_by_serviceARead-onlyIdempotent
Get aggregated incident metrics per service from PagerDuty Analytics.
Returns service-level MTTA, mean MTTR, escalation counts, incident
volume, and uptime percentage. Use this instead of list_incidents when you need
service health metrics — data is pre-aggregated by PagerDuty's analytics engine.
Args:
created_at_start: ISO8601 DateTime. Incidents created before this are omitted.
created_at_end: ISO8601 DateTime. Incidents created on/after this are omitted.
team_ids: Only incidents related to these teams will be included.
service_ids: Only incidents related to these services will be included.
urgency: Filter by urgency: 'high' or 'low'.
time_zone: The time zone for results (e.g. 'America/New_York').
order: Sort order: 'asc' or 'desc'.
order_by: Field to sort results by.
Returns:
JSON string of ListResponseModel containing AnalyticsServiceMetrics objects.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | ||
| urgency | No | ||
| order_by | No | ||
| team_ids | No | ||
| time_zone | No | ||
| service_ids | No | ||
| created_at_end | Yes | ||
| created_at_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only, idempotent, non-destructive behavior. The description adds context about aggregation via PagerDuty Analytics, but doesn't reveal additional behavioral traits beyond what annotations provide. It is consistent and adds marginal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with key information front-loaded. It uses a clear structure: purpose, metrics, usage guidance, then parameter and return details. No redundant sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All 8 parameters are described, required parameters highlighted, output model referenced (with output schema present), and alternative tools mentioned. No gaps for an 8-parameter tool with output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the text fully describes each parameter with examples and semantics (e.g., 'created_at_start: ISO8601 DateTime. Incidents created before this are omitted'). This adds substantial meaning beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), the resource ('incident metrics per service'), and the specific metrics (MTTA, MTTR, etc.). It also distinguishes this tool from list_incidents by highlighting pre-aggregation, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is given: 'Use this instead of list_incidents when you need service health metrics — data is pre-aggregated.' This clarifies the appropriate context. A minor improvement would be to explicitly state when not to use it (e.g., for raw incident data), but the guidance is already effective.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incident_metrics_by_teamARead-onlyIdempotent
Get aggregated incident metrics per team from PagerDuty Analytics.
Returns team-level MTTA, mean MTTR, escalation counts, incident
volume, and uptime percentage. Use for team performance comparisons and dashboards.
Args:
created_at_start: ISO8601 DateTime. Incidents created before this are omitted.
created_at_end: ISO8601 DateTime. Incidents created on/after this are omitted.
team_ids: Only incidents related to these teams will be included.
service_ids: Only incidents related to these services will be included.
urgency: Filter by urgency: 'high' or 'low'.
time_zone: The time zone for results (e.g. 'America/New_York').
order: Sort order: 'asc' or 'desc'.
order_by: Field to sort results by.
aggregate_unit: Time unit to aggregate metrics by: 'day', 'week', or 'month'.
If omitted, returns a single all-period row.
Returns:
JSON string of ListResponseModel containing AnalyticsTeamMetrics objects.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | ||
| urgency | No | ||
| order_by | No | ||
| team_ids | No | ||
| time_zone | No | ||
| service_ids | No | ||
| aggregate_unit | No | ||
| created_at_end | Yes | ||
| created_at_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, destructiveHint) already indicate safe read behavior. The description adds context by naming the data source (PagerDuty Analytics) and return format (JSON string), going beyond what annotations provide. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and metrics, then provides a detailed parameter list. While efficient, the 'Args:' section repeats structure from the schema, adding length. Still concise overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, optional fields, no enums), the description covers all parameters, states the return type (JSON), and provides usage context. Output schema exists, so return details are not required. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining each parameter's meaning, including required fields (created_at_start, created_at_end), filters (team_ids, service_ids, urgency), and optional controls (time_zone, order, order_by, aggregate_unit). Every parameter is addressed clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves aggregated incident metrics per team from PagerDuty Analytics, listing specific metrics (MTTA, MTTR, escalation counts, etc.) and use cases (team performance comparisons, dashboards). This distinguishes it from sibling tools like get_incident_metrics_all and get_incident_metrics_by_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests using the tool for team performance comparisons and dashboards, but does not explicitly exclude alternative tools or provide when-not-to-use guidance. The context is clear but lacks explicit usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incident_workflowCRead-onlyIdempotent
Get a specific incident workflow.
Args:
workflow_id: The ID of the incident workflow to retrieve
Returns:
IncidentWorkflow details
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Unique identifier for the incident workflow |
| name | Yes | A descriptive name for the Incident Workflow |
| self | No | The API show URL at which the object is accessible |
| team | No | If specified then workflow edit permissions will be scoped to members of this team |
| steps | No | The ordered list of steps that execute sequentially as part of the workflow |
| summary | No | A short-form, server-generated string |
| html_url | No | A URL at which the entity is uniquely displayed in the Web app |
| created_at | No | The timestamp this Incident Workflow was created |
| is_enabled | No | Indicates whether the Incident Workflow is enabled or not |
| description | No | A description of what the Incident Workflow does |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds no extra behavioral context such as permissions, rate limits, or response handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately short but uses a docstring format with 'Args' and 'Returns' sections that add minimal value. It could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, output schema exists), the description is just adequate. It does not explain return values or error cases, but the output schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description merely restates 'The ID of the incident workflow to retrieve,' adding no deeper meaning or constraints beyond the schema property name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific incident workflow,' using a specific verb and resource. It distinguishes from sibling tools like 'list_incident_workflows' and 'get_incident' by specifying a single workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or comparisons to 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.
get_log_entryBRead-onlyIdempotent
Get a specific log entry by ID.
Args:
log_entry_id: The ID of the log entry
Returns:
LogEntry details
| Name | Required | Description | Default |
|---|---|---|---|
| log_entry_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| self | Yes | |
| type | Yes | |
| agent | No | |
| teams | No | |
| channel | No | |
| service | No | |
| summary | No | |
| html_url | No | |
| incident | No | |
| created_at | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the return of LogEntry details, but this is also covered by the output schema. No additional behavioral context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main sentence. It includes structured Args and Returns sections, but could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description is mostly adequate. However, it lacks details on error handling (e.g., if ID not found) or prerequisites, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description mentions log_entry_id in Args but only as 'The ID of the log entry,' which adds minimal meaning beyond the property title 'Log Entry Id'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific log entry by ID,' which is a specific verb+resource combination. It distinguishes from sibling tools like list_log_entries that retrieve multiple entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., list_log_entries). It only states the action without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outlier_incidentARead-onlyIdempotent
Get Outlier Incident information for a given Incident on its Service.
Outlier Incident returns incident that deviates from the expected patterns
for the same Service. This feature is currently available as part of the
Event Intelligence package or Digital Operations plan only.
Args:
incident_id: The ID of the incident to get outlier incident information for
query_model: Query parameters including date range and additional details
Returns:
Outlier incident information calculated over the same Service as the given Incident
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | ||
| query_model | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| outlier_incident | Yes | Outlier incident information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description's additional mention of package requirements adds marginal context. No contradiction; description aligns with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is somewhat lengthy with an Args section that largely repeats schema. Front-loaded with main action, but includes redundant information. Could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return value explanation is not required. Covers basic purpose and feature availability but does not fully detail the query_model structure or its properties beyond schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description minimally explains parameters: incident_id is restated, query_model vaguely described as 'including date range and additional details'. Schema provides description for 'since' but incident_id lacks schema description. With 0% schema coverage in description, it fails to significantly compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get Outlier Incident information for a given Incident on its Service', providing specific verb, resource, and context. Distinguishes from sibling tools which are largely other get/list tools for different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains that outlier incidents deviate from expected patterns for the same Service and notes feature availability (Event Intelligence package or Digital Operations plan). Provides context for when to use but lacks explicit when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_past_incidentsARead-onlyIdempotent
Get Past Incidents related to a specific incident ID.
Past Incidents returns Incidents within the past 6 months that have similar
metadata and were generated on the same Service as the parent Incident.
By default, 50 Past Incidents are returned. This feature is currently available
as part of the Event Intelligence package or Digital Operations plan only.
Args:
incident_id: The ID of the incident to get past incidents for
query_model: Query parameters including limit and total flag
Returns:
List of past incidents with similarity scores
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | ||
| query_model | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | The maximum number of Incidents requested |
| total | No | The total number of Past Incidents if the total parameter was set |
| past_incidents | Yes | List of past incidents |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnlyHint, idempotentHint, destructiveHint. Description adds meaningful behavioral context: returns past 6 months, same service, default 50. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and front-loaded. Every sentence adds value. Could be slightly tighter but no extra content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers scope, time frame, default count, package requirement. Output schema exists, so return description is sufficient. Complete for a read-only tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage per metric. Description adds basic meaning for incident_id and query_model but not much beyond what schema provides (e.g., limit/total details already in schema). Adequate but minimal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get' and resource 'Past Incidents related to a specific incident ID'. Further specifies scope (past 6 months, same service, similar metadata). Distinguishes from siblings like get_related_incidents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context (availability with Event Intelligence or Digital Operations plan) but no explicit when-to-use or alternatives. Adequate but lacks guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_responder_load_metricsARead-onlyIdempotent
Get aggregated load metrics per responder from PagerDuty Analytics.
Returns per-responder on-call hours, incident count, acknowledgment count,
sleep-hour interruptions, and engaged time. Use for responder workload analysis.
Args:
date_range_start: ISO8601 DateTime. Incidents with created_at before this value are omitted.
date_range_end: ISO8601 DateTime. Incidents with created_at >= this value are omitted.
team_ids: Only incidents related to these teams will be included.
urgency: Filter by urgency: 'high' or 'low'.
time_zone: The time zone for results (e.g. 'America/New_York').
order: Sort order: 'asc' or 'desc'.
order_by: Field to sort results by.
Returns:
JSON string of ListResponseModel containing AnalyticsResponderLoad objects.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | ||
| urgency | No | ||
| order_by | No | ||
| team_ids | No | ||
| time_zone | No | ||
| date_range_end | Yes | ||
| date_range_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent; the description adds value by disclosing the specific metrics returned (on-call hours, incident count, etc.), which is useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is efficiently structured: a one-sentence summary, a bullet list of returned fields, and an Args section with terse parameter descriptions. No redundant or missing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description sufficiently covers the tool's purpose, parameters, and use case. The listing of returned fields adds completeness without duplicating schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides clear parameter meanings (e.g., date_range_start excludes incidents before this value). It covers all 7 parameters, though lacks allowed values for some (e.g., urgency only implies 'high'/'low').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving aggregated load metrics per responder from PagerDuty Analytics, specifying exact metrics (on-call hours, incident count, etc.) and the use case (workload analysis). It distinguishes from siblings like get_incident_metrics_* which are incident-focused.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'Use for responder workload analysis', implying usage context, but does not explicitly mention when not to use or identify alternatives among sibling tools (e.g., get_responder_metrics).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_responder_metricsARead-onlyIdempotent
Get responder metrics aggregated by team from PagerDuty Analytics.
Returns per-user oncall seconds, interruption counts (business hours, off hours, sleep hours),
engaged time, and incident counts for a given date range. Powered by PagerDuty's analytics
engine — oncall hours are computed authoritatively, accounting for schedule overlaps.
Args:
date_range_start: ISO8601 DateTime. Incidents with created_at before this value are omitted.
date_range_end: ISO8601 DateTime. Incidents with created_at >= this value are omitted.
team_ids: Only incidents related to these teams will be included.
responder_ids: Only incidents related to these responders will be included.
urgency: Filter by urgency: 'high' or 'low'.
time_zone: The time zone to use for results and grouping (e.g. 'America/New_York').
order: Sort order: 'asc' or 'desc'.
order_by: Field to sort results by.
Returns:
JSON string of ListResponseModel containing AnalyticsResponderMetrics objects.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | ||
| urgency | No | ||
| order_by | No | ||
| team_ids | No | ||
| time_zone | No | ||
| responder_ids | No | ||
| date_range_end | Yes | ||
| date_range_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds limited behavioral context. It mentions 'oncall hours are computed authoritatively, accounting for schedule overlaps,' which provides extra confidence but does not disclose any new behavioral traits beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, a brief paragraph on functionality, and a bullet-point Args list. It is appropriately sized given the parameter count, though the 'Returns' line is slightly redundant with the output schema present. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters (2 required), 0% schema description coverage, and presence of output schema, the description covers all parameters with types and acceptable values, explains the return type, and provides operational context (authoritative computation). This is complete for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description provides a detailed Args section explaining each parameter, including value formats (ISO8601, 'asc'/'desc'). This fully compensates for the missing schema descriptions and adds meaningful guidance for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets responder metrics aggregated by team from PagerDuty Analytics, listing specific metrics (oncall seconds, interruption counts, engaged time, incident counts). This distinguishes it from sibling tools like get_responder_load_metrics and get_incident_metrics_* by focusing on responder-level analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description defines the tool's purpose and parameters but does not explicitly state when to use it versus alternatives. It implies usage for responder metrics but lacks guidance on exclusions or when other analytics tools are more appropriate. The context of date range and filters is clear, but no alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scheduleARead-onlyIdempotent
Get a single schedule by ID — works for layer-based (v2) and shift-based (v3) schedules alike.
You normally do not need to know the kind in advance; this resolves it automatically.
Args:
schedule_id: The ID of the schedule to retrieve.
kind: Optional hint ("layer_based" or "shift_based", taken from a prior list result) to
skip an extra lookup. A wrong or omitted hint still resolves correctly.
Returns:
The schedule details (a layer-based Schedule or a shift-based ScheduleV3).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| schedule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description elaborates on behavior beyond annotations: it works for both schedule types, resolves automatically, and the kind hint can be wrong or omitted without error. This aligns with readOnlyHint and idempotentHint annotations, adding valuable context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured, and front-loads the core purpose. Every sentence adds value, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description sufficiently covers the tool's input, behavior, and return type. It is complete for a get-single-entity operation with two parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully documents both parameters: schedule_id is clearly the ID to retrieve, and kind is an optional hint that resolves correctly even if wrong. This adds significant meaning over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get a single schedule by ID') and the resource ('schedule'). It explicitly mentions compatibility with both layer-based and shift-based schedules, distinguishing it from sibling tools like list_schedules or get_schedule_v3_custom_shift.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that normally no kind specification is needed, and that the kind parameter is an optional hint. It provides clear guidance on usage but does not explicitly mention when not to use this tool or alternatives like list_schedules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schedule_v3_custom_shiftCRead-onlyIdempotent
Get a specific custom shift within a v3 schedule.
Args:
schedule_id: The ID of the v3 schedule
custom_shift_id: The ID of the custom shift
Returns:
The custom shift
| Name | Required | Description | Default |
|---|---|---|---|
| schedule_id | Yes | ||
| custom_shift_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the custom shift |
| self | No | API URL for this custom shift |
| type | No | Resource type identifier |
| end_time | No | ISO 8601 end datetime |
| html_url | No | PagerDuty UI URL for this custom shift |
| start_time | No | ISO 8601 start datetime |
| assignments | No | Assignments for this shift |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no additional behavioral context such as authentication requirements, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief and to the point. However, it could include more detail without becoming verbose. The structure is front-loaded with purpose, then Args and Returns sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 required parameters and an output schema, the description lacks completeness. It doesn't describe the return object structure, potential error conditions, or the relationship to other schedule entities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with no descriptions on parameters. The description merely repeats the parameter names ('schedule_id', 'custom_shift_id') without adding format, validation, or source information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific custom shift within a v3 schedule.' This provides a specific verb ('Get') and resource ('custom shift'), and implicitly distinguishes it from the sibling list tool 'list_schedule_v3_custom_shifts' which retrieves multiple shifts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_schedule_v3_rotation' or 'get_schedule'. The description lacks context about prerequisites or typical workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schedule_v3_overrideBRead-onlyIdempotent
Get a specific override within a v3 schedule.
Args:
schedule_id: The ID of the v3 schedule
override_id: The ID of the override
Returns:
The override
| Name | Required | Description | Default |
|---|---|---|---|
| override_id | Yes | ||
| schedule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the override |
| self | No | API URL for this override |
| type | No | Resource type identifier |
| end_time | No | ISO 8601 end datetime of the override |
| html_url | No | PagerDuty UI URL for this override |
| start_time | No | ISO 8601 start datetime of the override |
| rotation_id | No | ID of the rotation being overridden |
| custom_shift_id | No | ID of the custom shift being overridden |
| overridden_member | No | The member being replaced |
| overriding_member | No | The member taking over |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds only a trivial 'Returns: The override' which is redundant given the output schema. No additional behavioral traits (e.g., error cases, rate limits) are disclosed. With annotations covering the basics, the description adds minimal value beyond a score of 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise at 8 lines, with clear sections (Args, Returns). However, the 'Returns: The override' line could be omitted since it repeats the obvious. No fluff, but slightly verbose for the minimal content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of annotations and an output schema, the description is minimally complete for a simple get-by-ID operation. However, it fails to distinguish from related sibling tools (e.g., get_schedule_v3_rotation) or provide context on when this tool is appropriate versus similar tools. The description is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It does add a bit: it states 'schedule_id: The ID of the v3 schedule' and 'override_id: The ID of the override', which clarifies the context slightly beyond the schema titles. However, this is still minimal and doesn't provide format or syntax details. Baseline for 0% coverage is low, and the description barely meets it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('a specific override'), and the context ('within a v3 schedule'). This distinguishes it from sibling tools like list_schedule_v3_overrides (list) and get_schedule_v3_rotation (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that this tool is for retrieving a single override by ID, while list_schedule_v3_overrides should be used to browse overrides. The description lacks any when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schedule_v3_rotationARead-onlyIdempotent
Get a specific rotation within a v3 schedule.
Args:
schedule_id: The ID of the v3 schedule
rotation_id: The ID of the rotation
Returns:
The rotation including its events
| Name | Required | Description | Default |
|---|---|---|---|
| rotation_id | Yes | ||
| schedule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the rotation |
| self | No | API URL for this rotation |
| type | No | Resource type identifier |
| events | No | Events in this rotation |
| html_url | No | PagerDuty UI URL for this rotation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that the tool returns 'the rotation including its events', providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured, with a clear purpose sentence followed by Args and Returns sections. Every sentence adds value, and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with two required parameters and an output schema, the description covers the basics: purpose, parameters, and return value. It is complete enough given the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining each parameter (schedule_id and rotation_id) in the Args section, giving meaning beyond the schema's titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific rotation within a v3 schedule', using a specific verb and resource, and distinguishes from sibling tools like get_schedule_v3_custom_shift or get_schedule_v3_override.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, lacking explicit when-to-use or when-not-to-use context. The agent must infer from the name, which may be insufficient among many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schedule_v3_rotation_eventCRead-onlyIdempotent
Get a specific event within a v3 schedule rotation.
Args:
schedule_id: The ID of the v3 schedule
rotation_id: The ID of the rotation
event_id: The ID of the event
Returns:
The rotation event
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | ||
| rotation_id | Yes | ||
| schedule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the rotation event |
| name | No | Display name for this event |
| self | No | API URL for this event |
| type | No | Resource type identifier |
| end_time | No | ZonedDateTime: {date_time, time_zone} |
| html_url | No | PagerDuty UI URL for this event |
| recurrence | No | RFC 5545 recurrence rules (e.g. ['RRULE:FREQ=WEEKLY']) |
| start_time | No | ZonedDateTime: {date_time, time_zone} |
| effective_since | No | ISO 8601 datetime when this event starts producing shifts |
| effective_until | No | ISO 8601 datetime when this event stops producing shifts. Null means indefinite. |
| assignment_strategy | No | How users are assigned on-call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds no additional behavioral insight (e.g., no mention of side effects, permissions, or response details beyond using the parameter names).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct and front-loaded with the core purpose. However, it could include a brief sentence about when to use it without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists and the tool is simple, the description fails to link to necessary IDs (e.g., from list endpoints) or explain the hierarchical relationship among schedule, rotation, and event, reducing completeness for new users.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description merely repeats parameter names with generic phrases like 'The ID of the v3 schedule' without adding formats, origins, or examples. This provides minimal semantic help over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific event within a v3 schedule rotation,' specifying the verb (get), resource (event), and context (v3 schedule rotation). It effectively distinguishes from sibling tools like list_schedule_v3_rotation_events and other get_ tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., listing events or getting a rotation). The description does not provide any when-to-use, when-not-to-use, or prerequisite instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serviceARead-onlyIdempotent
Get details for a specific service.
Args:
service_id: The ID of the service to retrieve
Returns:
The service details
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the service |
| name | No | The name of the service |
| teams | No | List of teams associated with the service |
| status | No | The current state of the service |
| description | No | The description of the service |
| escalation_policy | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already provide (readOnlyHint, idempotentHint, destructiveHint). It merely restates the operation without additional details like caching 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with no unnecessary words. It fronts the main action and includes structured Args/Returns sections, all within a few lines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the core functionality: what it does, required parameter, and return value. With an output schema present, it need not detail return structure, but omits edge cases like missing IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden. It explains that 'service_id' is 'the ID of the service to retrieve,' adding meaning beyond the schema's 'Service Id' title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get details for a specific service,' specifying the verb and resource. It distinguishes from sibling tools like 'list_services' and other entity-specific get_ tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives (e.g., list_services). Usage is implied by the name and parameter, but no when-not-to or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_status_page_postARead-onlyIdempotent
Get a Post for a Status Page by Status Page ID and Post ID.
Args:
status_page_id: The ID of the Status Page
post_id: The ID of the Status Page Post
query_model: Optional query parameters (e.g., include related resources)
Returns:
StatusPagePost details
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | ||
| query_model | Yes | ||
| status_page_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | An unique identifier within Status Page scope that defines a single Post resource |
| self | No | The API resource URL of the Post |
| title | Yes | The title given to a Post |
| ends_at | No | The date and time the Post intent is concluded - only for maintenance post type |
| updates | No | List of status_page_post_update references associated to a Post |
| post_type | Yes | The type of the Post |
| starts_at | No | The date and time the Post intent becomes effective - only for maintenance post type |
| postmortem | No | Postmortem reference |
| status_page | Yes | Status Page reference |
| linked_resource | No | Linked resource reference |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read. The description merely restates the return type (StatusPagePost details) without adding behavioral traits like authentication needs, rate limits, or response format details beyond what the output schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with an Args block. However, it could be slightly more streamlined by removing the boilerplate 'Returns' line since the output schema exists. Still, every sentence provides value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and clear parameter descriptions, the tool is functionally complete. However, with over 30 sibling tools, additional context about when to use this retrieval versus other get functions would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds comprehensive parameter explanations for all three parameters, despite the schema having 0% coverage. It clarifies the meaning of status_page_id, post_id, and query_model, including example usage for query_model ('e.g., include related resources'). This fully compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get a Post for a Status Page by Status Page ID and Post ID,' using a specific verb and resource. It distinguishes itself from sibling tools like list_status_page_post_updates and list_status_page_impacts by focusing on a single post retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not provide context for when to choose get_status_page_post over other get tools (e.g., get_incident, get_service) or list tools. No exclusions 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.
get_teamARead-onlyIdempotent
Get a specific team.
Args:
team_id: The ID or name of the team to retrieve
Returns:
Team details
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the team |
| name | Yes | |
| summary | No | A short-form, server-generated string that provides succinct information about the team |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so no additional safety info is needed. The description adds that team_id accepts 'the ID or name', a behavioral detail beyond the schema. However, it doesn't elaborate on response structure or pagination, but output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences for purpose and one line each for Args and Returns. Every sentence is informative and essential. No redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and an output schema, the description is complete. It covers the action, required parameter, and what is returned. Annotations handle safety. The sibling context reinforces that this is a standard pattern.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains team_id as 'The ID or name of the team to retrieve', adding semantic value by specifying it can be either ID or name. This clearly defines the parameter's meaning and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific team', which is a specific verb+resource. It distinguishes from sibling tools like get_incident or get_service, which target different resources. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that this tool should be used when you have a team ID, while list_teams is for retrieving all teams. The sibling list includes list_teams, but the description lacks any contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technical_service_dependenciesBRead-onlyIdempotent
Get dependencies for a technical service.
Args:
service_id: The ID of the technical service
Returns:
JSON string with relationships list
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description adds value by specifying the return format ('JSON string with relationships list'). No other behavioral traits disclosed, which is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: a single sentence for purpose, then structured Args and Returns. No wasted words, front-loaded with purpose. Excellent structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter tool with one parameter and an output schema (not shown), the description is fairly complete. It explains the return type and parameter. Could elaborate on what 'relationships' represent, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'service_id: The ID of the technical service', which adds meaning beyond the schema title but is basic and does not detail format or source. Adequate for a single required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'dependencies for a technical service'. It is specific, but does not explicitly differentiate from the sibling tool 'get_business_service_dependencies', relying on the name for distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The sibling list includes 'get_business_service_dependencies' as a clear alternative, but the description does not mention it or provide any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_dataARead-onlyIdempotent
Get the current user's data.
Returns:
User: User name, role, id, and summary and teams
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The ID of the user |
| name | Yes | The name of the user |
| role | Yes | The user role in PagerDuty (admin, limited_user, observer, etc.) |
| Yes | The email of the user | |
| teams | Yes | The list of teams to which the user belongs |
| summary | No | A short-form, server-generated string that provides succinct information about the user |
| job_title | No | The user's job title. |
| time_zone | No | The user's preferred time zone as an IANA name (e.g., 'America/New_York'). Used for bucketing on-call hours into off-hours/sleep-hours windows per user. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds return field detail but no additional behavioral context like authentication or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence plus a clean list of return fields. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no parameters, output schema exists, and description covers key return fields. Slightly vague on 'summary' but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is complete. Description adds value by listing returned fields beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the current user's data, and the name differentiates it from sibling tools like get_service or list_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided, though the purpose is clear and distinct from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webhook_subscriptionARead-onlyIdempotent
Get a specific webhook subscription by ID.
Args:
subscription_id: The ID of the webhook subscription to retrieve
Returns:
Webhook subscription details
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The webhook subscription ID (read-only) |
| type | No | The object type (always webhook_subscription) |
| active | No | Whether the subscription will produce webhook events |
| events | No | The outbound event types this webhook will receive |
| filter | No | The scope filter for this webhook subscription |
| description | No | A short description of the webhook subscription |
| delivery_method | No | The delivery method configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a read-only, idempotent, non-destructive operation. The description merely restates the retrieval nature, adding no new behavioral context beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences plus an Args/Returns block. Every word is purposeful with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter tool with one parameter and an output schema, the description covers the essential purpose and parameter. It lacks details on error handling or ID format, but the output schema likely specifies return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no parameter descriptions (0% coverage), but the description's Args section adds a brief explanation: 'The ID of the webhook subscription to retrieve'. This provides meaningful context beyond the schema's type and title, justifying a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific webhook subscription by ID', using a specific verb and resource. It distinguishes itself from the sibling tool 'list_webhook_subscriptions' by implying single-item retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a specific subscription ID is known. It does not explicitly exclude the list tool or provide alternatives, but the context of siblings is clear enough for an agent to differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_alert_grouping_settingsARead-onlyIdempotent
List all alert grouping settings with optional filtering.
Args:
service_ids: An array of service IDs. Only results related to these services will be returned.
limit: The number of results per page. Default 1000.
after: Cursor to retrieve next page.
before: Cursor to retrieve previous page.
total: Set to True to include total count in response.
Returns:
List of alert grouping settings matching the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| limit | No | ||
| total | No | ||
| before | No | ||
| service_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds behavioral context beyond annotations by detailing pagination (after, before, limit) and the option to include total count, which are important for understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure: a one-sentence purpose followed by an Args list and a Returns line. It is front-loaded and avoids unnecessary words, effectively communicating all necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are 5 parameters, no enums, an output schema exists, and annotations cover safety, the description provides complete guidance. It explains filtering and pagination, which are the main complexities, and the output schema handles return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It provides clear explanations for all 5 parameters (service_ids, limit, after, before, total), including their purpose and defaults. This goes well beyond the bare schema, though it could be more precise about cursor formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'List all alert grouping settings with optional filtering,' clearly stating the verb (list) and resource (alert grouping settings). It distinguishes itself from sibling tools like 'get_alert_from_incident' or 'list_incidents' by specifying the exact resource being listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains parameters like service_ids for filtering, which gives context on when to use the tool (e.g., to list settings for specific services). However, it does not explicitly state when not to use this tool or provide alternatives, leaving this dimension minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_alerts_from_incidentARead-onlyIdempotent
List alerts for a specific incident.
Args:
incident_id: The ID of the incident
limit: Maximum number of results to return (1-1000). Default is 100.
offset: Offset for pagination. Default is 0.
Returns:
List of Alert objects for the given incident
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| incident_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds minimal behavioral context beyond confirming it returns a list of alerts. It does not mention rate limits, response size, or pagination details beyond parameters, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a high information density: one line for the action and three lines for parameters. Every sentence is necessary and front-loaded, with no redundant or vague language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description adequately covers purpose, parameters, and return type (especially with output schema present), it lacks usage context such as error handling, expected response format details, or when to use alternatives. For a simple list tool, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides clear, concise purpose for each of the three parameters (incident_id, limit, offset) with defaults and ranges, compensating for the 0% schema description coverage. This adds meaning beyond the bare schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List alerts for a specific incident', combining a specific verb ('List') and resource ('alerts for a specific incident'), which effectively distinguishes it from siblings like 'get_alert_from_incident' (single alert retrieval) and other list tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives (e.g., 'get_alert_from_incident' for a single alert). Usage context is implied by the name and parameter descriptions, but no when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_business_servicesBRead-onlyIdempotent
List all business services.
Returns:
JSON string of business services
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and destructiveHint, which already convey safety. The description adds only the return format (JSON string), providing minimal extra behavioral context beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second sentence is somewhat redundant. Nevertheless, the description is short and front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with an output schema, the description is adequate in covering the basic function and return type. Lacks details about what constitutes a business service, but not critical given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is trivially 100%. Description mentions the return format (JSON string), adding value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'List all business services' which clearly indicates the action and resource. However, it does not explicitly differentiate from sibling tools like 'list_services', relying on the name for distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or any context about prerequisites. Missing information on typical use cases or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_change_eventsARead-onlyIdempotent
List all change events with optional filtering.
Change Events represent changes to systems, services, and applications that
can be correlated with incidents to provide context for troubleshooting.
Args:
since: The start of the date range over which you want to search.
until: The end of the date range over which you want to search.
limit: The number of results per page. Default 100.
offset: The offset of the first record returned.
total: Set to True to include total count in response.
team_ids: An array of team IDs. Only results related to these teams will be returned.
integration_ids: An array of integration IDs. Only results related to these integrations will be returned.
Returns:
List of ChangeEvent objects matching the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ||
| total | No | ||
| until | No | ||
| offset | No | ||
| team_ids | No | ||
| integration_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds context about the nature of change events and return type. No contradictions. It does not mention pagination behavior beyond parameters, but overall solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-line summary, followed by a brief background and a structured parameter list. It is clear but somewhat verbose; the background paragraph could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 optional parameters and an output schema exists, the description covers purpose, parameters, and return. It is sufficiently complete for a list tool, though it could mention pagination explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining all 7 parameters (since, until, limit, offset, total, team_ids, integration_ids) with clear meaning. This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all change events with optional filtering' and explains what change events are. It distinguishes from sibling tools like get_change_event but does not explicitly differentiate from list_service_change_events or list_incident_change_events, which are more scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining that change events correlate with incidents for troubleshooting, but it does not provide explicit guidance on when to use this tool over alternatives like list_service_change_events or get_change_event.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_escalation_policiesARead-onlyIdempotent
List escalation policies with optional filtering.
Args:
query: Filter by name
user_ids: Filter by user IDs
team_ids: Filter by team IDs
include: Additional details to include (e.g. services, teams)
limit: Max results to return
Returns:
List of escalation policies matching the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| include | No | ||
| team_ids | No | ||
| user_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no behavioral traits beyond stating it returns a list. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct, front-loads the main purpose, and uses a clean Args/Returns structure. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks details on pagination behavior, default limit, or query matching rules. For a list tool with 5 optional parameters, more context on edge cases would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains each parameter (e.g., 'query: Filter by name', 'limit: Max results to return'). However, 'include' is described vaguely as 'e.g. services, teams' without specifying exact allowable values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List escalation policies with optional filtering', which clearly identifies the verb (list) and resource (escalation policies). It distinguishes from the sibling 'get_escalation_policy' by implying a multi-result operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional filtering parameters, indicating when to use it (when multiple policies are needed). However, it does not explicitly state when not to use it or name alternatives like 'get_escalation_policy' for a single policy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_event_orchestrationsARead-onlyIdempotent
List event orchestrations with optional filtering.
Args:
limit: The number of results per page. Default 100.
offset: Offset to start pagination search results.
sort_by: Field and direction to sort by. Default 'name:asc'. Options:
'name:asc', 'name:desc', 'routes:asc', 'routes:desc',
'created_at:asc', 'created_at:desc'.
Returns:
List of event orchestrations matching the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| sort_by | No | name:asc |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is clear. The description adds that it returns a list, which is expected. No additional behavioral traits disclosed, but with annotations present, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with Args and Returns sections. Short, front-loaded purpose, every sentence adds value. No unnecessary verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 optional parameters, an output schema exists, and standard list behavior, the description is complete. It explains filtering and sorting. No gaps for selecting and invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It explains each parameter (limit, offset, sort_by) with defaults and enum options, adding significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List event orchestrations with optional filtering' – verb and resource are specific. However, it does not explicitly distinguish from sibling tools like get_event_orchestration, but the name and plural form imply listing multiple, so it's clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: used to list event orchestrations with filtering. No explicit when-to-use, when-not-to-use, or alternatives mentioned. The description could benefit from stating when to use this vs. get_event_orchestration for a single item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_extension_schemasARead-onlyIdempotent
List available extension schemas (extension vendors).
Extension schemas describe the available extension integrations that can be
attached to PagerDuty services.
Args:
limit: Max results to return
Returns:
List of extension schemas
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds that extension schemas describe integrations, but does not disclose additional behavioral traits like rate limits or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured, and front-loaded. Every sentence adds value, with no redundancy. The Args/Returns sections are helpful and not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, good annotations, and presence of an output schema, the description fully covers the necessary context including parameter semantics and purpose. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains the single parameter 'limit' as 'Max results to return,' adding essential meaning that the schema lacks. This adequately compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List available extension schemas (extension vendors)' with a specific verb and resource, and distinguishes from the sibling 'get_extension_schema' by implying a list vs. a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., get_extension_schema). The context is implied but not stated, leaving the agent without clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_incident_change_eventsARead-onlyIdempotent
List change events related to a specific incident.
Args:
incident_id: The ID of the incident
limit: Maximum number of results to return (optional)
Returns:
List of ChangeEvent objects related to the incident
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| incident_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds return type context (list of ChangeEvent objects) but no additional behavioral details like pagination or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences plus structured Args and Returns; no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, annotations, and output schema, the description covers key aspects (purpose, parameters, return type); minor omissions like pagination details are acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides clear meanings for both parameters (incident_id, limit) in the Args section, compensating adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List change events related to a specific incident' with a specific verb and resource, clearly distinguishing it from siblings like 'list_change_events' (general) and 'list_service_change_events'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage with an incident ID but does not explicitly mention alternatives or when not to use; the context is clear for the primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_incident_notesARead-onlyIdempotent
List all notes for a specific incident.
Args:
incident_id: The ID of the incident to retrieve notes from
Returns:
List of IncidentNote objects for the specified incident| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds that it returns a list of IncidentNote objects, which is useful but does not go beyond what the output schema might convey. No behavioral traits beyond annotations are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences (plus structured Args/Returns). It is front-loaded with the key action and resource. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and there is only one required parameter, the description is fairly complete. It explains the parameter and the return type. It does not cover edge cases like empty results or error handling, but for a simple list tool this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning by specifying that incident_id is 'The ID of the incident to retrieve notes from'. This clarifies the parameter's purpose beyond the schema's title 'Incident Id'. However, it is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all notes for a specific incident. The verb 'list' and resource 'notes' are precise, and it distinguishes itself from sibling tools like 'list_incidents' and 'list_alerts_from_incident' by specifying the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or when to consider other tools like 'get_incident' or 'list_alerts_from_incident' for related information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_incidentsARead-onlyIdempotent
List incidents with optional filtering.
Args:
request_scope: Scope of incidents to return: 'all', 'assigned', or 'teams'
statuses: Filter by status (e.g. triggered, acknowledged, resolved)
since: Filter incidents created after this datetime
until: Filter incidents created before this datetime
urgencies: Filter by urgency (high, low)
priorities: Filter by priority IDs (use list_priorities to resolve names to IDs)
limit: Max results to return (default 1000)
Returns:
List of Incident objects matching the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ||
| until | No | ||
| statuses | No | ||
| urgencies | No | ||
| priorities | No | ||
| request_scope | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds value by detailing filtering options, default limit (1000), and return type (list of Incident objects). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure: a one-sentence summary followed by bullet-point-like parameter explanations and a return statement. No unnecessary text; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with an output schema, the description covers essential aspects: all params, return type, and default limit. It lacks mention of pagination or ordering, but these are not critical given the annotation hints. Overall, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates fully by explaining each parameter: allowed values for request_scope, statuses, urgencies, and cross-reference for priorities. This adds meaning beyond the simple schema property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists incidents with optional filtering. It distinguishes from singleton 'get_incident' and other list tools by specifying it returns multiple incidents with various filters. The verb 'list' and resource 'incidents' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies when to use (e.g., retrieve multiple incidents), it does not explicitly state when not to use or provide alternatives like 'get_incident' for a single incident. It does cross-reference 'list_priorities' for resolving priority IDs, which is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_incident_workflowsARead-onlyIdempotent
List incident workflows with optional filtering.
Args:
limit: Maximum number of results to return. Maximum is 100. Default 100.
query: Filters the result, showing only the records whose name matches the query.
include: Array of additional details to include. Options: 'steps', 'team'.
Returns:
List of IncidentWorkflow objects matching the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| include | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent. The description adds context about the maximum limit and default value, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with a clear purpose sentence and well-structured Args and Returns sections. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description covers purpose, parameters, and return type adequately. Could mention ordering or pagination, but limit suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the tool description fully explains each parameter (limit, query, include) with details like max value and allowed options, compensating completely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'incident workflows' with optional filtering, distinguishing it from other list tools and the singular get_incident_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the action of listing. No explicit when-to-use or when-not-to-use guidance is provided, which is adequate but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_log_entriesARead-onlyIdempotent
List all log entries across the account.
Log entries are records of all events on your account. This function allows you
to filter log entries by time range and paginate through results.
If no time range is specified, defaults to the last 7 days.
Args:
query_model: Query parameters including since, until, limit, and offset
Returns:
List of LogEntry objects matching the query parameters| Name | Required | Description | Default |
|---|---|---|---|
| query_model | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds the default time range and return type, but the output schema covers return values. Additional behavioral context (e.g., rate limits, authentication) is not provided, and annotations already cover safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-liner purpose, a contextual paragraph, a default behavior note, and an Args section. Every sentence adds value, and it is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and comprehensive annotations, the description provides sufficient context: account-wide scope, time range defaults, pagination. Minor missing details like how 'include' or 'team_ids' filters affect results, but schema covers those.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has detailed descriptions for all properties (e.g., limit: 'Maximum number of results to return'), so schema coverage is effectively 100%. The description merely lists parameter names ('since, until, limit, offset') without adding new meaning, warranting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all log entries across the account.' It distinguishes from sibling 'get_log_entry' (which retrieves a single entry) and other list tools by specifying an account-wide scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains filtering by time range, pagination, and a default of last 7 days. However, it does not explicitly mention when to use this tool over alternatives like 'get_log_entry' for a single entry, leaving usage context implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_oncallsARead-onlyIdempotent
List on-call schedules with optional filtering.
Args:
time_zone: Time zone for date rendering (e.g. America/New_York)
user_ids: Filter by user IDs
escalation_policy_ids: Filter by escalation policy IDs
schedule_ids: Filter by schedule IDs
service_ids: Filter by service IDs. Resolves each service to its escalation policy to find on-call responders.
since: Start of time range
until: End of time range
earliest: Return only earliest oncall per user/policy combination. Defaults to True.
limit: Max results to return
Returns:
List of on-call schedules matching the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ||
| until | No | ||
| earliest | No | ||
| user_ids | No | ||
| time_zone | No | ||
| service_ids | No | ||
| schedule_ids | No | ||
| escalation_policy_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readonly and idempotent, so the bar is lower. The description adds behavioral context beyond annotations, such as the resolution of service_ids to escalation policies and the default behavior of 'earliest' being True.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a structured docstring with Args and Returns sections, concise but covering all parameters. It could be slightly tighter, but it's well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, an output schema, and annotations, the description covers the essential context. It explains parameter behavior and return type, though pagination or limit behavior could be more explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all parameters with brief explanations, adding meaning beyond the schema schema itself, especially for service_ids which includes resolution logic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists on-call schedules with optional filtering, using a specific verb and resource. However, it does not explicitly distinguish from sibling tools like list_escalation_policies or list_schedules, missing some differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like list_escalation_policies or list_schedules. The description only says 'with optional filtering,' which implies usage but does not state exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_prioritiesARead-onlyIdempotent
List all priorities configured in the account.
Returns:
JSON string of ListResponseModel containing PriorityReference objects
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds that the return is a JSON string of ListResponseModel containing PriorityReference objects, providing some transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that entirely convey the tool's purpose and output. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, clear annotations, output schema exists), the description is complete. It mentions the return type, which is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. The description does not need to add parameter information, so baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all priorities configured in the account', specifying the verb, resource, and scope. It is distinct from sibling tools which list different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use or when not to use this tool. However, the purpose is straightforward and no alternatives for listing priorities are evident among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedulesARead-onlyIdempotent
List ALL PagerDuty schedules across BOTH scheduling systems in a single call.
This returns classic layer-based (v2) schedules AND next-gen shift-based (v3) schedules
together. It is the complete, authoritative schedule list — there is no other list tool.
Each item's `kind` field ("layer_based" or "shift_based") says which system it belongs to.
If either source fails, `response_summary`/`sources` explicitly mark the list INCOMPLETE;
otherwise treat it as exhaustive. Never tell the user a schedule type is unsupported or missing.
Args:
query_model: Filters (name query, team_ids, user_ids, limit). Shift-based (v3) schedules
are filtered by name `query` and `limit` only.
enrich: When True (default), fill in names for shift-based (v3) schedules (bounded to the
returned page, max 50). Set False to skip the extra lookups; v3 names may then be null.
Returns:
The merged schedule summaries with per-source status and a `degraded` flag.
| Name | Required | Description | Default |
|---|---|---|---|
| enrich | No | ||
| query_model | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| sources | No | Per-API retrieval status for each scheduling system |
| degraded | No | True if any source failed; the list is then INCOMPLETE |
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent. Description adds critical behavior: merge logic, per-source status on failure, enrich behavior, and an instruction to never claim a schedule type unsupported. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with overview, args, and returns sections. Slightly verbose but still clear and informative. Could be trimmed but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Completely covers the tool's behavior: merge of two systems, failure handling, enrich option details, and return structure (degraded flag). Suitable for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has descriptions for all sub-parameters (high coverage), so baseline 3. Description adds extra: query_model filters differently per schedule type, enrich fills names for v3 only and is bounded. This adds meaningful context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all schedules across both v2 and v3 systems, with no other list tool available. It distinguishes from siblings like get_schedule (single) and list_schedule_* (specific aspects).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says it's the complete authoritative list with no alternative, but does not explicitly contrast with get_schedule for single schedule retrieval. Provides usage caution about error handling and enrich option.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedule_usersARead-onlyIdempotent
List users in a schedule.
Args:
schedule_id: The ID of the schedule
Returns:
List of users in the schedule
| Name | Required | Description | Default |
|---|---|---|---|
| schedule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds no behavioral context beyond 'Returns: List of users', which is obvious from the tool name. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with clear sections for Args and Returns. Every sentence earns its place, and the description is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (one required parameter, read-only operation) and presence of an output schema, the description is mostly complete. Minor omission: no mention of pagination or ordering of results, but acceptable for a straightforward list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'schedule_id' lacks description in the schema (0% coverage). The tool description adds 'The ID of the schedule', providing necessary context that the schema title 'Schedule Id' does not fully convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List users in a schedule' with a specific verb ('List') and resource ('users in a schedule'). It distinguishes from sibling tools like 'list_users' (all users) and 'list_oncalls' (who is on call).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'list_oncalls' or 'list_users'. The description only restates the function without context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedule_v3_custom_shiftsARead-onlyIdempotent
List custom shifts for a v3 schedule within a time range.
Custom shifts are ad-hoc one-off shifts outside of rotation events.
Args:
schedule_id: The ID of the v3 schedule
since: Start of the time range (ISO 8601, required)
until: End of the time range (ISO 8601, required)
Returns:
List of custom shifts in the specified time range
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | ||
| until | Yes | ||
| schedule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety. The description adds context about the nature of custom shifts and the required time range. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear definition followed by parameter list. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description explains it returns a 'List of custom shifts in the specified time range.' All necessary information is present for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description explains all three required parameters: schedule_id (ID of v3 schedule), since and until (ISO 8601, required). This adds meaning beyond the schema which only provides type string and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List custom shifts for a v3 schedule within a time range' and defines custom shifts as 'ad-hoc one-off shifts outside of rotation events.' This distinguishes it from sibling tools like 'get_schedule_v3_custom_shift' (singular) and 'list_schedule_v3_overrides' (overrides vs custom shifts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing custom shifts but does not explicitly state when to use this tool vs alternatives like 'list_schedule_v3_overrides' or 'list_schedule_v3_rotation_events.' No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedule_v3_overridesARead-onlyIdempotent
List overrides for a v3 schedule within a time range.
Args:
schedule_id: The ID of the v3 schedule
since: Start of the time range (ISO 8601, required)
until: End of the time range (ISO 8601, required)
Returns:
List of overrides in the specified time range
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | ||
| until | Yes | ||
| schedule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description adds no new behavioral context. It does not mention pagination or rate limits, but given annotations, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—6 lines total—with purpose first, then parameters, then return. Every sentence provides value; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations cover safety, and an output schema exists, the description adequately covers what the tool does. It could mention the return structure explicitly, but the output schema compensates. Overall sufficient for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains all three parameters: schedule_id as 'The ID of the v3 schedule', since/until as ISO 8601 time range with required. This adds meaningful context beyond schema, though examples would improve it further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists overrides for a v3 schedule within a time range, specifying the resource and action. It distinguishes from siblings like get_schedule_v3_override (single override) by including 'list' and time range.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., get_schedule_v3_override for a single override). Lacks when-not or comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedule_v3_rotation_eventsARead-onlyIdempotent
List all events for a rotation in a v3 schedule.
Args:
schedule_id: The ID of the v3 schedule
rotation_id: The ID of the rotation
Returns:
List of events defining the on-call coverage windows and member assignments
| Name | Required | Description | Default |
|---|---|---|---|
| rotation_id | Yes | ||
| schedule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the return type ('List of events defining the on-call coverage windows and member assignments'), which provides useful context beyond the annotations. However, no additional behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and well-structured, with a one-line purpose, followed by Args and Returns sections. No extraneous information; every sentence is necessary and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two simple required parameters, a clear purpose, and an output schema (implied). The description explains the return value adequately: 'List of events defining the on-call coverage windows and member assignments'. All necessary context is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description elaborates on both parameters: 'schedule_id: The ID of the v3 schedule' and 'rotation_id: The ID of the rotation'. This adds meaning beyond the schema titles, which are just 'Rotation Id' and 'Schedule Id'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List all events for a rotation in a v3 schedule', using a specific verb and resource. It clearly distinguishes from sibling tools like 'list_schedule_v3_rotations' and 'get_schedule_v3_rotation_event'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use the tool (to list events for a rotation). While it does not explicitly state when not to use it, the purpose is unambiguous and sibling names provide differentiation, making usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedule_v3_rotationsARead-onlyIdempotent
List all rotations for a v3 schedule.
Args:
schedule_id: The ID of the v3 schedule
Returns:
List of rotations for the schedule
| Name | Required | Description | Default |
|---|---|---|---|
| schedule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the description is not required to repeat safety traits. It adds no further behavioral context beyond return type, which is minimal. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences and a clean Args/Returns structure. Front-loaded with the main action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and an existing output schema, the description is complete. It adequately describes what the tool does without needing to detail return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining schedule_id as 'The ID of the v3 schedule', adding meaning beyond the schema's title. For a single required parameter, this is clear and sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all rotations for a v3 schedule, using specific verb 'List' and resource 'rotations for a v3 schedule'. It distinguishes from siblings like get_schedule_v3_rotation (single rotation) and list_schedule_v3_rotation_events (events).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are provided. While the purpose is clear, given sibling tools list_schedule_v3_... and get_schedule_v3_rotation, the description lacks guidance on when to prefer this over other similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_service_change_eventsARead-onlyIdempotent
List all change events for a specific service.
Args:
service_id: The ID of the service.
since: The start of the date range over which you want to search.
until: The end of the date range over which you want to search.
limit: The number of results per page. Default 100.
offset: The offset of the first record returned.
total: Set to True to include total count in response.
team_ids: An array of team IDs. Only results related to these teams will be returned.
integration_ids: An array of integration IDs. Only results related to these integrations will be returned.
Returns:
List of ChangeEvent objects associated with the service
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ||
| total | No | ||
| until | No | ||
| offset | No | ||
| team_ids | No | ||
| service_id | Yes | ||
| integration_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds behavioral context such as filtering by date range (since, until) and team/integration IDs, and states it returns a list of ChangeEvent objects. This goes beyond the annotations by detailing query capabilities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-liner, followed by a structured list of parameter docs. It is reasonably concise, though the parameter docs could be slightly more compact. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, 1 required, and an output schema (exists), the description covers all parameters and return type. It lacks explicit pagination details beyond limit/offset, but output schema likely handles that. The annotations cover safety. Overall, complete enough for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It provides detailed explanations for all 8 parameters, including their purpose (e.g., 'The start of the date range', 'Set to True to include total count'), adding significant meaning beyond the schema's types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all change events for a specific service,' specifying the verb (list), resource (change events), and scope (for a specific service). This distinguishes it from sibling tools like 'list_change_events' (no service filter) and 'get_change_event' (single event).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a service_id by listing it as a required parameter, but does not explicitly state when to use this tool versus alternatives like 'list_change_events'. No guidance on when not to use it or prerequisites beyond providing a service_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesARead-onlyIdempotent
List all services.
Args:
query: Filter by name
teams_ids: Filter by team IDs
limit: Max results to return
Returns:
List of services matching the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| teams_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not contradict the annotations (readOnlyHint, idempotentHint, destructiveHint) and adds parameter details. However, it does not disclose additional behavioral traits beyond what annotations already imply, such as potential pagination or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: one sentence for the purpose, a bulleted arg list, and a returns line. No unnecessary words, and the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but mentioned), the description adequately covers the tool's operation. It explains the return as a list of services, which is sufficient for a simple query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds clear meaning to all three parameters: 'query' filters by name, 'teams_ids' filters by team IDs, and 'limit' caps results. This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all services' with optional filtering parameters, making the tool's purpose explicit. The name 'list_services' directly reflects the action, and it is distinguished from sibling tools like 'list_business_services' or 'list_teams'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does and lists parameters, but provides no guidance on when to use this tool over alternatives like 'get_service' for a single service or other list tools. It lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_status_page_impactsARead-onlyIdempotent
List Impacts for a Status Page by Status Page ID.
Args:
status_page_id: The ID of the Status Page
query_model: Optional filtering parameters
Returns:
List of StatusPageImpact objects for the given Status Page
| Name | Required | Description | Default |
|---|---|---|---|
| query_model | No | ||
| status_page_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no further behavioral context beyond the basic operation, so it meets a baseline but does not exceed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise but includes a redundant Args/Returns format that echoes the schema. Each sentence is functional, but could be tightened without loss of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (StatusPageImpact objects), and the description mentions the return type. Given the low complexity and no additional context needed, it is adequate, though a brief explanation of what an impact is would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for top-level parameters. The description adds definitions for status_page_id (ID of the Status Page) and query_model (optional filtering parameters), which compensates for the schema gap. However, query_model remains vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists impacts for a status page by ID. The verb 'list' and resource 'Impacts' are specific, and it distinguishes from sibling list tools like list_status_pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like list_status_page_post_updates. No when-not-to-use or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_status_page_post_updatesARead-onlyIdempotent
List Post Updates for a Status Page by Status Page ID and Post ID.
Args:
status_page_id: The ID of the Status Page
post_id: The ID of the Status Page Post
query_model: Optional filtering parameters
Returns:
List of StatusPagePostUpdate objects for the given Post
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | ||
| query_model | No | ||
| status_page_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully covering the safety profile. The description adds minimal behavioral context beyond stating it returns a list, which is already implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose, followed by a clear Args/Returns block. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and thorough annotations, the description covers the essentials. However, it omits details about the query_model parameter, which is crucial for filtering. This leaves a gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description mentions the two required IDs with brief context ('The ID of the Status Page' etc.), but fails to describe the 'query_model' parameter beyond calling it 'Optional filtering parameters'. This is insufficient for an agent to construct correct inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'Post Updates' for a Status Page, explicitly specifying the required identifiers (status_page_id and post_id). This distinctively separates it from sibling tools like 'get_status_page_post' and other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies usage via required parameters but does not mention contraindications or comparisons with sibling tools. It is adequate but not helpful for discriminating between similar list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_status_pagesARead-onlyIdempotent
List Status Pages with optional filtering.
Args:
query_model: Optional filtering parameters
Returns:
List of StatusPage objects matching the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| query_model | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that the operation supports optional filtering and returns a list, which aligns with the annotations (readOnlyHint, idempotentHint, destructiveHint). It does not contradict annotations, but it also does not add significant behavioral context beyond what annotations already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose. It avoids unnecessary words, but could include more detail (e.g., default limit, filter options) without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic operation and return type, but does not mention pagination, default values, or the specific filtering options available. Given the presence of an output schema and annotations, the description is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'query_model: Optional filtering parameters' without elaborating on its structure or the available filters (limit, status_page_type). The schema provides descriptions for the sub-parameters, so the description adds minimal value. The 0% schema description coverage context suggests the tool description itself does not detail parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'Status Pages', which is a specific and accurate purpose. It distinguishes from sibling tools that list other resources or perform other actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of use cases, exclusions, or comparisons with sibling 'list_' tools for related entities like impacts or severities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_status_page_severitiesARead-onlyIdempotent
List Severities for a Status Page by Status Page ID.
Args:
status_page_id: The ID of the Status Page
query_model: Optional filtering parameters
Returns:
List of StatusPageSeverity objects for the given Status Page
| Name | Required | Description | Default |
|---|---|---|---|
| query_model | No | ||
| status_page_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds minimal behavioral context beyond noting it returns a list. No mention of pagination, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with a single-line purpose and args/returns breakdown. No unnecessary text, though the structure is purely functional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with annotations and an output schema, the description covers the essential action and parameters. It could note potential errors, but completeness is adequate for standard usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description explains status_page_id as 'The ID of the Status Page' and query_model as 'Optional filtering parameters'. Schema coverage is 0% for top-level parameters, but subfields have descriptions. The description adds basic meaning but does not fully compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' and specific resource 'Severities for a Status Page' by ID. Distinguishes from sibling tools like list_status_page_statuses and list_status_pages, as it targets a different sub-resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use (list severities for a given status page) but lacks explicit guidance on when not to use or alternatives. No comparison to similar list functions, though the name and description imply the correct context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_status_page_statusesARead-onlyIdempotent
List Statuses for a Status Page by Status Page ID.
Args:
status_page_id: The ID of the Status Page
query_model: Optional filtering parameters
Returns:
List of StatusPageStatus objects for the given Status Page
| Name | Required | Description | Default |
|---|---|---|---|
| query_model | No | ||
| status_page_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description need not cover safety. It adds that the tool returns a list of StatusPageStatus objects and mentions optional filtering via query_model. However, it does not disclose pagination behavior or error handling, which are moderate omissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with clear sections (Args, Returns) and front-loads the main purpose. It avoids unnecessary words but could be slightly more efficient by integrating parameter details inline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (list with optional filter), annotations provide safety, and an output schema likely describes return objects. The description covers the essential inputs and output shape. It lacks pagination details, but for a straightforward list tool, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level, but the nested $defs provide descriptions for limit and post_type. The tool description adds minimal value: 'The ID of the Status Page' for status_page_id and 'Optional filtering parameters' for query_model. It does not explain the sub-fields like limit or post_type, which would be helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'Statuses for a Status Page', and the key parameter 'Status Page ID'. It distinguishes from sibling tools like list_status_page_impacts by specifying the resource is statuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or suggest other tools. However, the purpose is clear enough for an agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_team_membersARead-onlyIdempotent
List members of a team.
Args:
team_id: The ID of the team
Returns:
List of UserReference objects
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe, read-only operation. The description adds no further behavioral context (e.g., no mention of permissions, rate limits, or side effects), but does not contradict the annotations either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with three short sentences: purpose, parameter documentation, and return documentation. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations are present, the description adequately covers the tool's purpose and return type. It could be slightly improved by mentioning potential edge cases (e.g., empty team) or pagination, but for a simple list operation, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explicitly documents the sole parameter 'team_id: The ID of the team', adding clear meaning beyond the schema's title. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List members of a team.' which specifies the verb (list) and resource (members of a team). This distinguishes it from sibling tools like list_teams (lists teams) and list_users (lists users).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it does not mention that this tool is for retrieving members of a specific team, not for listing all users or teams, which could be confusing given the many list_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_teamsARead-onlyIdempotent
List teams with optional filtering.
Args:
scope: 'all' for all teams, 'my' for teams the current user belongs to
query: Filter by team name
limit: Max results to return
Returns:
List of teams.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| scope | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds details about return type and parameter behavior without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-line summary, followed by clear parameter and return documentation. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the description covers inputs and behavior adequately. The presence of an output schema further supports completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains each parameter's meaning (scope values 'all' or 'my', query as name filter, limit as max results), providing essential semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (teams), and mentions optional filtering. It distinguishes from siblings like get_team and list_team_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the parameters and their usage (scope, query, limit). However, it lacks explicit guidance on when to use this tool versus alternatives like get_team or list_team_members.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersARead-onlyIdempotent
List users, optionally filtering by name (query) and team IDs.
Args:
query: Filters the result, showing only the records whose name matches the query.
teams_ids: Filter users by team IDs.
limit: Pagination limit. Default 100.
Returns:
List of users matching the criteria.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| teams_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds pagination default and return type, but no additional behavioral traits beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose, then args, then returns. Every sentence is necessary and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (list with filters), annotations covering safety, and an output schema present, the description is complete with no missing aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description fully compensates by explaining each parameter (query filters by name, teams_ids filters by team, limit for pagination) with clear semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'List' and resource 'users', with optional filtering options. However, it does not explicitly differentiate from sibling list tools like list_team_members, which might also list users filtered by team.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage (list users with optional filters) but lacks explicit when-to-use or when-not-to-use guidance, nor mentions alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhook_subscriptionsARead-onlyIdempotent
List webhook subscriptions.
Args:
filter_type: Filter by scope type: 'account_reference', 'service_reference', or 'team_reference'
limit: Max results to return
Returns:
List of webhook subscriptions
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| filter_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| response | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's contribution is minimal. It adds that the tool returns a list, but no further behavioral details (e.g., pagination, ordering). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using a clean Args/Returns structure. Every sentence adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (2 optional parameters, output schema exists), the description covers the essentials. It lacks explicit mention of default behavior when no filter is provided (likely lists all), but this is implied. The return format is not detailed, but the output schema handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides meaningful parameter details: 'filter_type' options are enumerated ('account_reference', 'service_reference', 'team_reference') and 'limit' is explained as 'Max results to return'. This adds significant context beyond the schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List webhook subscriptions' which clearly indicates the action and resource. It is specific enough to distinguish from sibling tools like 'list_services' or 'list_teams', but does not explicitly differentiate from 'get_webhook_subscription' (a single-resource fetch vs list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'get_webhook_subscription' for a single subscription). The description does not mention scope, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
63 tool updates
v1.1.0- First observed
get_alert_from_incident - First observed
get_alert_grouping_setting - First observed
get_business_service_dependencies - First observed
get_change_event - First observed
get_escalation_policy - First observed
get_event_orchestration - First observed
get_event_orchestration_global - First observed
get_event_orchestration_router - First observed
get_event_orchestration_service - First observed
get_extension_schema - First observed
get_incident - First observed
get_incident_metrics_all - First observed
get_incident_metrics_by_service - First observed
get_incident_metrics_by_team - First observed
get_incident_workflow - First observed
get_log_entry - First observed
get_outlier_incident - First observed
get_past_incidents - First observed
get_related_incidents - First observed
get_responder_load_metrics - First observed
get_responder_metrics - First observed
get_schedule - First observed
get_schedule_v3_custom_shift - First observed
get_schedule_v3_override - First observed
get_schedule_v3_rotation - First observed
get_schedule_v3_rotation_event - First observed
get_service - First observed
get_status_page_post - First observed
get_team - First observed
get_technical_service_dependencies - First observed
get_user_data - First observed
get_webhook_subscription - First observed
list_alert_grouping_settings - First observed
list_alerts_from_incident - First observed
list_business_services - First observed
list_change_events - First observed
list_escalation_policies - First observed
list_event_orchestrations - First observed
list_extension_schemas - First observed
list_incident_change_events - First observed
list_incident_notes - First observed
list_incident_workflows - First observed
list_incidents - First observed
list_log_entries - First observed
list_oncalls - First observed
list_priorities - First observed
list_schedule_users - First observed
list_schedule_v3_custom_shifts - First observed
list_schedule_v3_overrides - First observed
list_schedule_v3_rotation_events - First observed
list_schedule_v3_rotations - First observed
list_schedules - First observed
list_service_change_events - First observed
list_services - First observed
list_status_page_impacts - First observed
list_status_page_post_updates - First observed
list_status_page_severities - First observed
list_status_page_statuses - First observed
list_status_pages - First observed
list_team_members - First observed
list_teams - First observed
list_users - First observed
list_webhook_subscriptions
TDQS
Every tool targets a distinct entity or specific sub-aspect of an entity (e.g., get_incident vs. get_outlier_incident, list_schedule_v3_rotations vs. list_schedule_v3_rotation_events). No two tools have overlapping purposes.
All tools follow a consistent verb_noun pattern using 'get_' for single resources and 'list_' for collections. There is no mixing of camelCase or other conventions.
63 tools is far above the typical well-scoped range (3-15). While the tool count covers many PagerDuty entities, the sheer number makes the surface difficult to navigate and suggests insufficient consolidation.
The server is entirely read-only with no create, update, delete, or action tools (e.g., acknowledge_incident, create_service). For an incident management platform, this is a severe gap that prevents agents from performing any operational actions.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage incidents and on-call: list/create/update incidents, who is on call, on-call overrides.
An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.
Manage incident alerts, events, and workflows with custom automations
Let AI agents query data and act across all your business apps via MCP.
Related MCP Servers
- AlicenseAqualityCmaintenanceA community-maintained MCP server for interacting with PagerDuty accounts, enabling management of incidents, services, schedules, and event orchestrations through MCP-enabled clients.201Apache 2.0

runframe-mcp-serverofficial
AlicenseNot gradedqualityCmaintenanceEnables managing incident response workflows including incidents, on-call, postmortems, and more through the Runframe platform using MCP tools.674MIT- AlicenseNot gradedqualityCmaintenanceEnables PagerDuty incident response operations including listing incidents, acknowledging and resolving incidents, looking up on-call schedules, and listing services.MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage PagerDuty incidents, view alerts, and check on-call schedules with both read-only and write operations.9Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PagerDuty/pagerduty-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server