Skip to content

feat(mcp): native harness formats, scoped install, and PalamHealth leak guards - #2

Merged
itz4blitz merged 3 commits into
masterfrom
feat/harness-mcp-scope
Sep 6, 2026
Merged

itz4blitz merged 3 commits into
masterfrom
feat/harness-mcp-scope

Conversation

@itz4blitz

Copy link
Copy Markdown
Owner

Why

User-global MCP configs were leaking PalamHealth / interactive 1Password into every harness because ai-mcp sync union-copied imported servers, and adapters wrote files hosts do not actually load.

What

  • Grok and ZCode MCP adapters; Codex TOML and OpenCode native mcp merge
  • layer + whenPathContains so PalamHealth stays project-local
  • ai-mcp audit for user-global PalamHealth / op-run-palamhealth leaks
  • sync/install/generate install only from mcp.config.ts and refuse empty writes; unified ai-tools sync is disabled
  • Native formats: Cursor/Claude type http/sse, Claude user ~/.claude.json, ZCode mcp.servers, skills SKILL.md, Cursor .mdc, OpenCode agent/
  • Grok/ZCode HookEngine runners (no stub process.exit(0))
  • MIT LICENSE; dead UI/session code removed

Release

Conventional feat commits. semantic-release on merge to master should publish @itz4blitz/ai-tools@1.2.0 (currently 1.1.10).

Verify

npm run check passed locally: 181 test files, coverage 89.27 / 80.03 / 88.21 / 90.25, smoke passed.

…cope

Codex now writes [mcp_servers] TOML and OpenCode writes opencode.json mcp
entries, merging into existing user files instead of inventing fake JSON
paths. Servers can be user- or project-layered with whenPathContains so
PalamHealth MCPs stay in PalamHealth repos. `ai-mcp audit` flags
interactive op-run-palamhealth and misnamed PalamHealth Linear.
Add Grok/ZCode skills, agents, rules, and Grok hooks. Round-trip MCP
generate/install/import on real temp dirs. Detect ZCode from its user
config when the binary name is missing. Isolate rules CLI tests from
the repo ai-rules.config.ts. Gate npm audit on production deps so
check is not blocked by nested npm/dev CVEs.
MCP sync/install/generate now take servers only from mcp.config.ts
(layer + whenPathContains) and refuse empty writes. Unified
`ai-tools sync` is disabled. Cursor/Claude emit HTTP type, Claude
user MCP is ~/.claude.json, ZCode writes mcp.servers, and skills
use SKILL.md. Grok and ZCode hooks run HookEngine instead of a
no-op. Add MIT LICENSE and drop unused UI/session code.
@itz4blitz
itz4blitz merged commit dd53a13 into master Sep 6, 2026
7 checks passed
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