Borrowing it
Nothing to install: this file belongs to kingpanther13/Hubitat-local-MCP-server. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/kingpanther13/Hubitat-local-MCP-server/main/AGENTS.mdgit clone --depth 1 https://github.com/kingpanther13/Hubitat-local-MCP-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/kingpanther13/hubitat-local-mcp-server/agents-md)<a href="https://agentmods.dev/instructions/kingpanther13/hubitat-local-mcp-server/agents-md"><img src="https://agentmods.dev/badge/instructions/kingpanther13/hubitat-local-mcp-server/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/kingpanther13/hubitat-local-mcp-server/agents-md"><img src="https://agentmods.dev/badge/instructions/kingpanther13/hubitat-local-mcp-server/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.15896 | $0.15896 |
| Opus 5 | $0.07948 | $0.07948 |
| Sonnet 5 | $0.03179 | $0.03179 |
| Haiku 4.5 | $0.01590 | $0.01590 |
Grade A, and why
Hubitat-local-MCP-server AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- Hubitat-local-MCP-server CLAUDE.md — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 344 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md
Conventions for AI coding agents working on this repo (OpenAI Codex, Cursor, Aider, Windsurf, Zed, etc.). Claude Code reads CLAUDE.md, which is kept byte-identical to this file — the PR Guard CI workflow flags drift. AGENTS.md is the source of truth. Edit it, then cp AGENTS.md CLAUDE.md before committing. (GitHub Copilot uses .github/copilot-instructions.md; .gemini/styleguide.md drove Gemini Code Assist's reviews — that bot is sunset and disabled, its replacement TBD.)
This file is for AI agents. Human contributors follow .github/pull_request_template.md and .gemini/styleguide.md.
Commands
./gradlew test # full Spock suite (~1 min)
./gradlew test --tests "<spec>" # single spec
python tests/sandbox_lint.py # Groovy sandbox lint
Run both before pushing. CI runs the same.
Code style
Hubitat Groovy sandbox (hubitat-mcp-server.groovy, hubitat-mcp-rule.groovy) blocks several JVM features the runtime would otherwise expose. Highlights — see tests/sandbox_lint.py for the full set:
Eval.*,GroovyShell,Class.forName,Runtime.exec,new Thread,new File/java.io.File— not allowedgetClass()— reflection blockedlog.isDebugEnabled()— not exposedDate.format(String, Locale)— only the no-Locale overload works- Filesystem only via the hub File Manager API (
/hub/fileManager); MCP-tool surface islist_files/read_file/write_file/delete_file
Use atomicState for thread-safe persistence, state for UI/counters. Compare device IDs as strings (.toString()).
Comments: only when the WHY is non-obvious. No multi-paragraph docblocks. Don't reference the current PR/issue/caller.
Tool design rules
These rules apply to every MCP tool added or renamed. Cached MCP clients refresh their tool list on update — no deprecation aliases are shipped.
Tool naming
- Universal service prefix. Every MCP tool name begins with
hub_. Anthropic's verified guidance: prefix-namespacing tools by service has "non-trivial effects on our tool-use evaluations" — writing-tools-for-agents (2025-09-11). Example:hub_list_devices,hub_create_room,hub_call_device_command. - Verb-noun order. After the
hub_prefix, the name reads verb-noun. Verbs are drawn from the strict vocabulary table below. Nouns are the most natural English for the entity in context (drop redundant qualifiers — e.g.,ruleis preferred overrm_rulewhere context disambiguates). - Gateway verbs —
manage_(write-bearing) andread_(pure-read). A gateway's verb encodes whether it can mutate.manage_names any gateway that contains at least one write tool, whether mixed read+write or write-only (e.g.,hub_manage_rooms,hub_manage_code,hub_manage_destructive_ops).read_names a gateway whose every sub-tool is read-only (e.g.,hub_read_apps_code,hub_read_diagnostics). This lets an AI consumer enable thehub_read_*gateways for safe read-only access while gating every write-bearinghub_manage_*gateway behind a write permission.manage_MAY also be used by a flat-only tool — one that never sits behind any gateway and is always kept top-level ontools/list— even though it is not itself a gateway. The canonical case is a flat tool that action-dispatches a small set (≤4) of verbs on a single noun (current example:hub_manage_virtual_devicewithaction: "create"/"delete"). Don't introduce more flatmanage_tools without explicit maintainer sign-off. A gatewayread_prefix is distinct from the file-manager leaf toolshub_read_file/hub_write_file(see the verb table) — those keep their ownread/writeverbs; the noun (filevs a gateway domain) disambiguates. - Multi-gateway membership. A tool MAY appear under more than one gateway when both gateway domains apply.
- Gateway read/write split. A read-only tool MUST be reachable from a
hub_read_*gateway (or be a flat top-level tool) — it may never be unique to ahub_manage_*gateway. Ahub_manage_*gateway MAY be mixed (carry its read tools too, for workflow cohesion) as long as those reads are also surfaced in ahub_read_*gateway via multi-gateway membership (same tool listed in both; no code duplication). This guarantees an AI consumer can reach every read through a pure-read surface while disabling every write-bearingmanage_gateway. Pure-read gateways enable cleaner per-gateway disable in LLM client settings and clearer mental models for AI consumers. - Hard rename, no aliases. Non-conforming tools are renamed in lockstep when the convention requires it. The expectation: MCP clients refresh their cached tool list on server update. No deprecation aliases are shipped.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · -338 tokens per session 1a8ac482935b
- 4d ago Changed · +2 lines · +68 tokens per session 521c864a354c
- 5d ago Changed · -95 tokens per session 15dd011827c0
- 9d ago First seen · 342 lines · 16,261 tokens per session scan A 9b7377c5a578
Hubitat-local-MCP-server AGENTS.md is an instructions file published in the GitHub repository kingpanther13/Hubitat-local-MCP-server (17 stars, last pushed today), licensed MIT. It adds 15,896 tokens to every session, about $0.0795 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
deepseek-harness AGENTS.md
AGENTS.md instructions for deepseek-ai/deepseek-harness, covering agents.md, pre-stable apis and released session data, repository layout, commands and host sandbox failures.