Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

co.policyforge/mcp

NPM · @POLICYFORGE/MCP · 2 COMPONENTS · SCANNED AUG 3

Generate, audit, and maintain legal policies that match what your code actually does.

+10 this week 28 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security63
  • No malware found by supply-chain analysis.Pass
  • CVE data not yet available for this package.Unverified
  • No install/post-install scripts declared.Pass
  • Dependency-health data not yet available.Unverified
Provenance & Transparency45
Schema Quality & AI Usability0
  • Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.Unverified
Stability & Change Management0
  • Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.Unverified
Tool Coverage0
  • Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.Unverified
Capabilities0
  • Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet.Unverified

Unverified: 4 categories

Categories scored 0 because our sandbox run of this package has not given us the schema these checks need to read. That is a gap on our side rather than a finding about the package, and we only credit what we can confirm, so the score stands at 0 until the capture succeeds. We are working through the fleet, so this normally clears without any action from you. How we score packages →

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @policyforge/mcp

# add to Claude Code
claude mcp add co-policyforge-mcp -- npx -y @policyforge/mcp
# add to Codex CLI
codex mcp add co-policyforge-mcp -- npx -y @policyforge/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "co-policyforge-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@policyforge/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add co-policyforge-mcp --command npx --arg -y --arg @policyforge/mcp
# ~/.hermes/config.yaml
mcp_servers:
  co-policyforge-mcp:
    command: "npx"
    args: ["-y", "@policyforge/mcp"]
