JB Pi macOS Control
A local observation-only MCP server for macOS that provides secure, atomic evidence capture with strict target approval and manifest-based output.
README
JB Pi macOS Control
A local observation-only derivative of CursorTouch/MacOS-MCP. Version 0.1.6 preserves the four-tool boundary and adds an atomic, self-contained file chain for each Evidence capture. Status, Snapshot, and bounded AX behavior are unchanged from frozen 0.1.5.
jb_mac_capture_evidence now requires an approved target, capture_scope="window", a restricted lowercase label, and purpose calibration or acceptance. The label is metadata only; internal unpredictable IDs own all paths. Each successful Evidence atomically publishes exactly:
/tmp/jb-pi-macos-control/<safe-session-component>/evidence/<evidence-id>/
capture.png
manifest.json
manifest.json uses jb.evidence-manifest.v1; model-visible output remains jb.evidence.v1 plus the independent validated PNG image item. Neither JSON/details nor audit contains image base64, a complete Session ID, a concrete digest, Window ID, scratch path, or sensitive absolute user path.
See UPSTREAM.md, SECURITY.md, DEPENDENCIES.md, docs/ARCHITECTURE.md, docs/INSTALL-PLAN.md, and docs/BASELINE.md.
./Scripts/verify.zsh
Lifecycle scripts default to dry-run. Approved upgrades are exactly 0.1.0 -> 0.1.2, 0.1.2 -> 0.1.3, 0.1.3 -> 0.1.4, 0.1.4 -> 0.1.5, and 0.1.5 -> 0.1.6; execution requires the matching immutable tag, refuses a running old MCP, and uses macOS RENAME_SWAP.
The server remains stdio-only:
/usr/bin/python3 -m macos_mcp_jb.cli serve-readonly --transport stdio
Configuration
config/approved-targets.json ships as an empty template. Fill it with the
exact signature identity (canonical path, bundle id, Team ID, CDHash, executable
and Info.plist SHA-256, designated requirement) of each macOS bundle you want the
snapshot/evidence tools to accept. policy.py rejects any target not listed
with a matching frozen allowlist entry.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.