Skip to content

Web3Auth/web3auth-mcp

Repository files navigation

MetaMask Embedded Wallets MCP Server

Build MetaMask Embedded Wallets integrations faster by giving your AI coding assistant live access to the documentation and deep knowledge of the SDK.

There are two things to set up:

  1. Skill — Teaches your AI assistant how to think about the SDK: architecture, framework quirks, key derivation rules, and common mistakes. No code in the skill; the MCP provides that.
  2. MCP server — Gives your AI assistant real-time access to search docs, fetch examples, and look up SDK types.

MCP Tools

Tool What it does
search_docs Search documentation and example projects
get_doc Fetch the full content of any doc page
get_example Fetch complete source code of an integration example
get_sdk_reference Fetch SDK types and hooks from the open-source repos
search_community Search the MetaMask Builder Hub for real user issues

Skill

The skill teaches your AI assistant the mental model for MetaMask Embedded Wallets. It includes SDK selection logic, key derivation rules, authentication concepts, platform quirks, and common mistakes that aren't obvious from the docs alone.

Tip: For the best experience, use the MCP server alongside the skill so that your LLM can fetch live docs and examples rather than relying on static text.

Universal install (works with 40+ agents)

npx skills add web3auth/skill

The skills CLI by Vercel detects your active AI agent and installs to the right directory automatically — Cursor, Claude Code, Copilot, Kiro, Cline, Codex, Antigravity, and 40+ more.

To install for target a specific agent:

npx skills add web3auth/skill -a cursor     # Cursor only
npx skills add web3auth/skill -a claude-code # Claude Code only

MCP Server Setup

Cursor

The fastest way is one click:

Add MetaMask Embedded Wallets MCP to Cursor

Or install via Cursor Marketplace — search "MetaMask Embedded Wallets".

Or add it manually. Open Cursor Settings → Tools & Integrations → MCP and add:

{
  "mcpServers": {
    "web3auth": {
      "url": "https://mcp.web3auth.io"
    }
  }
}

VS Code (GitHub Copilot)

Install from the Visual Studio Marketplace — search "MetaMask Embedded Wallets", or:

code --install-extension Web3Auth.metamask-embedded-wallets

Or use the one-click install URL:

vscode:mcp/install?{"name":"web3auth","url":"https://mcp.web3auth.io"}

Or add manually to your workspace .vscode/mcp.json:

{
  "servers": {
    "web3auth": {
      "type": "http",
      "url": "https://mcp.web3auth.io"
    }
  }
}

JetBrains (IntelliJ, PyCharm, WebStorm, Android Studio)

Install from the JetBrains Marketplace — search "MetaMask Embedded Wallets".

Or add manually in Settings → Tools → AI Assistant → Model Context Protocol (MCP):

{
  "mcpServers": {
    "web3auth": {
      "url": "https://mcp.web3auth.io",
      "transport": "http"
    }
  }
}

Claude Code CLI

claude mcp add --transport http web3auth https://mcp.web3auth.io

Or add manually to your project's claude.json:

{
  "mcpServers": {
    "web3auth": {
      "url": "https://mcp.web3auth.io"
    }
  }
}

Claude Desktop

Open your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the server to the mcpServers section:

{
  "mcpServers": {
    "web3auth": {
      "url": "https://mcp.web3auth.io"
    }
  }
}

Restart Claude Desktop and ask: "Search MetaMask Embedded Wallets docs for React quick start" to verify the connection.

ChatGPT Desktop

Open ChatGPT Desktop → Settings → Connections and add a new MCP server:

  • Name: web3auth
  • URL: https://mcp.web3auth.io

Windsurf

Open Windsurf Settings → MCP and add:

{
  "mcpServers": {
    "web3auth": {
      "serverUrl": "https://mcp.web3auth.io"
    }
  }
}

Or edit ~/.codeium/windsurf/mcp_config.json directly.

Kiro (AWS)

Add to your project's .kiro/settings/mcp.json:

{
  "mcpServers": {
    "web3auth": {
      "url": "https://mcp.web3auth.io"
    }
  }
}

Warp Terminal

In Warp, open Settings → AI → MCP Servers and click Add Server:

  • Name: web3auth
  • URL: https://mcp.web3auth.io

Or use Warp's one-click MCP install if available in your version.

Cline (VS Code)

Add to your Cline MCP settings (Ctrl+Shift+P → "Cline: Open MCP Settings"):

{
  "mcpServers": {
    "web3auth": {
      "url": "https://mcp.web3auth.io",
      "transport": "http"
    }
  }
}

Continue.dev

Add to your Continue config.json (open with Ctrl+Shift+P → "Continue: Open config.json"):

{
  "mcpServers": [
    {
      "name": "web3auth",
      "url": "https://mcp.web3auth.io"
    }
  ]
}

Zed

Add to your Zed settings.json (Cmd+, to open):

{
  "context_servers": {
    "web3auth": {
      "command": {
        "path": "npx",
        "args": ["-y", "mcp-remote", "https://mcp.web3auth.io"]
      }
    }
  }
}

Or install via Zed Extensions — search "MetaMask Embedded Wallets".

Antigravity

Open your MCP configuration file:

  • macOS/Linux: ~/.config/antigravity/mcp.json
  • Windows: %APPDATA%\antigravity\mcp.json

Add the server to the mcpServers section:

{
  "mcpServers": {
    "web3auth": {
      "url": "https://mcp.web3auth.io"
    }
  }
}

Antigravity hot-reloads MCP config changes — no restart required.

Xcode (via GitHub Copilot)

Xcode 26.3+ supports MCP via GitHub Copilot. Add the server to your Copilot MCP config or use the VS Code extension setup above (Copilot MCP registry is shared).

Alternatively, configure Xcode's agentic tools to point at https://mcp.web3auth.io directly via Settings → Copilot → MCP Servers.

Eclipse (via GitHub Copilot)

Eclipse with GitHub Copilot supports MCP. Add via Eclipse → Preferences → GitHub Copilot → MCP Servers → Add Server:

  • Name: web3auth
  • URL: https://mcp.web3auth.io

Neovim (avante.nvim)

In your Lua config, add via mcphub.nvim:

require("mcphub").setup({
  servers = {
    web3auth = {
      url = "https://mcp.web3auth.io",
      transport = "streamable-http",
    },
  },
})

Or using mcp-remote for compatibility:

require("avante").setup({
  mcp = {
    servers = {
      web3auth = {
        command = "npx",
        args = { "-y", "mcp-remote", "https://mcp.web3auth.io" },
      },
    },
  },
})

Neovim (codecompanion.nvim)

require("codecompanion").setup({
  extensions = {
    mcp = {
      servers = {
        web3auth = {
          command = "npx",
          args = { "-y", "mcp-remote", "https://mcp.web3auth.io" },
        },
      },
    },
  },
})

Amp (Sourcegraph)

Add to your Amp MCP configuration:

{
  "mcpServers": {
    "web3auth": {
      "url": "https://mcp.web3auth.io"
    }
  }
}

Goose

Add to ~/.config/goose/config.yaml:

extensions:
  - name: web3auth
    type: http
    url: https://mcp.web3auth.io

5ire

In 5ire Settings → MCP Servers → Add:

  • Name: web3auth
  • URL: https://mcp.web3auth.io

Aider

Aider supports MCP via the LiteLLM bridge. Add to your Aider config:

mcp_servers:
  web3auth:
    command: npx
    args: ["-y", "mcp-remote", "https://mcp.web3auth.io"]

Codex CLI

For Codex CLI or any stdio-only agent, use mcp-remote to bridge the HTTP endpoint:

npm install -g mcp-remote

Then add to ~/.codex/config.toml:

[mcp_servers.web3auth]
command = "npx"
args = ["-y", "mcp-remote", "https://mcp.web3auth.io"]

Or add to your agent's JSON config:

{
  "mcpServers": {
    "web3auth": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.web3auth.io"]
    }
  }
}

Static docs (llms.txt)

If your AI tool doesn't support MCP yet, use the static documentation file instead:

https://docs.metamask.io/llms-full.txt

For tools that support the llms.txt spec and can index docs automatically:

https://docs.metamask.io/llms.txt

Warning: The static file is a snapshot and may not include the latest updates. Use the MCP server when possible for always-current docs.


Start building

Once the skill and MCP are set up, ask your AI assistant directly. Good starting prompts:

  • "Add MetaMask Embedded Wallets to my React app with Google login."
  • "Set up social login wallets in my Next.js app using Wagmi."
  • "Integrate embedded wallets in my Flutter app."
  • "Why are my users getting different wallet addresses after I changed the login method?"

Tip: Use planning mode (where available) for your initial prompt. Review the plan before generating code — this catches architecture mistakes early and avoids config errors that would change wallet addresses in production.


Distribution

This repo ships artifacts for every major developer platform:

Platform Type Location
Cursor Marketplace Plugin .cursor-plugin/ + mcp.json
VS Code Marketplace Extension plugins/vscode/
JetBrains Marketplace Plugin plugins/jetbrains/
Zed Extensions Extension plugins/zed/
Claude Agent SDK Plugin plugins/claude/
Raycast Store Extension plugins/raycast/
ChatGPT GPT Store Custom GPT openai/
Official MCP Registry server.json server.json
Glama glama.json glama.json
Smithery Server card app/.well-known/mcp/server-card.json/route.ts
Vercel skills.sh Skill Web3Auth/skill
agentskill.sh Skill Web3Auth/skill

Environment Variables

Variable Required Description
GITHUB_TOKEN Yes (hosted) / recommended (local) GitHub personal access token. Required on the Vercel deployment (mcp.web3auth.io) — get_example and get_sdk_reference call the GitHub API heavily; without a token the shared IP hits the 60 req/hr unauthenticated limit quickly. Optional for local stdio use.
DISCOURSE_API_KEY No Discourse API key for search_community (optional; public search works without it)
DISCOURSE_API_USERNAME No Discourse API username when using DISCOURSE_API_KEY

Development

npm install
npm run build
npm test           # Handler smoke tests (mocked fetch)
npm start          # Run via stdio
npm run dev        # Watch mode

Updating Content

What changed Where to update
SDK architecture, platform quirks, key derivation, workflow Web3Auth/skill (SKILL.md)
New example repository or scan root (e.g. new platform) src/content/example-catalog.ts
New SDK repository or discovery rules (e.g. new platform) src/content/sdk-catalog.ts
New tool or parameter changes src/tools/register.ts
Example folders / SDK file layout within existing repos Nothing (discovered live from GitHub, cached 4h)
Doc page content Nothing (fetched live via Algolia / llms.txt / GitHub)

License

MIT

Releases

No releases published

Packages

 
 
 

Contributors