Skip to main content
Glama

MetaMask Embedded Wallets MCP 서버

AI 코딩 어시스턴트에게 문서 및 SDK에 대한 심층적인 지식에 실시간으로 액세스할 수 있는 권한을 부여하여 MetaMask Embedded Wallets 통합을 더 빠르게 구축하세요.

설정해야 할 두 가지가 있습니다:

  1. 스킬(Skill) — AI 어시스턴트에게 SDK에 대해 생각하는 방법을 가르칩니다: 아키텍처, 프레임워크의 특이점, 키 파생 규칙 및 일반적인 실수. 스킬에는 코드가 포함되어 있지 않으며, MCP가 이를 제공합니다.

  2. MCP 서버 — AI 어시스턴트에게 문서를 검색하고, 예제를 가져오고, SDK 유형을 조회할 수 있는 실시간 액세스 권한을 제공합니다.


MCP 도구

도구

기능

search_docs

문서 및 예제 프로젝트 검색

get_doc

모든 문서 페이지의 전체 내용 가져오기

get_example

통합 예제의 전체 소스 코드 가져오기

get_sdk_reference

오픈 소스 저장소에서 SDK 유형 및 훅 가져오기

search_community

MetaMask Builder Hub에서 실제 사용자 문제 검색


Related MCP server: Privy MCP Server

스킬

이 스킬은 AI 어시스턴트에게 MetaMask Embedded Wallets에 대한 멘탈 모델을 가르칩니다. 여기에는 SDK 선택 논리, 키 파생 규칙, 인증 개념, 플랫폼 특이점 및 문서만으로는 명확하지 않은 일반적인 실수가 포함됩니다.

팁: 최상의 경험을 위해 MCP 서버를 스킬과 함께 사용하면 LLM이 정적 텍스트에 의존하지 않고 실시간 문서와 예제를 가져올 수 있습니다.

범용 설치 (18개 이상의 에이전트와 호환)

npx skills add Web3Auth/web3auth-mcp --skill web3auth -y

Vercel의 skills CLI는 활성 AI 에이전트를 감지하여 Cursor, Claude Code, Copilot, Kiro, Cline, Codex, Antigravity 및 40개 이상의 다른 에이전트에 자동으로 올바른 디렉토리에 설치합니다.

전역으로 설치(모든 프로젝트에서 사용 가능)하거나 특정 에이전트를 대상으로 설치하려면:

npx skills add Web3Auth/web3auth-mcp --skill web3auth -g -y            # global
npx skills add Web3Auth/web3auth-mcp --skill web3auth -a cursor -y     # Cursor only
npx skills add Web3Auth/web3auth-mcp --skill web3auth -a claude-code -y # Claude Code only

Cursor

npx degit Web3Auth/web3auth-mcp/skills/web3auth .cursor/skills/web3auth

Cursor는 .cursor/skills/ 내의 모든 SKILL.md를 자동으로 감지하고 관련이 있을 때 활성화합니다.

또는 Cursor Marketplace를 통해 설치하세요 — "MetaMask Embedded Wallets"를 검색하세요.

Claude Code CLI

npx degit Web3Auth/web3auth-mcp/skills/web3auth /tmp/web3auth-skill
cat /tmp/web3auth-skill/SKILL.md >> CLAUDE.md

Claude Desktop

Claude Desktop → Settings → Custom Instructions를 열고 skills/web3auth/SKILL.md의 내용을 직접 붙여넣으세요.

Antigravity

npx degit Web3Auth/web3auth-mcp/skills/web3auth .agent/skills/web3auth

Antigravity는 .agent/skills/ 내의 스킬을 자동으로 감지합니다. 모든 프로젝트에서 전역으로 설치하려면 대신 ~/.gemini/antigravity/skills/를 사용하세요.

Windsurf / Cline / Kiro / Continue

npx degit Web3Auth/web3auth-mcp/skills/web3auth .windsurf/skills/web3auth

스킬을 도구별 스킬 디렉토리에 배치하세요. 대부분의 도구는 SKILL.md의 내용을 시스템 프롬프트나 사용자 지정 지침 필드에 붙여넣는 것도 지원합니다.

기타 도구

시스템 프롬프트나 사용자 지정 지침 필드가 있는 모든 LLM 도구의 경우 skills/web3auth/SKILL.md의 내용을 직접 붙여넣으세요.


MCP 서버 설정

Cursor

가장 빠른 방법은 클릭 한 번입니다:

Add MetaMask Embedded Wallets MCP to Cursor

또는 Cursor Marketplace를 통해 설치하세요 — "MetaMask Embedded Wallets"를 검색하세요.

또는 수동으로 추가하세요. Cursor Settings → Tools & Integrations → MCP를 열고 다음을 추가하세요:

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

VS Code (GitHub Copilot)

Visual Studio Marketplace에서 설치하세요 — "MetaMask Embedded Wallets"를 검색하거나 다음을 수행하세요:

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

또는 원클릭 설치 URL을 사용하세요:

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

또는 작업 공간의 .vscode/mcp.json에 수동으로 추가하세요:

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

JetBrains (IntelliJ, PyCharm, WebStorm, Android Studio)

JetBrains Marketplace에서 설치하세요 — "MetaMask Embedded Wallets"를 검색하세요.

또는 **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

또는 프로젝트의 claude.json에 수동으로 추가하세요:

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

Claude Desktop

Claude Desktop 구성 파일을 엽니다:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

mcpServers 섹션에 서버를 추가하세요:

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

Claude Desktop을 다시 시작하고 *"Search MetaMask Embedded Wallets docs for React quick start"*라고 질문하여 연결을 확인하세요.

ChatGPT Desktop

ChatGPT Desktop → Settings → Connections를 열고 새 MCP 서버를 추가하세요:

  • 이름: web3auth

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

Windsurf

Windsurf Settings → MCP를 열고 다음을 추가하세요:

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

또는 ~/.codeium/windsurf/mcp_config.json을 직접 편집하세요.

Kiro (AWS)

프로젝트의 .kiro/settings/mcp.json에 추가하세요:

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

Warp Terminal

Warp에서 Settings → AI → MCP Servers를 열고 Add Server를 클릭하세요:

  • 이름: web3auth

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

또는 버전에서 지원하는 경우 Warp의 원클릭 MCP 설치를 사용하세요.

Cline (VS Code)

Cline MCP 설정(Ctrl+Shift+P → "Cline: Open MCP Settings")에 추가하세요:

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

Continue.dev

Continue config.json(Ctrl+Shift+P → "Continue: Open config.json"으로 열기)에 추가하세요:

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

Zed

Zed settings.json(Cmd+,로 열기)에 추가하세요:

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

또는 Zed Extensions를 통해 설치하세요 — "MetaMask Embedded Wallets"를 검색하세요.

Antigravity

MCP 구성 파일을 엽니다:

  • macOS/Linux: ~/.config/antigravity/mcp.json

  • Windows: %APPDATA%\antigravity\mcp.json

mcpServers 섹션에 서버를 추가하세요:

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

Antigravity는 MCP 구성 변경 사항을 자동으로 다시 로드하므로 다시 시작할 필요가 없습니다.

Xcode (via GitHub Copilot)

Xcode 26.3 이상은 GitHub Copilot을 통해 MCP를 지원합니다. Copilot MCP 구성에 서버를 추가하거나 위의 VS Code 확장 프로그램 설정을 사용하세요(Copilot MCP 레지스트리는 공유됨).

또는 Settings → Copilot → MCP Servers를 통해 Xcode의 에이전트 도구가 https://mcp.web3auth.io를 직접 가리키도록 구성하세요.

Eclipse (via GitHub Copilot)

GitHub Copilot이 포함된 Eclipse는 MCP를 지원합니다. Eclipse → Preferences → GitHub Copilot → MCP Servers → Add Server를 통해 추가하세요:

  • 이름: web3auth

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

Neovim (avante.nvim)

Lua 구성에서 mcphub.nvim을 통해 추가하세요:

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

또는 호환성을 위해 mcp-remote를 사용하세요:

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)

Amp MCP 구성에 추가하세요:

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

Goose

~/.config/goose/config.yaml에 추가하세요:

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

5ire

5ire Settings → MCP Servers → Add에서 추가하세요:

  • 이름: web3auth

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

Aider

Aider는 LiteLLM 브리지를 통해 MCP를 지원합니다. Aider 구성에 추가하세요:

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

Codex CLI

Codex CLI 또는 stdio 전용 에이전트의 경우 mcp-remote를 사용하여 HTTP 엔드포인트를 브리지하세요:

npm install -g mcp-remote

그런 다음 ~/.codex/config.toml에 추가하세요:

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

또는 에이전트의 JSON 구성에 추가하세요:

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

정적 문서 (llms.txt)

AI 도구가 아직 MCP를 지원하지 않는 경우 대신 정적 문서 파일을 사용하세요:

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

