watchcheck

watchcheck

Enables AI assistants to read live macOS processes and identify monitoring software, including Chinese enterprise EDR/DLP/MDM tools, through a read-only MCP server.

Category
访问服务器

README

watchcheck 🔍

English | 简体中文

See what's actually running on your Mac — and who's watching.

watchcheck reads the processes on your Mac (read-only) and turns cryptic names into plain language: what each one is, who makes it, and — its specialty — whether it's endpoint-monitoring software (EDR / DLP / MDM / network & print auditing). It has first-class coverage of Chinese enterprise monitoring agents (深信服 Sangfor, 亿赛通 ESafeNet, IP-Guard, 奇安信, 360, 联软, 天空卫士, 北信源, and other domestic EDR/DLP/MDM tools) that Western tools — Little Snitch, KnockKnock, even general-purpose LLMs — consistently misidentify or don't know at all.

Two ways to use it

One read-only engine, two front-ends — pick either or both:

🖥️ Live panel 🤖 MCP server
What A local, auto-refreshing dashboard that reads your current processes — like Activity Monitor, but it explains each one and flags monitoring software Plugs into your AI assistant (Claude, Cursor, …) so the LLM can read your live processes and answer questions about them
For Anyone — no AI, no account, no setup beyond install People who live in an AI client and want to ask in their own words
Run watchcheck panel add to your MCP config, then ask Claude
Network none — binds 127.0.0.1 only none — local stdio

[!IMPORTANT] watchcheck is read-only and honest by design. It identifies software and describes what that class of software is capable of per vendor docs. It does not prove any tool is actively capturing you right now, and it cannot see the content of any data being sent. It is a transparency tool, not a way to evade legitimate corporate policy. On a company-managed device, removing or tampering with required software may violate your employment agreement.

Install

Requires Python 3.10+ and macOS.

# with uv (recommended)
uv tool install watchcheck          # once published
# or from source
git clone https://github.com/derkcc/watchcheck && cd watchcheck
uv venv --python 3.12 && uv pip install -e .

🖥️ The live panel

A local, read-only dashboard that re-collects your processes / CPU / memory / GPU every couple of seconds and explains them. Binds 127.0.0.1 only — never touches the network, never modifies anything.

watchcheck panel                       # opens http://127.0.0.1:8787/
watchcheck panel --lang en --interval 2 --port 8787

Activity-Monitor-style tabs — Monitoring / CPU / Memory / GPU / All processes — where every process row carries an inline plain-language explanation and a 🟢/🔴/⚪ marker; monitoring software is flagged with its capabilities and evidence.

Prefer a static, shareable file instead of a live server?

watchcheck report            # one-shot HTML snapshot → ~/watchcheck-report.html
watchcheck report --lang en  # English (~/watchcheck-report.en.html)

Both are bilingual (--lang zh|en). GPU is reported system-wide — macOS exposes no per-process GPU without sudo.

🤖 The MCP server

Let your AI assistant read and explain your live processes. Add to your MCP client config — Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "watchcheck": { "command": "watchcheck" }
  }
}

From source (no install):

{
  "mcpServers": {
    "watchcheck": {
      "command": "uv",
      "args": ["--directory", "/path/to/watchcheck", "run", "watchcheck"]
    }
  }
}

Then just ask:

"Scan my Mac — is my company monitoring me, and what can they see?" "What is acnvmagent?" "What monitoring tools does watchcheck know about?"

How it works (no screenshots needed)

You never copy process names or paste screenshots. The server runs on your Mac and reads the live process list itself; Claude calls it and explains the result.

flowchart TD
    A["You — ask in plain language<br/>(no screenshots, no copy-paste)"] --> B["Claude picks a tool:<br/>scan / overview / explain_process"]
    B --> C["watchcheck runs locally on your Mac<br/>reads processes via ps / launchd / certs<br/>read-only · no network · nothing modified"]
    C --> D["Returns structured facts:<br/>vendor / type / capabilities / CPU · memory<br/>(things it doesn't know are marked 'unknown')"]
    D --> E["Claude explains in plain language<br/>and answers follow-ups"]
    E --> A

Division of labor: watchcheck reads the processes and supplies the facts (from its signature DB); Claude orchestrates the calls, turns the facts into plain language, and fills in anything marked unknown from its own knowledge.

Tools exposed

Tool What it does
scan Read-only scan → identified monitoring software with evidence, capabilities, privacy impact
overview Typed breakdown of everything running (Apple system / browser / cloud / your own VPN / monitoring / unknown …), duplicates collapsed, with CPU/memory/GPU
explain_process Explain one process / label / bundle id in plain language
list_signatures The full catalog of what watchcheck can identify (transparency)
raw_inventory Raw collected artifacts, no matching (for investigating unknowns / contributing)

How it works

watchcheck reads only what macOS already exposes — nothing is modified, no files are read for content, no network calls:

Source Command What it reveals
Processes ps Running agents + CPU / memory
Persistence LaunchDaemons/Agents plists What auto-starts
System extensions systemextensionsctl list Network / endpoint-security filters
Kernel extensions kextstat Kernel-level agents (highest privilege)
MDM profiles status DEP / MDM enrollment
Certificates security find-certificate Corporate root CAs (HTTPS interception)
GPU ioreg System-wide GPU utilization

It then matches these against two data files: a curated, community-maintained monitoring signature DB (signatures.yaml — the part that knows Chinese enterprise tools) and a common-process catalog (common_processes.yaml — everyday macOS processes), so it can reassure you that most of what's running is normal and clearly flag what isn't. The signature DB is the whole point; everything else is a thin, replaceable shell.

Contributing signatures (the important part)

Coverage of Chinese enterprise tools on macOS is the gap, and it's where you can help most. If raw_inventory (or the panel's "unknown" rows) shows something watchcheck doesn't recognize:

  1. Find the artifact (process name, launchd label, bundle id, kext id, cert CN, path).
  2. Add an entry to signatures.yaml following the schema and the honesty rules at the top of that file.
  3. Set verified: true only if you confirmed it on a real machine.
  4. Open a PR. See CONTRIBUTING.md.

Signatures are facts about software, contributed by people who see it in the wild. That's the moat — and it only grows with help.

Roadmap

  • [ ] Windows + Linux collectors
  • [ ] Optional outbound_activity (which monitoring processes have live connections — volume/destination only, never content)
  • [ ] Wider Chinese-vendor macOS signatures
  • [ ] Per-process CPU sparklines in the live panel

License

MIT. See LICENSE.

Vendor and product names are used nominatively to identify software. No affiliation with or endorsement by any vendor is implied.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选