Skip to content

v0.1.5: expand MCP server instructions for Claude Desktop auto-load#3

Merged
hculap merged 1 commit into
mainfrom
feat/v0.1.5-mcp-instructions
May 19, 2026
Merged

v0.1.5: expand MCP server instructions for Claude Desktop auto-load#3
hculap merged 1 commit into
mainfrom
feat/v0.1.5-mcp-instructions

Conversation

@hculap
Copy link
Copy Markdown
Owner

@hculap hculap commented May 19, 2026

Why

You discovered that Claude Desktop's UI Skills feature ≠ `~/.claude/skills/` filesystem. CD only loads skills via UI .zip upload. So our `SKILL_MCP.md` drop helps nothing in CD's Skills UI.

But MCP servers can deliver skill-like persistent context the right way: the `instructions` field returned in `InitializeResult`. Per the MCP spec, clients (including Claude Desktop) inject `instructions` into the LLM's system prompt on every turn. Same mechanism `claude-in-chrome`, `chrome-devtools-mcp` etc. use.

What

The server already had a 1-sentence `instructions=` from v0.1.3. Expand it to 365 words covering:

  • When-to-use triggers (English + Polish)
  • 16-tool roster grouped by class (read / write / auth)
  • Recommended workflow (whoami → list_modules → set_default_module → act)
  • Conventions (temperature precision, mode strings, action field)
  • Result envelope semantics (`{ok, ...}` vs `{ok: false, code}`)
  • Safety rules (PIN/JWT redaction, never-assume-module-names, summer-furnace-off, 60s tool-timeout warning)

Bounded at ~500 words to keep per-turn token cost reasonable.

The `SKILL_MCP.md` file install for `emodul install claude-desktop` stays as-is — useful for Claude Code agents and as bundled documentation.

Test plan

  • `session.initialize()` returns instructions (verified via real stdio client: 365 words / 2.6 KB)
  • 16 tools still register
  • MCP smoke test green
  • Ruff clean

After merge: tag `v0.1.5` → OIDC publish → `pipx upgrade emodul` → restart Claude Desktop → instructions now visible in system prompt as `## emodul`.

…skill context

Claude Desktop has no `~/.claude/skills/` auto-discovery (that's Claude
Code only) — its built-in "Skills" feature is a separate UI upload path
that doesn't read the filesystem. So our SKILL_MCP.md file drop helps
nothing in Claude Desktop's UI.

Standard MCP fix: the `instructions` field returned in InitializeResult.
Per spec, clients (including Claude Desktop) inject it into the LLM's
system prompt on every turn. This is the same mechanism claude-in-chrome,
chrome-devtools-mcp, etc. use to provide skill-like persistent context.

The server already had a 1-sentence `instructions` from v0.1.3 — expand
it to 365 words covering: when-to-use triggers (English + Polish),
16-tool roster grouped by class, recommended workflow, conventions
(temperature precision, mode strings, action field), result envelope
semantics, and the safety rules (PIN/JWT redaction, never-assume-module-
names, summer-furnace-off caveat, 60s tool-timeout warning).

Stays under the ~500-word soft ceiling so per-turn token cost is bounded.

The SKILL_MCP.md file install for `emodul install claude-desktop` stays
as-is — useful for Claude Code agents that want richer context when
talking to the MCP server, and as bundled documentation.
@hculap hculap merged commit 4e25a12 into main May 19, 2026
9 checks passed
@hculap hculap deleted the feat/v0.1.5-mcp-instructions branch May 19, 2026 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant