ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

CanYouGrab.it

โดย einibaรุ่น 1.1.1i★ –iบนเครื่องหรือคลาวด์
ชื่อใน registryio.github.einiba/canyougrab

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Confidence-scored domain availability checking for AI agents via CanYouGrab.it

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: บนเครื่องหรือคลาวด์
  • ช่องทาง (transport): stdio, Streamable HTTP
  • หมวด: อื่น ๆ

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย
  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:

  1. เปิด Settings → Connectors
  2. กด Add custom connector
  3. วางที่อยู่ด้านล่างแล้วกด Add
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Add2https://…3
https://api.canyougrab.it/mcp

หรือรันในเครื่องคุณ

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "canyougrab": {
      "command": "uvx",
      "args": [
        "mcp-server-canyougrab"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http canyougrab https://api.canyougrab.it/mcp

หรือรันในเครื่องคุณ

claude mcp add canyougrab -- uvx mcp-server-canyougrab

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "canyougrab": {
      "url": "https://api.canyougrab.it/mcp"
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "canyougrab": {
      "command": "uvx",
      "args": [
        "mcp-server-canyougrab"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "canyougrab": {
      "type": "http",
      "url": "https://api.canyougrab.it/mcp"
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "canyougrab": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-server-canyougrab"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:

  1. เปิด ChatGPT บนเว็บ → Settings → Connectors (Apps)
  2. กด Create หรือ Add (บางแพ็กเกจต้องเปิด Developer mode ใน Advanced ก่อน)
  3. วางที่อยู่ด้านล่าง ตั้งชื่อ แล้วบันทึก
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Create2https://…3
https://api.canyougrab.it/mcp

ชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub einiba ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    endpoint ตอบ

    ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป

  • … ยังไม่ตรวจ

    ล็อกอินแบบ OAuth

    ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 32725 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 8% ของอีก 32725 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 32725 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

CanYouGrab.it ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.1.1) เข้า registry 6 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Signoff

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

รันบนคลาวด์★ 211อัปเดต เมื่อวานซืน
ติดตั้ง

Signoff

โดย ayuanxx-max

Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

CanYouGrab API

Domain availability lookup API with subscription billing, built on FastAPI + DNS (Unbound resolver).

Live services:

  • API: https://api.canyougrab.it
  • Developer portal: https://portal.canyougrab.it
  • Auth: https://auth.canyougrab.it (Auth0 custom domain)

Architecture Overview

┌──────────────────────────────────────────────────────────────────┐

│ Developer Portal │ │ (Zudoku/React on portal.canyougrab.it) │ │ Usage Dashboard · API Keys · Pricing · API Reference (OAS) │ └──────────────────┬───────────────────────────────────────────────┘ │ Auth0 JWT (portal) / Bearer API key (API) ▼ ┌──────────────────────────────────────────────────────────────────┐ │ FastAPI Backend (v5.0.0) │ │ api.canyougrab.it:8000 │ │ │ │ ┌─────────────┐ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │ │ │ app.py │ │ keys.py │ │billing.py│ │ auth.py │ │ │ │ /check/bulk │ │ /keys │ │/billing │ │ API key + │ │ │ │ /usage │ │ CRUD │ │/stripe │ │ JWT auth │ │ │ │ │ │ rotate │ │ webhook │ │ │ │ │ └──────┬──────┘ └──────────┘ └────┬─────┘ └─────────────┘ │ │ │ │ │ └─────────┼────────────────────────────┼───────────────────────────┘ │ │ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ │ Valkey (Redis) │ │ Stripe API │ │ Job queue + │ │ Subscriptions │ │ Rate limiting │ │ Webhooks │ └────────┬────────┘ └─────────────────┘ │ ▼ ┌─────────────────┐ ┌──────────────────────────────┐ │ RQ Worker │──DNS──▶ │ Unbound Resolver │ │ (worker.py) │ │ (dedicated droplet) │ │ ThreadPool(10) │ │ NS queries via VPC │ │ via RQ queue │ └──────────────────────────────┘ └─────────────────┘ ┌──────────────────────────────┐ ───────────────────▶│ PostgreSQL │ (auth, usage, │ API keys + Usage logs │ billing only) └──────────────────────────────┘

Directory Structure

zuplo/

├── backend/ # Python FastAPI backend │ ├── app.py # Main API: /check/bulk, /usage, /health │ ├── auth.py # API key auth (SHA-256) + Auth0 JWT auth (RS256) │ ├── billing.py # Stripe checkout, portal, webhooks, card-on-file, usage details │ ├── keys.py # API key CRUD: create, list, rotate, revoke (+ Turnstile) │ ├── antifraud.py # Anti-fraud: Turnstile, device fingerprints, risk scoring │ ├── email_utils.py # Email normalization + disposable email detection │ ├── dns_client.py # DNS-based domain availability checking via Unbound │ ├── queries.py # PostgreSQL queries: usage tracking, auth, billing │ ├── valkey_client.py # Redis/Valkey job queue client (RQ-backed) │ ├── rq_tasks.py # RQ task function: process_domain_job() │ ├── worker.py # RQ worker process (ThreadPoolExecutor per job) │ ├── migrations/ # SQL migrations │ │ └── 001_free_tier_antifraud.sql │ └── requirements.txt # Python dependencies ├── portal/ # Developer portal (Zuplo + Zudoku) │ ├── config/ │ │ ├── routes.oas.json # OpenAPI 3.1 spec (public API documentation) │ │ └── policies.json # Zuplo policies (empty — all routing is direct) │ ├── docs/ # Zudoku documentation portal │ │ ├── src/ │ │ │ ├── config.ts # API_BASE, Turnstile site key, Stripe PK │ │ │ ├── UsageDashboard.tsx # Usage + billing dashboard component │ │ │ ├── PricingPage.tsx # Plan selection + Stripe checkout │ │ │ ├── PricingPlans.tsx # Pricing card grid component │ │ │ └── CardSetupPage.tsx # Stripe Elements card-on-file for Free+ │ │ ├── public/ # Static assets (logos, banners, CSS overrides) │ │ ├── zudoku.config.tsx # Portal config: theme, nav, Auth0, API key mgmt │ │ └── package.json # Frontend dependencies (React 19, Zudoku) │ ├── package.json # Workspace root (Zuplo v6, TypeScript v5) │ └── README.md # Zuplo boilerplate (not project-specific) ├── mcp-server/ # MCP package for ChatGPT, Claude, and remote MCP clients │ ├── pyproject.toml # MCP package metadata + version │ ├── server.json # MCP registry/server metadata │ ├── uv.lock # Locked MCP runtime dependencies │ └── src/canyougrab_mcp/ │ ├── init.py │ └── server.py # stdio + streamable-http MCP entrypoint ├── .github/workflows/ │ ├── deploy.yml # Production deploy (on tag push v*) │ └── deploy-dev.yml # Dev deploy (on push to dev branch) ├── .claude/ │ └── launch.json # Local dev server config (port 9200) └── package.json # Root workspace config

API Endpoints

Public API (API key auth: Authorization: Bearer cyg_...)
MethodPathDescription
POST/api/check/bulkCheck up to 100 domains. Long-polls until results ready (30s max).
GET/api/account/usageUsage summary for the authenticated consumer.
GET/api/account/quota-checkLightweight monthly + per-minute quota check.
GET/healthHealth check (no auth).
Portal API (Auth0 JWT auth)
MethodPathDescription
POST/api/keysCreate new API key.
GET/api/keysList user's API keys.
POST/api/keys/{id}/rotateRotate key (revoke old, create new).
DELETE/api/keys/{id}Revoke (soft-delete) a key.
POST/api/billing/checkoutCreate Stripe Checkout session.
POST/api/billing/portalCreate Stripe Customer Portal session.
POST/api/billing/setup-cardCreate SetupIntent for Free+ card-on-file.
POST/api/billing/confirm-free-plusVerify card fingerprint and upgrade to Free+.
GET/api/billing/card-statusCheck if user has a card on file.
GET/api/billing/usage/detailedPer-key usage breakdown for portal dashboard.
POST/api/antifraud/turnstile/verifyVerify Cloudflare Turnstile token.
POST/api/antifraud/device/registerRegister device fingerprint (Fingerprint Pro).
GET/api/antifraud/riskGet risk assessment for authenticated user.
POST/api/antifraud/assess-signupRun multi-signal risk assessment at signup.
Internal / Webhook
MethodPathDescription
POST/api/account/usage/detailedMulti-consumer usage breakdown.
POST/api/stripe/webhookStripe webhook receiver (signature-verified).

Core Request Flow

Domain Availability Check
Client                    FastAPI                     Valkey                      Worker              Unbound

│ │ │ │ │ │ POST /api/check/bulk │ │ │ │ │ { domains: [...] } │ │ │ │ │─────────────────────────▶│ │ │ │ │ │── validate key ──────────│ │ │ │ │── check minute rate ────▶│ INCR ratelimit:id:min │ │ │ │── check monthly quota ──▶│ (PostgreSQL) │ │ │ │── record usage ─────────▶│ (PostgreSQL) │ │ │ │── create_job() ─────────▶│ HSET job:{uuid} │ │ │ │ │ RQ enqueue (with retry) │ │ │ │ │ │ │ │ │ │◀── RQ Worker dequeues ───│ │ │ │ │ │ │ │ │ │──── claim_job() ────────▶│ │ │ │ │ │── ThreadPool(10) │ │ │ │ │── check_domain_dns() │ │ │ │── NS query ───────▶│ │ │ │ │◀── NOERROR/NXDOMAIN│ │ │ │◀── complete_job() ───────│ │ │ │ │ │ │ │ │◀─ poll get_job_status() ─│ │ │ │ │ (0.3s interval, 30s │ │ │ │ │ max timeout) │ │ │ │◀─────────────────────────│ │ │ │ │ { results: [...] } │ │ │ │

Billing / Subscription Flow
User → Pricing Page → Select Plan → Auth0 login

→ POST /api/billing/checkout (JWT auth) → Find/create Stripe customer (linked by auth0_sub metadata) → Stripe Checkout Session created → redirect to Stripe → User pays → Stripe fires webhook → POST /api/stripe/webhook (HMAC-SHA256 verified) → checkout.session.completed → fetch subscription → get price ID → Map price to plan → UPDATE api_keys SET plan, lookups_limit

Subscription Plans

PlanMonthly LookupsPer-Minute Rate LimitDomains/RequestPrice
Free50030/min30$0
Free+10,000100/min100$0 (card on file)
Basic20,000300/min100$10/mo
Pro50,0001,000/min100$20/mo
Business300,0003,000/min100$30/mo

Authentication

API Key Auth (public API consumers)
  • Format: Authorization: Bearer cyg_
  • Keys are SHA-256 hashed in the api_keys table (plaintext never stored)
  • Key prefix (cyg_XXXXXXXX...) is stored for display in the portal
  • Full key returned only once at creation time
  • Soft-delete on revocation (revoked_at timestamp, not physically deleted)
JWT Auth (portal/dashboard)
  • Auth0 tenant: dev-mqe5tavp6dr62e7u
  • Custom domain: auth.canyougrab.it
  • Algorithm: RS256 with JWKS validation (1-hour cache)
  • Audience: https://api.canyougrab.it
  • Social logins: Google, Apple (Sign in with Apple)

Domain Availability via DNS

Domain availability is checked by querying a dedicated Unbound recursive DNS resolver running on a separate DigitalOcean droplet. The worker sends NS record queries over the VPC private network and interprets the response:

| DNS Response | `avail

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx