{"_id":"@bulkpublish/mcp-server","_rev":"11-1a89cec78de8479b213d9b712417576f","name":"@bulkpublish/mcp-server","dist-tags":{"latest":"1.33.2"},"versions":{"1.0.0":{"name":"@bulkpublish/mcp-server","version":"1.0.0","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.0.0","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"20802c346cd74d8d57257e346be9e04cf373429c","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.0.0.tgz","fileCount":6,"integrity":"sha512-RXnStGmjuRNmogId4iFdqlX711jSB352wXvXOXSH2sOL4twG79GYN12nCSElNY+Et9NCFA07ewO28yQ6NNTwsQ==","signatures":[{"sig":"MEQCIAomcNsumYz1N1txhEApbAim1Dyb4Ef5ShjiR+ehDbEBAiBF8cNPG6j659ssO3lYy8LMPUw/1okn7ZqadYfXw8yMbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61902},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"19786079bf231cc2bc16c5a84fa67fab7e94c899","scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.0.0_1775921674660_0.5419607885887332","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bulkpublish/mcp-server","version":"1.1.0","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.1.0","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"3f3aa02c4c1f146245a1ac5f60256e16eb393f4f","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.1.0.tgz","fileCount":6,"integrity":"sha512-JdZy4aASH/J1rqt4RQCw0R/ZsqWH4JZRPkB84ZFH6t0ImYkrqI8T/yG5vPdKYYbMx3Gi/C+fLYKRWBk2oVGz4Q==","signatures":[{"sig":"MEYCIQDi12qFq971dZ4t5SZ5yu5MhjPftWEYDlXV/8vZi2BbGQIhAP8i40JTLyjsajuI/A/T5pmX7vvXKJsKzkAkFeux47Bx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72485},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"f6da10568441d23ee512ef0c0eab10bbbfd83a68","scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.1.0_1775933138492_0.5303138143132398","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bulkpublish/mcp-server","version":"1.1.1","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.1.1","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"980cc7713730debe31fbc6bbb98125163fd1de75","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.1.1.tgz","fileCount":6,"integrity":"sha512-1RObcGKQT3UdNnN5qHXGRqPuLysFsY7g2JGt16cZJj88hI2QCCzraF5bLhwjFHHnCC73wtgY1F7VRxK2uXd9TQ==","signatures":[{"sig":"MEUCICHq8RS/rD0pWyTMpH0bHnP3lze/0nOJ5xrM79Jh7ihKAiEApO15KjBcXaIGiq09Ue/XYmWTDMBf+Kr3Og+UyShdXcU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73549},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"d410cdf044c50a580400e5a801433049cf10b4c2","scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.1.1_1775935914739_0.4293504091257019","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@bulkpublish/mcp-server","version":"1.1.2","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.1.2","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"homepage":"https://github.com/azeemkafridi/bulkpublish-api#readme","bugs":{"url":"https://github.com/azeemkafridi/bulkpublish-api/issues"},"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"e173ef51ae40d9fd26d1cb6b15fac95a884738cb","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.1.2.tgz","fileCount":6,"integrity":"sha512-LQSTcAqGf7ysYywLRGUzz15pMsMleKCfJ4uSuLm+FbbLrLDPyNBt12RNiZJqKt8SWXQJpOA3HiKkXonR/dfv7Q==","signatures":[{"sig":"MEUCIQDkrLovmUiYgvHN0t1RB7uQJk23LqScJsDy/a+K0jNdgAIgB86Y9UoAXJ7r7s6qu+Z5uTNeN8nY69EyjaHsav7ZK3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73738},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"d410cdf044c50a580400e5a801433049cf10b4c2","mcpName":"io.github.azeemkafridi/bulkpublish","scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"repository":{"url":"git+https://github.com/azeemkafridi/bulkpublish-api.git","type":"git","directory":"mcp-server"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.1.2_1775940934996_0.39616242683015845","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bulkpublish/mcp-server","version":"1.2.0","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.2.0","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"homepage":"https://github.com/azeemkafridi/bulkpublish-api#readme","bugs":{"url":"https://github.com/azeemkafridi/bulkpublish-api/issues"},"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"7cff018db81ec9566451ecaab5f16d4cc6b47fb3","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.2.0.tgz","fileCount":14,"integrity":"sha512-/H6WNAG6+6561gUq4dIsGEfAwQZH/25X5oTuW0IFsvAqU1gcaJggPSijL0spfCKQ3gAu/gZuCStSQLpfbpqOeg==","signatures":[{"sig":"MEUCIQCZhMkc5K3nk6k3bpq6gYCtRF9qRDiQ2dh6ipZtl9HcJQIgCqV6BBWDGlEip3FDN9ISb0d43kOkJ0k+ViKBlLT1DVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2911875},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.19"},"gitHead":"f8d8a4a628d06ec8b6575cd5dfe188346fe842a2","mcpName":"io.github.azeemkafridi/bulkpublish","scripts":{"dev":"tsx src/index.ts","build":"npm run build:ui && tsc","start":"node dist/index.js","build:ui":"node scripts/build-ui.mjs && node scripts/embed-ui.mjs"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"repository":{"url":"git+https://github.com/azeemkafridi/bulkpublish-api.git","type":"git","directory":"mcp-server"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","vite-plugin-singlefile":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.2.0_1779714453729_0.2017239613445474","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bulkpublish/mcp-server","version":"1.3.0","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.3.0","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"homepage":"https://github.com/azeemkafridi/bulkpublish-api#readme","bugs":{"url":"https://github.com/azeemkafridi/bulkpublish-api/issues"},"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"a6638e66f7ad7d9ecfc404c6c7506a09e1a27994","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.3.0.tgz","fileCount":14,"integrity":"sha512-P3KXGdjb4zXaJOrYrl6Mxwt7TK0bHwTv0HpZ1E2wY8KaGFLUQC2HSJ/zr6nw8/mXiA9Ifn+DDGy2br4v6o/qIw==","signatures":[{"sig":"MEUCIDcVAKvVq+FCh+p/6tLHYgHby6BJrTOzfq9gT+jcXh/4AiEA1AxelLzppsZi3ehhzJFrNlP3rMceBecVdVeRuGiIQGs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2926090},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.19"},"gitHead":"ae941b0ae15f0c90f84be2a13166a56104cd54e7","mcpName":"io.github.azeemkafridi/bulkpublish","scripts":{"dev":"tsx src/index.ts","build":"npm run build:ui && tsc","start":"node dist/index.js","build:ui":"node scripts/build-ui.mjs && node scripts/embed-ui.mjs"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"repository":{"url":"git+https://github.com/azeemkafridi/bulkpublish-api.git","type":"git","directory":"mcp-server"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","vite-plugin-singlefile":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.3.0_1779717952699_0.47272434454329293","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@bulkpublish/mcp-server","version":"1.3.1","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.3.1","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"homepage":"https://github.com/azeemkafridi/bulkpublish-api#readme","bugs":{"url":"https://github.com/azeemkafridi/bulkpublish-api/issues"},"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"bc5d9bf5eff4a85887e503f937f5dc0f0b22f2a7","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.3.1.tgz","fileCount":15,"integrity":"sha512-JYF5iF0DVdGaIyi98Ikge5sLQUXDJMrgCsQtMeH9bVFqZ//7u0BL1n02gIZ/KKwVbf2tnuZyhkXvEn2tPrujmQ==","signatures":[{"sig":"MEUCIAb7m8Xq9FPMWbO1ELBxr71W+6ujy80F6PxP4EERGN0BAiEA5P7qVMqeQfkxwxtor5gZPaILUVt2BzTQ+XVPuBteu34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2927063},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.19"},"gitHead":"4305ec3e9b46a4bcc75d1f4dcaaf520efd830d66","mcpName":"io.github.azeemkafridi/bulkpublish","scripts":{"dev":"tsx src/index.ts","build":"npm run build:ui && tsc","start":"node dist/index.js","build:ui":"node scripts/build-ui.mjs && node scripts/embed-ui.mjs"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"repository":{"url":"git+https://github.com/azeemkafridi/bulkpublish-api.git","type":"git","directory":"mcp-server"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","vite-plugin-singlefile":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.3.1_1779721139506_0.4715783074326654","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@bulkpublish/mcp-server","version":"1.15.0","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.15.0","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"homepage":"https://github.com/azeemkafridi/bulkpublish-api#readme","bugs":{"url":"https://github.com/azeemkafridi/bulkpublish-api/issues"},"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"f0f1c4069760b934e9d12d8d6c84960edd3d4f15","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.15.0.tgz","fileCount":23,"integrity":"sha512-A5Grf7xrGhlqhdiInXaYmgWbQWv6wgHE+5EVtkbuL6rKIeQ8p7cegblEXA1Qy7z0pgapQvzb6yW8moB/fvs+8g==","signatures":[{"sig":"MEUCIQC+nVJMM9hjzP6aKpmDXppDyI/udaVZSjX4Iw/etef8/wIgL5lgG5ZUI2SvdKR1Nme2pzkr9L43bqEtJdoKNaC2w1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3112970},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.19"},"gitHead":"22e2518541a6c16a59b9252342ce8eb9bd12e774","mcpName":"io.github.azeemkafridi/bulkpublish","scripts":{"dev":"tsx src/index.ts","build":"npm run build:ui && tsc","start":"node dist/index.js","preview":"npm run build:ui && tsc && node .harness/build.mjs && node .harness/serve.mjs","build:ui":"node scripts/build-ui.mjs && node scripts/embed-ui.mjs","dev:http":"tsx src/http.ts","start:http":"node dist/http.js"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"repository":{"url":"git+https://github.com/azeemkafridi/bulkpublish-api.git","type":"git","directory":"mcp-server"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"express":"^5.2.1","compression":"^1.8.1","@types/compression":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/express":"^5.0.6","vite-plugin-singlefile":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.15.0_1787218918708_0.9227014707263863","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@bulkpublish/mcp-server","version":"1.18.0","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.18.0","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"homepage":"https://github.com/azeemkafridi/bulkpublish-api#readme","bugs":{"url":"https://github.com/azeemkafridi/bulkpublish-api/issues"},"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"bad6ab12b2623eb439d01733d73876abd3af467f","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.18.0.tgz","fileCount":23,"integrity":"sha512-phfPF2L3yV10r4UUCZN2ORUhrZrMaG5DDcVI4JRfWhB1cvcUchGn7VcnQ5oedorN8/sjf3CyQGTvBHHyvZDXOw==","signatures":[{"sig":"MEUCIQCCPWF/vwj9v+7HI0CRVrFP0sth7Or7T0a1J9qk7OU3PQIgQ2XXmD+lOlRMC8QTs79nWQpJ1rOqncMpKt5g/pFrWcw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3119609},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.19"},"gitHead":"fe89b5da3d6283e644bc21bd4d0706d7fb0664c3","mcpName":"io.github.azeemkafridi/bulkpublish","scripts":{"dev":"tsx src/index.ts","build":"npm run build:ui && tsc","start":"node dist/index.js","preview":"npm run build:ui && tsc && node .harness/build.mjs && node .harness/serve.mjs","build:ui":"node scripts/build-ui.mjs && node scripts/embed-ui.mjs","dev:http":"tsx src/http.ts","start:http":"node dist/http.js"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"repository":{"url":"git+https://github.com/azeemkafridi/bulkpublish-api.git","type":"git","directory":"mcp-server"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"express":"^5.2.1","compression":"^1.8.1","@types/compression":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/express":"^5.0.6","vite-plugin-singlefile":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.18.0_1788163027414_0.7409645239307785","host":"s3://npm-registry-packages-npm-production"}},"1.33.1":{"name":"@bulkpublish/mcp-server","version":"1.33.1","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","_id":"@bulkpublish/mcp-server@1.33.1","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"homepage":"https://www.bulkpublish.com","bugs":{"url":"https://github.com/azeemkafridi/bulkpublish-api/issues"},"bin":{"bulkpublish-mcp":"dist/index.js"},"dist":{"shasum":"a8f1e22a7e17b0e4210f803958dc7066ea5be285","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.33.1.tgz","fileCount":19,"integrity":"sha512-BIAL0VnvFfNeGcymDhbxC4P+vA98/3PnrAv43cca8jTaEtD08xtg+GTrtW0z9cDcx7IDTsk2kzxjgOEGpR/SqQ==","signatures":[{"sig":"MEQCIGhVEnudshmJGR7Fc8EHwSEJQsGaFugx0pFuFs/CKqwMAiBCKe1trzc9iRPBqyCqmD538YQtLUqs4U30ZguD191N5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2408108},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.19"},"mcpName":"io.github.azeemkafridi/bulkpublish","scripts":{"dev":"tsx src/index.ts","build":"npm run build:ui && tsc","start":"node dist/index.js","preview":"npm run build:ui && tsc && node .harness/build.mjs && node .harness/serve.mjs","build:ui":"node scripts/build-ui.mjs && node scripts/embed-ui.mjs","dev:http":"tsx src/http.ts","start:http":"node dist/http.js","check:skills":"node scripts/check-core-skills.mjs","prepublishOnly":"npm run build && npm run check:annotations && npm run check:skills","check:annotations":"node scripts/check-annotations.mjs"},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"repository":{"url":"git+https://github.com/azeemkafridi/bulkpublish-api.git","type":"git","directory":"mcp-server"},"_npmVersion":"11.7.0","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"express":"^5.2.1","compression":"^1.8.1","@types/compression":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.7.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vite":"^6.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/express":"^5.0.6","vite-plugin-singlefile":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_1.33.1_1789141027549_0.19458530325261125","host":"s3://npm-registry-packages-npm-production"}},"1.33.2":{"name":"@bulkpublish/mcp-server","version":"1.33.2","description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","homepage":"https://www.bulkpublish.com","mcpName":"io.github.azeemkafridi/bulkpublish","repository":{"type":"git","url":"git+https://github.com/azeemkafridi/bulkpublish-api.git","directory":"mcp-server"},"type":"module","main":"dist/index.js","bin":{"bulkpublish-mcp":"dist/index.js"},"scripts":{"build":"npm run build:ui && tsc","build:ui":"node scripts/build-ui.mjs && node scripts/embed-ui.mjs","start":"node dist/index.js","start:http":"node dist/http.js","dev":"tsx src/index.ts","dev:http":"tsx src/http.ts","preview":"npm run build:ui && tsc && node .harness/build.mjs && node .harness/serve.mjs","check:annotations":"node scripts/check-annotations.mjs","prepublishOnly":"npm run build && npm run check:annotations && npm run check:skills","check:skills":"node scripts/check-core-skills.mjs"},"keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"license":"MIT","dependencies":{"@modelcontextprotocol/ext-apps":"^1.7.5","@modelcontextprotocol/sdk":"^1.29.0","@types/compression":"^1.8.1","compression":"^1.8.1","express":"^5.2.1"},"devDependencies":{"@types/express":"^5.0.6","@types/node":"^22.0.0","tsx":"^4.19.0","typescript":"^5.7.0","vite":"^6.0.0","vite-plugin-singlefile":"^2.0.0"},"engines":{"node":">=20.19"},"types":"./dist/index.d.ts","_id":"@bulkpublish/mcp-server@1.33.2","bugs":{"url":"https://github.com/azeemkafridi/bulkpublish-api/issues"},"_nodeVersion":"22.20.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-jyOEsB8HYhvVM4ebuc+riEUvdVCmjVec/u6wCpkXhINGmuv9ibP6zS0h/Uxc6GnbBwEKfm7Zt6FVaRQqfxsOdA==","shasum":"6d4de593497813394a605a16b1e6b9ae4d823054","tarball":"https://registry.npmjs.org/@bulkpublish/mcp-server/-/mcp-server-1.33.2.tgz","fileCount":19,"unpackedSize":2408530,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDv1Tu8ycbF9WUPjy01UrzKHatospAUHTg1J3svbOJYCQIhAM8F83W9MywocD6GyhubIA4wVEl2HolFBbTf9epmPci4"}]},"_npmUser":{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"},"directories":{},"maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_1.33.2_1789141988880_0.3710202147376689"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-11T15:34:34.581Z","modified":"2026-09-11T15:53:09.213Z","1.0.0":"2026-04-11T15:34:34.810Z","1.1.0":"2026-04-11T18:45:38.626Z","1.1.1":"2026-04-11T19:31:54.890Z","1.1.2":"2026-04-11T20:55:35.128Z","1.2.0":"2026-05-25T13:07:33.944Z","1.3.0":"2026-05-25T14:05:52.920Z","1.3.1":"2026-05-25T14:58:59.659Z","1.15.0":"2026-08-20T09:41:58.902Z","1.18.0":"2026-08-31T07:57:07.605Z","1.33.1":"2026-09-11T15:37:07.714Z","1.33.2":"2026-09-11T15:53:09.027Z"},"bugs":{"url":"https://github.com/azeemkafridi/bulkpublish-api/issues"},"license":"MIT","homepage":"https://www.bulkpublish.com","keywords":["mcp","bulkpublish","social-media","ai","claude","model-context-protocol"],"repository":{"type":"git","url":"git+https://github.com/azeemkafridi/bulkpublish-api.git","directory":"mcp-server"},"description":"Model Context Protocol server for BulkPublish — lets AI assistants manage social media posts, channels, media, and analytics.","maintainers":[{"name":"azeemkafridi","email":"npmjs@bulkpublish.com"}],"readme":"# BulkPublish MCP Server\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server that lets Claude and other AI assistants interact with the BulkPublish social media publishing API.\n\n## What it does\n\nThis MCP server exposes BulkPublish API operations as tools that AI assistants can call directly. You can ask Claude to schedule posts, check analytics, upload media, manage labels, and more — all through natural conversation.\n\n## Installation\n\n### Option 1: npx (recommended)\n\n```bash\nnpx @bulkpublish/mcp-server\n```\n\n### Option 2: Global install\n\n```bash\nnpm install -g @bulkpublish/mcp-server\nbulkpublish-mcp\n```\n\n### Option 3: From source\n\n```bash\ngit clone https://github.com/azeemkafridi/bulkpublish-api.git\ncd bulkpublish-api/mcp-server\nnpm install\nnpm run build\nnode dist/index.js\n```\n\n> Requires Node ≥ 20.19. `npm run build` bundles the composer UI with Vite (`build:ui`), then compiles the server with `tsc`.\n\n## Configuration\n\nSet your API key as an environment variable:\n\n```bash\nexport BULKPUBLISH_API_KEY=bp_your_api_key_here\n```\n\nGet your API key at [app.bulkpublish.com/developer](https://app.bulkpublish.com/developer).\n\n### Claude Desktop\n\nAdd this to your Claude Desktop configuration file:\n\n**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"bulkpublish\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@bulkpublish/mcp-server\"],\n      \"env\": {\n        \"BULKPUBLISH_API_KEY\": \"bp_your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\nIf you installed from source:\n\n```json\n{\n  \"mcpServers\": {\n    \"bulkpublish\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/bulkpublish-api/mcp-server/dist/index.js\"],\n      \"env\": {\n        \"BULKPUBLISH_API_KEY\": \"bp_your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\nAdd the MCP server to your Claude Code configuration:\n\n```bash\nclaude mcp add bulkpublish -- npx -y @bulkpublish/mcp-server\n```\n\nSet the environment variable in your shell profile or `.env` file:\n\n```bash\nexport BULKPUBLISH_API_KEY=bp_your_api_key_here\n```\n\n## Remote / hosted server (HTTP)\n\nThe npx/stdio setup above runs the server locally. Web clients that cannot spawn a local process — **claude.ai custom connectors** and **Smithery's gateway** — connect to a hosted HTTP endpoint instead. Alongside the stdio bin, the server ships a Streamable HTTP transport (`dist/http.js`, run with `npm run start:http`):\n\n| Endpoint | Purpose |\n|----------|---------|\n| `POST /mcp` | MCP Streamable HTTP (stateless) |\n| `GET /.well-known/mcp/server-card.json` | Static metadata so registries can skip scanning |\n| `GET /health` | Liveness check |\n\nIt is **multi-tenant** — the process holds no API key. Each caller supplies their own `bp_…` key per request via the connection URL (`?key=bp_…`), a Smithery `?config=` blob, or an `Authorization: Bearer bp_…` / `X-BulkPublish-Key` header. `initialize`, `tools/list`, and `resources/*` need no key (so scans and tool discovery work); a `tools/call` without one returns `401`.\n\nA `Dockerfile` is included:\n\n```bash\ndocker build -t bulkpublish-mcp . && docker run -p 8080:8080 bulkpublish-mcp\n```\n\nOnce deployed, add it to **claude.ai → Settings → Connectors → Add custom connector** as `https://<host>/mcp?key=bp_…`, or publish the `https://<host>/mcp` URL to Smithery.\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| **Posts** | |\n| `create_post` | Create and optionally schedule a post (supports reels, stories, carousels, threads via `postTypeOverrides`) |\n| `compose_post` | Open an interactive composer UI (MCP Apps) to draft/schedule a post; submits via `create_post` |\n| `update_post` | Update a draft or scheduled post |\n| `get_post` | Get a single post with full details |\n| `list_posts` | List posts with filters (status, search, date range) |\n| `delete_post` | Delete a post |\n| `publish_post` | Publish a draft post immediately |\n| `retry_post` | Retry a failed post |\n| `approve_post` | Approve a post awaiting team approval (roles with post:approve) |\n| `reject_post` | Reject a pending post back to draft, with an optional reason |\n| `get_post_metrics` | Get engagement metrics (impressions, likes, comments, shares). Each platform entry carries `supportedMetrics` — a key not in that list is a stored `0`, not a measurement |\n| `publish_story` | Publish as a story to Facebook or Instagram |\n| `bulk_posts` | Bulk delete or retry multiple posts |\n| `get_queue_slot` | Get the next optimal time slot for a channel |\n| **Channels** | |\n| `list_channels` | List all connected social media channels |\n| `get_channel_health` | Check channel token health |\n| `get_channel_options` | Get platform-specific options (boards, playlists) |\n| `search_mentions` | Search users for @mention (X, Bluesky) |\n| **Channel Sets** | |\n| `list_channel_sets` | List saved channel groups for one-click multi-channel targeting |\n| `create_channel_set` | Save a named group of channels (max 50 per org, names unique per org) |\n| `update_channel_set` | Rename a set or change its channels |\n| `delete_channel_set` | Delete a channel set |\n| **RSS Autopost** | |\n| `list_rss_feeds` | List RSS/Atom feeds polled every 15 minutes (new items become posts) |\n| `create_rss_feed` | Add a feed (max 20 per org); `mode` = `draft` (default, items become drafts) or `publish` (auto-published); optional `fieldMapping` controls how items render (caption template, media pick, truncation, per-channel overrides) |\n| `update_rss_feed` | Change, pause, or re-point a feed (changing `feedUrl` re-baselines it — the backlog is not flooded) |\n| `delete_rss_feed` | Stop and remove a feed |\n| **Media** | |\n| `upload_media` | Upload a media file from a URL (or local path on the stdio server) |\n| `get_media` | Get a media file by ID |\n| `list_media` | List uploaded media files |\n| `delete_media` | Delete a media file |\n| `create_media_upload` | Reserve a presigned R2 URL for a direct browser upload (used by the composer) |\n| `finalize_media_upload` | Record an uploaded object as a media file after the browser PUT (used by the composer) |\n| `create_multipart_upload` | Start a chunked upload for large media (videos up to 1GB) — presigned URLs for fixed 10MB parts |\n| `complete_multipart_upload` | Assemble the uploaded parts (partNumber + ETag each) and record the media file |\n| `abort_multipart_upload` | Cancel an in-progress chunked upload and free its stored parts |\n| **Labels** | |\n| `create_label` | Create a new label |\n| `list_labels` | List all labels |\n| `update_label` | Update a label name or color |\n| `delete_label` | Delete a label |\n| **Analytics** | |\n| `get_analytics` | Get analytics summary for a date range |\n| **Schedules** | |\n| `list_schedules` | List recurring schedules |\n| `create_schedule` | Create a recurring schedule |\n| `update_schedule` | Update a schedule |\n| `delete_schedule` | Delete a schedule |\n| **Account** | |\n| `get_quota_usage` | Check current account usage (hidden when `BULKPUBLISH_HIDE_BILLING=1`) |\n| **Interactive UI (MCP Apps)** | |\n| `compose_post` | Open the interactive post composer (also listed above) |\n| `view_analytics` | Open an interactive analytics dashboard |\n| `view_posts` | Open an interactive posts list |\n| `view_channels` | Open an interactive channels view |\n| `view_media` | Open an interactive media gallery |\n| `view_quota` | Open an interactive account-usage view (hidden when `BULKPUBLISH_HIDE_BILLING=1`) |\n\n## Interactive UI (MCP Apps)\n\nIn hosts that support [MCP Apps](https://blog.modelcontextprotocol.io/posts/2025-11-21-mcp-apps/) — Claude, ChatGPT, VS Code, Goose, Postman, and the Smithery playground — the **`compose_post`** tool opens an interactive composer rendered inline in the conversation: pick channels, write content, optionally schedule, then submit. On submit it calls `create_post` through the host bridge, so the sandboxed iframe never holds your API key. Hosts without MCP Apps support simply receive a plain-text summary, so nothing breaks.\n\nSeveral tools render UIs — `compose_post` (composer), `view_analytics`, `view_posts`, `view_channels`, `view_media`, and `view_quota`. Each is a self-contained widget under `src/ui/<name>/`, bundled into a single HTML file with Vite (one single-input pass per widget — see `scripts/build-ui.mjs`) and inlined into the server via `src/ui/widgets.generated.ts`. They share the BulkPublish web app's design tokens (`src/ui/tokens.css`), so the look matches. A View receives its data from the triggering tool's `structuredContent` and can call other tools back through the host bridge — so the sandboxed iframe never holds your API key. Hosts without MCP Apps support simply receive a plain-text summary.\n\n## Example Conversation\n\nHere is an example of using the BulkPublish tools in Claude:\n\n**You:** Schedule a post for tomorrow at 9am EST saying \"Excited to announce our new feature! Check it out at example.com\" to all my connected channels.\n\n**Claude:** Let me check your connected channels first.\n\n*[Calls list_channels]*\n\nYou have 3 active channels:\n- X/Twitter: @yourcompany (ID: 1)\n- LinkedIn: Your Company Page (ID: 2)\n- Instagram: @yourcompany (ID: 3)\n\nNow I'll schedule the post for tomorrow at 9:00 AM Eastern.\n\n*[Calls create_post with content, channels, scheduledAt: \"2025-01-16T14:00:00Z\", timezone: \"America/New_York\", status: \"scheduled\"]*\n\nDone! Your post has been scheduled:\n- **Post ID**: 42\n- **Status**: scheduled\n- **Scheduled for**: January 16, 2025 at 9:00 AM EST\n- **Channels**: X/Twitter, LinkedIn, Instagram\n\n---\n\n**You:** How did my posts perform this month?\n\n**Claude:** *[Calls get_analytics with from: \"2025-01-01\", to: \"2025-01-31\"]*\n\nHere is your January analytics summary:\n\n- **Total posts**: 28\n- **Published**: 25\n- **Failed**: 1\n- **Scheduled (pending)**: 2\n- **By platform**: X/Twitter (25 posts, 24 published), LinkedIn (20 posts, 19 published), Instagram (15 posts, all published)\n- **Best day**: January 12 with 5 posts\n\n---\n\n**You:** Upload this image and create a draft post with it: https://example.com/product-launch.png\n\n**Claude:** *[Calls upload_media with url]*\n\nImage uploaded successfully (ID: 15, 1200x630px, 245KB).\n\n*[Calls create_post with content and mediaFileIds]*\n\nDraft post created (ID: 43) with the product launch image attached. You can review and publish it when ready.\n\n## Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `BULKPUBLISH_API_KEY` | Yes | — | Your API key (starts with `bp_`) |\n| `BULKPUBLISH_BASE_URL` | No | `https://app.bulkpublish.com` | API base URL (for self-hosted instances) |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}