Claude Code, Cursor, and Windsurf are only as powerful as the tools they can reach. MCP lets you extend them, but most MCP servers do one thing. A file reader. A database connector. A web searcher.
ToolPiper is a native macOS app that exposes over 420 MCP tools covering local inference, browser automation, voice, vision, web scraping, desktop control, testing, and video production. One install, everything on your hardware. This article covers what MCP is, why local matters, and what those over 420 tools actually do.
What is MCP and why should you care?
MCP stands for Model Context Protocol. It's an open protocol from Anthropic for connecting AI assistants to external tools. A server exposes tools (functions the AI can call), a client like Claude Code discovers those tools and invokes them, and JSON-RPC handles the wire format.
Think of it as a USB port for AI. Before MCP, every assistant had its own plugin format and integration story. MCP standardizes that. Write a tool once, any MCP client can call it.
There are already MCP servers for Playwright, filesystem access, databases, GitHub, Slack, and dozens more. Most of them share a common limitation.
Why does it matter that an MCP server runs locally?
Most MCP servers are cloud wrappers. They proxy your requests to external APIs, which means your data still leaves your machine. The MCP server for OpenAI sends your prompts to OpenAI. The protocol is local, but the execution isn't.
A local MCP server is different. The tools run on your hardware. When you ask your AI assistant to transcribe audio, summarize a document, or chat with a local LLM, the computation happens on your Mac's Neural Engine and Metal GPU. Nothing crosses a network boundary.
Privacy: your code, documents, and voice recordings never leave your machine. Speed: no round trip to a data center, no cold starts. Availability: works on a plane, on a train, and when your ISP goes down.
What is ToolPiper?
ToolPiper is a native macOS application that bundles six inference backends (llama.cpp, Apple Intelligence, FluidAudio STT/TTS, MLX Audio TTS, Apple Vision OCR, CoreML) behind a single HTTP gateway on localhost. It's the local engine behind ModelPiper, the visual AI pipeline builder.
It's also a full MCP server. One install gives your AI assistant over 420 tools spanning local inference, browser automation, desktop control, testing, web scraping, video creation, and more. Setup takes 30 seconds.
How do you connect ToolPiper to Claude Code?
Install ToolPiper from modelpiper.com. Then run one command:
claude mcp add --transport http toolpiper http://127.0.0.1:9998/mcpRestart Claude Code. That's it. No npm install, no Docker, no Python environment. ToolPiper serves MCP directly from the running app, so there is nothing to keep in sync when you update it.
ToolPiper speaks one MCP transport: Streamable HTTP, served at POST localhost:9998/mcp with a GET SSE channel for tool-list change notifications. Every current MCP client supports it. The older stdio launcher was retired, so if you already have a config pointing at ~/.toolpiper/mcp, switch it to the command above.
For Cursor, Claude Desktop, Windsurf, VS Code (with Cline or Continue), Zed, or Aider, each editor has a slightly different registration syntax. See MCP Setup on Mac for the full per-editor walkthrough, or Connect ToolPiper on Mac for the broader integration hub covering OAuth and the local HTTP API alongside MCP.
What are the over 420 tools?
The catalog spans fourteen categories. The groups below organize them by what you'd actually reach for. Some have a handful of focused tools; others, like desktop control, have well over a hundred.
Local AI Inference. The foundation. chat runs prompts through a local LLM. audio_transcribe converts audio to text on-device. audio_speak synthesizes speech. vision_ocr extracts text from images and PDFs using Apple Vision. text_embed generates vector embeddings for RAG pipelines. image_analyze and text_analyze handle multimodal and text analysis. The remaining tools manage the model lifecycle: model_list shows what's available, model_download pulls from HuggingFace, and model_load / model_unload manage memory. All inference runs on your Mac's Neural Engine and Metal GPU. Anything you pull with model_download is best sized against your Mac first, since available memory is what decides whether a set of weights loads at all.
Knowledge Base. Local retrieval-augmented generation. Index a document collection with rag_ingest, search it with rag_query using hybrid vector + BM25 keyword retrieval with semantic chunking, and list your indexed collections with rag_collection_list. Everything stays on-device.
Browser Automation. Full Chrome DevTools Protocol control using the accessibility tree instead of CSS selectors. browser_snapshot captures page state. browser_action clicks, types, and fills forms, returning an AX diff of what changed. Assertion types with polling via browser_assert. Console reading, interaction recording, network monitoring, cookie and storage management, Web Vitals measurement, JS/CSS coverage tracking, JavaScript execution, request mocking, passkey simulation, and form autofill round out the set.
Web Scraping. web_scrape extracts content from web pages in seven formats (markdown, plain text, readability, AX tree, HTML, links, screenshot) using a real browser with readiness detection for 16 JavaScript frameworks. browser_detect identifies which frameworks a page uses.
Testing (10 tools). PiperTest is a visual, AX-native test format with self-healing selectors. Six tools handle test session CRUD, execution, and export to Playwright or Cypress code. Four additional Sieve tools analyze and auto-repair broken selectors across your test suite.
Pose and Motion Capture (5 tools). Real-time skeleton tracking using Apple Vision. Single-image pose estimation, WebSocket streaming at 60fps, and multiple output formats including a zero-allocation compact binary format at 236 bytes per frame.
Desktop Control (181 tools, 26 domains). Full macOS system control through ToolPiper, under the system_* namespace. Window management with snap layouts. Keyboard and mouse simulation. Volume and display brightness. Wi-Fi, Bluetooth, Dock, desktop, Spaces, Focus modes, media playback. Power and process management. Finder operations. App interaction (list running apps, launch, capture snapshots, run assertions). Accessibility and appearance settings. Notifications, Calendar, Contacts, Reminders, Location, Shortcuts, system defaults, and storage info. Each verb is its own tool: system_volume_set, system_window_snap, system_display_brightness_set, so the model picks the exact action by name.
Video Production (17 tools). AI-driven video creation from screenplay to final render. Project management, media import, screenplay and composition editing, timeline editing, dry-run rehearsal, screen recording, rendering, AI narration, preview, timeline export, clip management, recording settings, and PiperSR video upscaling.
Social and Research (15 tools). GitHub repository analysis and cross-repo comparison. Hacker News trending stories and search. Reddit search and posting. Google Search Console analytics, URL inspection, and sitemap management. YouTube transcript extraction. Plus a content queue for drafting and publishing outreach.
Files, Git, and Utilities. The remaining tools cover file operations (read, write, create, delete, list, directory picker, shell commands), Git integration (status, diff, log, commit, push, checkout), image upscaling with benchmarking, voice cloning, live streaming control, content queue management, OAuth connection management, and API discovery.
How does this compare to other MCP servers?
Most MCP servers are single-purpose. Here's how ToolPiper compares to the alternatives you'd need to combine for equivalent coverage.
| ToolPiper | Playwright MCP | Filesystem MCP | Browser MCP | |
|---|---|---|---|---|
| Number of tools | over 420 | 12 | 5 | 8 |
| Local AI inference | Yes (LLM, TTS, STT, OCR, embeddings) | No | No | No |
| Browser automation | Yes (CDP + AX tree) | Yes (Playwright) | No | Yes (basic) |
| Desktop control | Yes (181 system tools) | No | No | No |
| Testing | Yes (PiperTest + export) | Partial | No | No |
| Web scraping | Yes (7 formats, framework-aware) | No | No | No |
| Voice/Audio | Yes (transcribe, speak, clone) | No | No | No |
| Video production | Yes (17 tools, screenplay to render) | No | No | No |
| Setup | One app install | npm install | npm install | npm install |
The difference isn't just tool count. ToolPiper's tools compose. A single workflow can transcribe audio, pass the text to a local LLM, query your RAG index for context, and automate a browser action based on the result. One server process, shared model state, shared authentication.
How is access to the tools secured?
Local clients on your own machine connect over loopback with zero configuration. ToolPiper mints a short-lived ambient bearer token at ~/Library/Application Support/ToolPiper/.toolpiper-token (file mode 0600, rotated every launch) and trusts loopback connections at the socket level, so Claude Code or Cursor just work.
Anything reaching ToolPiper from off the machine, another device on your LAN or a PiperMesh peer, must present a scoped Bearer tp_… token with the right audience. Tokens are 64 hex characters of CSPRNG entropy and are never written into ~/.claude/ or any client config you don't control.
You manage every connection from the Connected Apps pane inside ToolPiper. Each client that has authenticated shows up as a row: label it, see whether its MCP-tools access is on, and revoke it in one click. Revoking kills that client's bearer immediately, and the row stays visible as revoked so the state is never hidden from you.
To lock down which tools are reachable at all, ToolPiper ships a tool governance overlay. Deny specific tools, say system_run_command, for every client, or switch the built-in tool marketplace from open browse to an explicit allow-list of servers and tools. The overlay is restrict-only: it can narrow what a tier permits, never widen it. Today it's per-device and edited locally; the same policy shape is built to be pushed from an organization later, at which point the controls lock with a "Managed by your organization" badge.
What are the honest limitations?
macOS only. ToolPiper requires Apple Silicon (M1 or later). The inference backends depend on Metal GPU, Neural Engine, and Core Audio frameworks that only exist on macOS. No Windows, no Linux.
A few tools are paid. Local RAG (rag_ingest, rag_query, rag_collection_list), web_scrape, and youtube_transcript require ToolPiper Pro at $10/month, as does the cloud API proxy for your own provider keys. Image and video upscaling, the video pipeline, and pose_detect are Studio at $29/month. PiperTest is Max at $49/month. Everything else is free, including all local inference, all speech, everything built on Apple Vision and Apple Intelligence, full browser automation, desktop control, and developer tokens.
Browser tools need Chrome. Browser automation uses Chrome DevTools Protocol. You need Chrome or Chrome Dev installed. Safari, Firefox, and Arc aren't supported for automation.
Over 420 tools is a lot of tools. Tool selection quality depends on the AI client. Claude Code handles large tool sets well because Anthropic designed MCP with this in mind. Other clients may struggle when presented with over 420 options. ToolPiper's tool descriptions are written to help AI models choose correctly, but results vary across clients.
Does this work with Cursor and Windsurf?
Yes. Any MCP-compatible client can connect. Point it at http://localhost:9998/mcp over Streamable HTTP.
For Claude Code:
claude mcp add --transport http toolpiper http://127.0.0.1:9998/mcpFor Cursor and other JSON-config clients, add ToolPiper to your MCP server list with the same URL and an http transport type.
Do all over 420 tools run locally?
All inference runs locally. Chat, transcribe, speak, embed, OCR, image analysis, pose detection, and video upscale execute on your Mac. Your prompts, audio, and documents never leave the machine.
Social and research tools (GitHub, Hacker News, Reddit, Google Search Console, YouTube) make network requests to fetch public data. Browser automation interacts with whatever page is loaded in Chrome, which may involve network traffic. Desktop control operates entirely on your local system.
Is this free?
Mostly. 358 of the 421 tools are free with no account: all local inference, all speech (transcription, text-to-speech, voice cloning, dictation, voice chat), everything built on Apple Vision and Apple Intelligence, full browser automation, desktop control, unlimited model downloads, developer tokens and the local API, and MCP access over Streamable HTTP. You can use it as a full MCP server without paying anything.
ToolPiper Pro is $10/month and covers exactly three things: local RAG over your files, web scraping plus YouTube transcripts, and the cloud API proxy for your own provider keys. That is five MCP tools. Studio at $29/month adds image and video upscaling, the video pipeline, and pose detection. Max at $49/month adds PiperTest, CodePiper, and API discovery. The MCP server itself isn't gated behind Pro.
How do you see what tools are available?
From Claude Code, ask your assistant to call system_status. It returns server health, loaded models, and available capabilities. Call model_list to see which AI models are downloaded and ready.
ToolPiper serves a full OpenAPI spec at http://localhost:9998/v1/openapi.json documenting every REST endpoint. The MCP tool definitions include detailed descriptions and JSON Schema for every parameter.
For a deeper look at how the MCP server is built, including the two-transport architecture and shared-definition pattern, see Building Over 420 MCP Tools in Swift.
How do you test an MCP server locally?
Three checks, in increasing depth, and none of them need a client restart loop.
Is the server up? An MCP server over Streamable HTTP is just an HTTP endpoint, so curl answers this. ToolPiper serves MCP at POST localhost:9998/mcp and a full OpenAPI spec at http://localhost:9998/v1/openapi.json, so you can confirm the process is listening before involving an AI client at all.
Does it advertise the tools you expect? Call the protocol's tools/list method. This is the check that catches the most common failure, which is a server that starts cleanly but registers zero tools because a definition failed to load.
Does a tool actually execute? From inside your client, ask the assistant to call system_status. It returns server health, loaded models, and available capabilities, so a successful response proves the whole path end to end: the client discovered the server, picked a tool, sent the call, and got a result back.
If the client sees no tools at all, the fault is usually registration rather than the server. Either the config points at a transport the server no longer speaks, or the client was not restarted after the config changed.
Is there an MCP server for HomeKit, Homebrew, or AppleScript?
ToolPiper ships no dedicated tool for any of those three, and two general-purpose tools cover them anyway.
system_shortcut_run runs any Shortcut you have saved, and Shortcuts is where HomeKit scenes and AppleScript both already have a first-class home. Wrap the scene or the script in a Shortcut once, and your assistant can trigger it by name from then on. system_run_command runs a shell command, which is what a Homebrew tool would be doing underneath.
Where ToolPiper does ship first-class macOS coverage is the apps that hold your data. Calendar (system_calendar_event_list, system_calendar_event_create), Contacts, Reminders, Finder, and Notifications each get their own verbs, so the model names the exact action instead of composing a script. The dividing line is roughly this: state you would query or mutate gets a typed tool, and one-off automation goes through Shortcuts or the shell.
This article is part of the local-first AI on macOS series. For the visual testing tools, see Visual Testing, No Code.
