Add plugin builder for one-file client install

plugin/make-plugin.{sh,ps1} stamp a user's own Freshservice API key and the
shared server token into a template and emit a personalized freshservice.plugin
(direct HTTP MCP connection — no Node/mcp-remote/config editing on clients).
Built plugins embed credentials, so *.plugin is git-ignored; the committed
template holds only placeholders. Validated with 'claude plugin validate'.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-10 08:39:27 -06:00
parent 4f9a862c25
commit 549a1b6879
7 changed files with 195 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
{
"name": "freshservice",
"version": "1.0.0",
"description": "Connect Claude to the PESCO Freshservice service desk — tickets, assets/CMDB, people, and changes/problems/releases — through the shared LAN MCP server, acting as your own agent identity.",
"author": {
"name": "Spencer McGuire"
}
}

13
plugin/template/.mcp.json Normal file
View File

@@ -0,0 +1,13 @@
{
"mcpServers": {
"freshservice": {
"type": "http",
"url": "__SERVER_URL__",
"headers": {
"Authorization": "Bearer __MCP_TOKEN__",
"X-Freshservice-Domain": "__FS_DOMAIN__",
"X-Freshservice-Key": "__FS_KEY__"
}
}
}
}

20
plugin/template/README.md Normal file
View File

@@ -0,0 +1,20 @@
# Freshservice plugin
Connects Claude (Desktop / Cowork) to the PESCO Freshservice service desk
through the shared MCP server on the LAN. Tickets, assets/CMDB, people, and
change/problem/release records — with every action attributed to **your own**
Freshservice agent account.
## This file is personalized
This plugin was generated by `make-plugin` and contains **your** Freshservice
API key and the shared server token. Treat it like a password:
- Do **not** share your `.plugin` file with anyone else — they would act as you.
- If your key is exposed, regenerate it in Freshservice (Profile settings →
API key) and rebuild the plugin.
## Requirements
- You must be an agent in the PESCO Freshservice instance.
- Your computer must be able to reach the LAN server (on-site network or VPN).