agent-pagerduty

PagerDuty AI Agent powered by 1st Party MCP Server using OpenAPI Codegen, LangGraph and LangChain MCP Adapters. Agent is exposed on various agent transport protocols (AGNTCY Slim, Google A2A, MCP Server)

GitHub Stars

1

User Rating

Not Rated

Forks

1

Issues

4

Views

1

Favorites

0

README
๐Ÿš€ PagerDuty AI Agent

Python Poetry License

Conventional Commits Ruff Linter Super Linter Unit Tests

A2A Docker Build and Push
๐Ÿงช Evaluation Badges
Claude Gemini OpenAI Llama
Claude Evals Gemini Evals OpenAI Evals Llama Evals

  • ๐Ÿค– PagerDuty Agent is an LLM-powered agent built using the LangGraph ReAct Agent workflow and MCP tools.
  • ๐ŸŒ Protocol Support: Compatible with A2A protocol for integration with external user clients.
  • ๐Ÿ›ก๏ธ Secure by Design: Enforces PagerDuty API token-based authentication and supports external authentication for strong access control.
  • ๐Ÿ”Œ Integrated Communication: Uses langchain-mcp-adapters to connect with the PagerDuty MCP server within the LangGraph ReAct Agent workflow.
  • ๐Ÿญ First-Party MCP Server: The MCP server is generated by our first-party openapi-mcp-codegen utility, ensuring version/API compatibility and software supply chain integrity.

๐Ÿš€ Getting Started

Running it via Docker:

1๏ธโƒฃ Configure Environment

Ensure your .env file is set up as described in the cnoe-agent-utils usage guide based on your LLM Provider.

Example .env configuration:

############################
# Agent Configuration
############################
LLM_PROVIDER=azure-openai
AGENT_NAME=pagerduty

############################
# Azure OpenAI Configuration
############################
AZURE_OPENAI_API_KEY=<your-azure-key>
AZURE_OPENAI_API_VERSION=2025-04-01-preview
AZURE_OPENAI_DEPLOYMENT=gpt-4.1
AZURE_OPENAI_ENDPOINT=<your-azure-endpoint>

############################
# PagerDuty Configuration
############################
PAGERDUTY_API_KEY=<your-pagerduty-key>
PAGERDUTY_API_URL=https://api.pagerduty.com
2๏ธโƒฃ Start the Agent (A2A Mode)
  1. Pull the A2A image:
docker pull ghcr.io/cnoe-io/agent-pagerduty:a2a-stable
  1. Run the agent in a Docker container using your .env file:
docker pull ghcr.io/cnoe-io/agent-pagerduty:a2a-stable && \
docker run --rm -p 0.0.0.0:8000:8000 -it \
  -v $(pwd)/.env:/app/.env \
  ghcr.io/cnoe-io/agent-pagerduty:a2a-stable
3๏ธโƒฃ Run the Client

Use the agent-chat-cli to interact with the agent:

uvx https://github.com/cnoe-io/agent-chat-cli.git a2a

๐Ÿ—๏ธ Architecture
flowchart TD
  subgraph Client Layer
    A[User Client A2A]
  end

  subgraph Agent Transport Layer
    B[Google A2A]
  end

  subgraph Agent Graph Layer
    C[LangGraph ReAct Agent]
  end

  subgraph Tools/MCP Layer
    D[Langchain MCP Adapter]
    E[PagerDuty MCP Server]
    F[PagerDuty API Server]
  end

  A --> B --> C
  C --> D
  D -.-> C
  D --> E --> F --> E
โœจ Features
  • ๐Ÿค– LangGraph + LangChain MCP Adapter for agent orchestration
  • ๐Ÿง  Azure OpenAI GPT-4 as the LLM backend
  • ๐Ÿ”— Connects to PagerDuty via a dedicated PagerDuty MCP agent
  • ๐Ÿ”„ A2A protocol support: Compatible with A2A protocol for flexible integration and multi-agent orchestration
  • ๐Ÿ“Š Comprehensive PagerDuty API Support:
    • Incident Management (create, update, resolve)
    • Service Management
    • Schedule Management
    • Team Management
    • User Management
    • Escalation Policy Management

Local Development
Alternative: Running Locally

You can also run the agent locally without Docker:

First clone the repo

git clone https://github.com/cnoe-io/agent-pagerduty.git
cd agent-pagerduty
make run-a2a

In a new terminal, start the A2A client:

make run-a2a-client
Quick Demos
โ–ถ๏ธ Test with PagerDuty API
๐Ÿƒ Quick Start: Set Up PagerDuty Access
  1. Create a PagerDuty Account: If you don't have one, sign up at PagerDuty.

  2. Generate an API Key:

    • Log in to your PagerDuty account
    • Go to Configuration โ†’ API Access
    • Create a new API key with appropriate permissions
    • Save the API key securely
  3. Get Your PagerDuty Domain:

    • Your API URL will be https://api.pagerduty.com
    • Update the PAGERDUTY_API_URL in your .env file
Example Interactions
  1. Incident Management
User: list all active incidents
Agent: Here are the current active incidents:

1. ID: P123ABC - High CPU Usage on Production Server
   Status: triggered
   Urgency: high
   Assigned to: John Smith

2. ID: P456DEF - Database Connection Errors
   Status: acknowledged
   Urgency: medium
   Assigned to: DevOps Team

Let me know if you need more details about any incident or would like to take action!
  1. Service Management
User: show me all services
Agent: Here are all the services configured in PagerDuty:

1. Web Application (ID: PS1)
   - Status: active
   - Integration: API
   - Team: Platform

2. Database Cluster (ID: PS2)
   - Status: active
   - Integration: Nagios
   - Team: Infrastructure

3. Payment Gateway (ID: PS3)
   - Status: maintenance
   - Integration: Custom
   - Team: Payments

Would you like more details about any specific service?
๐Ÿ” Troubleshooting
Common Issues
  1. Docker Issues

    • Ensure Docker daemon is running
    • Check if you have sufficient permissions
    • Verify the required images are available
  2. Port Conflicts

    • If port 8000 is in use, modify A2A_AGENT_PORT in .env
    • Check for other services using required ports
  3. Environment Variables

    • Verify all required variables in .env
    • Check API keys and tokens are valid
    • No trailing spaces in values
  4. Client Connection Issues

    • Server must be running before client
    • Port numbers should match
    • API keys must match between server and client
Logs
  • Docker: Use docker logs <container-id>
  • Local: Check terminal output
  • Debug mode: Set DEBUG=true in .env
๐Ÿ“š Documentation

For more detailed information about the project, please refer to:

๐Ÿ” Security Notes
  • Never commit your .env file to version control
  • Keep your API keys and tokens secure
  • Use environment variables or secret managers in production
  • Regularly rotate your API keys and tokens
๐Ÿ‘ฅ Maintainers

See MAINTAINERS.md for the list of maintainers.

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details on how to get started.

๐Ÿ“„ License

Apache 2.0

Author Information
CNOE

CNOE GitHub org

332

Followers

39

Repositories

0

Gists

59

Total Contributions

Threads