pms-helpdesk-mcp
v1.2.0
Published
MCP server for CloudGo PMS HelpDesk — list, filter, search, and update tickets via VTiger OpenAPI
Maintainers
Readme
@cloudgo/pms-helpdesk-mcp
MCP server for CloudGo PMS HelpDesk — list, filter, search, and update tickets via VTiger OpenAPI.
Setup
Option 1: Install from git (recommended for team)
Add to your .mcp.json (in project root or ~/.claude/.mcp.json for global):
{
"mcpServers": {
"pms-helpdesk": {
"command": "npx",
"args": ["-y", "github:user/pms-helpdesk-mcp"],
"env": {
"PMS_URL": "https://pms.cloudgo.vn",
"PMS_USERNAME": "your_username",
"PMS_ACCESS_KEY": "your_access_key"
}
}
}
}Option 2: Install from npm (after publishing)
{
"mcpServers": {
"pms-helpdesk": {
"command": "npx",
"args": ["-y", "@cloudgo/pms-helpdesk-mcp"],
"env": {
"PMS_URL": "https://pms.cloudgo.vn",
"PMS_USERNAME": "your_username",
"PMS_ACCESS_KEY": "your_access_key"
}
}
}
}Option 3: Local development
{
"mcpServers": {
"pms-helpdesk": {
"command": "npx",
"args": ["tsx", ".claude/mcp-servers/pms-helpdesk/index.ts"],
"env": {
"PMS_URL": "https://pms.cloudgo.vn",
"PMS_USERNAME": "your_username",
"PMS_ACCESS_KEY": "your_access_key"
}
}
}
}Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| PMS_URL | Yes | PMS base URL (e.g. https://pms.cloudgo.vn) |
| PMS_USERNAME | Yes | Your PMS login username |
| PMS_ACCESS_KEY | Yes | Your PMS access key (found in My Preferences) |
Tools
pms_list_tickets
List HelpDesk tickets with pagination.
| Param | Type | Default | Description |
|-------|------|---------|-------------|
| offset | number | 0 | Pagination offset |
| max_rows | number | 20 | Max rows to return |
pms_get_ticket
Get full detail of a single ticket.
| Param | Type | Description |
|-------|------|-------------|
| record_id | string | Ticket record ID (e.g. "17x12345") |
pms_search_tickets
Search tickets by keyword.
| Param | Type | Default | Description |
|-------|------|---------|-------------|
| keyword | string | — | Search keyword |
| offset | number | 0 | Pagination offset |
| max_rows | number | 20 | Max rows |
pms_filter_tickets
Filter tickets with advanced conditions (AND logic).
| Param | Type | Description |
|-------|------|-------------|
| filters | array | Array of {name, value, operator} objects |
| offset | number | Pagination offset (default 0) |
| max_rows | number | Max rows (default 20) |
| sort_column | string | Optional sort column |
| sort_order | ASC/DESC | Optional sort order |
Filter operators: e (equals), n (not equal), c (contains), k (not contains), s (starts with), ew (ends with), g (greater than), l (less than), h (after/>=), m (before/<=), reference_filter (related record)
Example:
{
"filters": [
{"name": "ticketstatus", "value": "Open", "operator": "e"},
{"name": "ticketpriorities", "value": "High", "operator": "e"}
]
}pms_update_ticket
Update ticket fields.
| Param | Type | Description |
|-------|------|-------------|
| record_id | string | Ticket record ID |
| data | object | Key-value pairs of fields to update |
Example:
{
"record_id": "17x12345",
"data": {
"ticketstatus": "Closed",
"solution": "Issue resolved"
}
}Publishing
# Build
npm run build
# Publish to npm (scoped)
npm publish --access public
# Or publish to GitHub Packages
npm publish --registry=https://npm.pkg.github.com