Skip to content

feat: publish blind-fill MCP as shellgate-secrets npm package#86

Merged
matthiastjong merged 3 commits into
mainfrom
feature/shellgate-secrets-npm-package
May 17, 2026
Merged

feat: publish blind-fill MCP as shellgate-secrets npm package#86
matthiastjong merged 3 commits into
mainfrom
feature/shellgate-secrets-npm-package

Conversation

@matthiastjong
Copy link
Copy Markdown
Owner

@matthiastjong matthiastjong commented May 17, 2026

Summary

  • Adds packages/shellgate-secrets/ — a standalone npm package that replaces the manual Content-Length stdio framing in blind-fill.mjs with @modelcontextprotocol/sdk (McpServer + StdioServerTransport)
  • Claude Code cannot connect to MCP servers using manual framing (stays "pending") — the SDK transport is required
  • Tool logic (CDP connection, vault secret fetching, DOM injection, origin validation, keyboard events) is unchanged
  • Reverts the previous esbuild bundle approach (fix: use @modelcontextprotocol/sdk for blind-fill MCP server #85) which failed with Dynamic require of "events" is not supported

Usage

npx -y shellgate-secrets

Claude Code config:

{
  "shellgate-secrets": {
    "command": "npx",
    "args": ["-y", "shellgate-secrets"],
    "env": {
      "SHELLGATE_URL": "https://...",
      "SHELLGATE_TOKEN": "sg_..."
    }
  }
}

Test plan

  • npm publish from packages/shellgate-secrets/
  • npx -y shellgate-secrets starts without errors (with env vars set)
  • claude mcp add shellgate-secrets npx -- -y shellgate-secrets → status "connected"
  • blind_fill and blind_type tools work with vault secrets + browser target
  • Main Shellgate Docker build still passes (no changes to main app)

🤖 Generated with Claude Code

Matthias 't Jong and others added 3 commits May 17, 2026 16:14
Publish blind-fill as a proper npm package using @modelcontextprotocol/sdk
StdioServerTransport. Claude Code requires the SDK transport — manual
Content-Length framing stays stuck on "pending" status.

Usage: npx -y shellgate-secrets (with SHELLGATE_URL and SHELLGATE_TOKEN env vars)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Update BlindFillGuide to use npx -y shellgate-secrets (2 steps instead of 3)
- Remove GET /api/local-mcp/blind-fill serve endpoint
- Remove src/local-mcp/ directory entirely
- Remove local-mcp COPY from Dockerfile
- Add CI check that warns when packages/shellgate-secrets/ changes
  without a version bump

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…publishing

The check-shellgate-secrets job now:
- Runs on both PRs and pushes (catches issues before merge)
- Fails with exit 1 instead of warning
- Includes step-by-step instructions for version bump + publish
- Blocks Docker image publish via needs: dependency

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@matthiastjong matthiastjong force-pushed the feature/shellgate-secrets-npm-package branch from 118bda3 to f543f48 Compare May 17, 2026 14:14
@matthiastjong matthiastjong merged commit 3fc9d76 into main May 17, 2026
3 of 4 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