// mcp.json
{
  "mcpServers": {
    "co-policyforge-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@policyforge/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 −2
    • Known CVEs: partial → unverified security
    • Source repository: fail → pass security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Security disclosure: unverified → fail functional
    • Dependency health: partial → unverified functional
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet. functional
    • Package version: 0.4.0 → 0.6.1 functional
    • Package version: 0.4.0 → 0.6.0 functional
  • 2 Aug 26 +30
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet. functional
    • Licence: MIT functional
  • 31 Jul 26 −18
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 18

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@policyforge/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

MCP tools — 15 exposed · ~3,093 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
audit_compliance ~189

Compliance gap analysis: submit the stack manifest you built by scanning the codebase (see get_disclosure_checklist), optionally with a policy_id to audit against. PolicyForge compares what the code does with what the policy discloses and returns missing disclosures, overstated claims, missing policy types, and recommendations. Without a policy_id it audits the manifest alone (which policies are needed and what they must cover). Does not consume generation quota.

NameTypeReqDescription
manifestobjectyesThe detected-stack summary from your codebase scan, e.g. {"analytics":["posthog"],"payments":["stripe"],"ai_features":["openai"],"cookies":["session","_ph_*"],"jurisdiction_signals":["EU locales"],"u…
policy_idstringPolicy (UUID) to audit the manifest against. Omit to audit the manifest alone.

No output schema declared.

No examples provided.

check_policy_freshness ~111

Drift detection: scan the codebase now (get_disclosure_checklist), build the current stack manifest, and compare it against the manifest stored when the policy was last generated/regenerated. Reports what changed in the stack so you know whether the policy still matches the code. Runs locally on the two manifests — no AI call, no quota.

NameTypeReqDescription
current_manifestobjectyesThe stack manifest from your fresh codebase scan.
idstringyesThe policy ID (UUID) to check.

No output schema declared.

No examples provided.

delete_policy ~62

Permanently delete a policy. The hosted URL and any embeds of it stop working immediately, and this cannot be undone. Confirm with the user before deleting anything they may have linked from their site.

NameTypeReqDescription
idstringyesThe policy ID (UUID) to delete.

No output schema declared.

No examples provided.

generate_baa ~656

Generate a HIPAA Business Associate Agreement (BAA) between a covered entity and a vendor that handles Protected Health Information. Built from the clauses required by 45 CFR 164.504(e) and validated clause by clause before it is returned. Use this instead of generate_policy for BAAs — a BAA is a binding two-party contract, not a published policy, so it needs both parties' legal names and addresses and is never hosted at a public URL. Ask the user for the party details, effective date, and governing law: these are negotiated facts you cannot read from source code. Requires a Pro plan. The result is a draft for counsel to review, not executed legal advice.

NameTypeReqDescription
acknowledge_contractbooleanyesMust be true — a Business Associate Agreement is a binding contract, not legal advice, and should be reviewed by counsel before signing.
baa_breach_notification_daysintegerDays to report a breach after discovery. Default 30. 60 is the outer limit under 45 CFR 164.410.
baa_business_associate_addressstringyesAddress of the business associate.
baa_business_associate_namestringyesLegal name of the business associate.
baa_covered_entity_addressstringyesAddress of the covered entity.
baa_covered_entity_namestringyesLegal name of the covered entity.
baa_directionstringyescovered_entity_to_vendor (you are the practice) or business_associate_to_client (you are the vendor).
baa_effective_datestringyesYYYY-MM-DD — the date the parties agree on, not today.
baa_electronic_phibooleanDefault true — triggers the HIPAA Security Rule safeguard obligations.
baa_governing_law_statestringyesGoverning law state. Stricter state health privacy law is layered on top of HIPAA.
baa_include_indemnificationbooleanIndemnification running from associate to covered entity.
baa_include_insurancebooleanPair with baa_insurance_amount.
baa_insurance_amountstringMinimum cyber liability coverage, e.g. "$1,000,000 per occurrence".
baa_permitted_usesarrayyesPermitted uses and disclosures per 45 CFR 164.504(e)(2)(i). Anything not listed is not permitted.
baa_phi_typesarrayyesCategories of PHI involved. Including "Substance use treatment records (42 CFR Part 2)" adds a Part 2 addendum.
baa_return_or_destroystringWhat happens to PHI at termination.
baa_services_descriptionstringyesThe services that bring the associate into contact with PHI.
baa_term_end_datestringYYYY-MM-DD — required when baa_term_type is fixed_term.
baa_term_typestringDefault tied_to_services (runs with the underlying services agreement).
baa_uses_subcontractorsbooleanDefault false — true adds the subcontractor flow-down clause.
company_namestringyesLegal name of the user's own company.
contact_emailstringyesContact email for the agreement.

No output schema declared.

No examples provided.

generate_policy ~734

Generate a legal policy (privacy policy, terms of service, cookie policy, refund policy, EULA, or disclaimer) for a business and return its Markdown content plus a hosted URL. Consumes one policy from the account's quota. IMPORTANT: if you are working inside the user's project, call get_disclosure_checklist and scan the codebase FIRST (dependencies, script tags, cookie writes, outbound hosts), then fill the optional fields below from what the code actually does — do not ask the user for facts you can read from source. Only ask for what code cannot tell you: legal company name, contact email, physical address, governing law.

NameTypeReqDescription
analyticsbooleanDoes it use analytics?
business_typestringyesThe company's business category.
children_databooleanDoes it knowingly collect data from children?
company_namestringyesLegal/display name of the company.
consent_trackingbooleanEnable the "I agree" consent banner on the hosted page (default false).
contact_emailstringyesPublic contact email for legal inquiries.
cookiesbooleanDoes it use cookies? Defaults to true for most websites.
data_collectionarrayCategories of personal data collected, e.g. ["email","name","usage"].
data_retentionstringHow long data is kept, e.g. "24 months".
dpo_emailstringData Protection Officer email, if any. Also sets hasDPO.
governing_lawstringGoverning law jurisdiction, e.g. "State of California, USA".
hosting_enabledbooleanHost the policy at a public policyforge.co URL (default true).
jurisdictionstringyesTarget legal framework(s). One or more of: gdpr, ccpa, pipeda, lgpd, us, eu, ca, uk, au, br, global, Europe, Canada, United Kingdom, Australia, Brazil, India, Singapore, Japan, Mexico. Combine multip…
marketingbooleanDoes it send marketing communications?
paymentsbooleanDoes it process payments?
physical_addressstringCompany physical address.
security_measuresarraySecurity controls, e.g. ["encryption at rest","MFA"].
sells_databooleanDoes it sell or share personal data?
service_descriptionstringShort description of what the product or service does.
stack_manifestobjectStructured summary of the stack you detected while scanning the codebase (see get_disclosure_checklist), e.g. {"analytics":["posthog"],"payments":["stripe"],"auth":["supabase"],"ai_features":["openai…
table_of_contentsbooleanAdd a linked table of contents to the generated document. Requires a Pro plan.
target_audiencearrayAudience segments, e.g. ["businesses","consumers"].
third_party_integrationsarrayThird-party processors, e.g. ["Stripe","Google Analytics"].
typestringyesThe kind of policy to generate.
user_accountsbooleanDoes the product have user accounts?
website_urlstringCompany website URL.

No output schema declared.

No examples provided.

get_disclosure_checklist ~71

Get the rubric for scanning a codebase before generating or updating policies: which SDKs, scripts, and patterns legally require disclosure, and how each finding maps to generate_policy's fields. Call this before generate_policy when working inside the user's project — policies derived from the actual code beat policies from memory.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_integration_guide ~92

Get copy-paste instructions for wiring a generated policy into the user's site: hosted link, embed snippet, and framework-specific placement. Call this after generate_policy to finish the job — a generated policy helps nobody until it's linked from the site.

NameTypeReqDescription
frameworkstringThe site's framework, for tailored snippets (default: html).
idstringyesThe policy ID (UUID) to integrate.

No output schema declared.

No examples provided.

get_policy ~48

Retrieve a single policy by ID, including its status, hosted URL, and full Markdown content.

NameTypeReqDescription
idstringyesThe policy ID (UUID) returned by generate_policy or list_policies.

No output schema declared.

No examples provided.

get_usage ~45

Check the account's subscription tier and remaining policy-generation quota. Call this before generate_policy on accounts that may be on the free tier, so you can plan instead of hitting quota errors.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_policies ~97

List the policies previously created on this PolicyForge account, newest first.

NameTypeReqDescription
limitintegerMax results (1-100, default 20).
offsetintegerPagination offset.
sortBystringSort field (default updatedAt).
sortOrderstringSort direction (default desc).
statusstringFilter by status.
typestringFilter by policy type.

No output schema declared.

No examples provided.

list_policy_types ~36

List the supported policy types, business types, and jurisdictions accepted by generate_policy. Call this first if unsure which enum values are valid.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_policy_versions ~70

Version history for a policy: snapshots taken before every API update, regeneration, or restore, plus any auto-generated compliance update drafts. Use get-version content via restore_policy_version, or fetch a single version's content with this policy's versions endpoint.

NameTypeReqDescription
idstringyesThe policy ID (UUID).

No output schema declared.

No examples provided.

regenerate_policy ~586

Re-run the AI generation engine over a policy's stored business context merged with the changed fields you provide — same policy ID and hosted URL, so published links keep working. The previous content is saved as a version first (see list_policy_versions / restore_policy_version). Consumes one generation from quota, like generate_policy. Use this when the business context changed substantially (new integrations, new jurisdiction, renamed company); for small wording fixes prefer update_policy, which is free and instant.

NameTypeReqDescription
analyticsbooleanDoes it use analytics?
business_typestringChanged business category.
children_databooleanDoes it knowingly collect data from children?
company_namestringChanged company name.
contact_emailstringChanged contact email.
cookiesbooleanDoes it use cookies? Defaults to true for most websites.
data_collectionarrayCategories of personal data collected, e.g. ["email","name","usage"].
data_retentionstringHow long data is kept, e.g. "24 months".
dpo_emailstringData Protection Officer email, if any. Also sets hasDPO.
governing_lawstringGoverning law jurisdiction, e.g. "State of California, USA".
idstringyesThe policy ID (UUID) to regenerate.
jurisdictionstringChanged legal framework(s), e.g. "gdpr,ccpa".
marketingbooleanDoes it send marketing communications?
paymentsbooleanDoes it process payments?
physical_addressstringCompany physical address.
security_measuresarraySecurity controls, e.g. ["encryption at rest","MFA"].
sells_databooleanDoes it sell or share personal data?
service_descriptionstringShort description of what the product or service does.
stack_manifestobjectStructured summary of the stack you detected while scanning the codebase (see get_disclosure_checklist), e.g. {"analytics":["posthog"],"payments":["stripe"],"auth":["supabase"],"ai_features":["openai…
table_of_contentsbooleanAdd a linked table of contents to the generated document. Requires a Pro plan.
target_audiencearrayAudience segments, e.g. ["businesses","consumers"].
third_party_integrationsarrayThird-party processors, e.g. ["Stripe","Google Analytics"].
user_accountsbooleanDoes the product have user accounts?
website_urlstringCompany website URL.

No output schema declared.

No examples provided.

restore_policy_version ~76

Restore a policy to a previous version from list_policy_versions. The current content is snapshotted as a new version first, so a restore is itself reversible. The hosted URL is unchanged.

NameTypeReqDescription
idstringyesThe policy ID (UUID).
versionintegeryesThe version_number to restore (from list_policy_versions).

No output schema declared.

No examples provided.

update_policy ~220

Update an existing policy in place — the policy ID, hosted URL, and embed keep working, so links already published on the user's site stay valid. Use this instead of generate_policy when the business context changed (new SDK, new data flow, renamed company): fetch the current content with get_policy, revise the Markdown yourself, and submit it here. Note: there is no version history — the previous content is overwritten.

NameTypeReqDescription
consent_trackingbooleanEnable/disable the "I agree" consent banner on the hosted page.
contentstringFull replacement Markdown content. Submit the COMPLETE document, not a diff.
effective_datestringNew effective date, ISO format e.g. "2026-07-13".
hosting_enabledbooleanEnable/disable the public hosted page.
idstringyesThe policy ID (UUID) to update.
statusstringChange publication status. Only 'published' policies are served at the hosted URL.
titlestringNew policy title.

No output schema declared.

No examples provided.