MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Open a change request in HaloPSA / HaloITSM through a discover-preview-confirm-submit workflow, with the confirmed change ticket type cached in Memory.
$ npx skills add automateyournetwork/netclaw --skill halo-change-request -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install automateyournetwork/netclaw halo-change-request --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/automateyournetwork/netclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/workspace/skills/halo-change-request .claude/skills/halo-change-request && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "halo-change-request" agent skill from https://github.com/automateyournetwork/netclaw/tree/main/workspace/skills/halo-change-request into .claude/skills/halo-change-request/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "halo-change-request", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/automateyournetwork/netclaw/tree/main/workspace/skills/halo-change-requestType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add automateyournetwork/netclaw --skill halo-change-request -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install automateyournetwork/netclaw halo-change-request --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/automateyournetwork/netclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/workspace/skills/halo-change-request .agents/skills/halo-change-request && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "halo-change-request" agent skill from https://github.com/automateyournetwork/netclaw/tree/main/workspace/skills/halo-change-request into .agents/skills/halo-change-request/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "halo-change-request", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add automateyournetwork/netclaw --skill halo-change-request -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install automateyournetwork/netclaw halo-change-request --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/automateyournetwork/netclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/workspace/skills/halo-change-request .cursor/skills/halo-change-request && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "halo-change-request" agent skill from https://github.com/automateyournetwork/netclaw/tree/main/workspace/skills/halo-change-request into .cursor/skills/halo-change-request/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "halo-change-request", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/automateyournetwork/netclaw.git --path workspace/skills/halo-change-request--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add automateyournetwork/netclaw --skill halo-change-request -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install automateyournetwork/netclaw halo-change-request --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/automateyournetwork/netclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/workspace/skills/halo-change-request .gemini/skills/halo-change-request && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "halo-change-request" agent skill from https://github.com/automateyournetwork/netclaw/tree/main/workspace/skills/halo-change-request into .gemini/skills/halo-change-request/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "halo-change-request", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install automateyournetwork/netclaw halo-change-requestInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add automateyournetwork/netclaw --skill halo-change-request -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/automateyournetwork/netclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/workspace/skills/halo-change-request .github/skills/halo-change-request && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "halo-change-request" agent skill from https://github.com/automateyournetwork/netclaw/tree/main/workspace/skills/halo-change-request into .github/skills/halo-change-request/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "halo-change-request", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add automateyournetwork/netclaw --skill halo-change-request -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install automateyournetwork/netclaw halo-change-request --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/automateyournetwork/netclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/workspace/skills/halo-change-request .opencode/skills/halo-change-request && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "halo-change-request" agent skill from https://github.com/automateyournetwork/netclaw/tree/main/workspace/skills/halo-change-request into .opencode/skills/halo-change-request/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "halo-change-request", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
halo-change-requestOpen a change request in HaloPSA / HaloITSM through a discover-preview-confirm-submit workflow, with the confirmed change ticket type cached in Memory.
Halo Change Request is an agent skill from automateyournetwork/netclaw. Open a change request in HaloPSA / HaloITSM through a discover-preview-confirm-submit workflow, with the confirmed change ticket type cached in Memory. Use when raising a Halo change, opening a CR in Halo, submitting a change ticket, or asking NetClaw to file a change in HaloPSA.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows. It works with Model Context Protocol and Python. The repository describes itself as: An AI agent that claws through your network. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit aa90e7d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
HALO_CLIENT_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Halo Change Request loads about 3.2k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 1,465 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from automateyournetwork/netclaw at commit aa90e7d, republished under its Apache-2.0 licence (© automateyournetwork). 1,465 words, ~3,243 tokens.
.claude/skills/halo-change-request/SKILL.md (or your agent's skills folder).Open a change request in Halo through a strict discover -> preview -> confirm -> submit flow. Halo is HaloPSA / HaloITSM (the same product and the same REST API — HaloPSA is the MSP edition, HaloITSM the internal-IT edition). A "change request" in Halo is not a fixed object type: it is simply a ticket type ("Request Type") whose numeric id and custom fields are configured per organization — and an org often defines several change types (for example a customer-facing change and an internal change). This skill figures out which change is being raised, discovers the matching type, confirms it with a human, remembers it per category, learns its fields, and gates the single write behind explicit approval.
halo-mcp (NetClaw-authored, mcp-servers/halo-mcp/)python3 -u mcp-servers/halo-mcp/halo_mcp_server.py (stdio transport)HALO_CLIENT_ID / HALO_CLIENT_SECRET against HALO_BASE_URL (token from <base>/auth/token, resource API at <base>/api)fastmcp, httpx, python-dotenvhalo_create_change_request is the ONLY tool in the entire server that can mutate Halo, and it previews (no write) unless submit=true.This skill also uses the Memory MCP server (memory-mcp) to cache the confirmed change ticket type per Halo tenant.
| Tool | Parameters | What It Does |
|---|---|---|
halo_list_ticket_types | can_create_only?, customer?, showcounts? | Discover ticket types ("Request Types"). Use can_create_only=true to find the org's CHANGE type |
halo_get_ticket_type | ticket_type | Authoritative field schema for a type — required/optional/visible field definitions |
halo_list_fields | custom_only? | Master FieldInfo catalog (ids <-> names <-> dropdown option values) |
halo_get_field | field | One field definition by numeric id, with its lookup values |
halo_list_tickets | ticket_type?, customer?, asset_id?, status?, open_only?, search? | Find a sample existing change to copy field patterns from |
halo_get_ticket | ticket (numeric id) | Read one populated ticket as a concrete example |
halo_create_change_request | summary, details, ticket_type, customer?, site?, user?, asset?, custom_fields?, submit=false | THE ONLY WRITE. Previews the exact POST body unless submit=true |
halo_list_clients | search? | Resolve a Halo Client name to its id (the customer param) |
halo_list_sites | customer?, search? | Resolve a site within a client |
halo_list_users | customer?, site_id?, search? | Resolve the requesting contact/user |
memory_get_facts | entity, key? | Recall the tenant's change-type catalog (key="change_ticket_types") |
memory_record_fact | entity, key, value, metadata? | Merge a confirmed change type ({id, name, category}) into the catalog |
memory_record_decision | context, decision, rationale, ... | Log the human's ticket-type confirmation |
memory_invalidate | fact_id, reason | Retire a cached ticket type that no longer resolves |
customer param (a client name or numeric id), which the server resolves to a client_id. When someone says "the client," they mean this.halo_create_change_request with submit=false performs NO HTTP write; it returns the exact array body that would be POSTed to /api/Tickets. The real POST happens only on a second call with submit=true.The full change-request flow, step by step. Do not skip steps (a) or (c).
An organization usually has more than one change type — most commonly a customer change (raised against a client) and an internal change (internal IT / infrastructure), and sometimes standard / normal / emergency splits. So first decide which change this is, then resolve the matching type. Never assume there is only one.
Decide the category. Infer from context: a change scoped to a specific
customer/client is a customer change; a change with no client (internal infra,
your own systems) is an internal change. If it is at all ambiguous, ASK the
operator — e.g. "Is this a customer change or an internal change?" Use a short
lowercase label for the category (customer, internal, emergency, ...).
Recall the tenant's change-type catalog:
memory_get_facts(entity="halo-<tenant>", key="change_ticket_types")The value is a list of {"id":..., "name":..., "category":...} — the change types
already confirmed for this instance. <tenant> is from HALO_TENANT, or the host
of HALO_BASE_URL (e.g. halo-acme for acme.halopsa.com).
If the needed category is already in the catalog, validate it still resolves
with halo_get_ticket_type(ticket_type=<id>):
memory_invalidate the stale fact when you rewrite the catalog.If the category is missing (or was invalidated), discover:
halo_list_ticket_types(can_create_only=true)This commonly returns several change-shaped types (e.g. "Change Request",
"Internal Change", "Emergency Change"). Present the candidates and ask the
operator which one is the <category> change — do NOT auto-pick when more than
one looks like a change, and do NOT collapse them into a single "the change type".
On confirmation, merge it into the catalog (add the new category; keep the others — do not overwrite the whole list with a single entry):
memory_record_fact(entity="halo-<tenant>", key="change_ticket_types",
value=<updated JSON list including {"id":<id>,"name":"<name>","category":"<category>"}>)
memory_record_decision(context="Halo change type for <tenant> / <category>",
decision="Use ticket type <id> (<name>) for <category> changes",
rationale="Operator-confirmed from halo_list_ticket_types(can_create_only=true)")Carry the selected <id> into (b) and (c). If a single request genuinely spans both
a customer and an internal change, that is two change tickets — run the flow once
per category, confirming each.
Authoritative schema — which fields are required vs optional, and their dropdown values:
halo_get_ticket_type(ticket_type=<id>)Use halo_list_fields / halo_get_field to resolve any custom FieldInfo ids <-> names <-> option values you need.
A concrete example — read a real, populated change to see how fields are actually filled:
halo_list_tickets(ticket_type=<id>) # find a recent one
halo_get_ticket(ticket=<sample id>) # inspect its summary/details/customfieldsCache field metadata alongside the type id (metadata={...}) if it helps future runs — but only the metadata, never any ticket's contents.
halo_list_clients, halo_list_sites, halo_list_users).halo_create_change_request(
summary="...", details="...", ticket_type="<id>",
customer="<client name or id>", site="...", user=<id>, asset="...",
custom_fields={<id-or-name>: <value>, ...},
submit=false)body to the operator verbatim. It is the exact /api/Tickets payload.submit=true to perform the one real write.Log the decision and the created ticket id to the GAIT audit trail (see gait-session-tracking): the confirmed ticket type, the previewed body, the approval, and the resulting Halo ticket id.
| Skill | Integration |
|---|---|
| gait-session-tracking | Mandatory. Record the ticket-type decision, the preview, the human approval, and the created ticket id in the GAIT audit trail |
| memory | Caches the per-category change-type catalog per tenant (entity="halo-<tenant>", key="change_ticket_types"); no credentials or ticket contents |
| halo-ticket-context | Read the created change and its action history afterward for follow-up |
| halo-asset-context | Review the affected asset and its open tickets before proposing the change |
| servicenow-change-workflow | Sibling gated-change pattern (STOP-until-confirmed) if the org also runs ServiceNow |
| Variable | Required | Description |
|---|---|---|
HALO_BASE_URL | Yes | Halo host, e.g. https://<tenant>.halopsa.com |
HALO_CLIENT_ID | Yes | OAuth2 client-credentials application id (Configuration > Integrations > Halo API) |
HALO_CLIENT_SECRET | Yes | OAuth2 client secret |
HALO_TENANT | Optional | Tenant identifier (also used to key Memory as halo-<tenant>) |
HALO_SCOPE | Optional | OAuth2 scope (default all) |
HALO_AUTH_URL | Optional | Override the auth-server URL for self-hosted layouts |
HALO_VERIFY_SSL | Optional | true/false TLS verification (default true) |
HALO_TIMEOUT | Optional | Per-request timeout in seconds (default 30) |
HALO_PAGE_SIZE / HALO_MAX_PAGES | Optional | Pagination tuning (defaults 50 / 20) |
HALO_RATE_LIMIT | Optional | Requests/minute cap (0 = disabled) |
halo_create_change_request. Every other Halo tool is read-only. Never attempt any other mutation through this server.submit=false), present the exact body, STOP, and only re-call with submit=true after the operator approves that preview (Constitution XIV).halo-<tenant>.halo_get_ticket_type, memory_invalidate it and re-discover.© automateyournetwork, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in workspace/skills/halo-change-request of automateyournetwork/netclaw.
Open the folder on GitHubat commit aa90e7d
Halo Change Request next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Halo Change Request this skillautomateyournetwork/netclaw | 676 | — | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MemPalace Setup and OperationMemPalace/mempalace | 60k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Google Antigravity SDKgoogle-antigravity/antigravity-sdk-python | 3.7k | — | ~2.1k | Automated safety check: Notes | Apache-2.0 | |
| FastmcpTommy-yw/RunbookHermes | 546 | 3 repos | ~2.1k | Automated safety check: Pass | MIT |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
MemPalace/mempalace
Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.
google-antigravity/antigravity-sdk-python
Design, implement, and debug autonomous AI agents and multi-agent systems using the Google Antigravity (AGY) SDK.
Tommy-yw/RunbookHermes
Build, test, inspect, install, and deploy MCP servers with FastMCP in Python.
PrefectHQ/fastmcp
Query and invoke tools on MCP servers using fastmcp list and fastmcp call.
automateyournetwork/netclaw
Entry point for designing EVE-NG network labs: classifies the request, gathers missing requirements, proposes options and validates the resulting topology.
automateyournetwork/netclaw
Deploys Cisco ACI policy changes only behind an approved ServiceNow Change Request, capturing pre and post-change fault baselines and rolling back automatically on a fault delta.
automateyournetwork/netclaw
Runs a phased health audit of a Cisco ACI fabric through MCP tools: node status, links, tenant and policy review, faults and endpoint learning.
automateyournetwork/netclaw
Validate Arista EOS network state against ANTA's pre-built 208-test catalogue, with structured pass/fail verdicts.
automateyournetwork/netclaw
Arista CloudVision Portal (CVP) automation via REST API — device inventory, events, connectivity monitoring, tag management (4 tools).
automateyournetwork/netclaw
AWS CloudWatch monitoring — metrics, alarms, log queries, VPC flow log analysis, network performance.
Works with
Categories
Open a change request in HaloPSA / HaloITSM through a discover-preview-confirm-submit workflow, with the confirmed change ticket type cached in Memory. Halo Change Request is an agent skill from automateyournetwork/netclaw. Open a change request in HaloPSA / HaloITSM through a discover-preview-confirm-submit workflow, with the confirmed change ticket type cached in Memory.
Halo Change Request fits situations like: raising a Halo change; opening a CR in Halo; submitting a change ticket; asking NetClaw to file a change in HaloPSA.
Run `npx skills add automateyournetwork/netclaw --skill halo-change-request -a claude-code`. Or copy the skill folder (workspace/skills/halo-change-request in automateyournetwork/netclaw) into .claude/skills/halo-change-request in your project. Claude Code loads it when a task matches its description.
Run `npx skills add automateyournetwork/netclaw --skill halo-change-request -a codex`. Or copy the skill folder (workspace/skills/halo-change-request in automateyournetwork/netclaw) into .agents/skills/halo-change-request in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add automateyournetwork/netclaw --skill halo-change-request -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/halo-change-request, .gemini/skills/halo-change-request, .github/skills/halo-change-request and .opencode/skills/halo-change-request in your project.
Going by SKILL.md and its folder, Halo Change Request needs the command-line tools its instructions call (python3) and credentials named HALO_CLIENT_SECRET. Our summary lists: Python 3; A credential in HALO_CLIENT_SECRET.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Halo Change Request is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Halo Change Request: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MemPalace Setup and Operation (MemPalace/mempalace, 60k stars) and Google Antigravity SDK (google-antigravity/antigravity-sdk-python, 3.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
automateyournetwork (a GitHub user) maintains it in automateyournetwork/netclaw, which has 676 GitHub stars. The repository holds 120 skills in this directory. The repository was last updated on October 9, 2026.
Source: automateyournetwork/netclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.