llms.txt 사양을 지원하고 문서를 자동으로 인덱싱할 수 있는 도구의 경우:

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

경고: 정적 파일은 스냅샷이며 최신 업데이트가 포함되지 않을 수 있습니다. 항상 최신 문서를 보려면 가능한 경우 MCP 서버를 사용하세요.


구축 시작

스킬과 MCP가 설정되면 AI 어시스턴트에게 직접 질문하세요. 좋은 시작 프롬프트:

  • "Google 로그인을 사용하여 내 React 앱에 MetaMask Embedded Wallets를 추가해 줘."

  • "Wagmi를 사용하여 내 Next.js 앱에 소셜 로그인 지갑을 설정해 줘."

  • "내 Flutter 앱에 임베디드 지갑을 통합해 줘."

  • "로그인 방법을 변경한 후 사용자의 지갑 주소가 다른 이유는 무엇인가요?"

팁: 초기 프롬프트에는 계획 모드(사용 가능한 경우)를 사용하세요. 코드를 생성하기 전에 계획을 검토하면 아키텍처 실수를 조기에 발견하고 프로덕션 환경에서 지갑 주소를 변경할 수 있는 구성 오류를 방지할 수 있습니다.


배포

이 저장소는 모든 주요 개발자 플랫폼에 대한 아티팩트를 제공합니다:

플랫폼

유형

위치

Cursor Marketplace

플러그인

.cursor-plugin/ + mcp.json

VS Code Marketplace

확장 프로그램

plugins/vscode/

JetBrains Marketplace

플러그인

plugins/jetbrains/

Zed Extensions

확장 프로그램

plugins/zed/

Claude Agent SDK

플러그인

plugins/claude/

Raycast Store

확장 프로그램

plugins/raycast/

ChatGPT GPT Store

사용자 지정 GPT

openai/

공식 MCP 레지스트리

server.json

server.json

Glama

glama.json

glama.json

Smithery

서버 카드

app/.well-known/mcp/server-card.json/route.ts

Vercel skills.sh

스킬

skills/web3auth/

agentskill.sh

스킬

skills/web3auth/


환경 변수

변수

필수

설명

GITHUB_TOKEN

아니요

GitHub 개인 액세스 토큰. 선택 사항이지만 get_sdk_reference를 통해 SDK 소스 코드를 가져올 때 속도 제한을 피하기 위해 권장됨


개발

npm install
npm run build
npm start          # Run via stdio
npm run dev        # Watch mode

콘텐츠 업데이트

제품 업데이트가 출시되면 몇 개의 파일만 변경하면 됩니다:

변경 사항

업데이트할 파일

SDK 아키텍처 / 새로운 주의 사항

skills/web3auth/SKILL.md

새 문서 페이지 또는 URL 변경

src/content/registry.ts

플랫폼 기능 변경

src/content/platform-matrix.ts

SDK 저장소 구조 변경

src/content/sdk-registry.ts

새 도구 카테고리 필요

src/tools/register.ts

문서 페이지 콘텐츠 변경

없음 (실시간으로 가져옴)

라이선스

MIT

Available Tools

5 tools
get_docA
Read-onlyIdempotent
Inspect

Fetch the full content of a MetaMask Embedded Wallets documentation page. Use after search_docs to read the actual doc. Tries Algolia, then llms.txt, then GitHub raw MDX as fallbacks.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesA docs.metamask.io URL, e.g. https://docs.metamask.io/embedded-wallets/sdk/react/

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond what annotations provide. While annotations already indicate read-only, idempotent, and open-world characteristics, the description reveals the multi-source fallback strategy ('Tries Algolia, then llms.txt, then GitHub raw MDX as fallbacks'), which helps the agent understand reliability and performance implications. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with three tightly focused sentences. The first states the core purpose, the second provides usage guidance, and the third reveals implementation behavior. Every sentence earns its place with no wasted words, and the information is front-loaded effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (single parameter, read-only operation with fallback behavior) and comprehensive annotations, the description provides good contextual coverage. It explains the purpose, usage sequencing, and implementation strategy. The main gap is the lack of output information (no output schema), but the description compensates somewhat by indicating it fetches 'full content.'

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the input schema already fully documents the single 'url' parameter. The description doesn't add any parameter-specific information beyond what's in the schema, so it meets the baseline expectation but doesn't provide additional semantic context about the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch the full content') and resource ('MetaMask Embedded Wallets documentation page'), distinguishing it from sibling tools like search_docs (which finds pages) and get_sdk_reference/get_example (which target different content types). It precisely defines what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('Use after search_docs to read the actual doc'), providing clear sequencing guidance. It also distinguishes it from search_docs by indicating this is for reading full content after searching, establishing a clear workflow relationship.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_exampleA
Read-onlyIdempotent
Inspect

