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

IP cameras (ONVIF/RTSP)

โดย aidev-iprokszinรุ่น 0.5.1i★ –iรันบนเครื่อง
ชื่อใน registryio.github.aidev-iprokszin/ipcam-mcp

ติดตั้ง

ภาพรวม

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

MCP server for local IP cameras (ONVIF/RTSP): snapshots, recordings, pan/tilt, presets

สามเสาของ PopNx MCP

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

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

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

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

ติดตั้ง

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

ก่อนติดตั้ง

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

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

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

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

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

{
  "mcpServers": {
    "ipcam": {
      "command": "uvx",
      "args": [
        "ipcam-mcp"
      ],
      "env": {
        "IPCAM_MCP_CONFIG": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

claude mcp add ipcam --env IPCAM_MCP_CONFIG='ใส่ค่าของคุณ' -- uvx ipcam-mcp

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

เปิดใน Cursor

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

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

{
  "mcpServers": {
    "ipcam": {
      "command": "uvx",
      "args": [
        "ipcam-mcp"
      ],
      "env": {
        "IPCAM_MCP_CONFIG": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

เปิดใน VS Code

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

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

{
  "servers": {
    "ipcam": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "ipcam-mcp"
      ],
      "env": {
        "IPCAM_MCP_CONFIG": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

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

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

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

  • IPCAM_MCP_CONFIG env
    Path to cameras.toml (default: ~/.config/ipcam-mcp/cameras.toml)

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

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

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

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

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

  • ✓ ผ่าน

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

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

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

    ยังมีคนดูแล

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

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

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

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

  • – ไม่เกี่ยว

    endpoint ตอบ

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

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

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

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

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

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

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

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

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

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

IP cameras (ONVIF/RTSP) ปลอดภัยไหม?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Spec Driven Development

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

โดย formulahendryเริ่มต้น↓ 66/สัปดาห์★ 440อัปเดต 14 เดือนที่ผ่านมา

รันบนเครื่อง

Remote Desktop Commander

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

โดย desktop-commanderกำลังโต★ 211อัปเดต วันนี้

รันบนคลาวด์✓ desktopcommander.app

ActivitySmith

AI agents and scripts reporting back to your iPhone with Push Notifications and Live Activities.

โดย activitysmith.comเริ่มต้นอัปเดต วันนี้

รันบนคลาวด์✓ activitysmith.com

README จากผู้ทำ

เปิดอ่าน README

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

ipcam-mcp

An MCP server that lets Claude Code, or another MCP client, see through and control the IP cameras on your local network (ONVIF + RTSP): snapshots, video clips, pan/tilt and change detection, all handled locally.

Any ONVIF camera should work. See known cameras for what has been tested.

What you can ask

Once a camera is added, ask in plain words, for example:

  • "Take a snapshot of the front door."
  • "Save this view as door-closed." Later: "Does the front door still look like door-closed?"
  • "Did anything change at the front door since the last snapshot?"
  • "Pan the office camera a bit to the left."
  • "Record 10 seconds from the garage."
  • "Show me what the garage cameras captured yesterday."

Prerequisites

  • Linux or WSL2, on the same network as the camera
  • uv on your PATH (it installs Python 3.13+ and the dependencies for you)
  • ffmpeg: sudo apt install ffmpeg
  • An ONVIF-capable IP camera with a local camera account (username and password), with ONVIF and RTSP enabled
  • Claude Code or another MCP client that supports stdio servers

Install

Pick one. All of them run the ipcam-mcp package from PyPI and need ffmpeg and, except pipx, uv (see Prerequisites).

  • Claude Code plugin (recommended for Claude Code): /plugin install ipcam --marketplace aidev-iprokszin/ipcam-mcp

On Claude Code older than 2.1.275, run /plugin marketplace add aidev-iprokszin/ipcam-mcp, then /plugin install ipcam@ipcam-mcp. The plugin runs the server from a lockfile (every dependency pinned with hashes). Update it with claude plugin update ipcam@ipcam-mcp, which also updates the server; a new server version reaches the plugin shortly after its PyPI release.

  • Claude Code, without the plugin: claude mcp add ipcam -s user -- uvx ipcam-mcp
  • Other MCP clients (Cursor, VS Code, Codex CLI, …): configure the stdio command uvx ipcam-mcp. See Other MCP clients.
  • A permanent `ipcam-mcp` command: uv tool install ipcam-mcp (or pipx install ipcam-mcp), then configure your client to run ipcam-mcp. Update with uv tool upgrade ipcam-mcp (or pipx upgrade ipcam-mcp).

Then add your first camera.

Add your first camera

  1. Camera account: create or find the camera's local ONVIF/RTSP account (username and password). This is not your cloud login. See known cameras for where your brand hides it.
  2. IP address: look it up in the camera's app or your router. Network discovery is not supported (WSL2 NAT blocks it).
  3. Ask Claude to add it, for example "add my camera at 192.0.2.10 as front-door". Claude calls add_camera, which asks for the username and password in a login form, so they never pass through the model. Before you type the password, check that the IP in the form is your camera's. Without a config file the server starts with no cameras; add_camera creates cameras.toml and the camera's secrets file. See Managing cameras for the other management tools and for clients that cannot show forms.
Or configure it by hand
  1. Secrets file (outside any repo), e.g. ~/.config/ipcam-mcp/secrets.env:
   CAMERA_IP=192.168.x.y

CAMERA_USER=... CAMERA_PASSWORD=...

   The host is a bare IP address or hostname: no `rtsp://`, user name, port or path (ports go

in Camera settings). Make it readable only by you: chmod 600 . The server warns at startup if other users can read it.

  1. Camera config: copy cameras.example.toml to ~/.config/ipcam-mcp/cameras.toml (or point IPCAM_MCP_CONFIG at another path) and adjust the camera name / variable names. Only variable *names* go in this file, never the secrets themselves. Use type = "onvif".

After editing cameras.toml by hand while the server runs, ask Claude to reload the cameras (reload_cameras).

Camera settings

All optional, set in the camera's section of cameras.toml. A wrong type is reported when the config loads.

SettingTypeDefault
onvif_portinteger 1–6553580
rtsp_portinteger 1–65535the port in the camera's stream URI, else 554 (a value you set always wins)
invert_panbooleanfalse
ptzbooleanfalse
stream_highpath starting with /looked up over ONVIF
stream_lowpath starting with /looked up over ONVIF

ptz = false means the camera has no pan/tilt tools. Set stream_high/stream_low if the ONVIF lookup fails or picks the wrong stream. Set invert_pan = true if ptz_move left turns the view to the right. Some brands need other values; see known cameras.

Other MCP clients

Any client that supports stdio servers (Cursor, VS Code, Codex CLI, …) can run the same command: uvx ipcam-mcp, or uv --directory /absolute/path/to/ipcam-mcp run ipcam-mcp for a clone.

Claude Desktop on Windows: the server runs inside WSL2, so install uv and ffmpeg there (see *Prerequisites*). In Claude Desktop, open *Settings → Developer → Edit Config*, add the ipcam entry below to mcpServers and keep the rest of the file:

{

"mcpServers": { "ipcam": { "command": "wsl.exe", "args": ["-e", "/home/ /.local/bin/uvx", "ipcam-mcp"] } } }

Replace `<you>` with your WSL user name (`which uvx` in WSL shows the path). With several WSL

distributions, add "-d", " " before "-e". Then quit Claude Desktop from the tray icon (closing the window is not enough) and start it again. The server uses the same cameras.toml and media folder inside WSL as Claude Code there. Use *Edit Config* rather than a fixed path: the Microsoft Store version keeps the file under %LOCALAPPDATA%, not %APPDATA%\Claude. For a clone, use "args": ["-e", "/home/ /.local/bin/uv", "--directory", "/home/ /path/to/ipcam-mcp", "run", "ipcam-mcp"].

WSL2 networking

If the camera can't be reached from WSL (nc -zv 554 fails), enable mirrored networking in %UserProfile%\.wslconfig:

[wsl2]

networkingMode=mirrored

then run `wsl --shutdown` from Windows.

Tools

ToolWhat it does
list_cameras(include_removed=False)Configured cameras with their uid, scene and capabilities (camera, ptz); include_removed=true also lists removed cameras whose files are still on disk
camera_snapshot(camera=None, quality="high", crop=None, region=None, from_path=None)Returns the picture (≤1280 px wide) and saves the full-size JPEG. crop=[x, y, w, h] (fractions 0–1) or region (top-left, top, top-right, left, center, right, bottom-left, bottom, bottom-right) returns a detail at full resolution. from_path reuses an earlier snapshot (for example one from scene_timeline) without contacting a camera; camera is then optional
camera_save_baseline(camera, name, quality="high")Takes a snapshot and keeps it as a named reference (e.g. door-closed)
camera_compare(camera, baseline=None, quality="high")Takes a snapshot and reports what changed against the camera's previous snapshot in its current scene, or against a named baseline saved in that scene
camera_record(camera, seconds=10, quality="high")Records 1–60 s to an mp4, returns its path
ptz_move(camera, direction, amount="small")Pan/tilt left/right/up/down by small/medium/large; waits for the move to finish and returns the final position if the camera reports one
ptz_list_presets(camera)Saved positions
ptz_goto_preset(camera, preset)Move to a preset by name or token
ptz_save_preset(camera, name, overwrite=False)Saves the current position as a preset; refuses an existing name unless overwrite=true
ptz_remove_preset(camera, preset)Deletes a preset by name or token (cannot be undone)
list_scenes()Every scene with its cameras, removed cameras that watched it, the first and last capture and counts
scene_snapshot(scene, quality="high")A snapshot from every camera in the scene, each labelled with the camera's name; a camera that fails reports its error without failing the others; the call fails only if every camera does
scene_compare(scene, baseline=None, quality="high")camera_compare for every camera in the scene, labelled the same way
scene_record(scene, seconds=10, quality="high")Records 1–60 s with every camera in the scene at the same time, labelled the same way; returns each clip's path and size. Combining the clips (split screen etc.) is up to you
scene_timeline(scene, start=None, end=None, limit=50)The scene's snapshots, recordings and baselines, newest first, from every camera that watched it (removed ones too). start/end: YYYY-MM-DD (whole day) or an ISO datetime; limit 1–500

camera is a camera's name: its section name in cameras.toml. quality="high" uses the camera's main stream (its resolution is set on the camera), "low" the sub stream (smaller, quicker). Media is saved to the camera's own folder, / / _ .jpg|.mp4 (media_dir defaults to ~/.local/share/ipcam-mcp/media).

Tool hints. Every tool carries MCP annotations so clients can tell what it does: list_cameras, list_scenes, scene_timeline and ptz_list_presets are read-only; camera_save_baseline, ptz_save_preset, ptz_remove_preset, remove_camera and delete_camera may replace or delete data; everything else only adds files or moves the camera. Snapshots and recordings are not marked read-only because they save files. These are hints for the client; the server's own safeguards (such as delete_camera's approval form) still apply.

Compare and crop. camera_compare lists the grid cells that changed (the same names as region) and a box around them. It compares the frames at the size the camera sends them, so the stream resolution you set on the camera decides how small a change it can notice; a reference of another size is scaled to the new frame. Pass a changed cell as region to camera_snapshot, ideally with from_path set to the snapshot you just looked at, to see it closer. Baselines live in / /baselines/ as a JPEG plus a small JSON file.

Managing cameras

Instead of editing cameras.toml by hand you can let Claude add, rename, remove and delete cameras. This is on by default. To turn it off, set allow_management = false in cameras.toml (see cameras.example.toml), then run /mcp reconnect ipcam; the flag is only read at startup. Claude Code still asks before each tool call unless you allowlist it; if you allowlist the camera tools, consider leaving remove_camera, delete_camera and ptz_remove_preset off the list.

add_camera logs into whatever host it is given. Before you type a password into the login form, check that the IP it shows is your camera's (from the camera's app or your router), not one the agent picked up elsewhere.

ToolWhat it does

| `add_camera(name, host, credentials_via="form", onvif_port=None, scene=No

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

ถาม PopNx