api-patterns
3CX's native PBX MCP server: the per-PBX endpoint shape (every PBX is its own FQDN and its own OAuth authorization server — there…
ConnectWise PSA project management: project lifecycle and status/type values, phases, templates, resource/team allocation, budgeting, billing methods, and project tickets.
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill projects --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill projects -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill projects -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill projects -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill projects -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill projects -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill projects -a windsurf -y
name: "ConnectWise Manage Projects" description: > ConnectWise PSA project management: project lifecycle and status/type values, phases, templates, resource/team allocation, budgeting, billing methods, and project tickets. when_to_use: >- When creating, updating, managing project phases, templates, and resource allocation. Use when: connectwise project, project management, create project connectwise, project phase, project template, project resource, project budget, project billing, project ticket, or project schedule.
Projects in ConnectWise PSA track larger bodies of work that span multiple tickets, phases, and resources. Projects support templates, phases, budgeting, resource allocation, and various billing methods. This skill covers project CRUD operations, phases, templates, resources, and project tickets.
`/service/tickets` and are a different entity from project tickets; use `connectwise-psa-tickets`.
never to the project or phase directly; use `connectwise-psa-time-entries`.
Base: /project/projects
Standard project statuses in ConnectWise PSA:
| Status ID | Name | Description | |---------|------|-------------| | 1 | Open | Active project | | 2 | Closed | Completed project | | 3 | On Hold | Temporarily paused | | 4 | Cancelled | Cancelled project | | 5 | Waiting | Awaiting approval/resources |
Query `/project/projects/statuses` for configurable statuses.
| Type ID | Name | Description | |---------|------|-------------| | 1 | Project | Standard project | | 2 | Template | Project template |
See [references/fields.md](references/fields.md) for the complete project, phase, project ticket, and team member field reference.
| Method | Description | |--------|-------------| | `ActualRates` | Bill at standard work role rates | | `FixedFee` | Fixed project price | | `NotToExceed` | Actual rates with cap | | `OverrideRate` | Custom hourly rate |
POST /project/projects
Content-Type: application/json
{
"name": "Office 365 Migration - ACME Corp",
"company": {"id": 12345},
"status": {"id": 1},
"manager": {"id": 100},
"estimatedStart": "2024-03-01",
"estimatedEnd": "2024-05-01",
"estimatedHours": 200,
"billingMethod": "ActualRates",
"description": "Migrate from on-premises Exchange to Office 365"
}Fixed-fee and not-to-exceed projects use the same endpoint with a different `billingMethod` and `billingAmount`/`budgetAmount`. See [references/api.md](references/api.md) for those variants, plus get, update, and close-project examples.
GET /project/projects?conditions=type/id=2
POST /project/projects
Content-Type: application/json
{
"name": "Client Onboarding - ACME Corp",
"company": {"id": 12345},
"templateFlag": false,
"projectTemplateId": 100
}When using `projectTemplateId`, ConnectWise copies all phases from the template, project tickets associated with those phases, budget and billing settings, and team assignments (if configured).
Phases give a project its own timelines and budgets per chunk of work. Endpoint: `/project/projects/{projectId}/phases`.
POST /project/projects/{projectId}/phases
Content-Type: application/json
{
"description": "Phase 1: Discovery",
"scheduledStart": "2024-03-01",
"scheduledEnd": "2024-03-15",
"scheduledHours": 40,
"wbsCode": "1.1"
}Project tickets are service tickets linked to a project and phase via the `project` and `phase` fields. See [references/api.md](references/api.md) for the create request and the `GET /project/projects/{projectId}/tickets` endpoint.
Endpoint: `/project/projects/{projectId}/teamMembers`. See [references/api.md](references/api.md) for the full request shape (`member`, `projectRole`, `workRole`, `startDate`/`endDate`, `hoursScheduled`).
**Active projects for company:**
conditions=company/id=12345 and status/id=1
**Projects by manager:**
conditions=manager/id=100 and status/id=1
**Overdue projects:**
conditions=estimatedEnd<[2024-02-01] and status/id=1
**Projects over budget:**
conditions=budgetAnalysis="OverBudget"
**Template projects:**
conditions=type/id=2
1. **Use templates** - Create templates for repeatable projects 2. **Define phases** - Break large projects into phases 3. **Set realistic budgets** - Include contingency time 4. **Assign project manager** - Every project needs an owner 5. **Link to agreement** - For managed services project work 6. **Track completion %** - Update regularly for visibility 7. **Use WBS codes** - Helps with reporting and organization 8. **Close completed projects** - Don't leave finished projects open
See [references/errors.md](references/errors.md) for the complete error reference.
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai
3CX's native PBX MCP server: the per-PBX endpoint shape (every PBX is its own FQDN and its own OAuth authorization server — there…
3CX's live-operations surface: read-only visibility into active calls, recordings, voicemail, department and queue membership,…
3CX's read-only directory surface: resolving a caller by email or by exact extension, searching the PBX's own phonebooks,…
3CX's system-and-configuration surface: server time, PBX event log and application log search, service status, database schema…
Abnormal Security abuse mailbox cases: user-reported email submissions, case statuses and judgments, the case lifecycle, bulk and…
Abnormal Security message analysis: message retrieval, email header inspection, attachments, sender reputation, delivery context,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.