Skip to main content
Glama
rushi053

PrivacyPage MCP Server

PrivacyPage MCP Server

Give your AI agent the power to generate privacy policies, terms of service, EULAs, cookie policies, and disclaimers — while it builds your app.

Powered by PrivacyPage. Free instant previews; unlock the full document for a one-time $9.99 (no subscription, no account).

npm version license: MIT

Why

Every app shipped from Cursor, Lovable, Bolt, or v0 eventually needs legal documents — the App Store and Play Store require a privacy policy, GDPR requires cookie disclosures, and users expect terms of service. This MCP server lets the agent that's building your app generate those documents in the same conversation, filled in from what the agent already knows about your app: its name, platform, the data it collects, and the SDKs it uses.

Related MCP server: ComplianceIQ MCP Server

Quick start

Requires Node.js 18+. No API key needed to generate previews.

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in your project):

{
  "mcpServers": {
    "privacypage": {
      "command": "npx",
      "args": ["-y", "privacypage-mcp"]
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "privacypage": {
      "command": "npx",
      "args": ["-y", "privacypage-mcp"]
    }
  }
}

Any MCP client (generic stdio config)

{
  "command": "npx",
  "args": ["-y", "privacypage-mcp"],
  "env": {
    "PRIVACYPAGE_LICENSE_KEY": "<optional — set after purchase to auto-unlock full documents>"
  }
}

Tools

Tool

What it generates

Key inputs

generate_privacy_policy

GDPR/CCPA/COPPA-aware privacy policy

app name, platform, company, contact email, data collected, third-party SDKs, children under 13

generate_terms_of_service

Terms of Service agreement

service name, company, platform, key policies (refunds, UGC, subscriptions…), jurisdiction

generate_eula

End-User License Agreement

app name, company, platform, license type, usage restrictions

generate_cookie_policy

GDPR-aware cookie policy

website name/URL, cookie types, third-party services, contact email

generate_disclaimer

Liability disclaimer (general / medical / financial / fitness / legal / affiliate)

site name, disclaimer type, external links, contact email

get_full_document

Full text of any generated document

documentId + license key (argument or PRIVACYPAGE_LICENSE_KEY env var)

Every generate_* tool returns a free 25-line preview, a documentId, and instructions for unlocking the full document.

Example agent conversation

You: Ship my fitness tracker app to the App Store. It uses Firebase Analytics and HealthKit.

Agent: The App Store requires a privacy policy. Let me generate one. (calls generate_privacy_policy with appName: "FitTrack", platform: "iOS", dataCollected: ["Health Data", "Usage Analytics"], thirdPartyServices: ["Google Analytics / Firebase"], childrenUnder13: false)

Agent: Here's a preview of your privacy policy — it covers HealthKit data, Firebase, GDPR and CCPA rights, and COPPA. To get the full document, purchase a one-time license at privacypage.io ($9.99, no subscription) and give me the key.

You: Here's my key: PP-XXXX-XXXX

Agent: (calls get_full_document) Done — I've saved the full policy to public/privacy-policy.md and linked it in your app's settings screen.

Pricing

  • Preview: free. Every tool returns the first 25 lines of a real, fully generated document at no cost, no account needed.

  • Full document: $9.99 one-time (or $24.99 for the all-documents bundle). No subscription, no recurring fees. Purchase at privacypage.io.

  • After purchase, set PRIVACYPAGE_LICENSE_KEY in your MCP config and the agent can unlock full documents automatically.

Rate limit: 10 document generations per hour per IP. The server reports rate-limit errors to the agent with a friendly retry message.

Environment variables

Variable

Purpose

PRIVACYPAGE_LICENSE_KEY

Optional. License key used by get_full_document when no licenseKey argument is passed.

PRIVACYPAGE_API_URL

Optional. Override the API base URL (defaults to https://privacypage.io).

Data handling

This server runs locally over stdio and makes HTTPS requests only to the PrivacyPage API (https://privacypage.io, or whatever PRIVACYPAGE_API_URL is set to). Everything below is verifiable in src/index.ts and src/api.ts.

What leaves your machine. Only the explicit arguments the agent passes to a tool call — the fields the generated document prints, such as app/site name, platform, company name, contact email, website URL, data-collection and cookie selections, key policies, and jurisdiction (varying by tool). For the generate_* tools these are sent as a plain JSON POST body; get_full_document sends the documentId and license key as query parameters on a GET request. No conversation context, no filesystem contents, and nothing else from the agent session is read or transmitted.

Schema-bounded. Each tool declares a fixed input schema, and every request payload is built field-by-field from those named arguments only. An agent has no channel to send extra context through these tools.

License key. PRIVACYPAGE_LICENSE_KEY (or the licenseKey argument) is sent only to the PrivacyPage API, solely to prove entitlement when fetching a full document.

What's stored server-side. The PrivacyPage service stores the generation inputs and the generated document — that's what lets a license key unlock a document by documentId after generation. This data is not used for analytics and is not shared. (Server-side behavior is a property of the privacypage.io service; this repository's source shows only what is sent.)

Rate limiting. Generation endpoints are limited to 10 document generations per hour per IP; the server reports 429 responses to the agent with a retry message.

Development

git clone https://github.com/rushi053/privacypage-mcp.git
cd privacypage-mcp
npm install
npm run build
npm run smoke-test          # handshake + tools/list over stdio
node scripts/smoke-test.mjs --call   # also makes one real API call

Disclaimer

Documents generated by PrivacyPage are professionally structured templates and AI-generated drafts. They are not legal advice; for high-stakes situations, have a lawyer review your documents.

License

MIT — the server. Generated documents are yours.

Available Tools

6 tools
generate_disclaimerGenerate DisclaimerA

Generate a liability disclaimer (general, medical, financial, fitness, legal, or affiliate) for a website or app using privacypage.io. Returns a free 25-line preview and a documentId; the full document is unlocked with a one-time license ($9.99, no subscription).

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameNoCompany name, if different from the site name, e.g. 'Acme Inc.'
websiteNameYesName of the website or app, e.g. 'MyApp'
contactEmailYesContact email, e.g. 'info@myapp.com'
externalLinksYesWhether the site links to external websites
disclaimerTypeYesThe type of disclaimer that matches the site's content

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It goes beyond a generic 'generates' statement by revealing that the result is a 25-line preview, that a documentId is returned, and that the full document is unlocked only via a one-time $9.99 license with no subscription. This is critical behavioral context for an agent deciding whether to call the tool and how to handle the incomplete output. It does not cover rate limits or data handling, but for a document generator the paywall mechanism is the key behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero filler. The first sentence front-loads the action, the document types, and the target context (website/app and privacypage.io). The second sentence precisely states the output and the pricing model. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 required parameters and no output schema, the description explains the essential output contract: a free 25-line preview, a documentId, and a paid unlock for the full document. The sibling get_full_document likely consumes the documentId, completing the workflow. It does not explain what the agent should do with the documentId or how to present the preview, but those are minor given the schema and sibling context. Missing details like authentication or rate limits are not critical for a non-destructive generation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already includes descriptions for all 5 parameters, achieving 100% coverage, so the baseline is 3. The description adds no new parameter-specific explanation; it merely lists the disclaimer types that are already captured in the enum. It does not say which fields are required or how values should be formatted, but the schema already covers that ground.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Generate') and a precise resource ('a liability disclaimer') with the six allowed types explicitly named. It also differentiates the tool from its sibling generators (privacy policy, terms, EULA, cookie policy) by identifying both the document type and the privacypage.io service. An agent can clearly tell what this tool produces and how it differs from the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states what the tool does but does not explicitly say 'use this when...' or name the alternatives as exclusions. Still, the document-type scoping and the sibling list make the intended use case unambiguous: generate a disclaimer when that is the needed legal document. There is no explicit when-not guidance, preventing a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_eulaGenerate EULAA

Generate an End-User License Agreement (EULA) for a software application using privacypage.io. Returns a free 25-line preview and a documentId; the full document is unlocked with a one-time license ($9.99, no subscription).

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameYesName of the application, e.g. 'MyApp'
platformYesPlatform the application runs on
companyNameYesCompany or developer name, e.g. 'Acme Inc.'
licenseTypeYesHow the application is licensed/sold
restrictionsYesUsage restrictions to include. Common values: 'No reverse engineering', 'No redistribution', 'No modifications', 'No commercial use (free apps)', 'No resale', 'Single user license'.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden, and it does well: it reveals the non-obvious gating behavior — returns only a 25-line preview and a documentId, with full access unlocked via a one-time $9.99 license. This prevents the false assumption that the tool returns the complete agreement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One efficient sentence presents the purpose, the provider, and the key output/pricing behavior. Every part contributes to an agent's ability to use the tool correctly, and the core action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a tool of moderate complexity: it states what it generates, what it returns, and the critical paid-unlock constraint. Since there is no output schema, mentioning the preview and documentId covers the return contract sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all five required parameters. The description adds no parameter-level detail, but it does not need to; the schema handles the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Generate an End-User License Agreement (EULA) for a software application using privacypage.io.' This clearly distinguishes it from sibling policy generators and states exactly what the tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear usage context — use this when you need a EULA for a software application on a given platform. It does not explicitly name alternatives or say when not to use it, but the legal-document type is unambiguous enough for routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_privacy_policyGenerate Privacy PolicyA

Generate a GDPR/CCPA/COPPA-aware privacy policy for an app or website using privacypage.io. Returns a free 25-line preview and a documentId; the full document is unlocked with a one-time license ($9.99, no subscription). Fill the fields from what you know about the app being built.

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameYesName of the app or website, e.g. 'MyApp'
platformYesPlatform the app runs on
websiteUrlNoWebsite URL, if any, e.g. 'https://myapp.com'
companyNameYesCompany or developer name, e.g. 'Acme Inc.'
contactEmailYesContact email for privacy inquiries, e.g. 'privacy@acme.com'
dataCollectedYesTypes of data the app collects. Common values: 'Name & Email', 'Phone Number', 'Location Data', 'Photos / Camera', 'Device Info', 'Usage Analytics', 'Payment Info', 'Health Data', 'No Personal Data'. Free-form values are also accepted.
childrenUnder13YesWhether the app is directed at children under 13 (COPPA)
thirdPartyServicesYesThird-party services/SDKs the app uses. Common values: 'Google Analytics / Firebase', 'Facebook SDK', 'AdMob / Ads', 'Stripe / Payments', 'Sentry / Crashlytics', 'Mixpanel / Amplitude', 'Push Notifications', 'None'. Free-form values are also accepted.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and it discloses key traits: free 25-line preview, documentId, and one-time $9.99 license with no subscription. It also signals an external dependency on privacypage.io. This covers cost, output, and unlock mechanism, though it omits failure/rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two purposeful sentences with the action first, then return/pricing info, then a guidance note. No redundant phrasing or padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers what the call returns (preview + documentId), the payment condition, and the source of field values. Given the rich schema and the absence of an output schema, this is nearly complete; it does not mention how documentId connects to get_full_document, but that can be inferred from the sibling tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 properties, including enums and examples. The description adds only a generic instruction to fill fields from known app context, which is useful but does not materially deepen parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific action ('Generate') and resource ('GDPR/CCPA/COPPA-aware privacy policy'), plus the service used (privacypage.io). This clearly differentiates from siblings like generate_terms_of_service or generate_cookie_policy, which target different legal documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies use when the app/website needs a privacy policy and advises filling fields from known app details, but never names alternatives or says when not to use. The sibling tools are not referenced, so an agent must infer the decision from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_terms_of_serviceGenerate Terms of ServiceA

Generate a Terms of Service agreement for an app or service using privacypage.io. Returns a free 25-line preview and a documentId; the full document is unlocked with a one-time license ($9.99, no subscription).

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYesPlatform the service runs on
companyNameYesCompany name, e.g. 'Acme Inc.'
keyPoliciesYesKey policies that apply. Common values: 'Refunds allowed', 'No refunds', 'User-generated content', 'Account termination rights', 'Subscription auto-renewal', 'Free trial terms', 'Intellectual property protection'.
serviceNameYesName of the app or service, e.g. 'MyApp'
contactEmailYesLegal contact email, e.g. 'legal@acme.com'
jurisdictionYesGoverning law jurisdiction, e.g. 'California, USA' or 'London, UK'

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It clearly discloses that only a free 25-line preview is returned, that a documentId is generated, and that the full document requires a one-time $9.99 license with no subscription. This is meaningful behavioral context beyond a bare 'generate' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no redundancy. The primary purpose is front-loaded, and the second sentence efficiently conveys the return behavior and pricing model. Every sentence contributes essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description does well to explain the return values: a preview and a documentId. It also addresses the paid unlock model. It could be more complete by explicitly connecting the documentId to the get_full_document sibling tool, but the current information is largely sufficient for a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even though the description adds no parameter-specific meaning. The description does not restate or enhance the parameter definitions, but it does not need to because the schema thoroughly documents all six required fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate'), a precise resource ('Terms of Service agreement'), and the external service used ('privacypage.io'). It is distinct from sibling tools because it identifies the exact legal document type being generated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied by the document type: an agent should call this when a Terms of Service is needed. However, there is no explicit guidance about when to prefer this over generate_eula, generate_privacy_policy, or other sibling tools, and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_full_documentGet Full DocumentA

Fetch the full text of a previously generated document using a PrivacyPage license key. Licenses are one-time purchases at https://privacypage.io ($9.99 single document, $24.99 all-documents bundle — no subscription). If licenseKey is omitted, the PRIVACYPAGE_LICENSE_KEY environment variable is used.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesThe documentId returned by a generate_* tool
licenseKeyNoPrivacyPage license key. Falls back to the PRIVACYPAGE_LICENSE_KEY environment variable.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the licensing requirement, the one-time purchase model, and the environment-variable fallback, which is useful. However, it does not describe the return format or potential error conditions, leaving some uncertainty for the agent about what the call actually yields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with the core action front-loaded. The licensing and fallback details are relevant, though the pricing specifics could be trimmed without losing essential usage guidance. Overall, it is compact and structured effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter fetch tool, the description covers the key need-to-know items: what is fetched, the license requirement, the environment fallback, and the documentId source. The absence of an output schema makes the missing return format a minor gap, but the term 'full text' plus the simple nature of the tool keeps it reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds pricing and purchase details but does not meaningfully expand on the semantics of documentId or licenseKey beyond what the schema already states. It reinforces the fallback behavior but adds little new parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Fetch'), a clear resource ('the full text of a previously generated document'), and immediately distinguishes it from the sibling generate_* tools by focusing on retrieval of existing content. This is unambiguous and leaves no doubt about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes it clear this tool is for retrieving previously generated documents, implying it should be used after a generate_* tool. It does not explicitly name alternatives or state when not to use it, but the sibling tools are all generators, so the intended context is strongly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedgenerate_cookie_policy
    • First observedgenerate_disclaimer
    • First observedgenerate_eula
    • First observedgenerate_privacy_policy
    • First observedgenerate_terms_of_service
    • First observedget_full_document

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each generate_* tool targets a distinct legal document type (privacy policy, ToS, EULA, cookie policy, disclaimer), and get_full_document handles retrieval. No overlaps or ambiguous boundaries.

Naming Consistency5/5

All generation tools follow a consistent generate_<document_type> pattern, and get_full_document uses the same verb_noun style. The naming is uniform and predictable.

Tool Count5/5

Six tools is well-scoped for a legal document generation server: five document types plus one retrieval function. Each tool has a clear, non-redundant purpose.

Completeness5/5

The server covers the core lifecycle of document creation and full retrieval for the most common legal documents. The domain is narrow enough that the provided tools fully satisfy the stated purpose without obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    Not graded
    maintenance
    Enables the generation of professional, jurisdiction-specific legal documents like privacy policies, terms of service, and cookie policies. It allows users to produce structured HTML legal content by providing specific parties, terms, and service configurations to an AI-driven tool.
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    Contract and wills legal tools for AI agents: statute-cited requirements per contract type and US state, non-compete enforceability for all 50 states + DC, intake schemas, async multi-agent contract drafting with free previews, and contract risk analysis.
    8
    MIT