PagerDuty MCP Server

by wpfleger96
Verified

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PAGERDUTY_API_KEYYesYour PagerDuty API key

Schema

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
list_escalation_policies

List existing escalation policies based on the given criteria.

Args: current_user_context (bool): Whether to use the current user's ID/team IDs context (default: True, cannot be used with user_ids or team_ids) query (str): Filter escalation policies whose names contain the search query (optional) user_ids (List[str]): Filter results to only escalation policies that include the given user IDs (optional, cannot be used with current_user_context) team_ids (List[str]): Filter results to only escalation policies assigned to teams with the given IDs (optional, cannot be used with current_user_context)

Returns: Dict[str, Any]: Dictionary containing metadata (count, description) and a list of escalation policies matching the specified criteria

show_escalation_policy

Show details about a given escalation policy.

Args: policy_id (str): The ID of the escalation policy to show

Returns: Dict[str, Any]: Escalation policy object with detailed information

list_incidents

List PagerDuty incidents based on specified filters.

Args: current_user_context (bool): Boolean, use the current user's team_ids and service_ids to filter (default: True, cannot be used with service_ids or team_ids) service_ids (List[str]): list of PagerDuty service IDs to filter by (optional, cannot be used with current_user_context) team_ids (List[str]): list of PagerDuty team IDs to filter by (optional, cannot be used with current_user_context) statuses (List[str]): list of status values to filter by (optional). Valid values are: - 'triggered' - The incident is currently active (included by default) - 'acknowledged' - The incident has been acknowledged by a user (included by default) - 'resolved' - The incident has been resolved (excluded by default) since (str): Start of date range in ISO8601 format (optional). Default is 1 month ago until (str): End of date range in ISO8601 format (optional). Default is now

Returns: Dict[str, Any]: Dictionary containing metadata (count, description) and a list of incidents matching the specified criteria

show_incident

Get detailed information about a given incident.

Args: incident_id (str): The ID or number of the incident to get

Returns: Dict[str, Any]: Incident object with detailed information

list_oncalls

List the on-call entries during a given time range.

Args: current_user_context (bool): Use the current user's ID to filter (default: True, cannot be used with user_ids or escalation_policy_ids) schedule_ids (List[str]): Return only on-calls for the specified schedule IDs (optional) user_ids (List[str]): Return only on-calls for the specified user IDs (optional, cannot be used with current_user_context) escalation_policy_ids (List[str]): Return only on-calls for the specified escalation policy IDs (optional, cannot be used with current_user_context) since (str): Start of date range in ISO8601 format (optional). Default is 1 month ago until (str): End of date range in ISO8601 format (optional). Default is now

Returns: Dict[str, Any]: Dictionary containing metadata (count, description) and a list of on-call entries matching the specified criteria

list_schedules

List the on-call schedules.

Args: query (str): Filter schedules whose names contain the search query (optional)

Returns: Dict[str, Any]: Dictionary containing metadata (count, description) and a list of schedules matching the specified criteria

show_schedule

Show detailed information about a given schedule.

Args: schedule_id (str): The ID of the schedule to get since (str): The start of the time range over which you want to search. Defaults to 2 weeks before until if an until is given. (optional) until (str): The end of the time range over which you want to search. Defaults to 2 weeks after since if a since is given. (optional)

Returns: Dict[str, Any]: Schedule object with detailed information

list_services

List existing PagerDuty services.

Args: current_user_context (bool): Use the current user's team IDs to filter (default: True, cannot be used with team_ids) team_ids (List[str]): Filter results to only services assigned to teams with the given IDs (optional, cannot be used with current_user_context) query (str): Filter services whose names contain the search query (optional)

Returns: Dict[str, Any]: Dictionary containing metadata (count, description) and a list of services matching the specified criteria

show_service

Get details about a given service.

Args: service_id (str): The ID of the service to get

Returns: Dict[str, Any]: Service object with detailed information

list_teams

List teams in your PagerDuty account.

Args: query (str): Filter teams whose names contain the search query (optional)

Returns: Dict[str, Any]: Dictionary containing metadata (count, description) and a list of teams matching the specified criteria

show_team

Get detailed information about a given team.

Args: team_id (str): The ID of the team to get

Returns: Dict[str, Any]: Team object with detailed information

show_current_user

Get the current user's PagerDuty profile including their teams, contact methods, and notification rules.

Returns: Dict[str, Any]: The user object containing profile information in the following format (note this is non-exhaustive): { "name": "John Doe", "email": "john.doe@example.com", "role": "user", "description": "John Doe is a user at Example Inc.", "job_title": "Software Engineer", "teams": [ { "id": "P123456", "summary": "Team Name 1" }, ... ], "contact_methods": [ { "id": "P123456", "summary": "Mobile" }, ... ], "notification_rules": [ { "id": "P123456", "summary": "0 minutes: channel XYZ" }, ... ], "id": "P123456" }

list_users

List users in PagerDuty.

Args: current_user_context (bool): Use the current user's team IDs to filter (default: True, cannot be used with team_ids) team_ids (List[str]): A list of team IDs to filter users (optional, cannot be used with current_user_context) query (str): A search query to filter users (optional)

Returns: Dict[str, Any]: Dictionary containing metadata (count, description) and a list of users matching the specified criteria

show_user

Get detailed information about a given user. Args: user_id (str): The ID of the user to get

Returns: Dict[str, Any]: User object with detailed information