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

Hwip

โดย hwipitรุ่น 0.1.7i★ –iรันบนเครื่อง
ชื่อใน registryio.github.hwipit/mcp-server

ติดตั้ง

ภาพรวม

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

Notify your phone, ask questions and get answers back from AI coding agents via Hwip.

สามเสาของ PopNx MCP

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

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

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

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ
  • ต้องใส่ค่าเหล่านี้: HWIP_API_KEY

ติดตั้ง

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

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

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

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

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

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

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

{
  "mcpServers": {
    "hwipit": {
      "command": "npx",
      "args": [
        "-y",
        "@hwip/mcp-server"
      ],
      "env": {
        "HWIP_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

claude mcp add hwipit --env HWIP_API_KEY='ใส่ค่าของคุณ' -- npx -y @hwip/mcp-server

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

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

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

{
  "mcpServers": {
    "hwipit": {
      "command": "npx",
      "args": [
        "-y",
        "@hwip/mcp-server"
      ],
      "env": {
        "HWIP_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

เปิดใน VS Code

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

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

{
  "servers": {
    "hwipit": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@hwip/mcp-server"
      ],
      "env": {
        "HWIP_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

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

ค่าที่ต้องใส่เอง

  • HWIP_API_KEY ความลับ env
    Your Hwip API key. Optional when ~/.hwip/config.json (from `hwip login`) holds one.

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

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

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

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

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

  • ✓ ผ่าน

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

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

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

    ยังมีคนดูแล

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

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

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

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

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

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

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

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

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

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

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

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

Hwip ปลอดภัยไหม?

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

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

ต้องใส่ค่าเหล่านี้: HWIP_API_KEY

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

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

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

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

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

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

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

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

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

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อัปเดต เมื่อวาน
ติดตั้ง

yontu

โดย senrecep

Türkçe yazı denetimi: TDK kuralları, yapay zekâ izleri, metin türüne göre üslup.

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

README จากผู้ทำ

เปิดอ่าน README

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

@hwip/mcp-server

Your agent calls `hwip_ask`; the question lands on your phone as buttons + a text field; your reply comes back into the same tool call and the agent keeps going.

Hwip's MCP server is the agent side of that round trip — plus one-way notifications, clipboard, files, and channel broadcasts, all over the Model Context Protocol. Works with Claude Code, Cursor, Windsurf, Gemini CLI, and any MCP client.

Your agent calls hwip_ask → the question hits your phone → you tap Deploy → the call returns and the agent ships.

Part of the Hwip toolchain: @hwip/cli (installer, push CLI, tmux remote control) · hwipit/plugin (Claude Code plugin bundling this server) · the Hwip app on your phone.

New here? docs.hwip.app walks the whole setup — one command on your machine, the app on your phone, and a restart. The reference below assumes that is already done.

Setup

The easiest way to set up for all agents at once:

npm install -g @hwip/cli

hwip install

Needs Node 18.17 or later. On Node 22 or later hwip_ask hears the answer over a WebSocket the moment it is given; on older Node it polls, and the server says so on stderr at start.

This saves credentials to ~/.hwip/config.json and configures your agents automatically. The MCP server reads from this file — no env vars needed. Install globally so hwip cc (phone-driven sessions) works and hooks skip an npx cold-start; npx @hwip/cli install is a notifications-only alternative.

Claude Code (manual)

Install the server once, so each session starts the hwip-mcp binary directly instead of resolving the package through npx first:

npm install -g @hwip/mcp-server

Add to ~/.claude/settings.json:

{

"mcpServers": { "hwip": { "command": "hwip-mcp" } } }

Without a global install, "command": "npx", "args": ["-y", "@hwip/mcp-server"] works too; it only starts slower, because every session resolves the package first.

No env block needed: credentials come from ~/.hwip/config.json (written by hwip install). Add env vars only to override the file — e.g. a second account:

      "env": { "HWIP_API_KEY": "ak_other_account" }
Cursor / Other MCP Clients
{

"command": "hwip-mcp" }

(after npm install -g @hwip/mcp-server, or "command": "npx", "args": ["-y", "@hwip/mcp-server"] without it.)

Environment Variables

VariableRequiredDescription
HWIP_API_KEYYes*API key from Settings > API Keys. One that cannot be sent as a header — a line break or another control character inside it, a character no key has — stops the server at start, with a message that says where the key is set and nothing of the key. So does an apiKey in ~/.hwip/config.json that is not text
HWIP_HOOK_IDNoHook ID (optional — only needed for hwip_ask)
HWIP_DEVICE_IDNoDefault target device for hwip_notify, hwip_clipboard and hwip_file (each call's targetDeviceId wins). Omit to send to all devices. hwip_ask does not use it
HWIP_BASE_URLNoAPI base URL (default: https://api.hwip.app/v1). A base URL that answers with a redirect is refused (REDIRECT_REFUSED): requests that carry your API key never follow one
HWIP_WS_URLNoDeprecated. WebSocket endpoint for the hook-response fast path. wsUrl in ~/.hwip/config.json wins over it and is where the value belongs; this is read only when the file has none, so a machine that predates the config field keeps working. It will stop being read
HWIP_DISABLE_SESSION_CACHENoSet to 1/true to skip writing the session-id handoff file under ~/.cache/hwip/. Useful for read-only filesystems, ephemeral CI runners, or sandboxed envs that audit filesystem writes. The plugin's stop hook still works without it (transcript-path UUID extraction is the primary path; the cache is a fallback for older Claude Code versions).
HWIP_AUTONAMENoSet to 1/true to offer hwip_session_title, so the agent names its own session. hwip install sets it for agents with no session title of their own
HWIP_SESSION_IDNoOverride the session id attached to pushes (grouping in the app). Auto-detected from the newest Claude Code transcript when unset

\* If env vars are not set, the server reads from ~/.hwip/config.json (created by hwip install or hwip login). Unresolved ${...} interpolations are also treated as unset.

~/.hwip/config.json
KeySame asNotes
apiKeyHWIP_API_KEYThe environment variable wins
baseUrlHWIP_BASE_URLThe environment variable wins
wsUrlHWIP_WS_URL (deprecated)The file wins. With neither, the prod API (https://api.hwip.app/v1) gets wss://ws.hwip.app, the cli listener's rule; another API base gets no socket, and hwip_ask polls
hookIdHWIP_HOOK_IDThe environment variable wins
deviceIdHWIP_DEVICE_IDThe environment variable wins

A file that is not used because it is not valid JSON or UTF-8 text, or cannot be read, is named on stderr ("…so it is being ignored") even when HWIP_API_KEY is set: its hookId and deviceId are dropped with it.

Without an API key the server stops at start and says why: the file does not exist, it is not valid JSON, it is not valid UTF-8 text (such a file is not used at all, as in the cli), it has no apiKey, or it was ignored (below).

The file holds the key and says where the key is sent, so the server checks it before reading, by the same rule as the cli:

  • Another user owns it, or anyone can write it (mode 002): the file is ignored — HWIP_API_KEY still works — and a line on stderr says so. Run chmod 600 ~/.hwip/config.json.
  • The group can read or write it, or others can read it: used, with a warning. The server only reads the file; hwip login is what narrows it to 0600.
  • A symlinked file (a dotfiles checkout) is judged by what it points at.
  • A file that is not valid JSON, or cannot be read, may hold the baseUrl your key belongs to (staging, self-hosted), so a key from HWIP_API_KEY is not sent to the default API in its place: the server stops at start, names the file, and goes ahead once HWIP_BASE_URL says where the key goes. (A file ignored for its mode is not trusted for a base URL either, and the default stands.)
  • A key from the file does not follow an address from the environment. The key in ~/.hwip/config.json belongs to the addresses the file says (baseUrl, else the default API). If HWIP_BASE_URL names another origin, the server stops at start, naming both origins and no more, and goes ahead once HWIP_API_KEY is set too (a key you gave with the address) or the variable is unset or on the same origin. The deprecated HWIP_WS_URL is held to the same rule — with the file's key it is used only for the default socket's origin, otherwise it is skipped with a line on stderr (hwip_ask polls) — and putting wsUrl in the file is the way to name another socket.
  • wsUrl has to be a ws:// or wss:// URL without a space or #fragment; one that is not is ignored with a warning (the default socket, or polling). ws:// and http:// to a host other than this machine work, with a warning that the key travels in the clear.

Limits on what the server reads

A reply from the API is read only up to 8 MiB (an error body, 64 KiB), counted on the bytes that arrive rather than on Content-Length; a file download, up to 1 GiB. Past that the call fails with RESPONSE_TOO_LARGE or FILE_TOO_LARGE. The message the API words for an error reaches the agent as one line of at most 300 characters, control characters turned into spaces, and an error code that is not made of letters, digits and _.:- becomes UNKNOWN_ERROR.

Tools

Push titles are automatically prefixed with the project directory name — myapp · Build complete — so the phone feed stays scannable when several sessions push at once.

hwip_notify

Send a one-way push notification. An optional url opens on the device; the push stays a notification (a long body goes as a response.md file push instead).

title:          "Build complete"

body: "All 42 tests passed" url: "https://github.com/org/repo/actions/runs/123" (optional) priority: "low" | "normal" | "high" | "urgent" targetDeviceId: "dev_..." (optional, overrides HWIP_DEVICE_ID)

hwip_clipboard

Copy text to the user's device clipboard. At most 96 KiB, measured as the server does (the text as JSON, UTF-8); longer text is refused with BODY_TOO_LONG before it is sent — use hwip_file with content. Not end-to-end encrypted (see Encryption): do not use it for secrets (keys, tokens, passwords); use hwip_notify or hwip_file for those.

text:           "npm install @hwip/mcp-server"

targetDeviceId: "dev_..." (optional)

hwip_list

List recent push notifications.

limit: 5         (1-20, default: 5)

type: "note" (optional filter: note, link, file, clipboard, hook)

Returns: { pushes: [...], total: 5, hasMore: true }. A body is cut to 100 characters. An end-to-end encrypted push shows encrypted: true and no title or body — only the user's devices can open it.

hwip_dismiss

Mark a specific push as read.

pushId: "push_01HX..."
hwip_dismiss_all

Clear all notifications at once. No parameters.

Returns: { dismissed: 12, badge: 0 }

hwip_devices · hwip_channels

Read-only lookups for the ids other tools take: hwip_devices returns { devices } (a deviceId is hwip_notify's targetDeviceId), hwip_channels returns { channels } (a channelId for hwip_broadcast). The same lists are the hwip://devices and hwip://channels resources, for clients that read resources.

hwip_broadcast

Send a notification to all subscribers of a channel.

channelId: "ch_..."

title: "Deploy complete" body: "v2.1.0 is live" url: "https://..." (optional) priority: "normal"

hwip_file

Send files to the user's device. One of filePath (a file already on disk), filePaths (several files on disk) or content (text you generated) is required.

filePath:       "/abs/path/screenshot.png"  (images, PDFs, logs — anything on disk)

filePaths: ["/abs/a.png", "/abs/b.png"] (up to 20, sent together; not with filePath or content) content: "{\"status\": \"ok\"}" (text only; requires fileName) fileName: "report.json" (required with content; defaults to basename of filePath) title: "Build Report" (optional, defaults to fileName, or "N files") targetDeviceId: "dev_..." (optional)

Images are delivered with their real mime type and render inline on the device. Never base64 a binary file into content — pass filePath and the server reads the bytes off disk.

Several files asked for at once (screenshots of one change, a set of logs) go in one call with filePaths: they arrive as one message, five to a push (the server's li

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

ถาม PopNx