ry-ops/pulseway-mcp-server
If you are the rightful owner of pulseway-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Pulseway MCP Server integrates Claude AI with the Pulseway PSA API, enabling management of tickets, invoices, opportunities, and more.
Pulseway MCP Server
A Model Context Protocol (MCP) server that integrates Claude AI with the Pulseway PSA (Professional Services Automation) API. This server enables Claude to interact with your Pulseway PSA instance to manage tickets, invoices, opportunities, time logs, and more.
Features
This MCP server provides the following capabilities:
Service Desk
- List Tickets - View all tickets with optional filtering by status and assignee
- Get Ticket Details - Retrieve detailed information about specific tickets
- Create Tickets - Create new support tickets
- Update Tickets - Modify existing tickets (status, assignee, priority, etc.)
Finance
- List Invoices - View all invoices
- Get Invoice Details - Retrieve detailed information about specific invoices
CRM
- List Opportunities - View all sales opportunities
- Get Opportunity Details - Retrieve detailed information about specific opportunities
- Create Opportunities - Create new sales opportunities
- List Accounts - View all customer accounts/companies
- Get Account Details - Retrieve detailed information about specific accounts
Time Tracking
- List Time Logs - View all time log entries
Prerequisites
- Python 3.10 or higher
- uv package manager
- A Pulseway PSA account with API access
- Claude Desktop or another MCP client
Installation
-
Clone the repository:
git clone https://github.com/yourusername/pulseway-mcp-server.git cd pulseway-mcp-server
-
Install dependencies using uv:
uv pip install -e .
-
Configure your credentials:
cp secrets.env.example secrets.env
-
Edit
secrets.env
with your Pulseway credentials:PULSEWAY_GATEWAY_URL=https://psa.pulseway.com PULSEWAY_USERNAME=your_username PULSEWAY_PASSWORD=your_password PULSEWAY_COMPANY_NAME=your_company_name
To find these values:
- Gateway URL: Your Pulseway PSA server URL (e.g.,
https://psa.pulseway.com
) - Username: Your Pulseway PSA username
- Password: Your Pulseway PSA password
- Company Name: Your tenant/company name in Pulseway PSA
You can find your Gateway URL and Company Name by navigating to My Settings in Pulseway PSA (click your name in the top navigation bar).
- Gateway URL: Your Pulseway PSA server URL (e.g.,
Configuration with Claude Desktop
Add this server to your Claude Desktop configuration file:
macOS
Edit: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows
Edit: %APPDATA%\Claude\claude_desktop_config.json
Add the following configuration:
{
"mcpServers": {
"pulseway": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/pulseway-mcp-server",
"pulseway-mcp"
]
}
}
}
Replace /absolute/path/to/pulseway-mcp-server
with the actual path to your installation.
Usage
Once configured, Claude will have access to Pulseway PSA tools. You can ask Claude to:
- "List all open tickets in Pulseway"
- "Show me ticket #12345"
- "Create a new ticket for ACME Corp about email issues"
- "Update ticket #12345 to mark it as resolved"
- "List all invoices from this month"
- "Show me all CRM opportunities"
- "Create a new opportunity for Company XYZ worth $50,000"
- "List all customer accounts"
- "Show me time logs from last week"
Example Conversations
Creating a Ticket:
You: Create a new ticket for account ID 123 about a server outage. Title it "Critical Server Down" and mark it as high priority.
Claude: I'll create that ticket for you.
[Creates ticket using the create_ticket tool]
Checking Ticket Status:
You: What are all the open tickets assigned to John?
Claude: Let me check the open tickets for John.
[Uses list_tickets tool with status="Open" and assignee="John"]
API Rate Limits
The Pulseway PSA API has a rate limit of 1500 requests per hour per endpoint. The server does not implement rate limiting, so be mindful of the number of requests you make.
Security
- Never commit
secrets.env
to version control. It contains sensitive credentials. - Use an API-only user account in Pulseway PSA when possible (see Dedicated API integration account)
- Ensure proper file permissions on
secrets.env
(recommended:chmod 600 secrets.env
)
Development
Running Tests
uv run pytest
Project Structure
pulseway-mcp-server/
āāā pulseway_mcp_server/
ā āāā __init__.py
ā āāā server.py # Main MCP server implementation
āāā pyproject.toml # Project dependencies and configuration
āāā secrets.env.example # Example environment variables
āāā .gitignore
āāā README.md
Troubleshooting
Authentication Errors
If you receive authentication errors:
- Verify your credentials in
secrets.env
- Ensure your company name is correct (case-sensitive)
- Check that your Gateway URL includes the protocol (https://)
- Verify your user has API access enabled in Pulseway PSA
Connection Errors
If the server can't connect:
- Verify your Gateway URL is accessible
- Check your network connection
- Ensure you're not behind a firewall blocking the API
Missing Environment Variables
If you see "Missing required environment variables":
- Ensure
secrets.env
exists in the project root - Verify all required variables are set in
secrets.env
- Check that variable names match exactly
API Documentation
For more information about the Pulseway PSA API, see:
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - See LICENSE file for details
Support
For issues and questions:
- GitHub Issues: https://github.com/yourusername/pulseway-mcp-server/issues
- Pulseway Support: https://support.pulseway.com
Acknowledgments
- Built with Model Context Protocol
- Powered by Pulseway PSA