Add SHD MCP plugin package

This commit is contained in:
bulava92
2026-08-24 16:51:12 +05:00
parent ce6e619731
commit 39fb5c02b7
15 changed files with 426 additions and 0 deletions
@@ -0,0 +1,43 @@
{
"name": "shd-mcp-plugin",
"version": "0.1.0",
"description": "Ready-to-install SHD workflows backed by the authenticated SHD MCP server.",
"author": {
"name": "SHD",
"url": "https://shd.xyz.su"
},
"homepage": "https://shd.xyz.su",
"repository": "https://github.com/bulava92/shd-mcp-plugin",
"license": "Proprietary",
"keywords": [
"SHD",
"projects",
"ProjectBase",
"tasks",
"finance",
"CRM",
"MCP"
],
"skills": "./skills/",
"interface": {
"displayName": "SHD MCP",
"shortDescription": "SHD projects and operations",
"longDescription": "Installable SHD MCP workflows for project status, ProjectBase audits, tasks, files, finance, CRM and safe operational workflows.",
"developerName": "SHD",
"category": "Productivity",
"capabilities": [
"Read",
"Write"
],
"websiteURL": "https://shd.xyz.su",
"brandColor": "#1E88E5",
"composerIcon": "./assets/logo.png",
"logo": "./assets/logo.png",
"defaultPrompt": [
"Покажи активные проекты с датой завершения и статусом.",
"Сделай сводку по проекту и его рискам.",
"Проверь ProjectBase без изменения данных."
]
},
"mcpServers": "./.mcp.json"
}
+9
View File
@@ -0,0 +1,9 @@
{
"mcpServers": {
"shd": {
"type": "http",
"url": "https://shd.xyz.su/mcp",
"oauth_resource": "https://shd.xyz.su/mcp"
}
}
}
+28
View File
@@ -0,0 +1,28 @@
# SHD MCP plugin package
This directory is the installable Codex plugin. It packages reusable SHD
workflow Skills and the official SHD MCP connection; it does not contain the
SHD backend or a second MCP server.
The plugin requires an SHD account authorized for the requested projects and
modules. Skills do not grant permissions or bypass server-side ACLs.
## Included workflows
- active projects with completion dates and statuses;
- project status and risk summaries;
- ProjectBase schema and data-quality audits;
- guarded task workflows;
- project file inspection and actions;
- finance and CRM read/audit workflows;
- safe bulk-change planning and validation rules.
## MCP connection
The package points to `https://shd.xyz.su/mcp` and requests OAuth for that MCP
resource. The client stores the resulting authorization; this repository never
contains an access token.
If a client or SHD installation uses another official endpoint, change the
connection in `.mcp.json` in that client's secure configuration. Do not commit
tokens, cookies, client secrets or private host credentials.
Binary file not shown.
@@ -0,0 +1,33 @@
---
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.
---
# Active SHD projects
## Workflow
1. Call `shd_list_projects` once with `archived: false` and `limit: 100`.
2. If the user supplied a search term, pass it as `q`; otherwise do not add a
search filter.
3. Use the project fields returned by that tool. Do not call
`shd_get_project` once per row just to repeat list data.
4. Sort projects with a non-null `deadline` in ascending order. Put projects
without a deadline after dated projects; do not invent a date.
5. Return the compact table:
`Проект | Дата завершения | Статус`
6. Preserve the server's project name/code and status. If a deadline is a
datetime, format it with its returned timezone when available; otherwise
keep the value unmodified and state that timezone data was unavailable.
## Boundaries
- “Активные” defaults to non-archived projects (`archived: false`). If the user
means a particular business status rather than archive state, ask which
status or report the returned statuses without filtering them locally.
- Do not use task due dates as project completion dates.
- If the server indicates more records than the tool can return, report that
the current tool limit was reached; do not claim a complete list.
- This workflow is read-only and must not update, archive or delete projects.
@@ -0,0 +1,35 @@
---
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.
---
# SHD Finance and CRM
For a high-level project overview, prefer `shd_get_project_context` and request
only the `finance` or `summary` sections needed. For a detailed request use
the module tools below.
## Finance
- Find documents with `shd_list_finance_documents`.
- Read one with `shd_get_finance_document`.
- Read payments with `shd_list_finance_payments` or
`shd_get_finance_payment`.
- Resolve allowed references with `shd_list_finance_refs`.
When auditing, compare document type, project/counterparty links, line items,
currency, totals, due dates, payment state and returned validation. Never infer
approval, payment or publication from a document's title or amount.
## CRM
- Find entities with `shd_list_crm` and read one with `shd_get_crm_entity`.
- Resolve relationships with `shd_list_crm_entity_links` and inspect available
pipelines/stages before a deal change.
- Use `shd_save_crm_entity` only for an explicitly requested create/update after
duplicate and relationship checks.
Do not approve, publish, delete, merge, move a deal stage, create a payment or
change ownership unless the user explicitly requests that exact operation.
Report IDs, resolved links, changed fields and server validation separately from
recommendations.
@@ -0,0 +1,37 @@
---
name: shd-project-db-audit
description: Use when the user asks to inspect ProjectBase tables, validate project data, find duplicate or broken links, or audit ProjectBase quality without changing records.
---
# ProjectBase audit
## Workflow
1. Resolve the canonical Base identity. A supplied `project_code` is accepted
as the legacy alias only when the server accepts it; prefer the returned
Base identity for subsequent calls.
2. If no table is named, call `shd_project_db_tables` first and select only the
relevant tables. Do not load every table by default.
3. Call `shd_project_db_schema` for each selected table before reading its
records. Pass the table explicitly when a single-table audit is requested.
4. Call `shd_project_db_records` with bounded reads and the selected table.
5. Compare records with the returned schema and report only evidence visible in
the response.
## Findings
Check for duplicate business numbers, missing required values, invalid select
values, unresolved linked records, orphaned references, conflicting DALI or
electrical identifiers, formula/derived-field risks and incomplete source data
when the selected tables expose those fields.
Report `table → record → field → observed value → reason → priority`. Distinguish
confirmed defects from data that could not be checked because the schema or
records were unavailable.
## Safety
This workflow is read-only. Do not call create, update, delete, import, bulk
upsert or generic action tools while auditing. If the user asks to repair
findings, first present the proposed records and then use the dedicated
validation/dry-run contract before any explicit write.
@@ -0,0 +1,28 @@
---
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.
---
# SHD project files
## Resolve paths
1. Call `shd_list_files` with the exact `project_code` and, when supplied, the
path.
2. Resolve the exact file or directory path and distinguish files from
directories before any action.
3. Use `shd_get_file_link` only when the user asks for a temporary file link or
download.
## Actions
`shd_create_file_action` supports the explicit actions `share-link`, `zip-link`,
`rename`, `move` and `delete`. Use the exact action matching the request. For
rename, move and delete, confirm the source/destination and replacement scope
from the current listing first. Mutating actions require a stable
`idempotency_key`; delete additionally requires `confirm: true` and the server
version/confirmation fields accepted by its schema.
Do not expose bearer tokens or raw secret material in prose or logs. Return a
temporary URL only when the user explicitly asks for it. Do not overwrite,
publish, share or delete a path merely because the user asked to inspect it.
@@ -0,0 +1,39 @@
---
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.
---
# SHD project status
## Resolve the project
- If the user supplied an exact project code, use it directly.
- If the user supplied only a name, call `shd_list_projects` with `q` once,
choose only an unambiguous exact match, and ask for the project code when
multiple projects match.
## Read the context
For a full summary call `shd_get_project_context` with the resolved
`project_code`, `include` set to the requested sections, and
`limit_per_section: 100`. The available sections are:
`summary`, `tasks`, `discussions`, `documents`, `finance`, `terms`, `agents`.
Request only the sections needed for a narrow question. Do not pretend that a
section is empty when the server reported it unavailable or the user lacks
access.
## Report
Separate the result into:
- confirmed project state;
- current deadlines or status values returned by SHD;
- blockers and risks supported by retrieved records;
- next actions, clearly marked as recommendations;
- unavailable or unresolved sections.
Do not convert a task deadline into a project deadline, infer a completion date
from activity, or claim deployment success from a status field. This workflow is
read-only unless the user separately requests a specific change.
@@ -0,0 +1,45 @@
---
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.
---
# SHD routing and safety
SHD MCP is the source of truth for live data, tool schemas, permissions,
organization/project scope, conflicts, idempotency, audit and persisted
readback. Do not invent fields, statuses, identifiers, routes or capabilities.
## Route the request
- Project list, project status, deadlines or project context: use the Projects
Core tools and the `shd-active-projects` or `shd-project-status` workflow.
- ProjectBase schema, records, links or data quality: use Project DB tools and
the `shd-project-db-audit` workflow.
- Tasks, task projects, task status or task dates: use Tasks tools and the
`shd-task-workflow` workflow.
- Project files and paths: use Files tools and the `shd-project-files` workflow.
- Finance or CRM records: use the specific module tools and the
`shd-finance-crm` workflow; use project context for a high-level overview.
- A multi-record change: use `shd-safe-bulk-change` before any mutation.
Use `shd_capabilities` only when the available module or permission boundary is
unclear. If a tool or module is unavailable, report that fact instead of
falling back to an undocumented endpoint.
## Read-first rule
For every write, first read the target and its relevant schema or metadata.
Only perform a mutation when the user explicitly requested that mutation. A
request to inspect, summarize, compare, audit or suggest is not permission to
write.
Preserve the exact server result. Separate confirmed values from inference,
and include affected identifiers, conflicts, validation errors and final
readback when the server returns them.
## Scope and secrets
Never ask for or expose access tokens, passwords, cookies, private keys, raw
public-link bearer tokens or integration secrets. Never use a user-provided
project name as an identifier when SHD has not resolved it to a returned
project code or ID.
@@ -0,0 +1,28 @@
---
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.
---
# Safe SHD bulk changes
## Plan first
1. Confirm the target module, organization/project scope, exact match rule and
intended side effect.
2. Read current schemas and records. Estimate affected, skipped, invalid and
ambiguous rows.
3. Prefer a server validation or dry-run operation. For ProjectBase use
`shd_project_db_validate_records`, then
`shd_project_db_bulk_create_records` or
`shd_project_db_bulk_upsert_records` with `dry_run: true` when applicable.
4. Present the plan and stop unless the user explicitly authorized execution.
## Execute safely
Use stable idempotency keys, expected versions and exact match fields accepted
by the selected tool. Do not silently widen a project, organization, table or
record filter. Do not convert a failed or conflicting row into a new record.
After execution, report created, updated, skipped, rejected and conflicted
rows, then use the server's persisted readback when available. Destructive
operations require explicit confirmation and remain subject to server ACL.
@@ -0,0 +1,37 @@
---
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.
---
# SHD task workflow
## Read and resolve
- Use `shd_list_task_projects` when the request concerns a task project or its
status.
- Use `shd_list_tasks` with `project_code`, `project_id`, `q`, `archived`,
`limit` or `offset` to find tasks.
- Use `shd_get_task` for one resolved task and
`shd_get_task_project_meta` for statuses, tags, sprints, views and custom
fields.
- Read comments or attachments only when they are relevant to the request.
Do not create a task from an ambiguous project name or duplicate a task that
already matches the request.
## Mutations
Only mutate when the user explicitly asks for the exact operation:
- create with `shd_create_task`;
- update fields with `shd_update_task`;
- change status with `shd_update_task_status`;
- archive with `shd_archive_task`;
- delete with `shd_delete_task` and the server's explicit confirmation contract.
Before updating, pass the latest `updated_at` when the tool accepts it. Use an
idempotency key when the tool schema accepts one. If the server reports a
conflict, stop and show the current state; do not overwrite it by guessing.
Report the task ID, changed fields, server validation, conflict state and final
status. Never treat a suggested change as authorization to execute it.