World Monitor
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 97 tools.
MCP server for local IP cameras (ONVIF/RTSP): snapshots, recordings, pan/tilt, presets
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 3/3 통과 · 내 컴퓨터에서 실행돼요 · ✓ 명령 확인 2026년 11월 14일
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
이 메시지를 Claude 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Claude에 MCP server IP cameras (ONVIF/RTSP)을 설치해 주세요. 순서대로: 1) uv --version로 uv가 있는지 확인. 없으면 https://docs.astral.sh/uv/getting-started/installation/에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "ipcam": { "command": "uvx", "args": [ "ipcam-mcp" ] } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 IP cameras (ONVIF/RTSP)의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
uv --versionMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: uv에는 클릭형 설치 파일이 없습니다. uv 공식 페이지에서 내 시스템(macOS 또는 Windows)용 한 줄 명령을 복사해 터미널에 붙여 넣으세요 · Python을 따로 설치할 필요 없이 uv가 필요할 때 자동으로 내려받습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: uv --version
한 번 설치하면 uv가 필요한 모든 도구에서 쓸 수 있습니다
SettingsDeveloperEdit Config
{
"mcpServers": {
"ipcam": {
"command": "uvx",
"args": [
"ipcam-mcp"
]
}
}
}IP cameras (ONVIF/RTSP)을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 IP cameras (ONVIF/RTSP)을 쓰고 있다고 하거나 답에 IP cameras (ONVIF/RTSP) 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
IPCAM_MCP_CONFIG cameras.toml의 경로(기본값: /.config/ipcam-mcp/cameras.toml) 설명은 자동 번역이며 변수 이름은 원문 그대로입니다. 확실하지 않으면 원문을 확인하세요.
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 아직 IP cameras (ONVIF/RTSP)에 연결할 수 없어요
IP cameras (ONVIF/RTSP)는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요
A · IP cameras (ONVIF/RTSP)에 연결되는 앱 쓰기
B · 기타에서 ChatGPT에 연결되는 다른 서버
같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요
Claude Code에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)
이 메시지를 Claude Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Claude Code에 MCP server IP cameras (ONVIF/RTSP)을 설치해 주세요. 순서대로: 1) uv --version로 uv가 있는지 확인. 없으면 https://docs.astral.sh/uv/getting-started/installation/에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): claude mcp add --scope user ipcam -- uvx ipcam-mcp 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 IP cameras (ONVIF/RTSP)의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
uv --versionMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: uv에는 클릭형 설치 파일이 없습니다. uv 공식 페이지에서 내 시스템(macOS 또는 Windows)용 한 줄 명령을 복사해 터미널에 붙여 넣으세요 · Python을 따로 설치할 필요 없이 uv가 필요할 때 자동으로 내려받습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: uv --version
한 번 설치하면 uv가 필요한 모든 도구에서 쓸 수 있습니다
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
claude mcp add --scope user ipcam -- uvx ipcam-mcpIP cameras (ONVIF/RTSP)이 목록에 있고 연결됨으로 보이면 돼요
IP cameras (ONVIF/RTSP)을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 IP cameras (ONVIF/RTSP)을 쓰고 있다고 하거나 답에 IP cameras (ONVIF/RTSP) 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
IPCAM_MCP_CONFIG cameras.toml의 경로(기본값: /.config/ipcam-mcp/cameras.toml) 설명은 자동 번역이며 변수 이름은 원문 그대로입니다. 확실하지 않으면 원문을 확인하세요.
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)
이 메시지를 Cursor 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Cursor에 MCP server IP cameras (ONVIF/RTSP)을 설치해 주세요. 순서대로: 1) uv --version로 uv가 있는지 확인. 없으면 https://docs.astral.sh/uv/getting-started/installation/에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "ipcam": { "command": "uvx", "args": [ "ipcam-mcp" ] } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 IP cameras (ONVIF/RTSP)의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
uv --versionMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: uv에는 클릭형 설치 파일이 없습니다. uv 공식 페이지에서 내 시스템(macOS 또는 Windows)용 한 줄 명령을 복사해 터미널에 붙여 넣으세요 · Python을 따로 설치할 필요 없이 uv가 필요할 때 자동으로 내려받습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: uv --version
한 번 설치하면 uv가 필요한 모든 도구에서 쓸 수 있습니다
IP cameras (ONVIF/RTSP)을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 IP cameras (ONVIF/RTSP)을 쓰고 있다고 하거나 답에 IP cameras (ONVIF/RTSP) 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
IPCAM_MCP_CONFIG cameras.toml의 경로(기본값: /.config/ipcam-mcp/cameras.toml) 설명은 자동 번역이며 변수 이름은 원문 그대로입니다. 확실하지 않으면 원문을 확인하세요.
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Python (uv)를 설치하세요 (한 번만)
이 메시지를 VS Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 VS Code에 MCP server IP cameras (ONVIF/RTSP)을 설치해 주세요. 순서대로: 1) uv --version로 uv가 있는지 확인. 없으면 https://docs.astral.sh/uv/getting-started/installation/에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "servers": { "ipcam": { "type": "stdio", "command": "uvx", "args": [ "ipcam-mcp" ] } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 IP cameras (ONVIF/RTSP)의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
uv --versionMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: uv에는 클릭형 설치 파일이 없습니다. uv 공식 페이지에서 내 시스템(macOS 또는 Windows)용 한 줄 명령을 복사해 터미널에 붙여 넣으세요 · Python을 따로 설치할 필요 없이 uv가 필요할 때 자동으로 내려받습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: uv --version
한 번 설치하면 uv가 필요한 모든 도구에서 쓸 수 있습니다
IP cameras (ONVIF/RTSP)을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 IP cameras (ONVIF/RTSP)을 쓰고 있다고 하거나 답에 IP cameras (ONVIF/RTSP) 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
IPCAM_MCP_CONFIG cameras.toml의 경로(기본값: /.config/ipcam-mcp/cameras.toml) 설명은 자동 번역이며 변수 이름은 원문 그대로입니다. 확실하지 않으면 원문을 확인하세요.
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요
JSON 설정은 아래 “개발자용”에 있어요
Claude Code
claude mcp add --scope user ipcam -- uvx ipcam-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"ipcam": {
"command": "uvx",
"args": [
"ipcam-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"ipcam": {
"command": "uvx",
"args": [
"ipcam-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"ipcam": {
"type": "stdio",
"command": "uvx",
"args": [
"ipcam-mcp"
]
}
}
}IPCAM_MCP_CONFIG env설명은 자동 번역이며 변수 이름은 원문 그대로입니다. 확실하지 않으면 원문을 확인하세요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 15일 점검
레지스트리 이름이 GitHub 계정 aidev-iprokszin 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
코드 마지막 변경: 5일 전
MIT 사용
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
OSV.dev에 ipcam-mcp@0.5.1 항목이 없습니다
이 버전의 패키지 자체만 확인하며 모든 의존성은 아닙니다 · 확인 2026년 11월 15일
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
아직 리뷰가 없어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 5일 전 변경됐고, 최신 버전(0.5.1)은 6일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: World Monitor, openstatus, Oh My Posh Validator, Strata, Jitsu
같은 카테고리, 다른 제작자, 명령 확인 완료. 공식이 먼저, 그다음 스타 순.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 97 tools.
Manage monitors, status pages, incidents and maintenances in your openstatus workspace.
Validate oh-my-posh configurations and segment snippets against the official schema.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Manage Jitsu data pipelines: destinations, streams, connections, functions, live events.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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.
Once a camera is added, ask in plain words, for example:
PATH (it installs Python 3.13+ and the dependencies for you)sudo apt install ffmpegPick one. All of them run the ipcam-mcp package from PyPI and need ffmpeg and, except pipx, uv (see Prerequisites).
/plugin install ipcam --marketplace aidev-iprokszin/ipcam-mcpOn 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 mcp add ipcam -s user -- uvx ipcam-mcpuvx ipcam-mcp. See Other MCP clients.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_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.~/.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.
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).
All optional, set in the camera's section of cameras.toml. A wrong type is reported when the config loads.
| Setting | Type | Default |
|---|---|---|
onvif_port | integer 1–65535 | 80 |
rtsp_port | integer 1–65535 | the port in the camera's stream URI, else 554 (a value you set always wins) |
invert_pan | boolean | false |
ptz | boolean | false |
stream_high | path starting with / | looked up over ONVIF |
stream_low | path 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.
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"].
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.
| Tool | What 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.
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.
| Tool | What it does |
|---|
| `add_camera(name, host, credentials_via="form", onvif_port=None, scene=No