@privacytracker/mcp
MCP server that exposes PrivacyTracker's app privacy data, changelogs, policy diffs, and sync status through read-only tools and resources for MCP-compatible clients.
README
@privacytracker/mcp
Model Context Protocol server for PrivacyTracker. Exposes the local privacy library — apps, privacy labels, change history, AI policy summaries — to any MCP-compatible client (Claude Desktop, Claude Code, Cline, etc.).
This is a read-only proxy. It talks to a running PrivacyTracker instance over its existing HTTP API; it does not touch the SQLite database directly and never mutates state.
Prerequisites
- A running PrivacyTracker instance (local
pnpm dev, Docker, or remote install). - Node.js 20 or newer on the machine running the MCP client.
Install
You don't need to clone this repo to use the server — every MCP client can spawn it via npx:
npx -y @privacytracker/mcp
For local development from a clone:
pnpm install
pnpm build
node dist/index.js
Configuration
The server reads three environment variables:
| Variable | Required | Default | Notes |
|---|---|---|---|
PRIVACYTRACKER_BASE_URL |
no | http://localhost:3000 |
Origin of the running PrivacyTracker instance. No trailing slash. |
PRIVACYTRACKER_ADMIN_TOKEN |
conditional | — | Required when the upstream server has AUDITOR_ADMIN_TOKEN set, OR when the MCP server is reaching it across a non-local hostname. Sent as x-auditor-admin-token on every request. |
PRIVACYTRACKER_TIMEOUT_MS |
no | 30000 |
Per-request timeout. |
A 401 response from the server triggers a clear MCP error explaining which side of the token contract is wrong.
Claude Desktop config
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"privacytracker": {
"command": "npx",
"args": ["-y", "@privacytracker/mcp"],
"env": {
"PRIVACYTRACKER_BASE_URL": "http://localhost:3000",
"PRIVACYTRACKER_ADMIN_TOKEN": "..."
}
}
}
}
Restart Claude Desktop and the privacytracker server will appear in the tools menu.
Available tools
All tools are read-only and map 1:1 to existing PrivacyTracker API endpoints.
| Tool | Description |
|---|---|
list_apps |
Every tracked app with identity + change counts. Optional grouped view. |
get_app |
Full privacy dossier for one app (privacy types, categories, last snapshot, policy summary). |
search_apps |
iTunes Store search by name and/or bundle id. Returns App Store URLs. |
get_changelog |
Universal cross-app change feed with filtering (app, time, type, category) and pagination. |
get_app_changelog |
Full changelog for one app in chronological order. |
get_history_stats |
Per-quarter category trend and change-event sparkline for one app (Q1 2021 forward). |
get_policy_status |
Privacy-policy AI run status for one app (idle/running/done/error + log). |
get_policy_version_diff |
Line+word diff between a policy version and its predecessor. |
compare_apps |
Side-by-side privacy comparison of two apps (tracked or untracked URL). |
get_notifications |
30 most recent privacy-change notifications + unread count. |
get_sync_status |
Background sync scheduler state (running, last/next run, interval). |
Available resources
| URI | Description |
|---|---|
apps://list |
Flat JSON list of every tracked app. |
app://{appId} |
Full privacy dossier for one app. Replace {appId} with the numeric Apple track ID. |
Local development
pnpm install
pnpm dev # tsx watch mode
pnpm typecheck
pnpm test
pnpm lint
pnpm build
To smoke-test against a running PrivacyTracker instance:
PRIVACYTRACKER_BASE_URL=http://localhost:3000 pnpm start
The server speaks JSON-RPC over stdio. Use the MCP Inspector for interactive exploration:
npx @modelcontextprotocol/inspector node dist/index.js
Versioning
This package versions independently of PrivacyTracker itself. Tag a release (v0.x.y) on main and the publish workflow ships it to npm automatically.
License
Apache-2.0. See LICENSE.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.