{"_id":"@dotcms/mcp-server","_rev":"21-f013d20119d41c82e100b4d8b665ad04","name":"@dotcms/mcp-server","dist-tags":{"latest":"0.1.1","beta":"0.1.0-beta.4"},"versions":{"0.0.1":{"name":"@dotcms/mcp-server","version":"0.0.1","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.1","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"703ed883f99c8182413509b7aec4a1700aa63468","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.1.tgz","fileCount":3,"integrity":"sha512-8HRyxA6DEG1JBDR0n5uvqmyaqJSdAtN47XLLw5n10aWDGq0iJbPUmYbxnKz68z4wwwBYvyqMy8OK0ZZC66iUvQ==","signatures":[{"sig":"MEYCIQCoI/o4lY8we9aqagfsinev7rlpgBUmbEyZZyLpliJUAAIhALN8EZfm7SV7N9pu7MMVfi3iXue8UWHYmzq6yX8TTKDh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23251},"main":"main.js","engines":{"node":">=18.0.0"},"gitHead":"e903e623c6a26264f4e021153cd01b5c1094dce5","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","actor":{"name":"devdotcms","type":"user","email":"dev@dotcms.com"},"email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI assistants to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.1_1751589750551_0.6412059688208411","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@dotcms/mcp-server","version":"0.0.2","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.2","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"8763b0fc27e6f0acf9cad802877f7b788ad45ab1","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.2.tgz","fileCount":3,"integrity":"sha512-uo9LF+THRIvtFa34gL11uhZYTjz357SJHYa3QF3WAlAvBBRY8f/2son3biR818FjWrbnpbQTx+kfHOe6hI/SCg==","signatures":[{"sig":"MEYCIQDJ+1YfyKV4LeLN1ylFvwm0LB33z/UreKY4D7aJzzhDKgIhAMBIKe7L1D9WO99TL42XRJzr7fNgKYtR1k7gXdeCnish","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79464},"main":"main.js","engines":{"node":">=18.0.0"},"gitHead":"e903e623c6a26264f4e021153cd01b5c1094dce5","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","actor":{"name":"devdotcms","type":"user","email":"dev@dotcms.com"},"email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI assistants to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.2_1751590212455_0.8019349341248545","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@dotcms/mcp-server","version":"0.0.3","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.3","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"672dccaa09e859897747c5e5fb5cd3f1425997a2","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.3.tgz","fileCount":3,"integrity":"sha512-6AiBG6uw+P2HxikBmP+Ppra96OXnmgJTnQGeSLcsYV7+rqfKPMUlnT+0r8+W+eZBKQSfyajvGntmIINrxpdoYA==","signatures":[{"sig":"MEYCIQDjPktl33dfwJPjkTxBVD7dk4BimAS6MPnOZQAIgxOFyQIhALPWpiwNYFUVLHP2dS/RFY5MtMMFz20cXrLFFKuqtagC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16944},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e903e623c6a26264f4e021153cd01b5c1094dce5","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","actor":{"name":"devdotcms","type":"user","email":"dev@dotcms.com"},"email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI assistants to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.3_1751598357052_0.6981234601681376","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@dotcms/mcp-server","version":"0.0.4","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.4","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"e3a50dc2458660d29960e63f1ed301aa16e37c16","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.4.tgz","fileCount":30,"integrity":"sha512-KjntzWNp7OQ3IbwJNYYvzSAl8fEL0WNFRMDkmsz2RiiE0FfrxFcid2xgWA8UB4Vrd1Sy2pCSFvrBrG/JN95Szw==","signatures":[{"sig":"MEUCIQDm7BoKvj4dc1wN8gtNY4VMLOt0p61rjCcJw5alF0ywtgIgfiXSB4O+z3xVWLlDB2+FlTgvRmUUU0PujQhHWo4EkLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79098},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e903e623c6a26264f4e021153cd01b5c1094dce5","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","actor":{"name":"devdotcms","type":"user","email":"dev@dotcms.com"},"email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI assistants to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.4_1751598647683_0.05518129126479643","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@dotcms/mcp-server","version":"0.0.5","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.5","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"4f1c82cda95352d4e901e80fe340db9ead138324","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.5.tgz","fileCount":30,"integrity":"sha512-KnRN7dO9OYC8WXo3+TX9kv2xX8udShXngES5Q6fVMGKdITVnmYbSBlRMLkvl4aeaXodkXlCIKp7Qa7xNT8M8PQ==","signatures":[{"sig":"MEUCIQDLcYCfyaloFFWT39MnUlYF5eoJk9xHxBsbgSxPN/2cqgIgJZxhkFFHrwQrWjmv2WgAvgP3krVgX6gt9Blb8YJ4xDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79134},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e903e623c6a26264f4e021153cd01b5c1094dce5","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","actor":{"name":"devdotcms","type":"user","email":"dev@dotcms.com"},"email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI assistants to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.5_1751599118604_0.9772178163744827","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@dotcms/mcp-server","version":"0.0.6","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.6","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"e8abf3e26a0736fbc2a1ca077677ad2916fa2330","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.6.tgz","fileCount":3,"integrity":"sha512-YPZkUyvbmtCI6XDS09DGLTrVHfAHpV655euRcVO2NApRxVU9W51Y3GTVHpGUKOdm2aufar3BhPAtMvgPlnIfog==","signatures":[{"sig":"MEYCIQD+xAILuDoA/Zu5dNN8D9W17hsOlpB6gW/HawoeiaCEKAIhANH287Uc0X43Yb22p1BVxibMsdjbUnIFYoWlmMXNrNrd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75661},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e903e623c6a26264f4e021153cd01b5c1094dce5","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","actor":{"name":"devdotcms","type":"user","email":"dev@dotcms.com"},"email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI assistants to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.6_1751599573012_0.3954890700956497","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@dotcms/mcp-server","version":"0.0.7","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.7","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"c2555e7d3ded1a80724cc45817fafa63711486a9","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.7.tgz","fileCount":3,"integrity":"sha512-cRu2v23vKUDNC5YdOPmqKzkM6VIi3Usqp5XSgZhmIKLtjcHSA4H1ZL/DLlXPjUYjHGs07cTkABKwciZ9ZikWBg==","signatures":[{"sig":"MEUCIQCGb7BzFlnCxGddZoWJjxYL4/aDtX7cG4WoCGxySN2u6QIgad8B4ji2g1G7T8im4ffYCvPamF5tOVtLKIp3LpagjFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78548},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9cac88b2d3833a9811acbfa9e98450cc232401f0","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","actor":{"name":"devdotcms","type":"user","email":"dev@dotcms.com"},"email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.7_1751717184778_0.17456326597452287","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@dotcms/mcp-server","version":"0.0.8","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.8","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"374e6f187b71620929a977a53e7a3c790d28cf98","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.8.tgz","fileCount":3,"integrity":"sha512-cF4VCkFqwNV8K8j9a1gxkscpp2PIk0drlYvplHRTTHJ7akaxnEHl6Td4smm0QobHUsxDjUHMRyoxQTDMvk7xzA==","signatures":[{"sig":"MEYCIQCdftSElm9/GpFWsWPqyBm/9QUVTe96lctqAtfqIG2UxAIhAJIHo+GF3czsTnF8mUfc2AqFtznDEBKbOy4iVgG7rXYT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78635},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"268ec23a88ff5c9637a8551a0b8308d2075e6c34","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","actor":{"name":"devdotcms","type":"user","email":"dev@dotcms.com"},"email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.8_1751763105103_0.4796465255354192","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@dotcms/mcp-server","version":"0.0.9","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.9","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"7032c6d8eb2c824f9cfafe8eb7768bcee68e760a","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.9.tgz","fileCount":3,"integrity":"sha512-M0DpuIXYnv/onLIqxwiFNHNI7aNzdaqLkfsYV/zkqce9g68ytM2HvYrZWtFbdIHiz7WIAaClSsFTQEv2ujaLtw==","signatures":[{"sig":"MEQCIFpBuqYHls2c+dJhiyZHzWe12QhNX7ZPGBpYSasQ6WtKAiAxVIPnV5lRKVggPZ7cP8rS1Whk7dAHwQ4VJ6AGMWjnzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79369},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"51319ed673c55a6951eefbc51870107d5d933c82","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","actor":{"name":"devdotcms","type":"user","email":"dev@dotcms.com"},"email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.9_1751913173103_0.14047958388795112","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@dotcms/mcp-server","version":"0.0.10","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.10","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"031afcaacbd8170a26c66d49571925b4b250bc0a","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.10.tgz","fileCount":3,"integrity":"sha512-tChIJYztdjmR/IZmumNj8erdRa7RPt1p99/+aWsdG6ggcA6btW28keX6wemUgPrLrQyg67vIX6IBsZnvJsPmHQ==","signatures":[{"sig":"MEUCIACdLV/K9hqUZ4tBLwiI4XAn3EBZe7JmAg8qPN2dmTa5AiEAkpUdlC7kF2++3HgNIcRjLV1RfPQL3iEgX0cT2cqgeJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80972},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d692b6e34cee4f46ebe5a36b9bb774ec03c7c95f","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"10.9.2","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"22.17.0","dependencies":{"zod":"^3.25.67","@modelcontextprotocol/sdk":"^1.13.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.10_1756994063240_0.30778184799990993","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@dotcms/mcp-server","version":"0.0.11","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.11","maintainers":[{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"f872ce0f58fe96bfd4f3249bc923db819b56c8c2","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.11.tgz","fileCount":3,"integrity":"sha512-wtfwfsVuCl/XtcL6lxh6ia72+G/gmx6VppTUfKuV+t288vTL/FrTTaHVJlWvEHO6T6bGS2yTr0ebvkEuuK0FCw==","signatures":[{"sig":"MEQCIHUXtCZftU78j4zTmLaXDbNr9THGCI8b8s5hWcFWN7sMAiAxpT6w6LGHUAYQPzpc0Hm+5ouz1z9NkuT7RZmMwNnZNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81592},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"ac32f6d9596a9d997e4808e75db9f6ffd8cf8147","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"11.6.0","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"24.8.0","dependencies":{"zod":"^3.25.67","@modelcontextprotocol/sdk":"^1.13.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.11_1759323688818_0.8614851080365342","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@dotcms/mcp-server","version":"0.0.12","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.12","maintainers":[{"name":"nollymar","email":"nollymar.longa@dotcms.com"},{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"3577b69c21d8138c58d52b44bbf9da9caba2b373","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.12.tgz","fileCount":3,"integrity":"sha512-wqJUuN38Eusk0KRPtC2Rlk2rFlC1/5NGpfthuvMvRCfQmBh/y/3rg4JI0efCMLS6zLkD+pxUUW8s5kEAaVgl1g==","signatures":[{"sig":"MEUCIF1R0AWrPR6RDpctYPP34auOWFKNSOoNh6qHxAQpUF3aAiEA4kd/WTqxWLKAFC3kOPA5naLNG8zewirtkxw7H2ztecQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81712},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"018cda4ec93c853f50659b0504b297fa41f6d8fe","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"11.6.0","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"24.8.0","dependencies":{"zod":"^3.25.67","@modelcontextprotocol/sdk":"^1.13.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.12_1763599754023_0.6637194970488505","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@dotcms/mcp-server","version":"0.0.13","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.0.13","maintainers":[{"name":"nollymar","email":"nollymar.longa@dotcms.com"},{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"main.js"},"dist":{"shasum":"cc4d14469b9d1f93cff844136bd6e4d92b3a4984","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.0.13.tgz","fileCount":3,"integrity":"sha512-p387Hc8kKFhzoSylLt77xyTZC90saAGVZfDjVYdi1g8lZANK+hEHOBoUxBrlErrHSzyNY+SEtl6PkjIAEvhVpg==","signatures":[{"sig":"MEUCIQC+eSP6O8yGiNVBj8/ZDh20GRFuiNqv0N9g7eIchczRxQIgdV3wG8y8xvlCp20OCiggoGjaznU7gIisuqYRKBtmqoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":479999},"main":"main.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"796dbbcf7164948957181d8cfc5bed5aac7203b0","scripts":{"start":"node main.js"},"_npmUser":{"name":"devdotcms","email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"11.6.0","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"24.8.0","dependencies":{"zod":"^3.25.67","@modelcontextprotocol/sdk":"^1.13.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.0.13_1764286426523_0.049135957560538124","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.1":{"name":"@dotcms/mcp-server","version":"0.1.0-beta.1","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.1.0-beta.1","maintainers":[{"name":"nollymar","email":"nollymar.longa@dotcms.com"},{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"stdio.js"},"dist":{"shasum":"5d51338ac07c4b38f6a950b3ccb8ec8a9861d161","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.1.0-beta.1.tgz","fileCount":5,"integrity":"sha512-0nxokQFJ86HsjuqqT821B7qWcFv9KjeDZzlSDHakDn8MU1EG/rXdcCYmhxItmFxl1J8uqgp7kuxh2uD/gfwICw==","signatures":[{"sig":"MEUCIGj7U0gnubd6mny9V+ycIgCA3rjwfXMu6CbB0R9nzgVgAiEApWphizojyfrdJB7XjnOuGZ6+hq/o9IHMcx1gvhUVBsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":821052},"main":"./stdio.js","engines":{"node":">=20.0.0"},"gitHead":"b7d9fe1f49fafd771d4e6b8d4d2066c2ed7d1ce9","scripts":{"start":"node stdio.js"},"_npmUser":{"name":"devdotcms","email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"11.6.0","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"24.8.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0-beta.1_1772980928981_0.8245017252716127","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.2":{"name":"@dotcms/mcp-server","version":"0.1.0-beta.2","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.1.0-beta.2","maintainers":[{"name":"nollymar","email":"nollymar.longa@dotcms.com"},{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"stdio.js"},"dist":{"shasum":"719f86a34383522c846d5031a070b01859bc190d","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.1.0-beta.2.tgz","fileCount":5,"integrity":"sha512-70k3Muj2Nf6CNitOFlLfPRBaSeBIZ/cZfLyBJa+HBe4Bfw9pBIXT2531lddeF+0A/5CmmJyQ79FHYEKIXKReeg==","signatures":[{"sig":"MEUCIHw5rUVSnsmwCmDdY/aZS3AS7n4xergOBBZqAaMuhRmBAiEA1WOnJjPkh6pINuXGJZ7pizYYIX2CsDPlcRIdR5elhmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1079459},"main":"./stdio.js","engines":{"node":">=20.0.0"},"scripts":{"start":"node stdio.js"},"_npmUser":{"name":"devdotcms","email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"11.11.0","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"24.14.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0-beta.2_1780518248812_0.03581290753448996","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.3":{"name":"@dotcms/mcp-server","version":"0.1.0-beta.3","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.1.0-beta.3","maintainers":[{"name":"nollymar","email":"nollymar.longa@dotcms.com"},{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"stdio.js"},"dist":{"shasum":"645522f8477d618fa3bbc1cea082b6639017e38e","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.1.0-beta.3.tgz","fileCount":5,"integrity":"sha512-NbpjMBBRkVZnHC5rFRrimlZZzuAXAHMrx/hOchXjU1uM36XdCnSUVI9SkykWfuScXzQGNIyv+HxLn5cOceAyTw==","signatures":[{"sig":"MEQCIAuXkC3LUZJePB6//rLZExgqTUEH6s+1xeKW6FWBFAFMAiBNZ1CPTn0JXt0Lef9BzDpIdy3BsD4KYJNvoyXQvgMDaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1136636},"main":"./stdio.js","engines":{"node":">=20.0.0"},"gitHead":"d28ec37c6515a6d146b3e5e885efafd44514b602","scripts":{"start":"node stdio.js"},"_npmUser":{"name":"devdotcms","email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"11.11.0","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"24.14.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0-beta.3_1781649990649_0.11786877454098632","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.4":{"name":"@dotcms/mcp-server","version":"0.1.0-beta.4","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"url":"https://www.dotcms.com","name":"Freddy Montes","email":"freddy@dotcms.com"},"license":"GPL-3.0","_id":"@dotcms/mcp-server@0.1.0-beta.4","maintainers":[{"name":"nollymar","email":"nollymar.longa@dotcms.com"},{"name":"devdotcms","email":"dev@dotcms.com"}],"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","bugs":{"url":"https://github.com/dotCMS/core/issues"},"bin":{"dotcms-mcp-server":"stdio.js"},"dist":{"shasum":"e547cec68b00ebb6d92ea93f99af444d336b7ff0","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.1.0-beta.4.tgz","fileCount":8,"integrity":"sha512-RLwVJfz8myptdJ+3/mk3OCY09TtGqNqgnf4H8yd1l8nVq6qeIGpAdyJ6cHEZScennlkkGNtlfqjIju1GYw8k1w==","signatures":[{"sig":"MEYCIQCJ0Ax2iRio3w60lhtuhp2JWWHhvLYrCDpNay+wtREL2gIhAKygMkFhBcsCHYTdppg4B9ZfJ6LRmxF/KfD52II5WBoW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1291312},"main":"./stdio.js","engines":{"node":">=20.0.0"},"scripts":{"start":"node stdio.js"},"_npmUser":{"name":"devdotcms","email":"dev@dotcms.com"},"repository":{"url":"git+https://github.com/dotCMS/core.git","type":"git","directory":"apps/mcp-server"},"_npmVersion":"11.11.0","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","directories":{},"_nodeVersion":"24.14.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0-beta.4_1782493322892_0.5825611682228005","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dotcms/mcp-server","version":"0.1.1","description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","main":"./stdio.js","bin":{"dotcms-mcp-server":"stdio.js"},"scripts":{"start":"node stdio.js"},"keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"author":{"name":"Freddy Montes","email":"freddy@dotcms.com","url":"https://www.dotcms.com"},"license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/dotCMS/core.git","directory":"apps/mcp-server"},"bugs":{"url":"https://github.com/dotCMS/core/issues"},"homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","engines":{"node":">=20.0.0"},"dependencies":{},"publishConfig":{"access":"public"},"_id":"@dotcms/mcp-server@0.1.1","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-7odQqTBUiXrM+c9jOv3oq7UvRoSS0YZQwJxrw+yT9Flwt6Z7jw7wPiECj7EZalACbshlSQUtwpRBewG/0jlO6g==","shasum":"0bc4d0d66b0e768ab1a2a469b78918c9bc3e9541","tarball":"https://registry.npmjs.org/@dotcms/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":11,"unpackedSize":2007895,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC9L0toOpPA2C0hEy+vfL0hKYcZ8Z9e9vuqlpPvm4lGeQIgHqtQlK3AfWvkzy0SMDZn1f0AQ3JGgSpXYD/W3xtRp1E="}]},"_npmUser":{"name":"devdotcms","email":"dev@dotcms.com"},"directories":{},"maintainers":[{"name":"nollymar","email":"nollymar.longa@dotcms.com"},{"name":"devdotcms","email":"dev@dotcms.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.1.1_1788355561772_0.6788139185888464"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-04T00:42:30.463Z","modified":"2026-09-02T13:26:02.120Z","0.0.1":"2025-07-04T00:42:30.743Z","0.0.2":"2025-07-04T00:50:12.619Z","0.0.3":"2025-07-04T03:05:57.219Z","0.0.4":"2025-07-04T03:10:47.866Z","0.0.5":"2025-07-04T03:18:38.782Z","0.0.6":"2025-07-04T03:26:13.190Z","0.0.7":"2025-07-05T12:06:24.947Z","0.0.8":"2025-07-06T00:51:45.288Z","0.0.9":"2025-07-07T18:32:53.290Z","0.0.10":"2025-09-04T13:54:23.402Z","0.0.11":"2025-10-01T13:01:28.997Z","0.0.12":"2025-11-20T00:49:14.255Z","0.0.13":"2025-11-27T23:33:46.727Z","0.1.0-beta.1":"2026-03-08T14:42:09.138Z","0.1.0-beta.2":"2026-06-03T20:24:08.967Z","0.1.0-beta.3":"2026-06-16T22:46:30.834Z","0.1.0-beta.4":"2026-06-26T17:02:03.058Z","0.1.0":"2026-09-01T23:04:51.078Z","0.1.1":"2026-09-02T13:26:01.901Z"},"bugs":{"url":"https://github.com/dotCMS/core/issues"},"author":{"name":"Freddy Montes","email":"freddy@dotcms.com","url":"https://www.dotcms.com"},"license":"GPL-3.0","homepage":"https://github.com/dotCMS/core/tree/main/core-web/apps/mcp-server","keywords":["dotcms","mcp","model-context-protocol","ai","claude","content-management","cms","artificial-intelligence","automation","workflow","headless-cms"],"repository":{"type":"git","url":"git+https://github.com/dotCMS/core.git","directory":"apps/mcp-server"},"description":"Model Context Protocol (MCP) server for dotCMS - enables AI agents to interact with dotCMS content management capabilities","maintainers":[{"name":"nollymar","email":"nollymar.longa@dotcms.com"},{"name":"devdotcms","email":"dev@dotcms.com"}],"readme":"# dotCMS MCP Server\n\nThe dotCMS MCP (Model Context Protocol) Server enables AI assistants to interact directly with dotCMS content management capabilities. Built with [xmcp](https://xmcp.dev), this server provides sandbox-isolated code execution for exploring the dotCMS REST API specification and executing authenticated API calls.\n\n### When to Use It:\n\n-   Building AI-powered content management workflows\n-   Automating content creation and publishing processes\n-   Creating intelligent content discovery and search experiences\n-   Developing AI assistants that need to understand your content structure\n-   Implementing automated content operations and bulk updates\n\n### Key Benefits:\n\n-   **Conversational Content Management**: Ask AI to create, edit, and publish content using natural language instead of navigating through admin interfaces\n-   **Intelligent Content Discovery**: Let AI understand your content structure and help you find, organize, and manage content across your site\n-   **Automated Publishing Workflows**: Have AI handle content approval, publishing, and archiving based on your business rules\n-   **Smart Content Creation**: Generate content that follows your existing content types and field requirements automatically\n-   **Bulk Content Operations**: Process multiple pieces of content at once through simple AI conversations\n-   **Developer Productivity**: Generate code components, forms, and integrations based on your actual dotCMS content structure\n\n## Table of Contents\n\n-   [Prerequisites & Setup](#prerequisites--setup)\n    -   [Get a dotCMS Environment](#get-a-dotcms-environment)\n    -   [Create a dotCMS API Token](#create-a-dotcms-api-token)\n-   [Quickstart](#quickstart)\n-   [Available Tools](#available-tools)\n    -   [Search](#search)\n    -   [Execute](#execute)\n-   [Development](#development)\n    -   [Local Development Setup](#local-development-setup)\n    -   [Project Structure](#project-structure)\n    -   [Development Commands](#development-commands)\n    -   [Contributing Guidelines](#contributing-guidelines)\n-   [Security Best Practices](#security-best-practices)\n-   [dotCMS Support](#dotcms-support)\n-   [How To Contribute](#how-to-contribute)\n-   [Licensing Information](#licensing-information)\n\n## Prerequisites & Setup\n\n### Get a dotCMS Environment\n\n#### Version Compatibility\n\n-   **Recommended**: dotCMS Evergreen\n-   **Minimum**: dotCMS v24.4\n-   **Best Experience**: Latest Evergreen release\n\n#### Environment Setup\n\n**For Production Use:**\n\n-   ☁️ [Cloud hosting options](https://www.dotcms.com/pricing) - managed solutions with SLA\n-   🛠️ [Self-hosted options](https://dev.dotcms.com/docs/current-releases) - deploy on your infrastructure\n\n**For Testing & Development:**\n\n-   🧑🏻‍💻 [dotCMS demo site](https://demo.dotcms.com/dotAdmin/#/public/login) - perfect for trying out the MCP server\n-   📘 [Learn how to use the demo site](https://dev.dotcms.com/docs/demo-site)\n\n**For Local Development:**\n\n-   🐳 [Docker setup guide](https://github.com/dotCMS/core/tree/main/docker/docker-compose-examples/single-node-demo-site)\n-   💻 [Local installation guide](https://dev.dotcms.com/docs/quick-start-guide)\n\n### Create a dotCMS API Token\n\n> [!WARNING]\n> This MCP server requires an API token with **write permissions** for Content Types, Content, and Workflows. Only use tokens with the minimum required permissions and secure them properly.\n\nThis integration requires an API Token with content management permissions:\n\n1. Go to the **dotCMS admin panel**\n2. Click on **System** > **Users**\n3. Select the user (with proper permissions) you want to create the API Token for\n4. Go to **API Access Key** and generate a new key\n\nFor detailed instructions, please refer to the [dotCMS API Documentation](https://dev.dotcms.com/docs/rest-api-authentication).\n\n## Configuration\n\nBefore setting up the MCP server, you need these environment variables to connect to your dotCMS instance:\n\n### Environment Variables\n\n| Variable           | Required | Description                        | Example |\n| ------------------ | -------- | ---------------------------------- | ------- |\n| `DOTCMS_URL`  | ✅       | Your dotCMS instance URL           | `https://demo.dotcms.com` |\n| `AUTH_TOKEN` | ✅       | API authentication token (created in [setup step](#create-a-dotcms-api-token)) | `your-api-token-here` |\n| `SANDBOX_TIMEOUT`  | ❌       | Sandbox execution timeout in ms (default: 45000) | `45000` |\n| `DEBUG`            | ❌       | When set to any truthy value, emits diagnostic logs to stderr (e.g. context cache load events) | `1` |\n\n\n## Quickstart\n\nGet up and running with the dotCMS MCP Server in minutes.\n\nThe server runs on both **Node.js** (≥20) and **Bun** — the correct sandbox implementation is selected automatically at runtime.\n\n> [!NOTE]\n> This version is currently in **beta**. Once stable, replace `@dotcms/mcp-server@beta` with `@dotcms/mcp-server` in the examples below.\n\n### Claude Desktop Setup\n\nAdd the MCP server to your Claude Desktop configuration file. The configuration file location varies by operating system:\n\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n**Using npx (Node.js):**\n\n```json\n{\n    \"mcpServers\": {\n        \"dotcms\": {\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"@dotcms/mcp-server@beta\"],\n            \"env\": {\n                \"DOTCMS_URL\": \"https://your-dotcms-instance.com\",\n                \"AUTH_TOKEN\": \"your-api-token\"\n            }\n        }\n    }\n}\n```\n\n**Using bunx (Bun):**\n\n```json\n{\n    \"mcpServers\": {\n        \"dotcms\": {\n            \"command\": \"bunx\",\n            \"args\": [\"@dotcms/mcp-server@beta\"],\n            \"env\": {\n                \"DOTCMS_URL\": \"https://your-dotcms-instance.com\",\n                \"AUTH_TOKEN\": \"your-api-token\"\n            }\n        }\n    }\n}\n```\n\n### Cursor IDE Setup\n\nAdd the MCP server to your Cursor configuration. Open Cursor Settings and navigate to \"Features\" > \"Model Context Protocol\" or create/edit the configuration file:\n\n**Using npx (Node.js):**\n\n```json\n{\n    \"mcpServers\": {\n        \"dotcms\": {\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"@dotcms/mcp-server@beta\"],\n            \"env\": {\n                \"DOTCMS_URL\": \"https://your-dotcms-instance.com\",\n                \"AUTH_TOKEN\": \"your-api-token\"\n            }\n        }\n    }\n}\n```\n\n**Using bunx (Bun):**\n\n```json\n{\n    \"mcpServers\": {\n        \"dotcms\": {\n            \"command\": \"bunx\",\n            \"args\": [\"@dotcms/mcp-server@beta\"],\n            \"env\": {\n                \"DOTCMS_URL\": \"https://your-dotcms-instance.com\",\n                \"AUTH_TOKEN\": \"your-api-token\"\n            }\n        }\n    }\n}\n```\n\n### Start Using\n\n1. **Restart** your AI assistant (Claude Desktop or Cursor)\n2. **Start creating**: Ask the AI to create content, manage workflows, or generate code\n\nExample interactions:\n```\nYou: \"Create a new blog post about AI in content management\"\nAI: [Searches the API spec, then executes the appropriate API calls]\n\nYou: \"Show me all my content types\"\nAI: [Discovers and displays your content schemas]\n\nYou: \"Generate a React component for my Product content type\"\nAI: [Analyzes your Product fields and generates a complete component]\n```\n\n## Available Tools\n\nThe dotCMS MCP Server provides tools that enable comprehensive content management through AI:\n\n### Search\n\n**Tool**: `search`\n\n**Purpose**: Explore the dotCMS REST API specification using JavaScript code that runs in an isolated sandbox.\n\nThe `spec` global contains the filtered OpenAPI spec — `$ref`-based, with a `paths` object and a `components.schemas` map. Request/response `.schema` values are usually `$ref`s (e.g. `{ $ref: '#/components/schemas/PageView' }`); call `resolveRef(schemaOrName, depth)` to expand them at a bounded depth. Output is hard-capped (~25k chars), so return only what you need.\n\n```javascript\n// List all available endpoint paths\nreturn Object.keys(spec.paths)\n\n// Find endpoints related to content types\nreturn Object.entries(spec.paths)\n  .filter(([path]) => path.includes('contenttype'))\n  .map(([path, methods]) => ({ path, methods: Object.keys(methods) }))\n\n// Resolve a request-body schema one level deep\nreturn resolveRef(spec.paths['/api/v1/contenttype'].post.requestBody.content['application/json'].schema, 1)\n```\n\n### Execute\n\n**Tool**: `execute`\n\n**Purpose**: Execute authenticated API calls against your dotCMS instance using JavaScript code in an isolated sandbox.\n\n```javascript\n// List content types\nconst result = await api.request({ path: '/api/v1/contenttype' })\nreturn result\n\n// Search content with Elasticsearch\nconst result = await api.request({\n  method: 'POST',\n  path: '/api/v1/es/search',\n  body: { query: 'contentType:webPageContent +languageId:1' }\n})\nreturn pick(result.contentlets, ['identifier', 'title', 'modDate'])\n```\n\n**Helper utilities available**: `pick(arr, fields)`, `table(arr)`, `count(arr, field)`, `sum(arr, field)`, `first(arr, n)`\n\n### Download Assets\n\n**Tool**: `download_assets`\n\n**Purpose**: Download a dotCMS asset folder to the MCP server filesystem while returning only a small JSON manifest.\n\n```json\n{\n    \"path\": \"/application/themes/travel\",\n    \"dest\": \"/absolute/local/path/themes/travel\",\n    \"recursive\": true,\n    \"overwrite\": \"skip\",\n    \"include\": \"*.vtl,*.scss\"\n}\n```\n\nThe tool enumerates file assets with `/api/content/_search`, downloads bytes with `/api/v2/assets/{identifier}` through the server-side runtime, writes files under `dest`, and preserves relative folder structure. File bytes are not returned to the model.\n\n### Upload Assets\n\n**Tool**: `upload_assets`\n\n**Purpose**: Upload a local directory to dotCMS file assets using `/api/v2/assets/publish` or `/api/v2/assets/save`.\n\n```json\n{\n    \"src\": \"/absolute/local/path/themes/travel\",\n    \"dest\": \"//demo.dotcms.com/application/themes/travel\",\n    \"include\": \"*.vtl,*.scss\",\n    \"publish\": true,\n    \"verify\": true\n}\n```\n\nThe upload destination must be host-qualified. When `publish` and `verify` are true, the tool checks live status with `/api/v1/content/{identifier}` and retries publish for files that did not become live.\n\n### Pre-loaded Instance Context\n\nBoth `search` and `execute` automatically pre-load a minimal snapshot of the connected dotCMS instance and inject it into the sandbox as globals. The AI does not need to make discovery calls before doing work.\n\nAvailable globals in both tools:\n\n| Global         | Shape                                                                  | Source                  |\n| -------------- | ---------------------------------------------------------------------- | ----------------------- |\n| `contentTypes` | `{ id, name, variable, baseType, host?, folder? }[]`                   | `/api/v1/contenttype`   |\n| `sites`        | `{ identifier, hostname, isDefault, archived }[]`                      | `/api/v1/site`          |\n| `languages`    | `{ id, languageCode, countryCode, language, country, isoCode }[]`      | `/api/v2/languages`     |\n| `currentUser`  | `{ userId, email, givenName?, surname?, admin, roles? } \\| null`       | `/api/v1/users/current` |\n\n```javascript\n// No round trip needed to find a content type by variable\nconst blog = contentTypes.find(c => c.variable === 'Blog')\n\n// Resolve the default site without an extra call\nconst defaultSite = sites.find(s => s.isDefault)\n```\n\n**How it works**\n\n- Context is fetched the first time a tool is invoked in an MCP session and cached in memory for **5 minutes**.\n- The cache is keyed by MCP session ID. Concurrent calls in the same session deduplicate to a single load.\n- Each endpoint loads independently — a failure in one (e.g. `contentTypes`) yields an empty array for that global, but the others still populate.\n- Auth is handled by the main thread; the loader uses the same authenticated `api` adapter as `execute`.\n\n**Known limitations**\n\n- No invalidation outside the TTL — schema or site changes made elsewhere are visible after at most 5 minutes.\n- Mutations performed via `execute` do not refresh the cache. Re-read from the API directly when you need post-mutation state.\n- Content type list is capped at 200 entries per session load.\n\n\n## Development\n\n### Local Development Setup\n\nFor developers who want to contribute or modify the MCP server:\n\n#### 1. Clone and Setup\n\n```bash\n# Clone the dotCMS repository\ngit clone https://github.com/dotCMS/core.git\ncd core/core-web\n\n# Install dependencies\npnpm install\n\n# Build the server. The build regenerates the OpenAPI spec first (via dependsOn) — by\n# default from https://demo.dotcms.com; see \"Building against a local dotCMS instance\" below.\npnpm nx build mcp-server\n```\n\n> [!NOTE]\n> Files are located in `core-web/apps/mcp-server` (tools/config) and `core-web/libs/sdk/ai` (runtime primitives + spec). We use [Nx monorepo](https://nx.dev/).\n\n#### Refreshing the OpenAPI Spec\n\nThe processed spec lives at `libs/sdk/ai/src/generated/spec.json`. It is **build-generated and git-ignored** — the `build`/`serve`/`test` targets regenerate it via `dependsOn`, so you rarely run this by hand. The source is resolved in this order: an explicit CLI arg, then `DOTCMS_SPEC_URL`, then `${DOTCMS_URL}/api/openapi.json`, then the demo instance.\n\n```bash\n# Defaults to https://demo.dotcms.com/api/openapi.json\npnpm nx run sdk-ai:generate-spec\n\n# Override with a different instance — CLI arg (URL or local file path):\npnpm nx run sdk-ai:generate-spec -- http://localhost:8080/api/openapi.json\npnpm nx run sdk-ai:generate-spec -- ./openapi.json\n```\n\nThere is nothing to commit — the spec is regenerated at build time. CI builds it from the demo instance by default.\n\n#### Building against a local dotCMS instance\n\nThe `search` tool exposes whatever endpoints are in the bundled `spec.json`, so to describe your\n**local** instance you must regenerate the spec as part of the build.\n\n> [!IMPORTANT]\n> Don't run `generate-spec` and then `build` as two separate steps. The `build` target re-runs\n> `generate-spec` itself (via `dependsOn`), and with no source set it falls back to the demo\n> instance — overwriting the spec you just generated. Pass the source so the build's own\n> `generate-spec` uses it.\n\nSet `DOTCMS_SPEC_URL` — it's an environment variable, so it flows into the `generate-spec` task\nthat `build` runs automatically (a CLI `--` arg would not). One command:\n\n```bash\n# Regenerate the spec from your local instance AND build, in one step\nDOTCMS_SPEC_URL=http://localhost:8080/api/openapi.json pnpm nx build mcp-server\n\n# Then run it against the same instance (provide a local API token)\nnpx @modelcontextprotocol/inspector \\\n  -e DOTCMS_URL=http://localhost:8080 \\\n  -e AUTH_TOKEN=your-local-api-token \\\n  node dist/apps/mcp-server/stdio.js\n```\n\n> [!NOTE]\n> The spec source (what `search` describes) and `DOTCMS_URL` (where the tools send requests at\n> runtime) are separate. Point them at the same instance so the spec matches what the API serves.\n> If `DOTCMS_URL` is already exported in your shell, `generate-spec` will reuse it\n> (`${DOTCMS_URL}/api/openapi.json`) and you can drop `DOTCMS_SPEC_URL` entirely.\n\n#### 2. Use MCP Inspector for debug\n\nAfter a successful build:\n\n```bash\nnpx @modelcontextprotocol/inspector -e DOTCMS_URL=https://demo.dotcms.com -e AUTH_TOKEN=the-api-token node dist/apps/mcp-server/stdio.js\n```\n\n#### 3. Use Local Build in AI Assistants\n\nThe built server works with both `node` and `bun` — the correct sandbox is selected automatically.\n\n**Using Node.js:**\n```json\n{\n    \"mcpServers\": {\n        \"dotcms\": {\n            \"command\": \"node\",\n            \"args\": [\"/path/to/dotcms/core/core-web/dist/apps/mcp-server/stdio.js\"],\n            \"env\": {\n                \"DOTCMS_URL\": \"your-dotcms-url\",\n                \"AUTH_TOKEN\": \"your-api-token\"\n            }\n        }\n    }\n}\n```\n\n**Using Bun:**\n```json\n{\n    \"mcpServers\": {\n        \"dotcms\": {\n            \"command\": \"bun\",\n            \"args\": [\"/path/to/dotcms/core/core-web/dist/apps/mcp-server/stdio.js\"],\n            \"env\": {\n                \"DOTCMS_URL\": \"your-dotcms-url\",\n                \"AUTH_TOKEN\": \"your-api-token\"\n            }\n        }\n    }\n}\n```\n\n### Project Structure\n\n```\napps/mcp-server/                         # MCP server (thin xmcp wrappers)\n├── src/\n│   ├── tools/\n│   │   ├── search.ts       # API spec exploration tool\n│   │   ├── execute.ts      # API execution tool\n│   │   ├── download_assets.ts\n│   │   └── upload_assets.ts\n│   ├── lib/\n│   │   └── assets-transfer.ts\n│   └── prompts/            # Prompt templates (xmcp convention)\n├── xmcp.config.ts          # xmcp bundler configuration\n├── jest.config.ts          # Test configuration\n└── project.json            # Nx project configuration\n\nlibs/sdk/ai/                      # Portable runtime primitives\n├── scripts/\n│   └── generate-spec.ts    # OpenAPI spec processor (run manually to refresh)\n├── src/\n│   ├── lib/\n│   │   ├── executor.ts     # Sandbox executor orchestration\n│   │   ├── http-client.ts  # Authenticated HTTP adapter\n│   │   ├── spec.ts         # OpenAPI spec loader\n│   │   ├── types.ts        # TypeScript type definitions\n│   │   └── sandbox/        # Sandbox isolation (dual-runtime)\n│   │       ├── index.ts        # Runtime detection factory\n│   │       ├── interface.ts    # Sandbox interface\n│   │       ├── bun-worker.ts   # Bun Web Worker sandbox\n│   │       └── node-worker.ts  # Node.js worker_threads sandbox\n│   └── generated/\n│       └── spec.json       # Build-generated, git-ignored (lives in libs/sdk/ai)\n└── project.json            # Nx project configuration\n```\n\n### Key Architecture Patterns\n\n**xmcp Framework**: The server uses [xmcp](https://xmcp.dev) for MCP protocol handling:\n-   Tools are auto-discovered from `src/tools/`\n-   Each tool exports `schema`, `metadata`, and a default handler function\n-   Built with rspack for optimized bundling\n\n**Sandbox Isolation**: Code execution is sandboxed using Workers with dual-runtime support:\n-   **Bun**: Uses native Web Workers (`Blob` + `URL.createObjectURL`)\n-   **Node.js**: Uses `worker_threads` (`new Worker(code, { eval: true })`)\n-   Runtime is detected automatically via `typeof globalThis.Bun`\n-   API tokens are never exposed to sandbox code\n-   Configurable timeout prevents runaway execution\n-   Adapter pattern bridges sandbox ↔ main thread for API calls\n\n**Build-time Spec Processing**: The OpenAPI spec is pre-processed at build time:\n-   `generate-spec` target filters to relevant endpoints, keeps request/response `$ref`s, and prunes `components.schemas` to just the referenced schemas\n-   Output is a compact JSON embedded in the bundle\n-   Reduces runtime overhead and MCP response size\n\n### Development Commands\n\n```bash\n# Build for production (regenerates the spec from demo by default; see local-build section)\npnpm nx build mcp-server\n\n# Development mode (with hot reload)\npnpm nx serve mcp-server\n\n# Lint the code\npnpm nx lint mcp-server\n\n# Run all tests\npnpm nx test mcp-server\n\n# Run tests in watch mode\npnpm nx test mcp-server --watch\n\n# Refresh the OpenAPI spec (git-ignored; regenerated by build/serve/test via dependsOn)\n# Defaults to https://demo.dotcms.com/api/openapi.json\npnpm nx run sdk-ai:generate-spec\n```\n\n### Contributing Guidelines\n\nWhen adding new MCP tools:\n\n1. Create a new `.ts` file in `src/tools/`\n2. Export `schema` (Zod), `metadata` (ToolMetadata), and a default handler\n3. xmcp auto-discovers the tool — no registration needed\n4. Add tests and documentation\n\n## Security Best Practices\n\n### API Token Security\n\n-   **Principle of Least Privilege**: Only grant permissions required for your use case\n-   **Environment Variables**: Never hardcode tokens in source code\n-   **Token Rotation**: Regularly rotate API tokens\n-   **Monitoring**: Monitor API usage for unusual patterns\n-   **HTTPS Only**: Always use HTTPS for dotCMS connections\n-   **Sandbox Isolation**: API tokens are injected by the main thread and never exposed to sandbox code\n\n## dotCMS Support\n\nWe offer multiple channels to get help with the dotCMS MCP Server:\n\n-   **GitHub Issues**: For bug reports and feature requests, please [open an issue](https://github.com/dotCMS/core/issues/new/choose) in the GitHub repository\n-   **Community Forum**: Join our [community discussions](https://community.dotcms.com/) to ask questions and share solutions\n-   **Documentation**: Visit our [developer documentation](https://dev.dotcms.com/) for detailed guides\n\nWhen reporting issues, please include:\n\n-   MCP server version and build information\n-   dotCMS version and environment details\n-   AI assistant being used (Claude, Cursor, etc.)\n-   Minimal reproduction steps\n-   Expected vs. actual behavior\n-   Relevant log output\n\n## How To Contribute\n\nGitHub pull requests are the preferred method to contribute code to dotCMS. We welcome contributions to the dotCMS MCP Server! If you'd like to contribute, please follow these steps:\n\n1. Fork the repository [dotCMS/core](https://github.com/dotCMS/core)\n2. Create a feature branch (`git checkout -b feature/amazing-mcp-feature`)\n3. Make your changes in the `apps/mcp-server` directory\n4. Add tests for new functionality\n5. Run the test suite (`pnpm nx test mcp-server`)\n6. Commit your changes (`git commit -m 'Add amazing MCP feature'`)\n7. Push to the branch (`git push origin feature/amazing-mcp-feature`)\n8. Open a Pull Request\n\n## Licensing Information\n\ndotCMS is available under either the [Business Source License 1.1 (BSL)](https://www.dotcms.com/bsl) or a commercial license.\n\nUnder the BSL, dotCMS can be used at no cost by individual developers, small businesses or agencies under $5M in total finances, and by larger organizations in non-production environments. Every BSL release automatically converts to GPL v3 four years after its release date. For full terms and FAQs, visit [dotcms.com/bsl](https://www.dotcms.com/bsl) and [dotcms.com/bsl-faq](https://www.dotcms.com/bsl-faq).\n\nProduction use in larger organizations, along with access to managed cloud, SLAs, support, and enterprise capabilities, is available under a commercial license from dotCMS. For details on commercial plans, features, and support options, see [dotcms.com/pricing](https://www.dotcms.com/pricing).\n","readmeFilename":"README.md"}