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 is no shared mcp.3cx.com),…
Freshdesk Solutions knowledge base: the three-level categories -> folders -> articles hierarchy, article fields and draft/published status, finding an article by walking that tree (there is no KB search tool), and the MSP workflow of suggesting relevant KB articles to deflect or
$ npx -y skills add wyre-technology/msp-claude-plugins --skill knowledge-base --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/knowledge-baseContext preview
The summary Claude sees to decide when to auto-load this skill.
Freshdesk Solutions knowledge base: the three-level categories -> folders -> articles hierarchy, article fields and draft/published status, finding an article by walking that tree (there is no KB search tool), and the MSP workflow of suggesting relevant KB articles to deflect or
name: "Freshdesk Knowledge Base" description: > Freshdesk Solutions knowledge base: the three-level categories -> folders -> articles hierarchy, article fields and draft/published status, finding an article by walking that tree (there is no KB search tool), and the MSP workflow of suggesting relevant KB articles to deflect or resolve a ticket, through the Freshdesk REST API v2. when_to_use: >- When navigating the Freshdesk solutions knowledge base — categories, folders, and articles — or suggesting relevant KB articles for a ticket. Use when: freshdesk knowledge base, freshdesk solutions, freshdesk article, freshdesk kb, solution category freshdesk, solution folder freshdesk, suggest article freshdesk, or deflect ticket freshdesk.
Freshdesk's knowledge base is called **Solutions** and is organized as a nested, three-level hierarchy. Articles live inside folders, folders live inside categories. Surfacing the right article on a ticket deflects repeat questions and speeds resolution. This skill covers navigating the hierarchy, reading articles, and suggesting articles for tickets through tools named `freshdesk_solutions_<action>`.
Freshdesk Solutions is a **customer-facing** knowledge base published to the support portal. Writing internal MSP documentation here exposes it to customers.
those belong in an MSP documentation platform; use `hudu-articles` or `itglue-documents`. Never draft an internal procedure into a Solutions article.
`hudu-passwords` or `itglue-passwords`; nothing in the Solutions hierarchy is a safe place for them.
replies and notes are `freshdesk-ticketing`; this skill finds the article, it does not send it.
Category (top level — e.g. "Email & Collaboration")
└─ Folder (grouping — e.g. "Outlook")
└─ Article (the content — e.g. "Fix Outlook disconnected status")| Level | Resource | Parent | |-------|----------|--------| | Category | `/solutions/categories` | — (top level) | | Folder | `/solutions/folders` | Category | | Article | `/solutions/articles` | Folder |
You traverse top-down: list categories, list the folders within a category, then list the articles within a folder.
GET /api/v2/solutions/categories
Returns each category's `id`, `name`, and `description`.
GET /api/v2/solutions/categories/{category_id}/foldersReturns each folder's `id`, `name`, `description`, and `visibility` (which audiences can see it — e.g. all users, logged-in users, or specific companies/agents).
GET /api/v2/solutions/folders/{folder_id}/articlesReturns article summaries within the folder.
GET /api/v2/solutions/articles/{article_id}| Field | Type | Description | |-------|------|-------------| | `id` | Integer | Unique identifier | | `title` | String | Article title | | `description` | String (HTML) | Body content | | `status` | Integer | 1 = Draft, 2 = Published | | `folder_id` | Integer | Parent folder | | `category_id` | Integer | Parent category | | `tags` | Array | Labels for retrieval | | `hits` | Integer | View count (popularity signal) |
Only **published** articles (`status: 2`) should be suggested to customers; drafts are internal-only.
Freshdesk's REST API exposes `GET /api/v2/search/solutions?term=...`, but **this plugin cannot reach it.** The MCP server registers no knowledge-base search handler — only list/get/create/update/delete over categories, folders and articles (`freshdesk-mcp/src/domains/solutions.ts`). Tickets, contacts and companies each get a search tool, so search reads as a house pattern; the knowledge base is the one surface that does not have it.
The real path to an article is the walk:
1. `freshdesk_solutions_categories_list` — the top level. 2. `freshdesk_solutions_folders_list` for the category that plausibly owns the topic (takes the parent `category_id`). 3. `freshdesk_solutions_articles_list` for that folder (takes `folder_id`), then `freshdesk_solutions_articles_get` on the candidates worth reading.
You do the keyword matching yourself, against article `title` and `tags` as you walk. The tree is small and changes rarely, so cache it for the session rather than re-listing it per ticket. When a request genuinely needs full-text search across article bodies, say the plugin cannot do it and point the operator at the Freshdesk portal search — do not present a walk as if it were an exhaustive search.
A high-value MSP workflow is matching an incoming ticket to existing knowledge so the agent can resolve faster or deflect entirely:
1. **Extract the symptom** — pull the ticket subject and the first incoming message; identify keywords (product, error text, action). 2. **Walk to candidates** — pick the category and folder that plausibly own the topic and list their articles. There is no KB search tool; see above. 3. **Filter to published** — keep only `status: 2` articles; ignore drafts. 4. **Rank candidates** — prefer exact title/`tags` keyword matches and higher `hits` (popularity); break ties by recency. 5. **Present the top matches** — surface 1-3 articles with title and link. 6. **Act on the ticket** — either attach the article link in a customer-facing reply (deflection) or cite it in an internal note as the resolution path.
Ticket: "Outlook shows Disconnected since this morning" walk: category "Email & Collaboration" -> folder "Outlook" -> articles
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai
Repo: wyre-technology/msp-claude-plugins
3CX's native PBX MCP server: the per-PBX endpoint shape (every PBX is its own FQDN and its own OAuth authorization server — there is no shared mcp.3cx.com),…
3CX's live-operations surface: read-only visibility into active calls, recordings, voicemail, department and queue membership, and forwarding/presence…
3CX's read-only directory surface: resolving a caller by email or by exact extension, searching the PBX's own phonebooks, searching contacts synced from an…
3CX's system-and-configuration surface: server time, PBX event log and application log search, service status, database schema and the read-only SELECT-only…
Abnormal Security abuse mailbox cases: user-reported email submissions, case statuses and judgments, the case lifecycle, bulk and remediation actions, and…
Abnormal Security message analysis: message retrieval, email header inspection, attachments, sender reputation, delivery context, and SPF/DKIM/DMARC…