Claude | Gemini | OpenAI | Llama |
---|---|---|---|
- 🤖 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.
Running it via Docker:
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
- Pull the A2A image:
docker pull ghcr.io/cnoe-io/agent-pagerduty:a2a-stable
- 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
Use the agent-chat-cli to interact with the agent:
uvx https://github.com/cnoe-io/agent-chat-cli.git a2a
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
- 🤖 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
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
-
Create a PagerDuty Account: If you don't have one, sign up at PagerDuty.
-
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
-
Get Your PagerDuty Domain:
- Your API URL will be
https://api.pagerduty.com
- Update the
PAGERDUTY_API_URL
in your.env
file
- Your API URL will be
- 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!
- 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?
-
Docker Issues
- Ensure Docker daemon is running
- Check if you have sufficient permissions
- Verify the required images are available
-
Port Conflicts
- If port 8000 is in use, modify
A2A_AGENT_PORT
in.env
- Check for other services using required ports
- If port 8000 is in use, modify
-
Environment Variables
- Verify all required variables in
.env
- Check API keys and tokens are valid
- No trailing spaces in values
- Verify all required variables in
-
Client Connection Issues
- Server must be running before client
- Port numbers should match
- API keys must match between server and client
- Docker: Use
docker logs <container-id>
- Local: Check terminal output
- Debug mode: Set
DEBUG=true
in.env
For more detailed information about the project, please refer to:
- API Documentation - Detailed API reference
- Architecture Overview - System design and components
- Development Guide - Setup and development workflow
- Deployment Guide - Production deployment instructions
- Contributing Guide - How to contribute to the project
- Security Policy - Security practices and vulnerability reporting
- License - Project license details
- Changelog - Version history and changes
- Code of Conduct - Community guidelines
- 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
See MAINTAINERS.md for the list of maintainers.
We welcome contributions! Please see our Contributing Guide for details on how to get started.
Apache 2.0