{"_id":"@policyforge/mcp","_rev":"13-79ab7830e52dd8e53b25a9e6e3047266","name":"@policyforge/mcp","dist-tags":{"latest":"0.8.0"},"versions":{"0.1.0":{"name":"@policyforge/mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"license":"MIT","_id":"@policyforge/mcp@0.1.0","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"homepage":"https://policyforge.co","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"9234bf9d3b555b66f31cbd18cd273c6133d86437","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.1.0.tgz","fileCount":5,"integrity":"sha512-ePINHP0jnIx9S2hzxl1qVeUcLmVFSI78hd9Ko5OdCO9t5Ei8xNhpTMQjHvRspuoVBonrTM2EEg8SK9S+4NK0OQ==","signatures":[{"sig":"MEQCIBaAYIjLA+XODMPNf/sie4de6gjNmsRcQdi0Kjyfy+OuAiBXvy1614G+wSz7PUZfSgly4oeFuHTkzMFxUkhm6UaAGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21076},"type":"module","engines":{"node":">=18"},"gitHead":"be9f28d5b1e69066f4e68ea38a53d4e1ed965aad","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"deprecated":"Superseded - install @policyforge/mcp@latest","_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1783935926393_0.2894485290905795","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@policyforge/mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"license":"MIT","_id":"@policyforge/mcp@0.2.0","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"homepage":"https://policyforge.co","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"182e69e99bd5336d667af5a63872ee9d843dcdc0","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.2.0.tgz","fileCount":5,"integrity":"sha512-IXv31U9qHWMiHOVscUHMxdwQ0/E3A6CwW80gttPX8vtaY0xTxi7SoRCQZlZn+smThFvNlAmwyklE37yG8c654g==","signatures":[{"sig":"MEUCIQCTtLfroViZ39HKpGUqW5ZniyeDGFuwNmOd9PVgCmkpNAIgDNjuAiuSCrjVu19tKpKOauy9F8h5vjANix/9KyLw6Z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39080},"type":"module","engines":{"node":">=18"},"gitHead":"bc9719aaf2029f99044a328e15f11242bac44650","mcpName":"co.policyforge/mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"deprecated":"Superseded - install @policyforge/mcp@latest","_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1783947982313_0.4144798579789155","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@policyforge/mcp","version":"0.3.0","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"license":"MIT","_id":"@policyforge/mcp@0.3.0","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"homepage":"https://policyforge.co","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"5ac7bfafea7e6ee0344109fa4e3e37441fb1aaad","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.3.0.tgz","fileCount":5,"integrity":"sha512-pHMyeEbqbnKUyYzlifAaWFzuaGhGVQbc50iItoGFKAHea4UxTfHceuA5pT7PyEpzAF7xFv6N+anQHCxavA0Yhg==","signatures":[{"sig":"MEUCIQCke9wY5YF5cI2bybBOvTQEydD4xgNbzyMO3n7LSYHghQIgcnlsAwMjPdUtpf3rCsUyvcw2VIkAlM4sFwQszUSCvfM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54775},"type":"module","engines":{"node":">=18"},"gitHead":"e19d92c4efe37d30a1351600a7e68e554b29070b","mcpName":"co.policyforge/mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"deprecated":"Superseded - install @policyforge/mcp@latest","_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.0_1783950089744_0.3408894267079703","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@policyforge/mcp","version":"0.3.1","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"license":"MIT","_id":"@policyforge/mcp@0.3.1","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"homepage":"https://policyforge.co","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"079427475883e3c816a3f8de1a1cc72495ebebb0","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.3.1.tgz","fileCount":8,"integrity":"sha512-OAsCv5WaFU6d1pKC2Vkmf/Nm7jA48mL/JSSC0Kih85dT2Vvj/1ESQK1WAUwYWQKpxUeMiQTyASKB6sYcgUtn2w==","signatures":[{"sig":"MEUCIBgYy/ecvNmlwZSWZdAFsyl10v8YHGzn04hP0FOP8RRVAiEAyCNzYNYYZnsMT3LwQccLEg8FyGOmXySN9RNduIWzz3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57091},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./tools":{"types":"./dist/tools.d.ts","default":"./dist/tools.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"}},"gitHead":"5bbd44c4ffa9a86b9cde8ebf19c8c0b87d8c8dd7","mcpName":"co.policyforge/mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.1_1783977446187_0.35764538824728165","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@policyforge/mcp","version":"0.4.0","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"license":"MIT","_id":"@policyforge/mcp@0.4.0","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"homepage":"https://policyforge.co","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"d318e7b49d366de99c55518eaa43b20e6ea9f3d9","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.4.0.tgz","fileCount":8,"integrity":"sha512-fa3jnLopLhtpPAy3Xd4CX4ce9V0XGQMKcBKvX0ICDVMywr/uZRQKbzfQCU4vMsvegFBUHIXfWdskv/sbOEOQkg==","signatures":[{"sig":"MEUCIQDekpC9ilzviTIK2M6xpvROUovHq+odZ57/Hl/Kifjv1QIgJdOkgtRUkG1bPTYL70PETPR+UaWuLsvrs9M9SVsCdfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58538},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./tools":{"types":"./dist/tools.d.ts","default":"./dist/tools.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"}},"gitHead":"428171736ef1ab1556b1f7cb604ed42c187a440e","mcpName":"co.policyforge/mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.0_1784664083646_0.5376284413313648","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@policyforge/mcp","version":"0.5.0","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"license":"MIT","_id":"@policyforge/mcp@0.5.0","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"homepage":"https://policyforge.co","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"aafd291b88e7dab82042f2eedbbbcff337e82ffb","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.5.0.tgz","fileCount":10,"integrity":"sha512-iOrSX2jWHp6dBg/L3y2QepMntv//s8kYlsfYDykJ9JH1jXdc7bWCzn+3sCoyAn+kFlrznUugHvQDXLyIx1E3Ng==","signatures":[{"sig":"MEUCIQDGVZNs4G30PRoFmhV3E2+YwLFEfU8fnH+OHBGSQa/8gwIga8oJ+NCU7pVmALXbCf2HjgC0145wbs9S9llrUPKm+20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67665},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./tools":{"types":"./dist/tools.d.ts","default":"./dist/tools.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"}},"gitHead":"ab54d0ce27c2ade7a8a3ccc827cceb53ac355868","mcpName":"co.policyforge/mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.5.0_1785358629918_0.4661596425741552","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@policyforge/mcp","version":"0.6.0","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"license":"MIT","_id":"@policyforge/mcp@0.6.0","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"homepage":"https://policyforge.co","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"59f1bdf60c9bd726a5ca1ba9a487cf187fb13999","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.6.0.tgz","fileCount":10,"integrity":"sha512-CLuzmHQ7SeSZUyvr8yibd1+pxIl+NsZAxVGu5eJ4Vfd1siDAELT2Fyel1/mManRqmBXXYPAkqRFyibAl1Mus7A==","signatures":[{"sig":"MEUCIQCHloYSNwiDIOz3jA79xdM17Ev+ZET9/EldSDmaW7EwtgIgDmiMaUk4ptL5NVkEntohpUDHpdc2hYxdxnGqSapdiwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71608},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./tools":{"types":"./dist/tools.d.ts","default":"./dist/tools.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"}},"gitHead":"f97b297eb73903e7c19177c78b587d02b78a48de","mcpName":"co.policyforge/mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.6.0_1785411799516_0.09183593561139647","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@policyforge/mcp","version":"0.6.1","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"license":"MIT","_id":"@policyforge/mcp@0.6.1","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"homepage":"https://policyforge.co","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"f3592bc91148a8be259678213c9e328b38a4a6a4","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.6.1.tgz","fileCount":10,"integrity":"sha512-hVYg3MW9kJ2QEavvWI40R74lITSpIdpLDgZuspwR1KRpChYt4aM6VBKEHOXm4Jmqp/cVvdFVt5tYAO/dpjwQ+A==","signatures":[{"sig":"MEUCIE702gs2bDQz0wErSV66VmstwIaXFOZMx9OjSBAHPkS2AiEAh6BAto6XXYw5uyIu+do7JmT7nLD5UEv4nULiLQ+KcTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72656},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./tools":{"types":"./dist/tools.d.ts","default":"./dist/tools.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"}},"gitHead":"55976289e47ffc9d5d83d90b92e440680f499dae","mcpName":"co.policyforge/mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.6.1_1785756064959_0.1951734751014098","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@policyforge/mcp","version":"0.7.0","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"license":"MIT","_id":"@policyforge/mcp@0.7.0","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"homepage":"https://policyforge.co","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"206fe3419e3c10ed0f9be30d5a12c6e18585bc36","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.7.0.tgz","fileCount":10,"integrity":"sha512-fgrSHKiBflHPmDbLEOn9Tyxr0YCcSXQzA1yawZD5wiXX4tB52P44+WTTVYyQ3hsmp3gq2dm392foVv83wc7uqw==","signatures":[{"sig":"MEMCIEvRUF2S683ciYGvyhVYWUtCjqx/LhNnL4ZWWQL/dugEAh8MdkQAj+TI+tBz41d8HPXvvm9XfnrfAjBpHw6hgQsE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHghyA9Chp/x9sM2mf39IA30oIyeHw7lryVY6VKQHtohAiEAswyxs3xh3D0uYQitN2NYQz91oQy+2U772rS2Vu0UbLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79258},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./tools":{"types":"./dist/tools.d.ts","default":"./dist/tools.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"}},"gitHead":"edcff4e52a3536ca204f21b713ed5adc730cd1db","mcpName":"co.policyforge/mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.7.0_1790658153024_0.21158125200721534","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"_id":"@policyforge/mcp@0.8.0","bin":{"policyforge-mcp":"dist/index.js"},"dist":{"shasum":"47ec0cf7ef3f7465009061b9da8f2ae466d661da","tarball":"https://registry.npmjs.org/@policyforge/mcp/-/mcp-0.8.0.tgz","fileCount":10,"integrity":"sha512-U3gN0p9o1Lb2rT5KzA+WGiG1KFEdxoVxjmKj0yaI1xbYsFBbkU4oGlYQ5C/BFIa50nmdOpQ3xjjyIKA+cdiWoA==","signatures":[{"sig":"MEUCIQCCXEh5IXZ2fWrXV7yvJNHkkLV0Sl92pH09VUA1NaEymgIgfHFo6ECs6I7vQSuoNPj2ZqWZ3ZLLv2r16j+0LjN5n5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD28ehlCL6Dgx6dH8Pqzd0Sk7grWGEuk9kOMhmQvd/w1wIhAIjRvrpOcgOuy/z2kusT+LUuf9LfNccqTNRa8JqVMcH9"}],"unpackedSize":86142},"name":"@policyforge/mcp","type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./tools":{"types":"./dist/tools.d.ts","default":"./dist/tools.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"}},"gitHead":"5e8563afb8cbabd03f3a2997123eb1819c52e077","license":"MIT","mcpName":"co.policyforge/mcp","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"version":"0.8.0","_npmUser":{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"},"homepage":"https://policyforge.co","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"_npmVersion":"10.9.4","description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","directories":{},"maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.8.0_1790688848717_0.9094567214098279"}}},"time":{"created":"2026-07-13T09:45:26.181Z","modified":"2026-09-29T13:34:09.098Z","0.1.0":"2026-07-13T09:45:26.542Z","0.2.0":"2026-07-13T13:06:22.468Z","0.3.0":"2026-07-13T13:41:29.875Z","0.3.1":"2026-07-13T21:17:26.325Z","0.4.0":"2026-07-21T20:01:23.805Z","0.5.0":"2026-07-29T20:57:10.055Z","0.6.0":"2026-07-30T11:43:19.652Z","0.6.1":"2026-08-03T11:21:05.088Z","0.7.0":"2026-09-29T05:02:33.101Z","0.8.0":"2026-09-29T13:34:08.808Z"},"license":"MIT","homepage":"https://policyforge.co","keywords":["mcp","model-context-protocol","policyforge","privacy-policy","terms-of-service","legal","compliance","gdpr","ccpa"],"description":"Model Context Protocol server for PolicyForge — generate privacy policies, terms of service, cookie policies and more directly from AI coding tools (Claude Code, Cursor, Windsurf).","maintainers":[{"name":"ekirapapaul","email":"ekirapapaul@gmail.com"}],"readme":"# PolicyForge MCP Server\n\nGenerate legal policies — privacy policies, terms of service, cookie policies,\nrefund policies, EULAs, disclaimers, and HIPAA Business Associate Agreements —\ndirectly from your AI coding tools (Claude Code, Cursor, Windsurf, Claude\nDesktop) via the [Model Context Protocol](https://modelcontextprotocol.io).\n\nAsk your agent *\"generate a GDPR + CCPA privacy policy for this app\"* and it\nfills the details from your codebase, calls PolicyForge, and drops the policy\nstraight into your project.\n\n**Try it free:** compliance audits (`audit_compliance`), drift checks\n(`check_policy_freshness`), and the scan rubric (`get_disclosure_checklist`)\nare unlimited and never touch your quota — start with\n*\"audit our compliance — does the privacy policy cover everything this code\nactually does?\"*. And the first time your account connects through MCP it gets\n**3 bonus policy generations** on top of the free 2/month — enough to generate\nprivacy, terms, and cookie policies for a new project in one conversation.\n\n## Connect\n\nPick the row that matches your client. If you're unsure, start with **A**.\n\n| | How you sign in | Best for |\n| --- | --- | --- |\n| **A. Remote + OAuth** | Browser sign-in, no key to copy | Clients that support OAuth (Claude, ChatGPT) |\n| **B. Remote + API key** | `Authorization` header | Any client that can send a header |\n| **C. Local (npx)** | `POLICYFORGE_API_KEY` env var | Running the server as a local process |\n\nAll three expose the same tools. A and B need nothing installed.\n\n### A. Remote with OAuth (easiest)\n\nNo key to copy, no config file to edit. You'll need a PolicyForge account\nfirst — <https://policyforge.co>, free, no card.\n\n**1. Add the server.** The `-s user` makes it available in every project rather\nthan only the directory you ran this in:\n\n```bash\nclaude mcp add -s user --transport http policyforge https://policyforge.co/api/mcp\n```\n\nNote there is no `--header`. Omitting it is what makes the client use OAuth.\n\n**2. Restart your client.** MCP config is read at startup, so a session that\nwas already running won't see the new server.\n\n**3. Authenticate.** Run `/mcp`, select `policyforge`, and press Enter:\n\n```\npolicyforge · △ needs authentication\n```\n\nYour browser opens, you sign in and approve, and the client stores the token\nitself. You should land back at `/mcp` showing `✔ connected · 16 tools`.\n\nTo confirm from the other side, a key named `MCP · <your client>` appears at\n<https://policyforge.co/api-dashboard> — that's the grant, and deleting it\nrevokes access.\n\nOther clients differ in step 3: some prompt on first tool use rather than\noffering an explicit authenticate action.\n\n### B. Remote with an API key\n\nFor clients that don't do OAuth yet. Create a key at\n<https://policyforge.co/api-dashboard>, then:\n\n```bash\nclaude mcp add --transport http policyforge https://policyforge.co/api/mcp \\\n  --header \"Authorization: Bearer pf_your_key_here\"\n```\n\nFor clients with URL-based MCP config (Cursor, Windsurf, and others):\n\n```json\n{\n  \"mcpServers\": {\n    \"policyforge\": {\n      \"url\": \"https://policyforge.co/api/mcp\",\n      \"headers\": { \"Authorization\": \"Bearer pf_your_key_here\" }\n    }\n  }\n}\n```\n\n### C. Local (npx)\n\nPrefer a local process? The server runs via `npx` — nothing to install\nglobally. Uses an API key from the environment, which is what the MCP spec\nrecommends for stdio transports.\n\n#### Claude Code\n\n```bash\nclaude mcp add policyforge \\\n  --env POLICYFORGE_API_KEY=your_key_here \\\n  -- npx -y @policyforge/mcp@latest\n```\n\n#### Cursor / Claude Desktop / Windsurf\n\nAdd to your MCP config (`.cursor/mcp.json`, `claude_desktop_config.json`, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"policyforge\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@policyforge/mcp@latest\"],\n      \"env\": {\n        \"POLICYFORGE_API_KEY\": \"your_key_here\"\n      }\n    }\n  }\n}\n```\n\n> On Windows, some clients need the command wrapped: set `\"command\": \"cmd\"` and\n> `\"args\": [\"/c\", \"npx\", \"-y\", \"@policyforge/mcp@latest\"]`.\n\nSee <https://policyforge.co/mcp> for one-click installs (Cursor/VS Code) and\nper-client instructions — with your API key pre-filled when signed in.\n\n## Troubleshooting\n\n- **401** — if you connected with OAuth, the authorization was revoked or\n  expired: reconnect and approve again. If you used an API key, it was deleted,\n  disabled, or mistyped (keys start with `pf_`) — rotate or create one at\n  <https://policyforge.co/api-dashboard> and restart the client.\n- **402** — generation quota exhausted. Free tier: 2 generations per calendar\n  month, plus a one-time bonus of 3 extra generations on first MCP connect.\n  Only `generate_policy`/`regenerate_policy` consume quota — audits and drift\n  checks are free; ask your agent to run `get_usage` to see what's left.\n- **429** — request rate limit (free tier: 10/minute, 100/day); the response\n  includes `retry_after`.\n- **Server not listed in `/mcp`** — either the session started before you added\n  it (restart the client; config is read at startup), or it was added to a\n  different project scope. `claude mcp add -s user …` makes it available\n  everywhere.\n- **Tools missing** — restart the client after config changes; on Windows use\n  the `cmd` wrapper above.\n- **\"The redirect URI is not registered for this application\"** — the client is\n  using a callback URL we haven't seen. Loopback callbacks work on any port\n  (per RFC 8252), so this should be rare; report the exact URI and it can be\n  supported.\n\nMore detail: <https://policyforge.co/mcp#troubleshooting>\n\n## Tools\n\n| Tool | What it does |\n| --- | --- |\n| `generate_policy` | Generate a policy and return its Markdown content + hosted URL. Consumes one policy from your quota. |\n| `generate_baa` | 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. |\n| `regenerate_policy` | Re-run the AI engine with changed business context — same ID and hosted URL, previous content saved as a version. |\n| `check_generation` | Get the result of a generation that was still running when its tool returned a job ID (generation takes 40-60s; tools wait up to 45s). |\n| `update_policy` | Edit a policy in place with find/replace edits or full content — same ID and hosted URL, so published links keep working. |\n| `audit_compliance` | Gap analysis: compare what the code does (your scanned manifest) with what a policy discloses. |\n| `check_policy_freshness` | Drift detection: diff the current codebase scan against the manifest stored at generation time. |\n| `list_policy_versions` | Version history — a snapshot is saved before every update, regeneration, or restore. |\n| `restore_policy_version` | Roll a policy back to any previous version (itself reversible). |\n| `list_policies` | List policies on your account (filter by type/status, paginate). |\n| `get_policy` | Fetch a single policy by ID, including full content. |\n| `delete_policy` | Permanently delete a policy (its hosted URL stops working). |\n| `get_usage` | Check your tier and remaining generation quota before generating. |\n| `get_disclosure_checklist` | The codebase-scan rubric: which SDKs/patterns require disclosure and how findings map to `generate_policy` fields. |\n| `get_integration_guide` | Copy-paste embed/link instructions for Next.js, React, plain HTML, or WordPress. |\n| `list_policy_types` | List supported policy types, business types, and jurisdictions. |\n\n### The codebase-aware workflow\n\nYour agent can read your project — so policies come from what the code *actually\ndoes*, not what you remember it doing:\n\n1. `get_disclosure_checklist` → agent scans dependencies, script tags, cookie\n   writes, and outbound hosts against the rubric, and builds a **stack\n   manifest** of what it found\n2. `generate_policy` with the detected context + `stack_manifest` (stored\n   server-side for drift detection)\n3. `get_integration_guide` → agent wires the hosted policy into your footer\n4. Later, after the stack changes: `check_policy_freshness` reports the drift,\n   `audit_compliance` shows the concrete gaps, and `regenerate_policy` fixes\n   them — same hosted URL, no broken links, previous version restorable\n\n### `generate_policy` inputs\n\n**Required:** `type`, `business_type`, `jurisdiction`, `company_name`, `contact_email`\n\n- `type` — `privacy_policy` · `terms_of_service` · `cookie_policy` · `refund_policy` · `eula` · `disclaimer`\n- `business_type` — `e-commerce` · `saas` · `healthcare` · `education` · `financial` · `fintech` · `real-estate` · `non-profit` · `consulting` · `media` · `mobile_app` · `other`\n- `jurisdiction` — one or more of `gdpr` `ccpa` `pipeda` `lgpd` `us` `eu` `ca` `uk` `au` `br` `global` (comma-separate to combine, e.g. `gdpr,ccpa`)\n\n**Optional context** (improves output): `website_url`, `service_description`,\n`data_collection[]`, `third_party_integrations[]`, `data_retention`,\n`user_accounts`, `payments`, `marketing`, `analytics`, `cookies`,\n`children_data`, `sells_data`, `target_audience[]`, `security_measures[]`,\n`governing_law`, `physical_address`, `dpo_email`, `consent_tracking`,\n`hosting_enabled`.\n\n### `generate_baa` inputs\n\nA Business Associate Agreement is a contract between two named parties, not a\npublished policy, so it takes its own tool and its own fields. **Pro plan.**\n\n**Required:** `acknowledge_contract` (must be `true`), `baa_direction`,\n`company_name`, `contact_email`, both parties' legal names and addresses,\n`baa_effective_date` (`YYYY-MM-DD`), `baa_services_description`,\n`baa_phi_types[]`, `baa_permitted_uses[]`, `baa_governing_law_state`.\n\n- `baa_direction` — `covered_entity_to_vendor` (you are the practice issuing\n  the agreement) or `business_associate_to_client` (you are the vendor\n  offering it to a healthcare client)\n- `baa_phi_types[]` — categories of PHI involved. Including\n  `\"Substance use treatment records (42 CFR Part 2)\"` adds a Part 2 addendum\n- `baa_permitted_uses[]` — anything not listed here is *not* permitted by the\n  agreement (45 CFR 164.504(e)(2)(i))\n\n**Optional:** `baa_electronic_phi` (default `true`),\n`baa_uses_subcontractors` (default `false`), `baa_term_type`,\n`baa_term_end_date`, `baa_breach_notification_days` (1–60, default 30),\n`baa_return_or_destroy`, `baa_include_indemnification`,\n`baa_include_insurance`, `baa_insurance_amount`.\n\nEvery generated agreement is checked against the 15 clauses 45 CFR 164.504(e)\nrequires before it is returned; an incomplete draft is refused rather than\nhanded back. The result is still a draft for counsel to review, and it is\nnever published at a public URL.\n\n## Configuration\n\nOnly needed for the local (npx) transport. Remote connections authenticate\nover OAuth or an `Authorization` header instead.\n\n| Env var | Required | Default | Purpose |\n| --- | --- | --- | --- |\n| `POLICYFORGE_API_KEY` | yes (local only) | — | Your PolicyForge API key. |\n| `POLICYFORGE_API_URL` | no | `https://policyforge.co` | Override the API base URL (self-host/testing). |\n\n## How it works\n\nThis server is a thin wrapper over the PolicyForge public REST API (`/api/v1`).\nEvery tool maps to one authenticated HTTP request, so quota, rate limiting, and\npolicy generation stay authoritative on the PolicyForge server — the MCP layer\nholds no secrets beyond your API key and no business logic of its own.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}