PagerDuty MCP Server
Server Configuration
Describes the environment variables required to run the server.
Name | Required | Description | Default |
---|---|---|---|
PAGERDUTY_API_KEY | Yes | Your PagerDuty API key |
Schema
Prompts
Interactive templates invoked by user choice
Name | Description |
---|---|
No prompts |
Resources
Contextual data attached and managed by the client
Name | Description |
---|---|
No resources |
Tools
Functions exposed to the LLM to take actions
Name | Description |
---|---|
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 |