Skip to content

Add Veil Cash Base MCP plugin#73

Open
apexethdev wants to merge 2 commits into
base:masterfrom
veildotcash:add-veil-plugin
Open

Add Veil Cash Base MCP plugin#73
apexethdev wants to merge 2 commits into
base:masterfrom
veildotcash:add-veil-plugin

Conversation

@apexethdev
Copy link
Copy Markdown

Summary

  • Adds skills/base-mcp/plugins/veil.md for Veil Cash — a privacy pool for ETH and USDC on Base mainnet.
  • Registers the plugin in skills/base-mcp/SKILL.md and adds discovery tags privacy and shielded-payments to references/plugin-spec.md.
  • MCP package: @veil-cash/mcp@0.2.1 (veildotcash/veil-mcp).

Integration model

  • integration: external-mcp, stdio-only v1 — install local @veil-cash/mcp beside Base MCP.
  • requires.externalMcp.url: null by design — private VEIL_KEY, ZK proof building, and balance decryption must stay on the user's machine. A hosted HTTP MCP would be custodial and would centralize activity metadata.
  • Public flows (register/deposit): Veil MCP prepare tools → Base MCP send_calls.
  • Private flows (withdraw, transfer, x402, consolidate): Veil relay inside Veil MCP → Base MCP submission none.
  • Chat-only connector surfaces (Claude.ai web, ChatGPT): documented as unsupported on v1 — no hosted URL.

Please confirm whether externalMcp.url: null is acceptable for stdio npm MCPs, or if Base prefers a different frontmatter representation.

Test plan

  • Plugin matches plugin-spec.md authoring checklist
  • ## Submission documents both send_calls (public) and none (private relay)
  • ## Surface Routing states chat-only stop behavior
  • Example prompts cover read, deposit, private withdraw, x402, and chat-only fallback

Made with Cursor

Add external-mcp stdio-only plugin for Veil Cash privacy pools on Base.
Public register/deposit flows prepare calldata for send_calls; private
withdraw, transfer, and x402 use the local Veil relay (none on Base MCP).

Register plugin in SKILL.md, add privacy/shielded-payments tags, and extend
plugin-spec conformance table. MCP package: @veil-cash/mcp@0.2.1.

Co-authored-by: Cursor <cursoragent@cursor.com>
@cb-heimdall
Copy link
Copy Markdown
Collaborator

cb-heimdall commented Jun 3, 2026

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

Copy link
Copy Markdown
Collaborator

@stephancill stephancill left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the submission. The plugin is spec-conformant, the MCP exposes the documented tools, and the deposit calldata maps correctly into send_calls. A few changes before merge:

Required

  • Don't add the plugin to the registry/inventory. Please revert the SKILL.md plugins-table row and, in references/plugin-spec.md, the "Existing Plugin Conformance" table row and the "Veil Cash ships at 0.2.1" line. The registry and that conformance inventory are maintainer-owned and will be updated when the program is ready. Keep your net-new tag additions (privacy, shielded-payments) in the vocabulary list, and limit the rest of the PR to plugins/veil.md.

Minor

  • version is set to 0.2.1 to mirror the package. The spec defines version as the plugin-doc version (independent of upstream), but mirroring the package is reasonable — noting it only in case that wasn't intentional.
  • Register-before-deposit is a hard prerequisite: a deposit submitted before the deposit key is registered reverts. Make this explicit in ## Orchestration (or batch the register + deposit calls), rather than leaving it implied.

I'm proposing a change to the plugin spec to support defining local MCP servers in the frontmatter in #78

- Revert maintainer-owned registry/inventory edits per review:
  fully revert SKILL.md; in plugin-spec.md restore the "7 native
  plugins" conformance table (drop Veil row) and the version line.
  Keep only the privacy/shielded-payments tag-vocabulary additions.
- Rewrite veil.md frontmatter to the base#78 transport: stdio schema
  (command/args/env, shell: required, risk += local-exec); add a
  ### local-exec Risks subsection.
- Make register-before-deposit an explicit hard prerequisite in
  ## Orchestration > Deposit (a deposit before register reverts).
- Pin the global-install command to @0.2.1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@apexethdev
Copy link
Copy Markdown
Author

Thanks for the detailed review @stephancill — pushed an update addressing the feedback:

Required (done)

  • Reverted the maintainer-owned registry/inventory edits: SKILL.md is fully back to master, and in references/plugin-spec.md the "Existing Plugin Conformance" table row and the "Veil Cash ships at 0.2.1" line are reverted (the count is back to "7 native plugins"). The PR is now limited to plugins/veil.md plus the net-new privacy / shielded-payments tag-vocabulary additions, as requested.
  • Made register-before-deposit an explicit hard prerequisite in ## Orchestration > Deposit (a deposit submitted before the deposit key is registered reverts), rather than leaving it implied.

Minor

  • Kept version: 0.2.1 to mirror the package — intentional, per your note.

Re: #78 — I've rebased plugins/veil.md's frontmatter onto the local-MCP schema you proposed in #78: requires.externalMcp now uses transport: stdio with command / args (pinned) / env (names only) instead of the url: null placeholder, and the local-exec risk tag + a ### local-exec Risks subsection are added. That means this PR now depends on #78 landing first — it references the stdio schema and local-exec tag that #78 introduces. Happy to adjust if you'd prefer a different sequencing.

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.

3 participants