| name | hub-publish |
| description | Generate a self-contained HTML report and publish it to Hub via MCP. Use when the user wants to share an explanation, data review, context doc, or report with colleagues. Triggers on: "post report", "publish to hub", "share this report", "hub report", or after generating HTML artifacts for team sharing.
|
Hub Publish
Publish rich HTML reports to a Hub instance and return a shareable link.
Hub can be hosted three ways (transparent to publishing): local (the user's
machine over Tailscale Serve), server (a shared always-on box reached over a
VPN/tailnet), or connect (the agent points at someone else's shared Hub).
post_report works the same in all three — it returns the report's url.
Workflow
-
Confirm visibility if the user did not specify:
private — default for sensitive or draft content
shareable — visible to others
- Note: in server mode the network (VPN/tailnet) is the access boundary, so
anyone who can reach the server sees every report regardless of visibility.
Warn before publishing sensitive content to a shared server.
-
Generate HTML using skills/hub-publish/template.html as the shell:
-
Publish via MCP tool post_report:
post_report(
html=<full html string>,
title=<descriptive title>,
visibility="private" | "shareable",
tags=[...], # optional
project=<name> # optional
)
-
Open, then return:
- Open the report in the user's browser by default so it pops up without
them clicking (macOS:
open <url>, Linux: xdg-open <url>, Windows:
start <url>), and copy the link to the clipboard where possible
(macOS: printf %s <url> | pbcopy). Skip auto-open only if the user has
said they don't want it.
- Then tell them the
url, that it's reachable on the tailnet/VPN (not the
public internet), and the visibility used.
Content guidelines
- Use clear headings and scannable sections
- Tables for structured data; keep columns readable
- Add a short summary at the top
- For flowcharts, sequence diagrams, or architecture sketches, use Mermaid blocks (see above)
- For sensitive data, default to
private and warn before sharing
If MCP is unavailable
The Hub MCP isn't registered yet. Pick the mode that fits, then ask the user to
restart their agent (see the repo README.md for details):
cd /path/to/hub && uv sync
uv run hub init --mcp
uv run hub connect --url http://<server>:8000 --token <token> --mcp
See the Troubleshooting section in the README if tools still don't appear.