@privacytracker/mcp

@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.

Category
Visit Server

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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured