feat: add module-scoped skills and workflows

This commit is contained in:
2026-09-21 22:34:29 +03:00
parent c28a32f4d7
commit c0c9382143
30 changed files with 140 additions and 2 deletions
@@ -1,6 +1,6 @@
{ {
"name": "shd-mcp-plugin", "name": "shd-mcp-plugin",
"version": "0.5.1", "version": "0.5.2",
"description": "Ready-to-install SHD workflows backed by the authenticated SHD MCP server.", "description": "Ready-to-install SHD workflows backed by the authenticated SHD MCP server.",
"author": { "author": {
"name": "SHD", "name": "SHD",
@@ -18,6 +18,10 @@
"CRM", "CRM",
"documents", "documents",
"inventory", "inventory",
"services",
"short-links",
"system-base",
"profile",
"organizations", "organizations",
"notifications", "notifications",
"realtime", "realtime",
@@ -28,7 +32,7 @@
"interface": { "interface": {
"displayName": "SHD MCP", "displayName": "SHD MCP",
"shortDescription": "SHD projects and operations", "shortDescription": "SHD projects and operations",
"longDescription": "Installable SHD MCP workflows for projects, ProjectBase, tasks, files, finance, CRM, documents, access control, inventory, notifications, realtime, status monitoring and linked Gitea operations.", "longDescription": "Installable SHD MCP workflows for projects, ProjectBase, tasks, files, finance, CRM, documents, service catalog, short links, profile, global System Base, access control, inventory, notifications, realtime, status monitoring and linked Gitea operations.",
"developerName": "SHD", "developerName": "SHD",
"category": "Productivity", "category": "Productivity",
"capabilities": [ "capabilities": [
+6
View File
@@ -6,6 +6,9 @@ SHD backend or a second MCP server.
The plugin requires an SHD account authorized for the requested projects and The plugin requires an SHD account authorized for the requested projects and
modules. Skills do not grant permissions or bypass server-side ACLs. modules. Skills do not grant permissions or bypass server-side ACLs.
Each Skill declares its module scope; the MCP server filters Skill discovery
and Skill resources by the authenticated module access in the same way as
prompts and data resources.
## Included workflows ## Included workflows
@@ -26,6 +29,9 @@ modules. Skills do not grant permissions or bypass server-side ACLs.
- organizations, members, invitations, ACL and two-factor policies; - organizations, members, invitations, ACL and two-factor policies;
- notifications, preferences and read-state workflows; - notifications, preferences and read-state workflows;
- inventory, assets, stock, procurement and stocktake workflows; - inventory, assets, stock, procurement and stocktake workflows;
- service catalog, version, approval and site-publication workflows;
- short-link, public-alias, rotation and revocation workflows;
- global System Base and authenticated profile workflows;
- agent/controller diagnostics, tunnels, endpoints and runtime actions; - agent/controller diagnostics, tunnels, endpoints and runtime actions;
- status-page monitors, groups, history and incidents; - status-page monitors, groups, history and incidents;
- realtime sessions, event cursors and operational activity; - realtime sessions, event cursors and operational activity;
@@ -1,6 +1,7 @@
--- ---
name: shd-active-projects name: shd-active-projects
description: Use when the user asks for all active SHD projects, project deadlines, project statuses, or a project register sorted by the nearest completion date. description: Use when the user asks for all active SHD projects, project deadlines, project statuses, or a project register sorted by the nearest completion date.
metadata: modules=projects-core
--- ---
# Active SHD projects # Active SHD projects
@@ -1,6 +1,7 @@
--- ---
name: shd-agents-operations name: shd-agents-operations
description: Use when the user asks to inspect SHD agents, controllers, diagnostics, tunnels, access rules, endpoints, monitoring or agent runtime actions. description: Use when the user asks to inspect SHD agents, controllers, diagnostics, tunnels, access rules, endpoints, monitoring or agent runtime actions.
metadata: modules=agents,controller-integrations
--- ---
# SHD agents operations # SHD agents operations
@@ -1,6 +1,7 @@
--- ---
name: shd-airbase-audit name: shd-airbase-audit
description: Use when the user asks to inspect AirBase tables, validate project data, find duplicate or broken links, or audit AirBase quality without changing records. description: Use when the user asks to inspect AirBase tables, validate project data, find duplicate or broken links, or audit AirBase quality without changing records.
metadata: modules=airbase
--- ---
# AirBase audit # AirBase audit
@@ -1,6 +1,7 @@
--- ---
name: shd-analytics name: shd-analytics
description: Use when the user asks for SHD project or company analytics, trends, comparisons, metrics, charts, reports, or time summaries. description: Use when the user asks for SHD project or company analytics, trends, comparisons, metrics, charts, reports, or time summaries.
metadata: modules=*
--- ---
# SHD analytics and reports # SHD analytics and reports
@@ -0,0 +1,15 @@
---
name: shd-auth-profile
description: Use when the user asks to inspect or update the authenticated SHD profile or unlink the authenticated OIDC profile.
metadata: modules=auth-profile
---
# SHD authenticated profile
- Read `shd://me` or call `shd_get_current_user` before changing profile data.
- Update only safe fields explicitly requested by the user. Email, password,
sessions, recovery data, access flags and tokens are outside this workflow.
- Unlink OIDC only on an explicit request and only after the server confirms
that another sign-in method remains available. Preserve concurrency values,
idempotency and the server readback.
- Never expose OIDC subjects, credentials, tokens or recovery information.
@@ -1,6 +1,7 @@
--- ---
name: shd-discussions name: shd-discussions
description: Use when the user asks to find, read, search, create or edit SHD discussion channels, topics, messages or attachments. description: Use when the user asks to find, read, search, create or edit SHD discussion channels, topics, messages or attachments.
metadata: modules=discussions
--- ---
# SHD discussions # SHD discussions
@@ -1,6 +1,7 @@
--- ---
name: shd-documents name: shd-documents
description: Use when the user asks to inspect, generate, send, publish, revise or audit SHD documents, templates, comments or public links. description: Use when the user asks to inspect, generate, send, publish, revise or audit SHD documents, templates, comments or public links.
metadata: modules=documents
--- ---
# SHD documents # SHD documents
@@ -1,6 +1,7 @@
--- ---
name: shd-entity-resolution name: shd-entity-resolution
description: Use when the user asks to find a CRM entity, resolve duplicate names, compare counterparties, or determine whether records refer to the same business object. description: Use when the user asks to find a CRM entity, resolve duplicate names, compare counterparties, or determine whether records refer to the same business object.
metadata: modules=*
--- ---
# SHD entity resolution # SHD entity resolution
@@ -1,6 +1,7 @@
--- ---
name: shd-estimate-management name: shd-estimate-management
description: Use when the user asks to inspect, compare, validate, create or update SHD estimates, proposals, terms or document contracts. description: Use when the user asks to inspect, compare, validate, create or update SHD estimates, proposals, terms or document contracts.
metadata: modules=proposal,documents,pdf-scheme-editor
--- ---
# SHD estimates and proposal documents # SHD estimates and proposal documents
@@ -1,6 +1,7 @@
--- ---
name: shd-event-positions name: shd-event-positions
description: Use when the user asks about SHD events, booking availability, scheduling slots, event types or booking positions. description: Use when the user asks about SHD events, booking availability, scheduling slots, event types or booking positions.
metadata: modules=scheduling
--- ---
# SHD events and scheduling # SHD events and scheduling
@@ -1,6 +1,7 @@
--- ---
name: shd-finance-crm name: shd-finance-crm
description: Use when the user asks for finance or CRM information, document/payment checks, customer records, deals, relationships, or a project business overview in SHD. description: Use when the user asks for finance or CRM information, document/payment checks, customer records, deals, relationships, or a project business overview in SHD.
metadata: modules=finance,crm
--- ---
# SHD Finance and CRM # SHD Finance and CRM
@@ -1,6 +1,7 @@
--- ---
name: shd-financial-account-audit name: shd-financial-account-audit
description: Use when the user asks to audit SHD finance accounts, balances, payments, documents, allocations, settlements or finance history. description: Use when the user asks to audit SHD finance accounts, balances, payments, documents, allocations, settlements or finance history.
metadata: modules=finance
--- ---
# SHD financial audit # SHD financial audit
@@ -1,6 +1,7 @@
--- ---
name: shd-gitea name: shd-gitea
description: Use when the user asks to inspect or manage SHD-linked Gitea issues, labels, comments or issue attachments. description: Use when the user asks to inspect or manage SHD-linked Gitea issues, labels, comments or issue attachments.
metadata: modules=gitea
--- ---
# SHD Gitea # SHD Gitea
@@ -1,6 +1,7 @@
--- ---
name: shd-inventory name: shd-inventory
description: Use when the user asks to inspect or change SHD inventory items, assets, stock, procurement, reservations, receipts or stocktakes. description: Use when the user asks to inspect or change SHD inventory items, assets, stock, procurement, reservations, receipts or stocktakes.
metadata: modules=inventory
--- ---
# SHD inventory # SHD inventory
@@ -1,6 +1,7 @@
--- ---
name: shd-notifications name: shd-notifications
description: Use when the user asks to inspect SHD notifications, notification modules, read state or preferences, or mark notifications read. description: Use when the user asks to inspect SHD notifications, notification modules, read state or preferences, or mark notifications read.
metadata: modules=notifications
--- ---
# SHD notifications # SHD notifications
@@ -1,6 +1,7 @@
--- ---
name: shd-organizations-acl name: shd-organizations-acl
description: Use when the user asks to inspect or change SHD organizations, members, invitations, roles, access audits or two-factor policies. description: Use when the user asks to inspect or change SHD organizations, members, invitations, roles, access audits or two-factor policies.
metadata: modules=organizations
--- ---
# SHD organizations and ACL # SHD organizations and ACL
@@ -1,6 +1,7 @@
--- ---
name: shd-project-files name: shd-project-files
description: Use when the user asks to inspect project files, obtain a file link, share or zip a file, rename or move a path, or delete project files. description: Use when the user asks to inspect project files, obtain a file link, share or zip a file, rename or move a path, or delete project files.
metadata: modules=files
--- ---
# SHD project files # SHD project files
@@ -1,6 +1,7 @@
--- ---
name: shd-project-status name: shd-project-status
description: Use when the user asks for a status report, operational summary, risks, blockers, next actions, or a cross-module overview of one SHD project. description: Use when the user asks for a status report, operational summary, risks, blockers, next actions, or a cross-module overview of one SHD project.
metadata: modules=projects-core
--- ---
# SHD project status # SHD project status
@@ -1,6 +1,7 @@
--- ---
name: shd-realtime-activity name: shd-realtime-activity
description: Use when the user asks to inspect SHD realtime events, start or terminate a realtime session, or review operational activity and audit history. description: Use when the user asks to inspect SHD realtime events, start or terminate a realtime session, or review operational activity and audit history.
metadata: modules=realtime
--- ---
# SHD realtime and activity # SHD realtime and activity
@@ -1,6 +1,7 @@
--- ---
name: shd-routing name: shd-routing
description: Use for any request that asks SHD for data, a project operation, a module workflow, or a change to SHD records. Route the request to the narrowest existing SHD MCP tool and preserve server-side permissions. description: Use for any request that asks SHD for data, a project operation, a module workflow, or a change to SHD records. Route the request to the narrowest existing SHD MCP tool and preserve server-side permissions.
metadata: modules=*
--- ---
# SHD routing and safety # SHD routing and safety
@@ -22,6 +23,14 @@ readback. Do not invent fields, statuses, identifiers, routes or capabilities.
- Documents, templates, revisions, PDFs or publication links: use Documents tools and the `shd-documents` workflow. - Documents, templates, revisions, PDFs or publication links: use Documents tools and the `shd-documents` workflow.
- Organizations, members, invitations, roles or two-factor policy: use Organizations tools and the `shd-organizations-acl` workflow. - Organizations, members, invitations, roles or two-factor policy: use Organizations tools and the `shd-organizations-acl` workflow.
- Notifications, preferences or read state: use Notifications tools and the `shd-notifications` workflow. - Notifications, preferences or read state: use Notifications tools and the `shd-notifications` workflow.
- Services, versions, approvals or site publications: use Services tools and
the `shd-services` workflow.
- Short links, public aliases, rotation or revocation: use Short Links tools
and the `shd-short-links` workflow.
- Global System Base tables or records: use System Base tools and the
`shd-system-base` workflow. Do not substitute AirBase tools.
- Authenticated profile or OIDC link changes: use Profile tools and the
`shd-auth-profile` workflow.
- Inventory, stock, assets, procurement or stocktakes: use Inventory tools and the `shd-inventory` workflow. - Inventory, stock, assets, procurement or stocktakes: use Inventory tools and the `shd-inventory` workflow.
- Agents, controllers, diagnostics, tunnels or network access: use Agents tools and the `shd-agents-operations` workflow. - Agents, controllers, diagnostics, tunnels or network access: use Agents tools and the `shd-agents-operations` workflow.
- Controller devices, current states, presence/history or sensor statistics: use the controller-integrations source tools; in a UI-capable host call the matching controller render tool after the data tool and before the final response (`shd_render_controller_devices_widget`, `shd_render_controller_live_state_widget`, `shd_render_controller_history_widget` or `shd_render_controller_statistics_widget`). For one statistics series, render the final result once; for several explicitly requested series, collect them into one `data.series` collection and render one summary widget, not one widget per retry, metric field or inventory match. - Controller devices, current states, presence/history or sensor statistics: use the controller-integrations source tools; in a UI-capable host call the matching controller render tool after the data tool and before the final response (`shd_render_controller_devices_widget`, `shd_render_controller_live_state_widget`, `shd_render_controller_history_widget` or `shd_render_controller_statistics_widget`). For one statistics series, render the final result once; for several explicitly requested series, collect them into one `data.series` collection and render one summary widget, not one widget per retry, metric field or inventory match.
@@ -1,6 +1,7 @@
--- ---
name: shd-safe-bulk-change name: shd-safe-bulk-change
description: Use before any SHD bulk create, update, import, archive, delete, or other multi-record mutation, and whenever the user asks to plan a mass change. description: Use before any SHD bulk create, update, import, archive, delete, or other multi-record mutation, and whenever the user asks to plan a mass change.
metadata: modules=*
--- ---
# Safe SHD bulk changes # Safe SHD bulk changes
@@ -0,0 +1,34 @@
---
name: shd-services
description: Use when the user asks to inspect or change the SHD service catalog, service versions, approvals, lifecycle or site publications.
metadata: modules=services
---
# SHD services catalog
## Inspect and resolve
- Resolve the organization service and exact version from server results; do
not use a guessed name or slug as a mutation target.
- Read the service, versions, usage, categories and existing publication state
relevant to the request before changing anything.
- Keep draft, pending approval, published, failed, revoked, archived and
restored states separate. Do not infer a publication result from a version
status alone.
## Draft and lifecycle changes
- Creating or editing a service, category or draft version requires explicit
intent. Preserve the returned revision and server validation.
- Publish, approve, archive, restore or discard only the exact requested
lifecycle transition. Do not publish a draft as a side effect of editing it.
- Before archiving, inspect usage and publications and preserve any required
confirmation for public publications.
## Site publication
- Resolve the exact site, version and publication before publishing, revoking or
retrying. Use a fresh idempotency key for publication and retry operations.
- Report service, version and publication IDs, server validation, resulting
state and persisted readback. Never expose private publication credentials or
invent a public URL.
@@ -0,0 +1,23 @@
---
name: shd-short-links
description: Use when the user asks to inspect or change SHD short links, public aliases, link targets, rotation, revocation or aggregate link statistics.
metadata: modules=short-links
---
# SHD short links
## Inspect and resolve
- Resolve the exact link ID, owner, project, alias and current status from
`shd_list_short_links` or `shd_get_short_link` before changing it.
- Keep active, revoked, expired, disabled and retired links distinct. Treat
target URLs, access flags and public aliases as sensitive data.
## Mutations
- Create or update only the explicitly requested link fields. Preserve
`expected_updated_at` and the server's idempotency/readback contract.
- Revoke or rotate only on an explicit request with `confirm=true`, current
concurrency data and a fresh idempotency key.
- Never expose bearer tokens, private redirect data or inferred access rights.
Report the link ID, alias, status, affected fields and server result.
@@ -1,6 +1,7 @@
--- ---
name: shd-status-page name: shd-status-page
description: Use when the user asks to inspect SHD status-page monitors, history, groups or incidents, or to change public status monitoring. description: Use when the user asks to inspect SHD status-page monitors, history, groups or incidents, or to change public status monitoring.
metadata: modules=status-page
--- ---
# SHD status page # SHD status page
@@ -0,0 +1,24 @@
---
name: shd-system-base
description: Use when the user explicitly asks to inspect or change an allowlisted global SHD System Base table or record.
metadata: modules=system-base
---
# SHD System Base
## Scope
- System Base is global and is not project-scoped or interchangeable with
AirBase. Resolve the allowlisted table, record ID and field ID from server
results before any write.
- Read the table schema and current record or cell first. Preserve the returned
`record_version`, expected value and mutation readback.
## Mutations
- Update one explicitly requested cell with a fresh idempotency key and the
current expected value when available.
- Delete only on an explicit request with `confirm=true`, current
`expected_version` and a fresh idempotency key.
- Do not invent table names, field IDs or values, broaden filters, use System
Base for AirBase data, or reveal global records outside the server result.
@@ -1,6 +1,7 @@
--- ---
name: shd-task-workflow name: shd-task-workflow
description: Use when the user asks to find, inspect, create, update, reschedule, archive, or delete SHD tasks or task-project data. description: Use when the user asks to find, inspect, create, update, reschedule, archive, or delete SHD tasks or task-project data.
metadata: modules=tasks
--- ---
# SHD task workflow # SHD task workflow
@@ -1,6 +1,7 @@
--- ---
name: shd-terms-contracts name: shd-terms-contracts
description: Use when the user asks to inspect, compare, discuss, revise or restore SHD Terms documents and contract points. description: Use when the user asks to inspect, compare, discuss, revise or restore SHD Terms documents and contract points.
metadata: modules=documents,proposal
--- ---
# SHD Terms and contracts # SHD Terms and contracts
@@ -1,6 +1,7 @@
--- ---
name: shd-wiki-management name: shd-wiki-management
description: Use when the user asks to search, read, compare, create or update SHD Wiki, notes, pages, collections, databases, revisions or attachments. description: Use when the user asks to search, read, compare, create or update SHD Wiki, notes, pages, collections, databases, revisions or attachments.
metadata: modules=notes
--- ---
# SHD Wiki and notes # SHD Wiki and notes