Fetch the complete source code of a Web3Auth integration example from GitHub. Returns all source files needed to understand how the integration works. Examples are the PRIMARY reference for integration patterns — always prefer example code over raw SDK source.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExample name, e.g. 'React Quick Start' or 'Android Firebase'
platformNoFilter by platform
chainNoFilter by blockchain family
categoryNoFilter by category
auth_methodNoFilter by auth method, e.g. 'auth0', 'firebase', 'google', 'grouped'

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, covering safety and idempotency. The description adds valuable context beyond this: it specifies that the tool fetches from GitHub and returns all source files, and emphasizes the importance of examples as primary references. There is no contradiction with annotations, and the description enhances understanding of the tool's behavior without repeating structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: the first sentence clearly states the tool's purpose, followed by a sentence on return value, and a final sentence providing usage guidance. Every sentence adds value without redundancy, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, no output schema) and rich annotations (readOnlyHint, idempotentHint, openWorldHint), the description is largely complete. It covers purpose, usage guidelines, and behavioral context. However, it doesn't detail the return format (e.g., file structure or pagination), which could be useful since there's no output schema, leaving a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 5 parameters with descriptions and enums. The description does not add any parameter-specific information beyond what the schema provides, such as syntax or format details. However, it implies filtering capabilities through 'Fetch the complete source code of a Web3Auth integration example,' which aligns with the schema but doesn't offer additional semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('fetch the complete source code'), resource ('Web3Auth integration example from GitHub'), and scope ('all source files needed to understand how the integration works'). It explicitly distinguishes this tool from siblings by stating 'Examples are the PRIMARY reference for integration patterns — always prefer example code over raw SDK source,' which differentiates it from get_sdk_reference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: 'always prefer example code over raw SDK source' directly contrasts with get_sdk_reference. It also implies context by positioning examples as the primary reference for integration patterns, though it doesn't explicitly mention other siblings like get_doc or search_community.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sdk_referenceA
Read-onlyIdempotent
Inspect

Fetch SDK source code (type definitions, interfaces, hooks) from the open-source Web3Auth SDK repos. Use for REFERENCE and DEBUGGING only — to verify exact type shapes, constructor signatures, available hooks, and error types. Do NOT use this to discover features; many SDK options are internal or legacy. Always use get_example first for integration patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYesTarget platform SDK to fetch source for
moduleNoSpecific SDK module to fetch, e.g. 'core-types', 'react-hooks', 'modal-types', 'main-class'. Omit to get default type definitions. Call without module first to see available modules.
focusNoWhat kind of source to focus on. 'types' = interfaces/types (default, most useful). 'hooks' = React hooks / Vue composables. 'errors' = error types. 'main-class' = SDK implementation. 'all' = everything.types

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, indicating safe, repeatable operations. The description adds valuable context beyond this by specifying the tool's purpose for reference/debugging only, warning about internal/legacy SDK options, and recommending get_example for integration patterns. It doesn't contradict annotations, and the added context helps the agent understand behavioral nuances not covered by structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and usage guidelines in the first sentence, followed by specific instructions and warnings. Every sentence adds value—clarifying the tool's scope, restrictions, and alternatives—with no redundant or unnecessary information. It efficiently conveys critical information in a compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (fetching SDK source code with multiple parameters) and rich annotations (readOnlyHint, idempotentHint, openWorldHint), the description is largely complete. It covers purpose, usage guidelines, and behavioral context effectively. However, without an output schema, it doesn't describe return values or format, which is a minor gap. The annotations and schema compensate well, but the description could slightly enhance completeness by hinting at output structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some semantic context by mentioning 'type definitions, interfaces, hooks, and error types,' which aligns with the 'focus' parameter options, but doesn't provide additional syntax or format details beyond what the schema specifies. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch SDK source code') and resource ('from the open-source Web3Auth SDK repos'), distinguishing it from sibling tools like get_doc or get_example. It explicitly mentions fetching type definitions, interfaces, hooks, and error types, providing a precise scope that differentiates it from other tools that might return documentation or examples.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('for REFERENCE and DEBUGGING only') and when not to use it ('Do NOT use this to discover features'). It also names an alternative tool ('Always use get_example first for integration patterns'), clearly differentiating usage contexts from siblings like get_example, get_doc, search_community, and search_docs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_communityA
Read-onlyIdempotent
Inspect

Search or fetch posts from the MetaMask Embedded Wallets community forum (builder.metamask.io). Use for troubleshooting real user issues, finding workarounds, and checking if an issue is known. Provide a query to search or a topic_id to read the full discussion.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query, e.g. 'popup blocked safari', 'JWT error', 'Android unstable connection'
topic_idNoDiscourse topic ID to fetch the full discussion thread

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a read-only, idempotent, and open-world operation, which the description doesn't contradict. The description adds valuable context beyond annotations by specifying the forum source (builder.metamask.io) and the two distinct behavioral modes (search vs. fetch), though it doesn't mention rate limits or authentication needs. With annotations covering core safety traits, this additional context earns a strong score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by usage context and parameter guidance in just two sentences. Every sentence earns its place by providing essential information without redundancy, making it highly efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two parameters, 100% schema coverage, and annotations covering key behavioral traits, the description provides sufficient context by clarifying the forum source and use cases. The lack of an output schema is a minor gap, but the description compensates by explaining what the tool returns (search results or full discussions). It's nearly complete for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for both parameters (query and topic_id). The description adds minimal semantic value beyond the schema by mentioning the two modes ('search or fetch'), but doesn't provide additional details like query syntax examples beyond what's in the schema. Given the high schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Search or fetch posts') and target resource ('MetaMask Embedded Wallets community forum'), distinguishing it from sibling tools like search_docs by specifying the forum context. It provides concrete examples of use cases (troubleshooting, finding workarounds, checking known issues), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('for troubleshooting real user issues, finding workarounds, and checking if an issue is known') and provides clear alternatives for the two parameter modes ('Provide a query to search or a topic_id to read the full discussion'). This gives the agent precise guidance on selecting between query-based search and topic fetching.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsA
Read-onlyIdempotent
Inspect

Search MetaMask Embedded Wallets (Web3Auth) documentation and examples. Use for SDK discovery, feature lookup, and finding relevant examples. Returns doc page links with snippets and matching example projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat you are looking for -- e.g. 'React custom auth', 'Android deep linking', 'JWT grouped connections'
platformNoFilter examples by platform
chainNoFilter examples by blockchain family
categoryNoFilter examples by category

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, covering safety and idempotency. The description adds useful context about what gets returned (doc page links with snippets and matching example projects), which isn't covered by annotations. However, it doesn't mention rate limits, authentication needs, or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two sentences that each earn their place. The first sentence establishes purpose and scope, while the second describes the return format. No wasted words, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, 3 with enums) and rich annotations, the description is mostly complete. It covers purpose, usage context, and return format. However, without an output schema, it could benefit from more detail about the structure of returned results (e.g., pagination, error handling).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all parameters well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema, so it meets the baseline of 3. The description does imply the tool supports filtering (via platform, chain, category), but this is already explicit in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches MetaMask Embedded Wallets documentation and examples, specifying the exact resource (documentation and examples) and purpose (SDK discovery, feature lookup, finding examples). It distinguishes from siblings like get_doc (single document), get_example (single example), get_sdk_reference (reference material), and search_community (community content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (SDK discovery, feature lookup, finding examples), but doesn't explicitly state when NOT to use it or name specific alternatives. The sibling tools suggest different use cases, but the description doesn't contrast them directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv2.0.0
    • First observedget_doc
    • First observedget_example
    • First observedget_sdk_reference
    • First observedsearch_community
    • First observedsearch_docs

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_doc retrieves documentation content, get_example fetches example code, get_sdk_reference provides SDK source for debugging, search_community accesses forum discussions, and search_docs performs initial documentation searches. The descriptions explicitly differentiate their roles and use cases, leaving no ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case: get_doc, get_example, get_sdk_reference, search_community, and search_docs. This uniformity makes the tool set predictable and easy to understand at a glance.

Tool Count5/5

With 5 tools, the server is well-scoped for its purpose of providing MetaMask Embedded Wallets resources. Each tool serves a specific function (documentation, examples, SDK reference, community, and search), and none feel redundant or missing given the domain of developer support and integration.

Completeness4/5

The tool set covers key areas for developer integration: documentation access, example code, SDK reference, community support, and search functionality. A minor gap exists in not having tools for direct wallet operations or API interactions, but this is reasonable as the server focuses on resource retrieval rather than live wallet management.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers