Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
作者による説明(英語の原文)
Check phone numbers (WhatsApp, Telegram, carrier, spam reputation) and e-mail addresses.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
MOBILEVALIDATE_API_KEY, MCP_CONFIRM_ABOVE_USD, Authorization「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"mobilevalidate": {
"command": "npx",
"args": [
"-y",
"@mobilevalidate/mcp"
],
"env": {
"MOBILEVALIDATE_API_KEY": "your-value",
"MCP_CONFIRM_ABOVE_USD": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http mobilevalidate https://mcp.mobilevalidate.com/mcp --header 'Authorization: Bearer {api_key}'claude mcp add mobilevalidate --env MOBILEVALIDATE_API_KEY=your-value --env MCP_CONFIRM_ABOVE_USD=your-value -- npx -y @mobilevalidate/mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"mobilevalidate": {
"url": "https://mcp.mobilevalidate.com/mcp",
"headers": {
"Authorization": "Bearer {api_key}"
}
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"mobilevalidate": {
"command": "npx",
"args": [
"-y",
"@mobilevalidate/mcp"
],
"env": {
"MOBILEVALIDATE_API_KEY": "your-value",
"MCP_CONFIRM_ABOVE_USD": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"mobilevalidate": {
"type": "http",
"url": "https://mcp.mobilevalidate.com/mcp",
"headers": {
"Authorization": "Bearer {api_key}"
}
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"mobilevalidate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@mobilevalidate/mcp"
],
"env": {
"MOBILEVALIDATE_API_KEY": "your-value",
"MCP_CONFIRM_ABOVE_USD": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
MCP_CONFIRM_ABOVE_USD envAuthorization 秘密 必須 HTTP headerこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン mobilevalidate.com で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:MOBILEVALIDATE_API_KEY, Authorization
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(1.2.0)がレジストリに届いたのは40 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Model Context Protocol server for MobileValidate. It lets AI agents (Claude Desktop, Claude Code, Cursor, VS Code and any other MCP client) check phone numbers — registration on WhatsApp, Telegram, Viber, Signal and other platforms, carrier and line type, report-based spam reputation — and e-mail addresses (mailbox exists; account on Gmail, Outlook, Apple and others; yes / no / unknown only, never names or profiles). Several services can be checked in one call (checks); list_services shows what the key can use.
It is a thin client of the public MobileValidate API, built on the mobilevalidate SDK. It holds no credentials of its own: your key is only forwarded to api.mobilevalidate.com.
Two ways to use it:
| Hosted (remote) | Local (stdio) | |
|---|---|---|
| Runs | at https://mcp.mobilevalidate.com/mcp (Streamable HTTP) | on your machine via npx -y @mobilevalidate/mcp |
| Key | header Authorization: Bearer | env MOBILEVALIDATE_API_KEY |
| Needs | nothing to install | Node.js ≥ 20 (npx downloads the package) |
Both run the same tools with the same spend safeguards. Try either with a test key: the documented test values return fixed answers and nothing is billed.
Keys: an agent key (mv_agent_…, scoped, daily spend cap) or a test key (mv_test_…, free, never billed). Live keys (mv_live_…) are refused by the MCP server on purpose. Get a personal test key at https://mobilevalidate.com/get-test-key; agent keys come with an approved account.
Docs: https://mobilevalidate.com/docs/mcp
export MOBILEVALIDATE_API_KEY=mv_test_... # your personal test key
claude mcp add --transport http mobilevalidate https://mcp.mobilevalidate.com/mcp \ --header "Authorization: Bearer $MOBILEVALIDATE_API_KEY"
Then ask: *"Check +447700900001, +447700900002 and +447700900003 on WhatsApp."* You get registered, not registered and unknown. Test keys never reach a real network and are never billed: the magic values below give fixed answers, and any other number gets a made-up but stable answer.
Just looking? The public sandbox key mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym works too, but it answers only the magic values below (anything else is refused with sandbox_magic_only), has low shared rate limits and cannot run large jobs. Use your own test key for anything more.
| Test number | Result |
|---|---|
+447700900001 | registered |
+447700900002 | not registered |
+447700900003 | unknown (registered: null) |
+447700900004 | pending for about 5 s, then registered |
+447700900005 | unsupported_country |
+447700900006 | registered, business account |
Test e-mail addresses: registered@test.mobilevalidate.com, not-registered@…, unknown@… (same domain). Full list: https://mobilevalidate.com/docs/test-values.
# hosted
claude mcp add --transport http mobilevalidate https://mcp.mobilevalidate.com/mcp \ --header "Authorization: Bearer $MOBILEVALIDATE_API_KEY"
claude mcp add mobilevalidate --env MOBILEVALIDATE_API_KEY=mv_agent_... -- npx -y @mobilevalidate/mcp
.mcp.json equivalent of the hosted setup:
{
"mcpServers": { "mobilevalidate": { "type": "http", "url": "https://mcp.mobilevalidate.com/mcp", "headers": { "Authorization": "Bearer ${MOBILEVALIDATE_API_KEY}" } } } }
~/.cursor/mcp.json or .cursor/mcp.json)Hosted (live):
{
"mcpServers": { "mobilevalidate": { "url": "https://mcp.mobilevalidate.com/mcp", "headers": { "Authorization": "Bearer ${env:MOBILEVALIDATE_API_KEY}" } } } }
Local stdio: { "mcpServers": { "mobilevalidate": { "command": "npx", "args": ["-y", "@mobilevalidate/mcp"], "env": { "MOBILEVALIDATE_API_KEY": "mv_agent_..." } } } }
.vscode/mcp.json){
"servers": { "mobilevalidate": { "type": "http", "url": "https://mcp.mobilevalidate.com/mcp", "headers": { "Authorization": "Bearer ${input:mobilevalidate-key}" } } }, "inputs": [ { "id": "mobilevalidate-key", "type": "promptString", "description": "MobileValidate agent or test key", "password": true } ] }
claude_desktop_config.json)Claude Desktop connects to remote servers with a key through a stdio bridge such as the community mcp-remote package (hosted server, live):
{
"mcpServers": { "mobilevalidate": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.mobilevalidate.com/mcp", "--header", "Authorization:Bearer ${MOBILEVALIDATE_API_KEY}"], "env": { "MOBILEVALIDATE_API_KEY": "mv_agent_..." } } } }
Local stdio:
{
"mcpServers": { "mobilevalidate": { "command": "npx", "args": ["-y", "@mobilevalidate/mcp"], "env": { "MOBILEVALIDATE_API_KEY": "mv_agent_..." } } } }
https://mcp.mobilevalidate.com/mcp, header Authorization: Bearer mv_agent_…. The server is stateless: POST only, JSON responses, no session id.npx, args ["-y", "@mobilevalidate/mcp"], env MOBILEVALIDATE_API_KEY=mv_agent_…. To pin a version use @mobilevalidate/mcp@1.2.0. After npm install -g @mobilevalidate/mcp the command is mobilevalidate-mcp.Both transports speak MCP 2026-07-28 and the handshake-based revisions 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05 and 2024-10-07 (from 1.1.0; 1.0.x stopped at 2025-11-25). Nothing to configure: the client's opening message picks the revision.
initialize; every request carries _meta (io.modelcontextprotocol/protocolVersion, client info and capabilities) and, over HTTP, the MCP-Protocol-Version, Mcp-Method and Mcp-Name headers (checked against the body; mismatch → 400, -32020). server/discover returns the supported versions, capabilities, server identity and instructions. tools/list and server/discover carry ttlMs: 3600000, cacheScope: "public" (the list is the same for every key), and tools come back in a fixed order. An unsupported version gets 400 with UnsupportedProtocolVersion (-32022) listing the supported ones. Tool calls return JSON (no SSE).initialize as before; the hosted server stays stateless (POST only, JSON responses, no session id; GET → 405). On stdio the connection stays on the negotiated revision.job_id handle, the pattern the spec recommends now that sessions are gone.supportedProtocolVersions lists the same versions (newest first).| Tool | What it does | Spends credits | Annotations |
|---|---|---|---|
normalize_numbers | Local, free E.164 formatting. Flags ambiguous inputs (no country) and duplicates | no | read-only, idempotent, closed-world |
estimate_cost | Free pre-flight (numbers and/or emails): valid, invalid, duplicate and cached counts, plus the maximum cost of a bulk job | no | read-only, idempotent |
lookup_numbers | Check up to 100 numbers (optionally with emails, 100 in total) for one or more real-time services (checks; waits up to wait_seconds, default 20) | yes | not read-only, idempotent, open-world |
lookup_emails | Check up to 100 e-mail addresses (default check email; e.g. apple.email) in real time | yes | not read-only, idempotent, open-world |
check_spam_reputation | Spam reputation of up to 100 numbers (runs number.spam only): per number risk_level, risk_score, reasons, top category, first/last seen, sources, plus counts per level | yes | not read-only, idempotent, open-world |
create_lookup_job | Bulk check (up to 50,000 numbers and/or emails) for any active service, including bulk-only ones (e.g. gmail). Returns job_id | yes | not read-only, not idempotent (retries of the same arguments are deduplicated) |
get_lookup_job | Job status plus a filtered (registered, service), paginated page of results (one item per number or e-mail) | no | read-only, idempotent |
list_services | Services the key can use: input type (phone/email), real time or bulk only, attributes, countries, prices | no | read-only, idempotent |
get_account | Balance, reserved credit, today's usage, limits | no | read-only, idempotent |
Every tool declares a title, annotations, inputSchema and outputSchema. Each one returns structuredContent plus a one-line text summary. checks takes service codes or aliases (e.g. whatsapp, telegram, viber, carrier, spam); its description lists the real-time and bulk-only codes known to this build (from the SDK's generated catalog), and list_services gives the live list. Result items keep the v1 top-level fields (WhatsApp if requested, otherwise the first service) and add a checks map per service when more than one service (or a non-WhatsApp service) was requested. Tool descriptions state the anti-enumeration limits (≥ 20 consecutive numbers refused, daily caps).
E-mails. Phone services run on numbers, e-mail services on emails; send at least one check of each kind you send. Result items carry kind (phone/email); e-mail items have email (normalized, null if invalid), email_status (valid, invalid_email, duplicate, suppressed) and number_status: null. Descriptions state the e-mail rules: ≥ 20 addresses on one domain differing only by digits are refused as enumeration, and answers are yes/no/unknown only — no names, photos or profiles. Test keys use registered@test.mobilevalidate.com, not-registered@…, unknown@… (same domain).
Spam reputation. check_spam_reputation (or checks: ["spam"] on the other tools) answers from spam and nuisance-call reports: regulator actions, government complaint data, community reports and recently-unassigned numbers. All countries except sanctioned ones (Cuba, Iran, North Korea, Syria, Russia, Belarus, Venezuela and sanctioned regions → unsupported_country, free). no_reports means no reports are known — not that the number is safe; it is still a conclusive, billed answer. Limits: ≤ 100 numbers per call, the same spend confirmation and anti-enumeration rules as lookup_numbers. Test keys: +447700900001 high, …002 no_reports, …003 unknown, …004 pending then medium, …005 unsupported_country. Attribute values may be integers (risk_score, sources).
Network checks. checks: ["hlr"] returns live network status (status reachable / unreachable / invalid, ported, roaming, mcc_mnc, country); checks: ["mnp"] returns number portability (porting ported / not_ported, mcc_mnc, country). Unknown answers are free.
Before lookup_numbers, lookup_emails, check_spam_reputation or create_lookup_job spends anything, the server calls the free estimate. Real-time tools quote the maximum at the key's real-time prices (from list_services), create_lookup_job at bulk prices. The call is refused with a confirmation_required error result when either of these is true:
MCP_CONFIRM_ABOVE_USD (default 1.00), orScopes (agent keys): the real-time tools need lookup:write and jobs:write (the estimate is POST /v1/jobs/estimate); estimate_cost and create_lookup_job need jobs:write; get_lookup_job needs jobs:read; get_account needs account:read. list_services
冒頭だけを表示しています。続きはリポジトリで読めます