Local HTTP server for managing Claude Code configuration files (CLAUDE.md, rules, skills, agents, commands, settings, hooks, MCP servers). Provides scanning, file editing, validation, and markdown assistance features.
Server has 15 tools with mostly complete schemas and descriptions. Naming follows verb_noun patterns (scan, file, save, toggle). Descriptions average ~120 chars, meeting baseline. However, several critical gaps: (1) parameter descriptions are sparse or missing for many tools (e.g., 'assist' has only 'Job ID' for the id param); (2) output schemas are not documented, responses are inferred from code, not declared; (3) error handling lacks recovery guidance; (4) no tool annotations (readOnlyHint, destructiveHint) despite clear risk levels; (5) some tools combine multiple concerns (save-range mixes validation, conflict detection, and write). Strengths: consistent naming, input schemas present with types, clear risk classification. Weaknesses prevent A-grade; lands in solid C+ territory.
Get status of a markdown editing assistance job (F9). Returns job status, result, diff, cost, and duration.
Cancel a running markdown editing assistance job.
Start a markdown editing assistance job using Claude Code CLI. Sends text and instruction to Claude for revision. Returns job ID for polling.
Find sections with matching title across all configuration files (global and project rules, CLAUDE.md files).
Get effective rules for a project by merging global and project-specific rules in precedence order.
Read a configuration file by path. Returns file content with metadata (mtime, size, CRLF/BOM info).
Health check endpoint returning server status, process ID, and version
Output schemas not documented. Tools return JSON responses (scan, file, effective, rules, etc.) but no schema is declared in tool definitions. LLMs cannot plan downstream calls or extract fields reliably without knowing response structure.
Parameter descriptions are minimal or missing. Many tools have parameters with only 1-2 word descriptions (e.g., 'assist' id param: 'Job ID'; 'effective' project param: 'Project path'). Baseline is 72 chars per param; these fall far short. LLMs cannot infer context or constraints.
No tool annotations despite clear risk levels. Tools marked WRITE (save, save-range, toggle) and IRREVERSIBLE (shutdown) lack destructiveHint/idempotentHint annotations. Agents cannot distinguish safe from dangerous operations without explicit hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Get effective rules for a project with section information.
Save file content with validation, conflict detection, and atomic write. Preserves original line endings and BOM. Creates backup before writing.
Replace a range of lines in a markdown file and save. Validates range bounds, preserves line endings/BOM, creates backup.
Scan home directory and projects for Claude configuration files (CLAUDE.md, rules, skills, agents, commands, settings, hooks, MCP servers, plugins). Returns complete configuration structure with file metadata.
Parse markdown file sections (headings). Returns list of sections with level, title, start/end line numbers.
Gracefully shut down the server.
Toggle a setting in project settings.json or settings.local.json (skillOverrides or enabledPlugins). Creates file if missing.
Validate file content before saving. Checks JSON syntax, markdown frontmatter, hook commands, imports, and links. Returns list of issues (errors block save, warnings are informational).
Error handling lacks recovery guidance. Code shows generic 500 errors ('internal error') and 409 conflicts ('scan first') but no actionable next steps. Pattern requires: 'User not found. Try search_users() with a partial name.' This server offers none.
save-range combines multiple concerns (range validation, line ending preservation, BOM handling, backup creation, atomic write). Should split into separate tools or clearly document each responsibility in description.