PolicyForge MCP Server
OfficialThe PolicyForge MCP Server integrates AI coding tools with legal policy workflows to generate, manage, audit, and integrate policies from your codebase.
Generate policies: Create privacy policies, terms of service, cookie policies, refund policies, EULAs, disclaimers, and HIPAA Business Associate Agreements (Pro plan required). Regenerate policies with updated context while retaining the same hosted URL.
Manage and version policies: List, get, update (hand-edit without consuming quota), and delete policies. View version history and restore any previous version (restores are also versioned).
Audit compliance and detect drift: Perform gap analysis comparing codebase practices against policy disclosures. Check policy freshness by detecting drift between the current codebase and the manifest stored at generation time. Both are free.
Discover and integrate: Obtain a disclosure checklist mapping codebase elements (dependencies, scripts, cookies, hosts) to required disclosures. Get copy-paste integration guides for Next.js, React, HTML, or WordPress. List supported policy types, business types, and jurisdictions. Check your subscription tier and remaining quota.
Codebase-aware: The server scans your codebase to auto-populate policy fields. Authenticate via browser OAuth or API key; also supports local npx execution.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PolicyForge MCP Servergenerate a GDPR & CCPA privacy policy for this app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PolicyForge MCP Server
Generate legal policies — privacy policies, terms of service, cookie policies, refund policies, EULAs, disclaimers, and HIPAA Business Associate Agreements — directly from your AI coding tools (Claude Code, Cursor, Windsurf, Claude Desktop) via the Model Context Protocol.
Ask your agent "generate a GDPR + CCPA privacy policy for this app" and it fills the details from your codebase, calls PolicyForge, and drops the policy straight into your project.
Try it free: compliance audits (audit_compliance), drift checks
(check_policy_freshness), and the scan rubric (get_disclosure_checklist)
are unlimited and never touch your quota — start with
"audit our compliance — does the privacy policy cover everything this code
actually does?". And the first time your account connects through MCP it gets
3 bonus policy generations on top of the free 2/month — enough to generate
privacy, terms, and cookie policies for a new project in one conversation.
Connect
Pick the row that matches your client. If you're unsure, start with A.
How you sign in | Best for | |
A. Remote + OAuth | Browser sign-in, no key to copy | Clients that support OAuth (Claude, ChatGPT) |
B. Remote + API key |
| Any client that can send a header |
C. Local (npx) |
| Running the server as a local process |
All three expose the same tools. A and B need nothing installed.
A. Remote with OAuth (easiest)
No key to copy, no config file to edit. You'll need a PolicyForge account first — https://policyforge.co, free, no card.
1. Add the server. The -s user makes it available in every project rather
than only the directory you ran this in:
claude mcp add -s user --transport http policyforge https://policyforge.co/api/mcpNote there is no --header. Omitting it is what makes the client use OAuth.
2. Restart your client. MCP config is read at startup, so a session that was already running won't see the new server.
3. Authenticate. Run /mcp, select policyforge, and press Enter:
policyforge · △ needs authenticationYour browser opens, you sign in and approve, and the client stores the token
itself. You should land back at /mcp showing ✔ connected · 15 tools.
To confirm from the other side, a key named MCP · <your client> appears at
https://policyforge.co/api-dashboard — that's the grant, and deleting it
revokes access.
Other clients differ in step 3: some prompt on first tool use rather than offering an explicit authenticate action.
B. Remote with an API key
For clients that don't do OAuth yet. Create a key at https://policyforge.co/api-dashboard, then:
claude mcp add --transport http policyforge https://policyforge.co/api/mcp \
--header "Authorization: Bearer pf_your_key_here"For clients with URL-based MCP config (Cursor, Windsurf, and others):
{
"mcpServers": {
"policyforge": {
"url": "https://policyforge.co/api/mcp",
"headers": { "Authorization": "Bearer pf_your_key_here" }
}
}
}C. Local (npx)
Prefer a local process? The server runs via npx — nothing to install
globally. Uses an API key from the environment, which is what the MCP spec
recommends for stdio transports.
Claude Code
claude mcp add policyforge \
--env POLICYFORGE_API_KEY=your_key_here \
-- npx -y @policyforge/mcp@latestCursor / Claude Desktop / Windsurf
Add to your MCP config (.cursor/mcp.json, claude_desktop_config.json, etc.):
{
"mcpServers": {
"policyforge": {
"command": "npx",
"args": ["-y", "@policyforge/mcp@latest"],
"env": {
"POLICYFORGE_API_KEY": "your_key_here"
}
}
}
}On Windows, some clients need the command wrapped: set
"command": "cmd"and"args": ["/c", "npx", "-y", "@policyforge/mcp@latest"].
See https://policyforge.co/mcp for one-click installs (Cursor/VS Code) and per-client instructions — with your API key pre-filled when signed in.
Related MCP server: mcp-shiplegal
Troubleshooting
401 — if you connected with OAuth, the authorization was revoked or expired: reconnect and approve again. If you used an API key, it was deleted, disabled, or mistyped (keys start with
pf_) — rotate or create one at https://policyforge.co/api-dashboard and restart the client.402 — generation quota exhausted. Free tier: 2 generations per calendar month, plus a one-time bonus of 3 extra generations on first MCP connect. Only
generate_policy/regenerate_policyconsume quota — audits and drift checks are free; ask your agent to runget_usageto see what's left.429 — request rate limit (free tier: 10/minute, 100/day); the response includes
retry_after.Server not listed in
/mcp— either the session started before you added it (restart the client; config is read at startup), or it was added to a different project scope.claude mcp add -s user …makes it available everywhere.Tools missing — restart the client after config changes; on Windows use the
cmdwrapper above."The redirect URI is not registered for this application" — the client is using a callback URL we haven't seen. Loopback callbacks work on any port (per RFC 8252), so this should be rare; report the exact URI and it can be supported.
More detail: https://policyforge.co/mcp#troubleshooting
Tools
Tool | What it does |
| Generate a policy and return its Markdown content + hosted URL. Consumes one policy from your quota. |
| Generate a HIPAA Business Associate Agreement between a covered entity and a vendor handling PHI. Built from the clauses required by 45 CFR 164.504(e) and validated clause by clause. Pro plan; never publicly hosted. Consumes one policy from your quota. |
| Re-run the AI engine with changed business context — same ID and hosted URL, previous content saved as a version. |
| Hand-edit a policy in place — same ID and hosted URL, so published links keep working. |
| Gap analysis: compare what the code does (your scanned manifest) with what a policy discloses. |
| Drift detection: diff the current codebase scan against the manifest stored at generation time. |
| Version history — a snapshot is saved before every update, regeneration, or restore. |
| Roll a policy back to any previous version (itself reversible). |
| List policies on your account (filter by type/status, paginate). |
| Fetch a single policy by ID, including full content. |
| Permanently delete a policy (its hosted URL stops working). |
| Check your tier and remaining generation quota before generating. |
| The codebase-scan rubric: which SDKs/patterns require disclosure and how findings map to |
| Copy-paste embed/link instructions for Next.js, React, plain HTML, or WordPress. |
| List supported policy types, business types, and jurisdictions. |
The codebase-aware workflow
Your agent can read your project — so policies come from what the code actually does, not what you remember it doing:
get_disclosure_checklist→ agent scans dependencies, script tags, cookie writes, and outbound hosts against the rubric, and builds a stack manifest of what it foundgenerate_policywith the detected context +stack_manifest(stored server-side for drift detection)get_integration_guide→ agent wires the hosted policy into your footerLater, after the stack changes:
check_policy_freshnessreports the drift,audit_complianceshows the concrete gaps, andregenerate_policyfixes them — same hosted URL, no broken links, previous version restorable
generate_policy inputs
Required: type, business_type, jurisdiction, company_name, contact_email
type—privacy_policy·terms_of_service·cookie_policy·refund_policy·eula·disclaimerbusiness_type—e-commerce·saas·healthcare·education·financial·fintech·real-estate·non-profit·consulting·media·mobile_app·otherjurisdiction— one or more ofgdprccpapipedalgpduseucaukaubrglobal(comma-separate to combine, e.g.gdpr,ccpa)
Optional context (improves output): website_url, service_description,
data_collection[], third_party_integrations[], data_retention,
user_accounts, payments, marketing, analytics, cookies,
children_data, sells_data, target_audience[], security_measures[],
governing_law, physical_address, dpo_email, consent_tracking,
hosting_enabled.
generate_baa inputs
A Business Associate Agreement is a contract between two named parties, not a published policy, so it takes its own tool and its own fields. Pro plan.
Required: acknowledge_contract (must be true), baa_direction,
company_name, contact_email, both parties' legal names and addresses,
baa_effective_date (YYYY-MM-DD), baa_services_description,
baa_phi_types[], baa_permitted_uses[], baa_governing_law_state.
baa_direction—covered_entity_to_vendor(you are the practice issuing the agreement) orbusiness_associate_to_client(you are the vendor offering it to a healthcare client)baa_phi_types[]— categories of PHI involved. Including"Substance use treatment records (42 CFR Part 2)"adds a Part 2 addendumbaa_permitted_uses[]— anything not listed here is not permitted by the agreement (45 CFR 164.504(e)(2)(i))
Optional: baa_electronic_phi (default true),
baa_uses_subcontractors (default false), baa_term_type,
baa_term_end_date, baa_breach_notification_days (1–60, default 30),
baa_return_or_destroy, baa_include_indemnification,
baa_include_insurance, baa_insurance_amount.
Every generated agreement is checked against the 15 clauses 45 CFR 164.504(e) requires before it is returned; an incomplete draft is refused rather than handed back. The result is still a draft for counsel to review, and it is never published at a public URL.
Configuration
Only needed for the local (npx) transport. Remote connections authenticate
over OAuth or an Authorization header instead.
Env var | Required | Default | Purpose |
| yes (local only) | — | Your PolicyForge API key. |
| no |
| Override the API base URL (self-host/testing). |
How it works
This server is a thin wrapper over the PolicyForge public REST API (/api/v1).
Every tool maps to one authenticated HTTP request, so quota, rate limiting, and
policy generation stay authoritative on the PolicyForge server — the MCP layer
holds no secrets beyond your API key and no business logic of its own.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBquality-maintenanceEnables 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.Last updated1
- Alicense-qualityDmaintenanceAnswer a few questions. Get clean, jurisdiction-aware privacy policies and terms of service.Last updatedMIT

pageguard-mcpofficial
AlicenseAqualityDmaintenanceScan any project or website for privacy compliance issues directly in your AI coding tool. Detects tracking tech, cookies, and third-party data collection. Works in Claude Code, Cursor, and Windsurf.Last updated3451MIT- Alicense-qualityDmaintenanceGenerates professional compliance documents like privacy policies and terms of service directly from AI tools. Supports multiple document types and export formats with API integration.Last updated24MIT
Related MCP Connectors
One-step legal compliance for vibe-coded apps: privacy, terms, cookie banner and EU AI Act check.
Form companies, manage bank accounts, cards, invoices and more — directly from your AI coding tools.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PolicyForge/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server