{"_id":"discord-selfbot-mcp","_rev":"30-adf47ca59cc04fc6001792833276e1fe","name":"discord-selfbot-mcp","dist-tags":{"latest":"1.8.1"},"versions":{"1.0.0":{"name":"discord-selfbot-mcp","version":"1.0.0","keywords":["discord","selfbot","mcp","model-context-protocol","ai","automation"],"author":"","license":"MIT","_id":"discord-selfbot-mcp@1.0.0","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"bin":{"discord-selfbot-mcp":"dist/index.js","discord-selfbot-mcp-setup":"dist/setup.js"},"dist":{"shasum":"719216fec1bbeee8c4d44b633034cf8e9e0ad4da","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.0.tgz","fileCount":142,"integrity":"sha512-gh2RLaOsDuQhhS4hp+oUoSn3JnoV8+IYOGxi1o0DrbY57vexkuJvwlM+nyFdhRPSYlVx5dGBP8dDU6ukfBZSPg==","signatures":[{"sig":"MEUCIQC6W3jZqGF8+Z2tGWUQU0+FNMRpKrYFhujPmqj17s82HQIgOYUYnGIlILP+Bg2xjdv6a0/LjpCu2F1yResSX26c/m0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267356},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"07ab08afd37d1f8908ea4263dbb4bef77b82118d","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","build":"tsc","setup":"tsx src/setup.ts","start":"node dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"_npmVersion":"11.6.1","description":"Comprehensive Discord Selfbot MCP Server with 50+ tools for full Discord user functionality","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.24.1","playwright":"^1.57.0","zod-to-json-schema":"^3.25.1","discord.js-selfbot-v13":"^3.4.1","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.2","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.0_1767495421780_0.11752458928639631","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"discord-selfbot-mcp","version":"1.0.1","keywords":["discord","selfbot","mcp","model-context-protocol","ai","automation"],"author":"","license":"MIT","_id":"discord-selfbot-mcp@1.0.1","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"bin":{"discord-selfbot-mcp":"dist/index.js","discord-selfbot-mcp-setup":"dist/setup.js"},"dist":{"shasum":"24a23c17bcfc7ad859a3a1ae8108b10a64745d31","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.1.tgz","fileCount":154,"integrity":"sha512-uYqSyhtXEkJIFbEwpg+4tLLC06Jlhq67vwfOprI4/RXF3rY/LDGxNM6zrk4D5MsIAEFF7Whqr3V878bNRNS5tw==","signatures":[{"sig":"MEUCIAUOpgGkeXkxu69gfbEwlQOt+g9e4CjeFE+K863F1VEKAiEA7t+3TeuZloCoEM7sxO/4DKeSjG6J57n4fqzRvMICwzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291021},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"630551505d00c1ef7c464be3068c771ef87eb729","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/","build":"tsc","setup":"tsx src/setup.ts","start":"node dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"_npmVersion":"11.6.1","description":"Comprehensive Discord Selfbot MCP Server with 50+ tools for full Discord user functionality","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.24.1","playwright":"^1.57.0","zod-to-json-schema":"^3.25.1","discord.js-selfbot-v13":"^3.4.1","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.2","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.1_1767498157291_0.4621216280221767","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"discord-selfbot-mcp","version":"1.0.2","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.2","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"eed016647e1c107cd0b71712b5907553298984e3","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.2.tgz","fileCount":5,"integrity":"sha512-wF1/f1dayo7ICLK8aaxIsDcfF81+xeRwC8iY/nE8ZUsjp8eqNKmAvmnoUjH7cV9y8TJWmJovpIIxcLxYFp81hw==","signatures":[{"sig":"MEYCIQDo7elYdWtoau0YyDe+Hqrp+SjWDiIO9xnEuz/WJl38AwIhAIUGrLl1y7i2GxDCtyr24hxT8UGcthhqGEab9ZUHRIb/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15832},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"930842cd2717bec3ea1eb911148827b5e4a90736","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.2_1769719126287_0.4890719340769276","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"discord-selfbot-mcp","version":"1.0.3","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.3","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"670cd350c304c8f7887c1979d91068f8410e5e97","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.3.tgz","fileCount":5,"integrity":"sha512-vD4jtMt9eZp031ysEfr6h9b0sYLauWuqzY07fNhLlig89ecx+yTIjgTbrjgYiMTx7gjVU2RtRusuAg9UUozSYQ==","signatures":[{"sig":"MEQCIC4oruU80ZXwCDpfKIbe+qZxLI+5ktrQUz5/hhsG57tsAiB3QFwp0eq3v+5gTv2Tecnl3rc9KlaFy1UgpblnfcEGGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8958},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"f618f2d0454187506ac244940cac7faad41cf65a","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.3_1770137965625_0.725665052004103","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"discord-selfbot-mcp","version":"1.0.4","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.4","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"218eab5251ca8ff46bcabafc315ab1e9fa6d1fb9","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.4.tgz","fileCount":6,"integrity":"sha512-6XOD4ty2jef4/9U3Cyccjh1IdKPYX9bXN1sXeduU8H2zujvcA3kcnxfwy9UjsxpdBdEKoUHTU9sy7yIEWXFgMg==","signatures":[{"sig":"MEQCIHmu78gme3osUcs5li9XQBFEPCY1nX4U2EgAN6izpBt5AiBMeYaN3ZGAjwusM9J4r7HWIXVNY4j/vgFjIVg11eN4rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23720},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"94715f20ad56e4c0e29f3f04c0a93472154c3a61","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.4_1770174380347_0.36451924693040527","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"discord-selfbot-mcp","version":"1.0.5","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.5","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"924948098474d1abeb7bbfdd165703f288417168","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.5.tgz","fileCount":6,"integrity":"sha512-oyJ4SMI8pAahJC6ULYmK64UK7Kr3EWDXSrlP2WFIhy0J2HSlIdO2MshDQuubkqdPOPmrLxkLtPgVH7D4F9tZ1w==","signatures":[{"sig":"MEYCIQDXLXZsyEOPBqZFweK71i93oesaH09Yr2I4LEV4ZiHsSAIhAPbCPTUcgKvtxbjiU8EOhi3EMCKVD1u29iMEVCggBQ/w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25974},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"4f904b7b4ace49ff7ced32fd084d2a14156b00d5","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.5_1770178890764_0.9382189460624633","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"discord-selfbot-mcp","version":"1.0.6","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.6","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"85d57bf6509aee28ba655e9f5c05528a6ef3ce0c","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.6.tgz","fileCount":6,"integrity":"sha512-Kqw2n0F3JOJHWStPOB78DyGkxYdyHHX7Wr/iPL8LMxjwyGXazqltZGH0YxL2TltOZyKh8xh3RSTzYREwxtQrow==","signatures":[{"sig":"MEUCICsx0u1QgNMmX1zUPPjavk12CbvA14FCFDuKjCuv8oQBAiEAh+iefxx14EqQtYYFwKIJt82RUDYtuxvaZu95cpRaWgY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25974},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"a98cca3372e970505934d519500404f23de5a9ef","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.6_1770179239882_0.7107475050036256","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"discord-selfbot-mcp","version":"1.0.7","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.7","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"ab5ea8e79559becbfaa02c09a5fcf32dcc42f44d","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.7.tgz","fileCount":6,"integrity":"sha512-dT6fayxaY1KS52G50FlRvRNMBDmHlMmWSzop7g+1IzEKFXcDexvh1NfppXgofW2xWgzQKBzgfhX5yhirUSlHyg==","signatures":[{"sig":"MEUCIBjS51sjHDL2hgIQ+v3Yr9i0XxEf/RAILJVVKAfvAdehAiEAniDvni2AX/4fUd6aJ4g3a7x/7wSF9cDU+zKs5mkC9Ho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26414},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"9971c1e212fd0acc0afe20bbbd91e70a136ab1fd","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.7_1770182492545_0.6511090675766376","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"discord-selfbot-mcp","version":"1.0.8","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.8","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"87692afffb701826727dbd18c68851f6dbe0ab5b","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.8.tgz","fileCount":6,"integrity":"sha512-lokfbNFDJireATS6YnvckfpQKQzkGxCQKQd9itzHHo09dShA5KzmOT/naOORN78hEMdTGe2CbqU67FMH7tMlZw==","signatures":[{"sig":"MEUCIEwGF3wpKL+hb824lZOp7eDrnClOyelnlqvCvZfz41CYAiEAgd9Ls0tnaA14TO42OoU0eCD9JXMZxdnkg+zT1a4U1kk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26245},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"27cd2e39b8a4e717a698f9663235c88b5b40c7fc","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.8_1770182695445_0.3569864017253894","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"discord-selfbot-mcp","version":"1.0.10","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.10","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"3700fa9e7a326e7962a3d00669fcc67ea2860c00","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.10.tgz","fileCount":6,"integrity":"sha512-yav/KYWHKscrUOEHD8uZUSUzlYrEEDXQtuJM8GktqH9aZKZx2cp0e1zG1YmpyQaODqOSzbzVSjKxvWkLzUbF3Q==","signatures":[{"sig":"MEYCIQDoGfS4zYib6xloB02YKYWf+e3uTyX3eiW5l4ZiYv0NKAIhAPNFvkqChOI9Ah31g91stHzeV2r4hTPbY/30kcXa8H6D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26246},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"d78130690c4618cf93139e136705fa28ca4a87b0","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.10_1770223021780_0.9758856368299946","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"discord-selfbot-mcp","version":"1.0.11","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.11","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"ff3235b92475b5613c6c534b8a4bffbaa0b2938e","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.11.tgz","fileCount":6,"integrity":"sha512-E2hD4GqoZHDdRRv4vwHuox5aTGTydnxsy6g+n0/Eub+OEQ0SBi/ktuX4LlhH5OcA4F0fcmWvDxAnLTpNAMd7ag==","signatures":[{"sig":"MEQCIFQF2To4Gythgn42vpUk/WSEZzuSUhAr4dpsUaQ87J5uAiBm+LkfCg9ce2M5IzBXjQEo9P6EYw5Ho5KeykiRGuYQ2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26246},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"4619bf06b9f000d92e71fee7307e78191da409bd","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.11_1770223786146_0.5078552228676108","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"discord-selfbot-mcp","version":"1.0.12","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.0.12","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"8ae00265f9daa1320b175f29c902bfc6b76f0887","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.0.12.tgz","fileCount":6,"integrity":"sha512-QfkBtq8ngFQBssOiaZdSFbYMxSicZahTl9v2ogsyLZcIqtOmUtEqoqTqQepZz3Nr0OCOzwU9bNoC5fa6k8pPBQ==","signatures":[{"sig":"MEUCIAPCvZI4JrKBsU5bVFgUybUSx+ZpO1P8oGO42DsBY0/jAiEA1E/AwOu8giyBY6ORNXFAPrEqFiYBzKHvuKfzW4kihO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27935},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"b8e425a8856bc4646b8f733669e9392f174cfbb3","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.12.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.0.12_1770226351955_0.6009902866283872","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"discord-selfbot-mcp","version":"1.2.0","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.2.0","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"258c842f16a846bdf9f9f3569751e810e6ec1c63","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.2.0.tgz","fileCount":9,"integrity":"sha512-B0ZhnNyfeOKOUCzDGtsAezmI6U1MHdX0rvJo5zdne5UV6emz7b6wKUk51Fwg11Gnkm6KnWUbtCPoqxS70zqNWA==","signatures":[{"sig":"MEUCIG9drVn18xhMs0sRyGTEZRxnIbdkWl5y5ga3Zic0J+MjAiEA2ap08zdz5JtvncrX5ffijeF0j/6FJHjdTA8MxJKFPpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87286},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"51678d7995b156aa13621e4691d1cc805aec0fbb","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.13.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.2.0_1773008303682_0.02215835495878027","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"discord-selfbot-mcp","version":"1.2.1","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.2.1","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"a9244c4e98e5ca270b460648d0a0786f9eb378d3","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.2.1.tgz","fileCount":9,"integrity":"sha512-WqGx1nYLkQnlN3waAb8YSDeOTjSZFCKO+01+8xb6DGKaYPfeMIYxOHvrjX9V6epfvqyCJcN8q3h32kUvttt5fQ==","signatures":[{"sig":"MEYCIQCMR7rx5se/rGIbeQwheOCQgXqLg8/jYsXwssm8J9agHQIhAIdAF2jqTjkoIBAuK7k8myQmcJJcaf/Wy5CO3qJ46IPZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87841},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"5a1423217e2585bf6e672bfd6c07f9baa6119fbf","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.13.0","dependencies":{"playwright":"^1.40.0"},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^24.2.9","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.2.1_1775910739337_0.325103205369659","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"discord-selfbot-mcp","version":"1.2.2","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.2.2","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"973524698193447c864da15df1d90948b880546f","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.2.2.tgz","fileCount":9,"integrity":"sha512-a1oN0vxi/6sI4pMxtAjty2UuffHseUOuI7+x/G1hb7G1qm67+JGahtIPWQcJVFmFSG7OlctFdTWdB+Im+HeDrQ==","signatures":[{"sig":"MEUCIB/TOozZnjhAiSOPAu6X3mE+kkeOnRbkICogluOCL5V+AiEA2EAW8JG7tGEFo4qIIYzdzZqU3PoqkLMAyoq0H0HKa70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87961},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"b36465ed0aa10f18835ae991d2d4ef6d89f7d623","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.14.1","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.2.2_1775913785449_0.053564168050513894","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"discord-selfbot-mcp","version":"1.2.3","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.2.3","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"40342245fb79225eb3f1e2ba280ab05979308067","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.2.3.tgz","fileCount":9,"integrity":"sha512-/4Fiz8NJJA9bPfvOlRv5dWkc9qM3NcVFo9hFnjpq8OKbx+Aj9UBJXvCmKlFobSn7CibLb9toAa5sG2Q95VrwKg==","signatures":[{"sig":"MEUCIQCZyy2NdIcN0oEEyI6fp7VQkWPY6iPFo8V1a0ipVik/fwIgHw4LCZ1Kymg0gWyER421QiKp6/TJX8Oh80vN3jnI4BQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87961},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"706ae5a668333f0f668f0f7434126663d617533d","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.14.1","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.2.3_1775915536126_0.3666836666763573","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"discord-selfbot-mcp","version":"1.2.4","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.2.4","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"8fcc1e4dda30ebeeff41613e097fc6f071399fec","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.2.4.tgz","fileCount":9,"integrity":"sha512-fPHXwCvfy4vZSh5kwCi0+PXHtJJgw2WXRj+vUpwCVA6EVPzfoJIUIJzt4KV7OLqQKjq9Uce7bLPmqmUIcOzbOA==","signatures":[{"sig":"MEYCIQDkzn9VVLsUZ/OInRjmDNNwKmgS6ubgf65vLfbZfhh/hAIhALtQHcxkB/B/ezwy2zgw4N9DflhanHKDDkUO+6A5dvHn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87961},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"34e7b303ffd3b0aa3cc3e862419aba036ab1ae02","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.14.1","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.2.4_1776452229344_0.4793071691374846","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"discord-selfbot-mcp","version":"1.2.5","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.2.5","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"59330a7ad4bfa69232b556a08aa751022f984630","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.2.5.tgz","fileCount":9,"integrity":"sha512-Tq8bT4zEdGBOQE2trIK+q9H0tyIyIOf+sgcX2Q6KhAKPogDUFBTwv47EL2XnXu5wAgXQuYzUnaNPEPcGkALDkQ==","signatures":[{"sig":"MEQCIAJyMEd9PcPHz5UPayGu/O/rWvTxZrf+vuyo71MBbJJJAiATE0UcBWhlkRLIXumO6/1yYdh293C7hJSnSqOE6u3ijg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88597},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"220e2482b8b289524e80a95204f84f1732090146","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.14.1","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.2.5_1776453035525_0.5632214773640307","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"discord-selfbot-mcp","version":"1.2.6","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.2.6","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"eecbb4dee23760d14a8413d399c638e793cdd94b","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.2.6.tgz","fileCount":9,"integrity":"sha512-gJa25bI5UhY0gvbOjbnNx36rl5WilkDEYbGXDj5XCpfk9ghPLhm/Bp/G4u6ECzYj0A4soOrQ8DIWhieakckT8Q==","signatures":[{"sig":"MEUCIDqX6wIBoNkvbzfd6NKxx00gmg6jVnpYtyF983iDHKm9AiEA/5zpiFKYjvUFSqK39Ha7DgSzG7Udwqm8WXxsZNVAphA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88237},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"a18d31bb4afd77c1c2e5c720fdf9af8a2af29153","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.14.1","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.2.6_1776458077515_0.8628578573238335","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"discord-selfbot-mcp","version":"1.2.7","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.2.7","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"b69d0699d1bc07130cc2a07268d9bdd6d6611139","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.2.7.tgz","fileCount":10,"integrity":"sha512-yPJsK1WSOkVQKFH0VAfDCdm+qcSv0O+2AMjEn1+YaYsr4DhFcR1EP23yGUMmU5YHr5x6YCUT6T7EwKkz3hyCzw==","signatures":[{"sig":"MEUCIFYLk1kpAb91pQFhj4mFZgIiRQrGaJh3UlX8pCk4ylOUAiEAvfT9qgmBUXuZX3Lxcgq95N8lwW2aZ4ilBKGvjfNbvRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89930},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"b230530bd86f6e4aa6299d8cb424d29bd119933a","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.14.1","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.2.7_1776979856851_0.017229912006955228","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"discord-selfbot-mcp","version":"1.2.8","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.2.8","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"82493eccaea18fbef97a3cbf160a8892db92995f","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.2.8.tgz","fileCount":10,"integrity":"sha512-QCvxXUuwE2pG0dHlTtw54cnZFWOn9GnGHED691AnyTgMX1bVT9/Um/eJzfK+TLrzToamlyOdLOmoAR0YlppnfQ==","signatures":[{"sig":"MEYCIQDvSgIo6uOLNPA1QoE5TZLSjtfKThJrDusb8fqw7BCnQAIhAIXG8CRg53KXhtHV8D3cLFkKTNP6SZDA1ow7ngLuBaef","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97360},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"667de7ae78a5b1b6b3dd4b1810c19a3c96320fd5","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.14.1","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.2.8_1777075717155_0.6051849355181596","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"discord-selfbot-mcp","version":"1.3.0","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.3.0","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"47d7a67a41a0fb393a6540e52ed67cf6a62f8036","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.3.0.tgz","fileCount":10,"integrity":"sha512-le0zYvG5oDnuf8BpVtbhYF0xSL0sMfzQC+kFL52q4cG5yXJYAkapnX6TtKePlbvSNGd4W51SDb6gEPNq+3qGLQ==","signatures":[{"sig":"MEQCIA4CMIr5z3yrNivLKroRaYUT0xdpWUOmfTX40V2fCTFxAiAK65+ajS4q0Blczse+/R2VDmCDSykigipqXEvEeUZEZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98867},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"6d596d829181ed1573386a996d8f9e05f1675b56","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.16.0","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.3.0_1780701454538_0.6340014735537336","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"discord-selfbot-mcp","version":"1.4.0","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.4.0","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"b8681adda72dfb2940f0296d1b80ef802483eb5a","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.4.0.tgz","fileCount":10,"integrity":"sha512-mLOTF9XLUyywzqqkSIf4Hwhl7ZNr7zCxzedABqV6cPS+wFU3DBta2k2O6p204wm3aHrHW8sX1eVSgc/iu3orkg==","signatures":[{"sig":"MEUCIQDV818ax0UK5A29K1oC9cJ7MGHnskejgFa0K/JxJJKtqAIgG6X6P2KrITDafhHpAG/9KREV1lTTekRmphriO7GZ+h8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98631},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"2bbcc4ad863afbd60b54c4c119ec735893a3718b","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.16.0","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.4.0_1781275685845_0.8445448710499115","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"discord-selfbot-mcp","version":"1.4.1","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.4.1","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"f9e9cd98f85db81ecee75c379336f26453f6771b","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.4.1.tgz","fileCount":10,"integrity":"sha512-/1hyk3StieRDJhWLX7E60znxOKluXBuV2oRNd6DhCTCnWhei5jc+lkHvUkeQ+8lYsds/OtZiYK/AgcgGsp6BIA==","signatures":[{"sig":"MEYCIQCEiSG+1HcwcIAt0VIjj5Y1g9s38ySm1w/G/TVN8U5gnwIhAP/uv727HETd+sPJieGKKcaB1+hqVLcvdLpGJE0Pvv2/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98631},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"12e5d9d9ef2a85b3c7103f0b9fb5c2fa751de016","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.16.0","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.4.1_1781750588321_0.35258954061181624","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"discord-selfbot-mcp","version":"1.5.0","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.5.0","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"0f624b85642eff44b6eadf22212866833f16bdb9","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.5.0.tgz","fileCount":10,"integrity":"sha512-detCw3pV+SjKvRrg+ESkaIvebm6TsqSKm+mPGXK4facxiDao1YczsKVGaj07NtwnE2xypNdG2r49NripJQ+IOw==","signatures":[{"sig":"MEUCIQDeEYXdHmUbgIs/dh2HhaItPfKSrg+vaBDnFqdO83g1RgIgHIgpCHV39Tuigc5QgonNUzvE3KwO4KtqbNWnwnVSyYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101261},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"f5cfcb7d7ef70f80c176ae9363cac447dd7e32e0","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.18.0","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.5.0_1785874717373_0.18763383359103702","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"discord-selfbot-mcp","version":"1.5.1","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.5.1","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"38c12c81e886b2988cb849ff43000d229d1b6ce6","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.5.1.tgz","fileCount":10,"integrity":"sha512-DlS3m/AjGFzxyIvVoiYcdvUHnL72eQOPyYnwDViYIyZ41R/JPpGmkunKUVDO6mRGZaXQsu8RGyyPaIOeDkiFIw==","signatures":[{"sig":"MEUCIBikROGMOuxI+OjwISIzqBnm5LhLh7nIOSiq4XiU8w/JAiEAo7521+zfcPlag3RTGeNGPQhY0Ap8qzjM/qpCvLk3120=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101261},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"6a22f71a21d89333646ad540c626f2df8a0dbdc6","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.18.0","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.5.1_1785930745293_0.40723555045283955","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"discord-selfbot-mcp","version":"1.6.0","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.6.0","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"57d93ad0f264ec51642abb264544dd6b8667a12e","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.6.0.tgz","fileCount":10,"integrity":"sha512-cukMc//VMb2A38L+HWIlVZ6jKZ7ybzkNs5joNbR0vDVZfUaakuaVmp1Iolp/xJJhCTdWaCvkiGQam3Pmhq8KYQ==","signatures":[{"sig":"MEUCIQCRodSSL40guxDKMk1bVMpJt/TN+YyFBVajtrUZuvzNpAIgGqRmJNwfKNZ78r7Cb0pWvyh4GEpNOsPWXkUqlBl6+uY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103726},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"d0f74cf044140f0eb75abe95ad53cf0573a75349","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.19.0","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.6.0_1787505240094_0.5280848634015358","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"discord-selfbot-mcp","version":"1.7.0","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.7.0","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"455f3e5c304d446ff33096307e95a5665cc23ad3","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.7.0.tgz","fileCount":10,"integrity":"sha512-Xtrzcy/WMa9xq98Yrz8hHq/87TUp6EcbgPWM9YN+Zlo2wTzWzD979LEnBLOxw3QcGM7DyxRJZ7SrdkJQmzqW1A==","signatures":[{"sig":"MEQCIG7SkILqlc4QACRSoqePty9ZuH9vjzvbwqE901JuK5m4AiA/1Dra+YCsrwZiPhOlSo9Y85jeRg7ropMwzd9/Tm7Bog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105748},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"17a5fdfe63dad485fe31dee44a2ee5038001d3a8","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.20.0","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.7.0_1788813312567_0.144298401659132","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"discord-selfbot-mcp","version":"1.8.0","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"author":{"name":"Microck"},"license":"MIT","_id":"discord-selfbot-mcp@1.8.0","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"dist":{"shasum":"1c0cbd74b7d0d73e7bec1949f4bb9776e55b61d3","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.8.0.tgz","fileCount":10,"integrity":"sha512-43Lx5xEfbteBBLitaC+97zEu3NPc9GRfmcv2Jbsoun6d/PS5joTpucWiaekwoFwsaInPhVbKlwmugvn0Z70o6A==","signatures":[{"sig":"MEQCIDbtppkbu0yV30aZ/VywgfdkyvyWa6/+lZgl+W/tqVKVAiBPh/oD+rgLPj2UqAGQj/z/X8zDpdBkJC6omDpW61Esig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105815},"main":"index.js","engines":{"node":">=18.0.0"},"gitHead":"afab15362eb0f73f78efd504310a3941ddb24128","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"_nodeVersion":"24.20.0","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/discord-selfbot-mcp_1.8.0_1788815164894_0.1766738344894092","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"_id":"discord-selfbot-mcp@1.8.1","bin":{"discord-selfbot-mcp":"index.js","discord-selfbot-mcp-setup":"setup-wizard.js"},"bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"dist":{"shasum":"2f58397ffcd86796c915dd98c900691f12c3936a","tarball":"https://registry.npmjs.org/discord-selfbot-mcp/-/discord-selfbot-mcp-1.8.1.tgz","fileCount":10,"integrity":"sha512-nFZ+LsDHei9v40rq3OKYkK9gYEZOOd3xuWiXFNXPjt7+WdE4i6jmcREjMS/4lfFbJc4J5sS9qcxqx0RgnEH3AQ==","signatures":[{"sig":"MEUCIB7fnwd2F0Is/uBc4tDoZqRJaPqWsSMRQzBRpaD3SGSVAiEA3N6txzZ8/64tWS0Ans/b9JZktZ6JUkcPImi66GOQlxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFOvr7Xi+3AKtYW+X23yPfxQhcQiCgr3DMB7xTxuWV5SAiALhtF/8/L4zsv8so4EuqE+xSbozrHoHeK4QzZ9dE5vpQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/discord-selfbot-mcp@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105815},"main":"index.js","name":"discord-selfbot-mcp","author":{"name":"Microck"},"engines":{"node":">=18.0.0"},"gitHead":"625c40df34c42384bdff9b7355fcfef585288768","license":"MIT","scripts":{"release":"semantic-release","postinstall":"node scripts/postinstall.js"},"version":"1.8.1","_npmUser":{"name":"microck","email":"microckgfx@gmail.com"},"homepage":"https://github.com/Microck/discord.py-self-mcp#readme","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","directories":{},"maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"playwright":"^1.40.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/discord-selfbot-mcp_1.8.1_1790465417356_0.16139281128905858"}}},"time":{"created":"2026-01-04T02:57:01.679Z","modified":"2026-09-26T23:30:17.738Z","1.0.0":"2026-01-04T02:57:01.962Z","1.0.1":"2026-01-04T03:42:37.459Z","1.0.2":"2026-01-29T20:38:46.451Z","1.0.3":"2026-02-03T16:59:25.776Z","1.0.4":"2026-02-04T03:06:20.560Z","1.0.5":"2026-02-04T04:21:30.976Z","1.0.6":"2026-02-04T04:27:20.158Z","1.0.7":"2026-02-04T05:21:32.694Z","1.0.8":"2026-02-04T05:24:55.617Z","1.0.10":"2026-02-04T16:37:01.955Z","1.0.11":"2026-02-04T16:49:46.295Z","1.0.12":"2026-02-04T17:32:32.096Z","1.2.0":"2026-03-08T22:18:23.851Z","1.2.1":"2026-04-11T12:32:19.477Z","1.2.2":"2026-04-11T13:23:05.587Z","1.2.3":"2026-04-11T13:52:16.296Z","1.2.4":"2026-04-17T18:57:09.479Z","1.2.5":"2026-04-17T19:10:35.695Z","1.2.6":"2026-04-17T20:34:37.698Z","1.2.7":"2026-04-23T21:30:57.032Z","1.2.8":"2026-04-25T00:08:37.332Z","1.3.0":"2026-06-05T23:17:34.687Z","1.4.0":"2026-06-12T14:48:05.984Z","1.4.1":"2026-06-18T02:43:08.447Z","1.5.0":"2026-08-04T20:18:37.570Z","1.5.1":"2026-08-05T11:52:25.422Z","1.6.0":"2026-08-23T17:14:00.268Z","1.7.0":"2026-09-07T20:35:12.702Z","1.8.0":"2026-09-07T21:06:05.029Z","1.8.1":"2026-09-26T23:30:17.441Z"},"bugs":{"url":"https://github.com/Microck/discord.py-self-mcp/issues"},"author":{"name":"Microck"},"license":"MIT","homepage":"https://github.com/Microck/discord.py-self-mcp#readme","keywords":["mcp","discord","selfbot","model-context-protocol","ai","automation"],"repository":{"url":"git+https://github.com/Microck/discord.py-self-mcp.git","type":"git"},"description":"Discord Selfbot MCP server - Node.js wrapper for Python implementation","maintainers":[{"name":"microck","email":"microckgfx@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"./logo.png\" alt=\"discord-py-self-mcp\" width=\"100\">\n</p>\n\n<h1 align=\"center\">discord-py-self-mcp</h1>\n\n<p align=\"center\">\n  comprehensive discord selfbot mcp server for full user autonomy.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/Microck/discord.py-self-mcp/releases\"><img src=\"https://img.shields.io/github/v/release/Microck/discord.py-self-mcp?display_name=tag&style=flat-square&label=release&color=000000\" alt=\"release\"></a>\n  <a href=\"https://www.npmjs.com/package/discord-selfbot-mcp\"><img src=\"https://flat.badgen.net/npm/dt/discord-selfbot-mcp?label=downloads&color=000000\" alt=\"npm downloads\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-mit-000000?style=flat-square\" alt=\"license\"></a>\n</p>\n\n<p align=\"center\">\n<video src=\"https://github.com/user-attachments/assets/d7d9fc9f-c466-49c0-a666-05bed2fa8ca9\n\" controls preload=\"auto\" width=\"100%\" style=\"border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); max-width: 800px;\"></video>\n</p>\n\n---\n\n## quick start\n\nthis is a local mcp server (stdio transport). your mcp client spawns it as a process, and you provide secrets (like `DISCORD_TOKEN`) via the client's `env`/`environment` config.\n\nmanual run:\n\n```bash\nDISCORD_TOKEN=\"your_discord_token_here\" python3 -m discord_py_self_mcp.main\n```\n\n> **important:** automating user accounts is against the Discord ToS. use this at your own risk.\n\n---\n\n### overview\n\ndiscord-py-self-mcp acts as a bridge between your ai assistant (Claude Code, OpenCode, Codex, etc) and your personal discord account. unlike standard bots, this \"selfbot\" runs as you; allowing your ai to read your dms, reply to friends, manage your servers, and interact with buttons/menus just like a human user.\n\nbuilt on the <a href=\"https://github.com/dolfies/discord.py-self\">discord.py-self</a> library by dolfies.\n\n---\n\n### quick installation\n\npaste this into your llm agent session:\n\n```\nInstall and configure discord-selfbot-mcp by following the instructions here:\nhttps://raw.githubusercontent.com/Microck/discord.py-self-mcp/refs/heads/master/INSTALL.md\n```\n\n**npm (recommended)**\n\n```bash\nnpm install -g discord-selfbot-mcp\ndiscord-selfbot-mcp-setup\n```\n\n---\n\n### manual installation\n\n**prerequisites**:\n- python 3.10+\n- `uv` (recommended) or `pip`\n- **voice support (linux only)**: `libffi-dev` (or `libffi-devel`), `python-dev` (e.g. `python3-dev`)\n\n**install**:\n\n```bash\nuv tool install git+https://github.com/Microck/discord.py-self-mcp.git\n# or\npip install git+https://github.com/Microck/discord.py-self-mcp.git\n```\n\n> **note**: voice dependencies (PyNaCl) are included by default. on linux, ensure system packages are installed first.\n\n---\n\n### npm installation (node.js wrapper)\n\n**prerequisites**:\n- node.js 18+\n- python 3.10+\n\n**install**:\n\n```bash\nnpm install -g discord-selfbot-mcp\n```\n\nthe npm package is a wrapper that uses the underlying python implementation.\n\n---\n\n### how it works (setup wizard)\n\nrun the interactive setup script to extract your token and generate the mcp config json (it can also write to common client config files and creates a backup before editing).\n\n```bash\n# if using npm\ndiscord-selfbot-mcp-setup\n\n# if using python (uv/pip)\npython3 -m discord_py_self_mcp.setup\n```\n\n1. **extract token**: grabs your token from an open browser session (playwright) or via manual entry\n2. **generate config**: prints the mcp configuration json (and can write it to your client config)\n3. **configure**: paste the config into your mcp client settings\n\n---\n\n### manual configuration\n\nfor the default `stdio` transport, configure the server as a local command and pass the token via `env` (not `url`/`headers`).\n\nexamples:\n- `mcp.example.json`\n- `mcp.python.example.json`\n- `.env.example`\n\n**npm wrapper (recommended)**:\n\n```json\n{\n  \"mcpServers\": {\n    \"discord-py-self\": {\n      \"command\": \"discord-selfbot-mcp\",\n      \"env\": {\n        \"DISCORD_TOKEN\": \"${DISCORD_TOKEN}\"\n      }\n    }\n  }\n}\n```\n\n**python (uv tool)**:\n\n```json\n{\n  \"mcpServers\": {\n    \"discord-py-self\": {\n      \"command\": \"uv\",\n      \"args\": [\"tool\", \"run\", \"discord-py-self-mcp\"],\n      \"env\": {\n        \"DISCORD_TOKEN\": \"${DISCORD_TOKEN}\"\n      }\n    }\n  }\n}\n```\n\n**python (pip / venv)**:\n\n```json\n{\n  \"mcpServers\": {\n    \"discord-py-self\": {\n      \"command\": \"python3\",\n      \"args\": [\"-m\", \"discord_py_self_mcp.main\"],\n      \"env\": {\n        \"DISCORD_TOKEN\": \"${DISCORD_TOKEN}\"\n      }\n    }\n  }\n}\n```\n\n> if your client does not expand `${DISCORD_TOKEN}`, replace it with the literal token value.\n\n### streamable HTTP transport\n\nThe default transport is stdio. For clients or local services that need a\npersistent endpoint, start the same MCP server with Streamable HTTP instead:\n\n```bash\npython3 -m discord_py_self_mcp.main --transport streamable-http --host 127.0.0.1 --port 7781\n```\n\nThis exposes the MCP endpoint at `http://127.0.0.1:7781/mcp`. The listener is\nlocalhost-only by default; place an authenticated reverse proxy or tunnel in\nfront of it if remote access is required. `MCP_TRANSPORT`, `MCP_HOST`, and\n`MCP_PORT` provide equivalent environment-based configuration.\n\n---\n\n### features\n\npowered by the robust `discord.py-self` library.\n\n| category | tools | description |\n|----------|-------|-------------|\n| **system** | 2 | get_user_info, list_guilds |\n| **messages** | 6 | send_message, read_messages, search_messages, edit_message, delete_message, get_message_attachments |\n| **channels** | 3 | create_channel, delete_channel, list_channels (bulk and compact summary modes) |\n| **dms** | 2 | list_dm_channels, list_unread_dms |\n| **pings** | 2 | list_pings, mark_message_read |\n| **voice** | 2 | join_voice_channel, leave_voice_channel |\n| **relationships** | 4 | list_friends, send_friend_request, add_friend, remove_friend |\n| **presence** | 2 | set_status, set_activity |\n| **interactions** | 8 | send_slash_command, click_button, select_menu, submit_modal, list_ephemeral_messages, list_application_commands, send_user_command, send_message_command |\n| **threads** | 5 | create_thread, send_thread_message, list_active_threads, read_thread_messages, archive_thread |\n| **members** | 5 | kick_member, ban_member, unban_member, add_role, remove_role |\n| **roles** | 6 | list_roles, get_role, create_role, edit_role, delete_role, reorder_roles |\n| **permissions** | 7 | set_role_permissions, get_channel_permissions, set_channel_permissions, patch_channel_permissions, remove_channel_permissions, set_category_permissions, inspect_effective_permissions |\n| **invites** | 3 | create_invite, list_invites, delete_invite |\n| **profile** | 1 | edit_profile |\n| **server folders** | 6 | list_server_folders, create_server_folder, move_server_to_folder, rename_server_folder, reorder_server_folders, apply_server_folder_layout |\n| **server discovery** | 3 | get_server_overviews, sample_server_content, analyze_server_sidebar |\n| **reactions** | 2 | add_reaction, remove_reaction |\n| **discrawl** | 7 | run_discrawl, discrawl_doctor, discrawl_status, discrawl_sync, discrawl_search, discrawl_messages, discrawl_mentions |\n\n### roles and permissions\n\n`list_roles` returns every role as JSON (id, name, color, position, permission\nbitfield) sorted highest-first. Run it before any restructuring — `position` is\nguild-wide, so moving one role reindexes the others and the dump is your only\nway back.\n\n`create_role` and `edit_role` take `color` as a hex string (`#5865F2`) or an\ninteger, and `permissions` as either a raw bitfield string or a list of flag\nnames (`[\"manage_roles\", \"kick_members\"]`). `edit_role` only touches the fields\nyou pass. `reorder_roles` moves several roles in one call and falls back to\nsequential edits when the bulk endpoint is unavailable.\n\nRole edits are bounded by hierarchy: your account cannot change a role at or\nabove your own highest role. Discord answers that with a bare 403, so these\ntools check position locally first and say which role is blocking. Guild owners\nare exempt.\n\n`set_channel_permissions` replaces an overwrite wholesale, so any flag you do\nnot pass is lost. When an overwrite already exists and you only mean to change\none flag, use `patch_channel_permissions` — it takes a map of flag to\ntrue/false/null and leaves everything else in that entry untouched. Because a\nwholesale write with neither `allow` nor `deny` would quietly wipe the entry,\nboth setters require at least one of the two and reject a flag listed in both;\n`remove_channel_permissions` is the way to drop an overwrite on purpose.\n\nRole moves are checked twice before anything is sent: the role must sit below\nyour own highest role, and so must the position you are moving it to. Both are\ncompared with discord's own role ordering rather than raw position numbers,\nsince positions can tie and are broken by id.\n\nFor channel access, `set_channel_permissions` writes one overwrite and\n`set_category_permissions` writes the category plus, by default, every channel\ninside it (`sync_children: false` to skip). `inspect_effective_permissions`\nresolves a role or member against every channel and reports what they can\nactually see — useful for checking a change landed the way you meant.\n\nFlag names are accepted in either spelling on input, but the `allowed` /\n`denied` lists in JSON output use discord.py-self's canonical names — so\n`view_channel` comes back as `read_messages`.\n\n### direct messages\n\n`list_dm_channels` enumerates your open 1:1 and group DM channels so you can\ndiscover a `channel_id` instead of needing to know it in advance. Each row is\n`<channel_id> - [dm|group] <recipient display> (id=<user_id>) [BOT]`. Optional\nargs: `include_groups` (default `true`) and `name_contains` (case-insensitive\nfilter on recipient name/handle), e.g. find the DM with a person by name and\nfeed the id straight into `read_messages` / `send_message`.\n\n### server discovery and folders\n\n`analyze_server_sidebar` is the recommended first step when organizing a large\nserver list. It returns the current folder layout alongside each server's\ndescription, member count, permissions, and a compact channel summary. Set\n`include_recent_messages: true` to sample high-signal channels such as\nannouncements, general, FAQ, and updates; likely ticket and log channels are\nskipped by default.\n\nUse `get_server_overviews` for selected servers or `sample_server_content` when\nyou only need message evidence. `list_channels` also accepts `guild_ids` and a\n`mode: \"summary\"` option, which collapses repeated ticket-style channels unless\n`include_repetitive` is set.\n\nFor writes, use `apply_server_folder_layout` to create, rename, recolor, and\nmove several folders in one settings update. First call it with `dry_run: true`;\nthe response lists each creation, rename, recolor, move, and empty folder that\nwould be removed. Servers omitted from the request stay in their current place.\nThe service logs each settings write by operation count and data version, never\nmessage content or account secrets.\n\n### slash commands\n\n`send_slash_command` invokes an application command in a channel or DM. Pass\n`application_id` (the bot's user/application ID) for reliable resolution; in a DM\nwith a bot it is inferred automatically. The command and any options are\nresolved from the application's registered command list\n(`GET /applications/{id}/commands`), which works for ordinary guild-installed\nbots whose commands the per-channel `/` search index does not return. Subcommands\nare space-separated in `command_name` (e.g. `\"config set\"`). Example:\n\n```json\n{\n  \"channel_id\": \"123456789012345678\",\n  \"command_name\": \"remind\",\n  \"application_id\": \"987654321098765432\",\n  \"options\": { \"text\": \"stand up\", \"when\": \"in 10 minutes\" }\n}\n```\n\n### context menu commands\n\n`list_application_commands` shows everything a channel offers — slash commands\nplus the user and message commands that live in the right-click \"Apps\" menu:\n\n```json\n{ \"channel_id\": \"123456789012345678\", \"kind\": \"all\" }\n```\n\ninvoke them with `send_user_command` (targets a user) or\n`send_message_command` (targets a message):\n\n```json\n{\n  \"channel_id\": \"123456789012345678\",\n  \"user_id\": \"987654321098765432\",\n  \"command_name\": \"Report User\"\n}\n```\n\na name is only matched within its own kind, so a user command never satisfies\n`send_message_command`. pass `application_id` when two apps register the same\nname.\n\n### modals\n\nwhen a button or slash command opens a modal, `click_button` reports the\nmodal's `custom_id` and its fields instead of a bare \"Button clicked\". feed\nthose into `submit_modal`:\n\n```json\n{\n  \"custom_id\": \"auth_profile:ABC123\",\n  \"values\": { \"profile_username\": \"your_username\" }\n}\n```\n\npending modals are held for the session (up to 16 at a time) and are consumed\non submit. a modal is put back when the submit is rejected — unknown field\nids, missing required fields, or a failed send before anything reached\ndiscord — so you can fix the values and retry without clicking the button\nagain. once the answers have been sent the entry stays consumed, because a\nsecond attempt would submit the interaction twice. discord expires the\nunderlying interaction after roughly 15 minutes; if that happens, click the\nbutton again.\n\n### ephemeral replies\n\nmost bots answer a click or a slash command with an ephemeral reply — the\nprivate \"only you can see this\" message. discord never persists those, so\n`read_messages` cannot see them and `fetch_message` returns 404. they do\narrive over the gateway, so `list_ephemeral_messages` reads them out of the\ncache and `click_button` / `select_menu` fall back to the cache when the REST\nfetch 404s. that makes multi-step flows reachable:\n\n    click_button(panel)                -> bot replies ephemerally\n    list_ephemeral_messages(channel)   -> message_id + its buttons\n    click_button(that message_id, ...) -> next ephemeral step\n\nonly replies received while this server was connected are cached.\n\n### discrawl integration\n\nUse `run_discrawl` to execute local `discrawl` commands directly from MCP.\nUse typed tools for common operations (`discrawl_sync`, `discrawl_search`, `discrawl_messages`, etc.) when you want structured params.\nBy default this MCP uses the Microck fork at `../discrawl-self/bin/discrawl`:\n`https://github.com/Microck/discrawl-self`. It does not silently fall back to a\nglobal `discrawl` from `PATH`; set `DISCRAWL_BIN` or the tool `binary` argument\nwhen you intentionally want another executable.\n\nExample tool call payload:\n\n```json\n{\n  \"command\": \"sync\",\n  \"args\": [\"--guild\", \"1234567890\", \"--since\", \"2026-03-01T00:00:00Z\"],\n  \"config_path\": \"~/.discrawl/config.toml\"\n}\n```\n\nTyped tool payload example:\n\n```json\n{\n  \"tool\": \"discrawl_sync\",\n  \"args\": {\n    \"guild\": \"1234567890\",\n    \"since\": \"2026-03-01T00:00:00Z\",\n    \"full\": true,\n    \"config_path\": \"~/.discrawl/config.toml\"\n  }\n}\n```\n\nOptional env var:\n\n- `DISCRAWL_BIN` - custom path to discrawl executable. This overrides the default Microck fork lookup.\n\n### attachment access\n\nUse `get_message_attachments` when a message contains files or images you need to inspect directly.\nIt returns attachment metadata for the target message and can stream image/file content back through MCP outputs.\n\n### comparison\n\n| feature | discord-py-self-mcp | discord.py-self (Lib) | Maol-1997 | codebyyassine | elyxlz |\n| :--- | :---: | :---: | :---: | :---: | :---: |\n| **read messages** | ✅ | ✅ | ✅ | ✅ | ✅ |\n| **send messages** | ✅ | ✅ | ✅ | ✅ | ✅ |\n| **list guilds** | ✅ | ✅ | ✅ | ✅ | ✅ |\n| **list channels** | ✅ | ✅ | ✅ | ✅ | ✅ |\n| **get user info** | ✅ | ✅ | ✅ | ✅ | ❌ |\n| **search messages** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **create channels** | ✅ | ✅ | ❌ | ✅ | ❌ |\n| **delete channels** | ✅ | ✅ | ❌ | ✅ | ❌ |\n| **edit messages** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **delete messages** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **join voice** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **manage friends** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **manage threads** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **slash commands** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **click buttons** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **select menus** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **submit modals** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **ephemeral replies** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **context menu commands** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **kick/ban** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **invites** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **profile edit** | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **setup wizard** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **captcha solver** | ✅ | ❌ | ❌ | ❌ | ❌ |\n\n✅ = supported\n\n❌ = not supported\n\n🚧 = planned / in progress\n\n---\n\n### captcha solving (experimental)\n\nautomatically solves hCaptchas when encountered (e.g., joining servers, dms).\nbuilt upon [QIN2DIM/hcaptcha-challenger](https://github.com/QIN2DIM/hcaptcha-challenger) - an AI-powered hCaptcha solver using vision models.\n\n> **warning**: this feature is experimental. use at your own risk.\n\n**requirements:**\n1. **Gemini API Key**: Required for AI vision. Get from [Google AI Studio](https://aistudio.google.com/app/apikey). Set `GEMINI_API_KEY` in your mcp client `env`.\n2. **Playwright**: Required for browser automation.\n   ```bash\n   playwright install chromium --with-deps\n   ```\n\n**optional:**\n- `CAPTCHA_PROXY`: proxy url for solving hCaptcha challenges.\n- `TEMP_DIR`: Directory for temporary model files (default: `/tmp/hcaptcha`)\n\n---\n\n### rate limiting (recommended)\n\nbuilt-in rate limiting to prevent account bans. configurable via environment variables.\n\n**configuration:**\n\n| variable | default | description |\n|----------|---------|-------------|\n| `RATE_LIMIT_ENABLED` | `true` | Enable/disable rate limiting |\n| `RATE_LIMIT_MESSAGES_PER_MINUTE` | `10` | Max messages per minute |\n| `RATE_LIMIT_MESSAGES_PER_SECOND` | `1` | Max messages per second |\n| `RATE_LIMIT_ACTIONS_PER_MINUTE` | `5` | Max actions (joins, etc.) per minute |\n| `RATE_LIMIT_COOLDOWN` | `60` | Cooldown duration when limit hit (seconds) |\n\n> rate limiting is enabled by default to reduce ban risk. Only disable it if you are deliberately taking responsibility for raw Discord API pacing yourself.\n\n---\n\n### troubleshooting\n\n| problem | solution |\n|---------|----------|\n| **token invalid** | run the setup script again to extract a fresh one |\n| **missing dependencies** | ensure `uv` or `pip` installed all requirements |\n| **playwright error** | run `playwright install chromium` |\n| **audioop error** | ensure `audioop-lts` is installed if using python 3.13+ |\n| **camoufox missing** | run `python -m camoufox fetch` |\n| **voice error** | install `libffi-dev` (linux) or ensure PyNaCl built correctly |\n\n---\n\n### project structure\n\n```\ndiscord_py_self_mcp/\n├── bot.py\n├── main.py\n├── setup.py\n├── rate_limiter.py\n├── tool_utils.py\n├── cli_runtime.py\n├── logging_utils.py\n├── captcha/\n│   └── solver.py\n└── tools/\n    ├── channels.py\n    ├── dms.py\n    ├── discrawl.py\n    ├── embed.py\n    ├── guilds.py\n    ├── interactions.py\n    ├── invites.py\n    ├── members.py\n    ├── messages.py\n    ├── permissions.py\n    ├── presence.py\n    ├── profile.py\n    ├── reactions.py\n    ├── registry.py\n    ├── relationships.py\n    ├── roles.py\n    ├── threads.py\n    └── voice.py\n```\n\n---\n\n### skill cli mode (optional)\n\nin addition to the mcp server, this package also provides a **skill/cli mode** for command-line usage with a persistent daemon. this is useful for scripts or when you need faster execution without the mcp protocol overhead.\n\n**quick start**:\n```bash\n# install (same package)\nnpm install -g discord-selfbot-mcp\n\n# create .env file\necho \"DISCORD_TOKEN=***\" > .env\n\n# use skill mode (from package directory)\npython3 scripts/dcli.py send-message --channel 123 --content \"Hello!\"\n```\n\n**key commands**:\n```bash\npython3 scripts/dcli.py daemon start     # start the daemon\npython3 scripts/dcli.py daemon status    # check daemon status\npython3 scripts/dcli.py send-message --channel CHANNEL_ID --content \"Hello\"\npython3 scripts/dcli.py list-guilds\npython3 scripts/dcli.py read-messages --channel CHANNEL_ID --limit 20\npython3 scripts/dcli.py get-message-attachments --channel CHANNEL_ID --message MESSAGE_ID\npython3 scripts/dcli.py get-message-attachments --channel CHANNEL_ID --message MESSAGE_ID --download --output-dir ./attachments\n```\n\n**when to use skill mode**:\n- command-line scripting\n- faster execution (persistent connection)\n- automation tasks\n- when mcp is not needed\n\nsee [SKILL.md](SKILL.md) for detailed documentation.\n\n---\n\n### license\n\nthis project is licensed under the [mit license](./LICENSE).\n\n---\n\n### contributing\n\nissues and pull requests are welcome at [github.com/Microck/discord.py-self-mcp](https://github.com/Microck/discord.py-self-mcp).\n\n1. fork the repository\n2. create a feature branch (`git checkout -b feature/my-feature`)\n3. commit your changes (`git commit -m 'add my feature'`)\n4. push to the branch (`git push origin feature/my-feature`)\n5. open a pull request\n\nplease ensure tests pass (`pytest`) before submitting.\n","readmeFilename":"README.md"}