feat: complete SHD MCP plugin workflows and widget
Validate SHD MCP plugin / validate (push) Has been cancelled

This commit is contained in:
2026-08-24 17:25:38 +03:00
parent 39fb5c02b7
commit 08cf3672a4
86 changed files with 1707 additions and 5 deletions
+51 -2
View File
@@ -10,9 +10,13 @@ The package contains:
- `.codex-plugin/plugin.json` — plugin metadata;
- `.mcp.json` — the official SHD Streamable HTTP MCP endpoint;
- `skills/` — routing, project, ProjectBase, task, file, finance and CRM
workflows;
- `skills/` — routing, project, ProjectBase, task, file, finance, CRM,
analytics, estimates, scheduling, entity resolution, Wiki, discussions,
documents, organizations/ACL, notifications, inventory, agents, status-page,
realtime/activity, Terms/contracts and Gitea workflows;
- `assets/` — plugin branding;
- `widgets/` — versioned MCP Apps resources with manifest, checksum and
provenance metadata;
- `.agents/plugins/marketplace.json` — a ready local marketplace entry.
It does not contain the SHD Laravel application, database code or credentials.
@@ -36,6 +40,36 @@ git clone https://git.xyz.su/shd/shd-mcp-plugin.git
After installation, start a new Codex thread so the plugin Skills are loaded.
## ChatGPT custom app
ChatGPT uses the same SHD MCP server connection, but it is added separately in
the ChatGPT account: open Settings → Apps/Connectors → Developer mode, create
a custom app and set the MCP URL to `https://shd.xyz.su/mcp`. Complete the SHD
OAuth flow and refresh the app after server metadata changes.
The active-projects result can render an inline MCP Apps widget. It is a small
read-only dashboard with:
- `Проект → Дата завершения → Статус`;
- sorting by the nearest deadline;
- local search by project name/code;
- a refresh action and a read-only project-details panel.
If the host does not support MCP Apps UI, the data tool and the plain Markdown
table remain fully usable.
The backend serves the checked-in widget artifact at
`ui://shd/active-projects/v1.html`; its manifest and `SHA256SUMS` are kept next
to the HTML resource under `plugins/shd-mcp-plugin/widgets/active-projects/v1/`.
The official OpenAI directory is optional. It is useful for public discovery,
one-click installation and review of a public app; it is not required for an
internal team or a manually added ChatGPT custom app. See the official
[MCP server guide](https://developers.openai.com/plugins/build/mcp-server),
[UI guide](https://developers.openai.com/plugins/build/chatgpt-ui), and
[submission guide](https://developers.openai.com/plugins/deploy/submission)
when public listing is the goal.
## Connect SHD
Installation and authorization are separate steps:
@@ -63,9 +97,24 @@ repository packages the workflows; it does not grant access to the server.
the project is archived; verify permissions in SHD.
- **A write is rejected:** the server ACL, required role, version or conflict
check rejected it. Do not bypass the error with a different token.
- **A module is not covered by a dedicated skill:** use `shd-routing`; the MCP
server still exposes the current authenticated tool catalog, while skills
provide focused workflow and safety guidance for common module operations.
- **Another SHD installation is required:** use its approved MCP URL and its
OAuth resource in the client's secure connection configuration.
## Local validation
From the repository root:
```bash
python3 -m unittest discover -s tests -v
sha256sum --check plugins/shd-mcp-plugin/widgets/active-projects/v1/SHA256SUMS
```
The full release boundary, including backend deployment and authenticated
ChatGPT/browser checks, is documented in [RELEASE.md](RELEASE.md).
## Development
Keep changes inside the plugin package. Do not copy backend implementation into