Skip to main content
Glama

PagerDuty MCP Server

by wpfleger96
teams.py3.18 kB
"""PagerDuty team operations.""" import logging from typing import Any, Dict, List, Optional from . import utils from .client import create_client from .parsers import parse_team logger = logging.getLogger(__name__) TEAMS_URL = "/teams" """ Teams API Helpers """ def list_teams( *, query: Optional[str] = None, limit: Optional[int] = None ) -> Dict[str, Any]: """List teams in your PagerDuty account. Exposed as MCP server tool. Args: query (str): Filter teams whose names contain the search query (optional) limit (int): Limit the number of results returned (optional) Returns: See the "Standard Response Format" section in `tools.md` for the complete standard response structure. The response will contain a list of teams with their configuration and member information. Raises: See the "Error Handling" section in `tools.md` for common error scenarios. """ pd_client = create_client() params = {} if query: params["query"] = query if limit: params["limit"] = limit try: response = pd_client.list_all(TEAMS_URL, params=params) parsed_response = [parse_team(result=team) for team in response] return utils.api_response_handler( results=parsed_response, resource_name="teams" ) except Exception as e: utils.handle_api_error(e) def show_team(*, team_id: str) -> Dict[str, Any]: """Get detailed information about a given team. Exposed as MCP server tool. Args: team_id (str): The ID of the team to get Returns: See the "Standard Response Format" section in `tools.md` for the complete standard response structure. The response will contain a single team with detailed configuration and member information. Raises: See the "Error Handling" section in `tools.md` for common error scenarios. """ if team_id is None: raise ValueError("team_id must be specified") pd_client = create_client() try: response = pd_client.jget(f"{TEAMS_URL}/{team_id}") try: team_data = response["team"] except KeyError: raise RuntimeError( f"Failed to fetch team {team_id}: Response missing 'team' field" ) return utils.api_response_handler( results=parse_team(result=team_data), resource_name="team" ) except Exception as e: utils.handle_api_error(e) """ Teams Helpers """ def fetch_team_ids(*, user: Dict[str, Any]) -> List[str]: """Get the team IDs for a user. Internal helper function. Args: user (Dict[str, Any]): The user object containing a teams field with team information Returns: List[str]: A list of team IDs from the user's teams. Returns an empty list if user is None or has no teams. Note: This is an internal helper function used by other modules to extract team IDs from a user object. It should not be called directly by external code. Raises: KeyError: If user is None or missing the 'teams' field """ return [team["id"] for team in user["teams"]]

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/wpfleger96/pagerduty-mcp-server'

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