PagerDuty MCP Server
PagerDuty MCP 服务器
向 LLM 公开 PagerDuty API 功能的服务器。该服务器旨在以编程方式使用,并具有结构化的输入和输出。
概述
PagerDuty MCP 服务器提供了一组用于与 PagerDuty API 交互的工具。这些工具旨在供 LLM 使用,用于对 PagerDuty 资源(例如事件、服务、团队和用户)执行各种操作。
Related MCP server: Logseq MCP Server
安装
来自 PyPI
pip install pagerduty-mcp-server来自源
# Clone the repository
git clone https://github.com/wpfleger96/pagerduty-mcp-server.git
cd pagerduty-mcp-server
# Install dependencies
brew install uv
uv sync要求
Python 3.13 或更高版本
PagerDuty API 密钥
配置
PagerDuty MCP 服务器需要在环境中设置 PagerDuty API 密钥:
PAGERDUTY_API_KEY=your_api_key_here用法
作为鹅扩展
{
"type": "stdio",
"enabled": true,
"args": [
"run",
"python",
"-m",
"pagerduty_mcp_server"
],
"commandInput": "uv run python -m pagerduty_mcp_server",
"timeout": 300,
"id": "pagerduty-mcp-server",
"name": "pagerduty-mcp-server",
"description": "pagerduty-mcp-server",
"env_keys": [
"PAGERDUTY_API_KEY"
],
"cmd": "uv"
}作为独立服务器
uv run python -m pagerduty_mcp_server响应格式
所有 API 响应都遵循一致的格式:
{
"metadata": {
"count": <int>, // Number of results
"description": "<str>" // A short summary of the results
},
<resource_type>: [ // Always pluralized for consistency, even if one result is returned
{
...
},
...
],
"error": { // Only present if there's an error
"message": "<str>", // Human-readable error description
"code": "<str>" // Machine-readable error code
}
}错误处理
当发生错误时,响应将包含具有以下结构的错误对象:
{
"metadata": {
"count": 0,
"description": "Error occurred while processing request"
},
"error": {
"message": "Invalid user ID provided",
"code": "INVALID_USER_ID"
}
}常见的错误场景包括:
无效的资源 ID(例如,user_id、team_id、service_id)
缺少必需参数
参数值无效
API 请求失败
响应处理错误
参数验证
所有 ID 参数必须是有效的 PagerDuty 资源 ID
日期参数必须是有效的 ISO8601 时间戳
列表参数(例如,
statuses、team_ids)必须包含有效值列表参数中的无效值将被忽略
必需参数不能为
None或空字符串对于
list_incidents中的statuses,只有triggered、acknowledged和resolved是有效值对于事件的
urgency,只有high和low是有效值limit参数可用于限制列表操作返回的结果数
速率限制和分页
服务器遵守 PagerDuty 的速率限制
服务器自动为您处理分页
limit参数可用于控制列表操作返回的结果数量如果没有指定限制,服务器默认返回最多 {pagerduty_mcp_server.utils.RESPONSE_LIMIT} 个结果
示例用法
from pagerduty_mcp_server import incidents
from pagerduty_mcp_server.utils import RESPONSE_LIMIT
# List all incidents (including resolved) for the current user's teams
incidents_list = incidents.list_incidents()
# List only active incidents
active_incidents = incidents.list_incidents(statuses=['triggered', 'acknowledged'])
# List incidents for specific services
service_incidents = incidents.list_incidents(service_ids=['SERVICE-1', 'SERVICE-2'])
# List incidents for specific teams
team_incidents = incidents.list_incidents(team_ids=['TEAM-1', 'TEAM-2'])
# List incidents within a date range
date_range_incidents = incidents.list_incidents(
since='2024-03-01T00:00:00Z',
until='2024-03-14T23:59:59Z'
)
# List incidents with a limit on the number of results
limited_incidents = incidents.list_incidents(limit=10)
# List incidents with the default limit
default_limit_incidents = incidents.list_incidents(limit=RESPONSE_LIMIT)用户上下文
许多函数接受current_user_context参数(默认为True ),该参数会根据此上下文自动过滤结果。当current_user_context为True时,您无法使用某些过滤参数,因为它们会与自动过滤功能冲突:
对于所有资源类型:
user_ids不能与current_user_context=True一起使用
对于事件:
team_ids和service_ids不能与current_user_context=True一起使用
对于服务:
team_ids不能与current_user_context=True一起使用
对于升级策略:
team_ids不能与current_user_context=True一起使用
对于值班人员:
user_ids不能与current_user_context=True一起使用仍可使用
schedule_ids按特定时间表进行筛选该查询将显示与当前用户团队相关的所有升级策略的待命情况
这对于回答诸如“我的团队目前谁值班?”之类的问题很有用。
当前用户的 ID 不用作过滤器,因此您将看到所有值班的团队成员
发展
运行测试
请注意,大多数测试都需要与 PagerDuty API 建立实际连接,因此您需要在运行完整测试套件之前在环境中设置PAGERDUTY_API_KEY 。
uv run pytest仅运行单元测试(即不需要在环境中设置PAGERDUTY_API_KEY测试):
uv run pytest -m unit仅运行集成测试:
uv run pytest -m integration仅运行解析器测试:
uv run pytest -m parsers仅运行与特定子模块相关的测试:
uv run pytest -m <client|escalation_policies|...>使用 MCP Inspector 调试服务器
npx @modelcontextprotocol/inspector uv run python -m pagerduty_mcp_server贡献
发布
该项目使用常规提交进行自动发布。提交消息决定了版本更新:
feat:→ 次要版本(1.0.0 → 1.1.0)fix:→补丁版本(1.0.0→1.0.1)BREAKING CHANGE:→ 主要版本(1.0.0 → 2.0.0)
CHANGELOG.md、GitHub 版本和 PyPI 包会自动更新。
文档
工具文档——有关可用工具的详细信息,包括参数、返回类型和示例查询
公约
所有 API 响应都遵循标准格式,包含元数据、资源列表和可选错误
为了保持一致性,响应中的资源名称始终采用复数形式
返回单个项目的所有函数仍返回包含一个元素的列表
错误响应包括消息和代码
所有时间戳均为 ISO8601 格式
测试用 pytest 标记来标记,以指示其类型(单元/集成)、测试的资源(事件、团队等)以及是否测试解析功能(“解析器”标记)
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 Servers
- AlicenseBqualityDmaintenanceThis server facilitates the invocation of AI models from providers like Anthropic, OpenAI, and Groq, enabling users to manage and configure large language model interactions seamlessly.213MIT
- AlicenseBqualityBmaintenanceA server that enables LLMs to programmatically interact with Logseq knowledge graphs, allowing creation and management of pages and blocks.1039MIT
- Alicense-qualityAmaintenanceA server that enables Large Language Models to discover and interact with REST APIs defined by OpenAPI specifications through the Model Context Protocol.4,812286MIT
- Alicense-qualityDmaintenanceA Model Context Protocol Server that enables LLMs to interact with and execute REST API calls through natural language prompts, supporting GET/PUT/POST/PATCH operations on configured APIs.6Apache 2.0
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
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/wpfleger96/pagerduty-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server