{"_id":"xhs-mcp","_rev":"43-6454ecd2242e2d3a5b579ff6492952dd","name":"xhs-mcp","dist-tags":{"latest":"0.8.13"},"versions":{"0.6.0":{"name":"xhs-mcp","version":"0.6.0","keywords":["xiaohongshu","mcp","model-context-protocol","automation","puppeteer"],"author":"","license":"MIT","_id":"xhs-mcp@0.6.0","maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"bin":{"xhs-cli":"dist/cli/xhs-cli.js"},"dist":{"shasum":"e4d1a5e0ea083f6972967e7990aa5e429c9768bf","tarball":"https://registry.npmjs.org/xhs-mcp/-/xhs-mcp-0.6.0.tgz","fileCount":133,"integrity":"sha512-iO0ZBjms6nKXoksd0anPsEvOSjiAdFhnpikYNje4njcxc95a9/Un8sVH2iiH0CprncXw1J2FZHbZvVwGZVoHaQ==","signatures":[{"sig":"MEUCIE2hLBxhpKiMeCHg1xZbJpe3Pu3RsOJssmeuGanJB+CiAiEAmb+JLV0e+Sa5jDUQflk+k+0Oh/PiJc5l8XcpAF4XqY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285944},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9d0589dd130ca206691d185fa6f69a05bc4692f1","scripts":{"lint":"eslint src/**/*.ts","build":"npm run clean && tsc","clean":"rm -rf dist temp_images/*","format":"prettier --write src/**/*.ts","dev:cli":"tsx src/cli/xhs-cli.ts --help","lint:fix":"eslint src/**/*.ts --fix","start:cli":"node dist/cli/xhs-cli.js --help","dev:mcp:http":"tsx src/cli/xhs-cli.ts mcp --mode http","format:check":"prettier --check src/**/*.ts","dev:mcp:stdio":"tsx src/cli/xhs-cli.ts mcp --mode stdio"},"_npmUser":{"name":"derekluo","email":"happyluoding@gmail.com"},"_npmVersion":"11.6.0","description":"XiaoHongShu CLI and MCP Server","directories":{},"_nodeVersion":"24.8.0","dependencies":{"cors":"^2.8.5","express":"^5.1.0","commander":"^12.0.0","puppeteer":"^22.0.0","node-fetch":"^3.3.2","@types/cors":"^2.8.19","@types/express":"^5.0.3","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^22.0.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xhs-mcp_0.6.0_1758776469877_0.8100132480975673","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"xhs-mcp","version":"0.7.1","keywords":["xiaohongshu","xhs","mcp","model-context-protocol","automation","puppeteer","cli","social-media","content-publishing","web-automation","typescript"],"author":{"name":"Algovate"},"license":"MIT","_id":"xhs-mcp@0.7.1","maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"homepage":"https://github.com/algovate/xhs-mcp#readme","bugs":{"url":"https://github.com/algovate/xhs-mcp/issues"},"bin":{"xhs-mcp":"dist/cli/cli.js"},"dist":{"shasum":"02d87f6c410ee855d74e2d131577bae8fc668bf8","tarball":"https://registry.npmjs.org/xhs-mcp/-/xhs-mcp-0.7.1.tgz","fileCount":138,"integrity":"sha512-/Kb24m6NMMik/46cv9Eokpo8XEwO0Yzb67Mwo4t31lbb6ICJTWTKwdDwtUk0raDJaXhvDbTmmOK1al9K0jMYhA==","signatures":[{"sig":"MEQCIH0ihie0aS+2Mq/gE7tpMJmka2OgC6t5DOXA4wO9lAHkAiArPz4xrAfArvY+hWrfwenmHJ+5jqciJD4SDWriwSDDlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329859},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"702048d21bdea6ca9cdd8b1445d0c587d9d5d680","scripts":{"lint":"eslint src/**/*.ts","test":"echo \"No tests specified\" && exit 0","build":"npm run clean && tsc && chmod +x dist/cli/cli.js","clean":"rm -rf dist temp_images/*","format":"prettier --write src/**/*.ts","dev:cli":"tsx src/cli/cli.ts --help","prepack":"npm run build","version":"npm run build","lint:fix":"eslint src/**/*.ts --fix","start:cli":"node dist/cli/cli.js --help","postversion":"git push && git push --tags","dev:mcp:http":"tsx src/cli/cli.ts mcp --mode http","format:check":"prettier --check src/**/*.ts","dev:mcp:stdio":"tsx src/cli/cli.ts mcp --mode stdio","prepublishOnly":"npm run build && npm run lint && npm run format:check"},"_npmUser":{"name":"derekluo","email":"happyluoding@gmail.com"},"repository":{"url":"git+https://github.com/algovate/xhs-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"XiaoHongShu CLI and MCP Server","directories":{},"_nodeVersion":"24.8.0","dependencies":{"cors":"^2.8.5","express":"^5.1.0","commander":"^12.0.0","puppeteer":"^22.0.0","node-fetch":"^3.3.2","@types/cors":"^2.8.19","@types/express":"^5.0.3","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^22.0.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xhs-mcp_0.7.1_1759044872410_0.921663947509618","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"xhs-mcp","version":"0.7.3","keywords":["xiaohongshu","xhs","mcp","model-context-protocol","automation","puppeteer","cli","social-media","content-publishing","web-automation","typescript"],"author":{"name":"Algovate"},"license":"MIT","_id":"xhs-mcp@0.7.3","maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"homepage":"https://github.com/algovate/xhs-mcp#readme","bugs":{"url":"https://github.com/algovate/xhs-mcp/issues"},"bin":{"xhs-mcp":"dist/xhs-cli.js"},"dist":{"shasum":"ee7b19dbb029ee27585b27eee13c67d2be52a892","tarball":"https://registry.npmjs.org/xhs-mcp/-/xhs-mcp-0.7.3.tgz","fileCount":10,"integrity":"sha512-uqswxgbYdjN7acE6lGHd+xQ9RTMvIKZd7GBjyu2DZg3fHjF/HGgqskAUPVixlhHlDFfslmEq73f2bh5/nVIgSQ==","signatures":[{"sig":"MEQCIE6MmHNCy+lI6sz+8SoC43Xbs2/x3UDh86mi/GJjtgZMAiAtzR/Km4nIxMeBd0nmqeZYYehhZM8DvCZzvPchwi29Tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2578790},"main":"dist/xhs-cli.js","types":"dist/xhs-cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ea4c60ab614a757dc8aa1535605cd406ae348594","scripts":{"lint":"eslint src/**/*.ts --config config/eslint.config.js","test":"echo \"No tests specified\" && exit 0","build":"npm run clean && npm run build:types && npm run build:webpack && chmod +x dist/xhs-cli.js","clean":"rm -rf dist temp_images/*","watch":"webpack --config config/webpack.dev.config.js --watch","format":"prettier --write src/**/*.ts","dev:cli":"tsx src/cli/cli.ts --help","prepack":"npm run build","version":"npm run build","lint:fix":"eslint src/**/*.ts --fix --config config/eslint.config.js","build:dev":"npm run clean && npm run build:types && webpack --config config/webpack.dev.config.js && chmod +x dist/xhs-cli.js","start:cli":"node dist/xhs-cli.js --help","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist --project config/tsconfig.json","postversion":"git push && git push --tags","dev:mcp:http":"tsx src/cli/cli.ts mcp --mode http","format:check":"prettier --check src/**/*.ts","build:webpack":"webpack --mode=production --config config/webpack.config.js","dev:mcp:stdio":"tsx src/cli/cli.ts mcp --mode stdio","prepublishOnly":"npm run build && npm run lint && npm run format:check","build:optimized":"npm run clean && npm run build:types && webpack --config config/webpack.optimized.config.js && chmod +x dist/xhs-cli.js"},"_npmUser":{"name":"derekluo","email":"happyluoding@gmail.com"},"repository":{"url":"git+https://github.com/algovate/xhs-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"XiaoHongShu CLI and MCP Server","directories":{},"_nodeVersion":"24.9.0","dependencies":{"cors":"^2.8.5","express":"^5.1.0","commander":"^12.0.0","puppeteer":"^22.0.0","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","webpack":"^5.101.3","prettier":"^3.0.0","ts-loader":"^9.5.4","typescript":"^5.0.0","@babel/core":"^7.28.4","@types/cors":"^2.8.19","@types/node":"^22.0.0","webpack-cli":"^6.0.1","babel-loader":"^10.0.0","@types/express":"^5.0.3","@babel/preset-env":"^7.28.3","terser-webpack-plugin":"^5.3.14","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xhs-mcp_0.7.3_1759114211580_0.28116853514253637","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"xhs-mcp","version":"0.8.3","keywords":["xiaohongshu","xhs","mcp","model-context-protocol","automation","puppeteer","cli","social-media","content-publishing","web-automation","typescript"],"author":{"name":"Algovate"},"license":"MIT","_id":"xhs-mcp@0.8.3","maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"homepage":"https://github.com/algovate/xhs-mcp#readme","bugs":{"url":"https://github.com/algovate/xhs-mcp/issues"},"bin":{"xhs-mcp":"dist/xhs-mcp.js"},"dist":{"shasum":"43f468ebd7b1fc3ef1d1b74cec19a09f3186196e","tarball":"https://registry.npmjs.org/xhs-mcp/-/xhs-mcp-0.8.3.tgz","fileCount":9,"integrity":"sha512-nbtitWrFh2c9y31QRz5mjMJgK2/A2MWHDB9Sq1likVH6qF6mBh4J82iKaYOIIxzpOSBfYYCRmnK0iz6oq0Fehg==","signatures":[{"sig":"MEUCIQDEMeMk9oJts/eTLmJE+99rHRraEabEt+NwM8Fiwu52DgIgcI4J4GjA+y78MAgNHnzUsBrBCDt7M+vyUL7V9aZbJPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2676981},"main":"dist/xhs-mcp.js","types":"dist/xhs-mcp.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f82fb2573de851c56fa954421be36a4c02b3a6dc","scripts":{"dev":"tsx src/cli/cli.ts","lint":"eslint src/**/*.ts --config config/eslint.config.js","test":"node tests/integration/image-downloader.test.js && node tests/integration/title-validation.test.js","build":"npm run clean && npm run build:types && npm run build:webpack && chmod +x dist/xhs-mcp.js","clean":"rm -rf dist temp_images/*","format":"prettier --write src/**/*.ts","prepack":"npm run build","version":"npm run build","lint:fix":"eslint src/**/*.ts --fix --config config/eslint.config.js","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist --project config/tsconfig.json","postversion":"git push && git push --tags","format:check":"prettier --check src/**/*.ts","build:webpack":"webpack --mode=production --config config/webpack.config.js","prepublishOnly":"npm run build && npm run lint && npm run format:check"},"_npmUser":{"name":"derekluo","email":"happyluoding@gmail.com"},"repository":{"url":"git+https://github.com/algovate/xhs-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"XiaoHongShu CLI and MCP Server","directories":{},"_nodeVersion":"24.9.0","dependencies":{"cors":"^2.8.5","express":"^5.1.0","commander":"^12.0.0","puppeteer":"^22.0.0","node-fetch":"^3.3.2","string-width":"^8.1.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","webpack":"^5.101.3","prettier":"^3.0.0","ts-loader":"^9.5.4","typescript":"^5.0.0","@babel/core":"^7.28.4","@types/cors":"^2.8.19","@types/node":"^22.0.0","webpack-cli":"^6.0.1","babel-loader":"^10.0.0","@types/express":"^5.0.3","@babel/preset-env":"^7.28.3","terser-webpack-plugin":"^5.3.14","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xhs-mcp_0.8.3_1759824398554_0.8721772177349907","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"xhs-mcp","version":"0.8.6","keywords":["xiaohongshu","xhs","mcp","model-context-protocol","automation","puppeteer","cli","social-media","content-publishing","web-automation","typescript"],"author":{"name":"Algovate"},"license":"MIT","_id":"xhs-mcp@0.8.6","maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"homepage":"https://github.com/algovate/xhs-mcp#readme","bugs":{"url":"https://github.com/algovate/xhs-mcp/issues"},"bin":{"xhs-mcp":"dist/xhs-mcp.js"},"dist":{"shasum":"2033d045c500ce291bf96d1e0bd8b685fa09d027","tarball":"https://registry.npmjs.org/xhs-mcp/-/xhs-mcp-0.8.6.tgz","fileCount":9,"integrity":"sha512-sW/+uSFGRs6JSMxuHEd2RtkKblqiklME4pbfWaBW+06lSQvjtwbbNgyRrjbAKDZY5ItRr/9sAfrLTrf5z1FrRQ==","signatures":[{"sig":"MEYCIQD85VhN7+Y3yAl1Wh28ENnxYUkDKxO/EL/kA3sExMXW0gIhAO3weIabnUjmaPKjbUaOzB5FNhbullDeS67PzusiPb8v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2786243},"main":"dist/xhs-mcp.js","types":"dist/xhs-mcp.d.ts","engines":{"node":">=18.0.0"},"gitHead":"cb141eb5f6d2c0491f45aef1c71285a634f47496","scripts":{"dev":"tsx src/cli/cli.ts","lint":"eslint src/**/*.ts --config config/eslint.config.js","test":"node tests/integration/image-downloader.test.js && node tests/integration/title-validation.test.js","build":"npm run clean && npm run build:types && npm run build:webpack && chmod +x dist/xhs-mcp.js","clean":"rm -rf dist temp_images/*","format":"prettier --write src/**/*.ts","prepack":"npm run build","version":"npm run build","lint:fix":"eslint src/**/*.ts --fix --config config/eslint.config.js","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist --project config/tsconfig.json","postversion":"git push && git push --tags","format:check":"prettier --check src/**/*.ts","build:webpack":"webpack --mode=production --config config/webpack.config.js","prepublishOnly":"npm run build && npm run lint && npm run format:check"},"_npmUser":{"name":"derekluo","email":"happyluoding@gmail.com"},"repository":{"url":"git+https://github.com/algovate/xhs-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"XiaoHongShu CLI and MCP Server","directories":{},"_nodeVersion":"24.10.0","dependencies":{"cors":"^2.8.5","express":"^5.1.0","commander":"^12.0.0","puppeteer":"^22.0.0","node-fetch":"^3.3.2","string-width":"^8.1.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","webpack":"^5.101.3","prettier":"^3.0.0","ts-loader":"^9.5.4","typescript":"^5.0.0","@babel/core":"^7.28.4","@types/cors":"^2.8.19","@types/node":"^22.0.0","webpack-cli":"^6.0.1","babel-loader":"^10.0.0","@types/express":"^5.0.3","@babel/preset-env":"^7.28.3","terser-webpack-plugin":"^5.3.14","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xhs-mcp_0.8.6_1761124340766_0.7678421802545656","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"xhs-mcp","version":"0.8.7","keywords":["xiaohongshu","xhs","mcp","model-context-protocol","automation","puppeteer","cli","social-media","content-publishing","web-automation","typescript"],"author":{"name":"Algovate"},"license":"MIT","_id":"xhs-mcp@0.8.7","maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"homepage":"https://github.com/algovate/xhs-mcp#readme","bugs":{"url":"https://github.com/algovate/xhs-mcp/issues"},"bin":{"xhs-mcp":"dist/xhs-mcp.js"},"dist":{"shasum":"ed036b8349b7875b69060ee36b573209296663ce","tarball":"https://registry.npmjs.org/xhs-mcp/-/xhs-mcp-0.8.7.tgz","fileCount":9,"integrity":"sha512-PrLceKw1t8lxxm88jjAi7SK4dRmb3dqvPSQz07YrUdVr+rN22ahsZtBAoV1eddvA4rvOYEbYH5/zZlimLslOgA==","signatures":[{"sig":"MEQCIB9lUI57JIfDusA4G/dRQLBZ4fhhi6+kuPMgMEfmbVr8AiAb7xX2IPeDzQLFzeueSLRqwTQNTfFoSjaPEuUFDSmnkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2906557},"main":"dist/xhs-mcp.js","types":"dist/xhs-mcp.d.ts","engines":{"node":">=18.0.0"},"gitHead":"45d10e9c3f996be85c61ec48016c2ff0022b79a0","scripts":{"dev":"tsx src/cli/cli.ts","lint":"eslint src/**/*.ts --config config/eslint.config.js","test":"node tests/integration/image-downloader.test.js && node tests/integration/title-validation.test.js","build":"npm run clean && npm run build:types && npm run build:webpack && chmod +x dist/xhs-mcp.js","clean":"rm -rf dist temp_images/*","format":"prettier --write src/**/*.ts","prepack":"npm run build","version":"npm run build","lint:fix":"eslint src/**/*.ts --fix --config config/eslint.config.js","validate":"node scripts/cli-validation.js","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist --project config/tsconfig.json","postversion":"git push && git push --tags","format:check":"prettier --check src/**/*.ts","build:webpack":"webpack --mode=production --config config/webpack.config.js","prepublishOnly":"npm run build && npm run lint && npm run format:check"},"_npmUser":{"name":"derekluo","email":"happyluoding@gmail.com"},"repository":{"url":"git+https://github.com/algovate/xhs-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"XiaoHongShu CLI and MCP Server","directories":{},"_nodeVersion":"24.10.0","dependencies":{"cors":"^2.8.5","express":"^5.1.0","commander":"^12.0.0","puppeteer":"^22.0.0","node-fetch":"^3.3.2","string-width":"^8.1.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","webpack":"^5.101.3","prettier":"^3.0.0","ts-loader":"^9.5.4","typescript":"^5.0.0","@babel/core":"^7.28.4","@types/cors":"^2.8.19","@types/node":"^22.0.0","webpack-cli":"^6.0.1","babel-loader":"^10.0.0","@types/express":"^5.0.3","@babel/preset-env":"^7.28.3","terser-webpack-plugin":"^5.3.14","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xhs-mcp_0.8.7_1761185698299_0.655426020641634","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"xhs-mcp","version":"0.8.8","keywords":["xiaohongshu","xhs","mcp","model-context-protocol","automation","puppeteer","cli","social-media","content-publishing","web-automation","typescript"],"author":{"name":"Algovate"},"license":"MIT","_id":"xhs-mcp@0.8.8","maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"homepage":"https://github.com/algovate/xhs-mcp#readme","bugs":{"url":"https://github.com/algovate/xhs-mcp/issues"},"bin":{"xhs-mcp":"dist/xhs-mcp.js"},"dist":{"shasum":"5ecb97b749e8fc3e9977fef72bedb3c087c6e272","tarball":"https://registry.npmjs.org/xhs-mcp/-/xhs-mcp-0.8.8.tgz","fileCount":9,"integrity":"sha512-50ltuBM6yXU/HfOCxpnqBVFdly6WFh6W9AibyzyprVilTOQBhqS2FTDiTnXB74DDn1BrG6CZJaWohTO4eKETaQ==","signatures":[{"sig":"MEUCIAEl8RvYfAhl+G49sjAkO/VePcFe76axRRVCtRJSSmfMAiEAlkFQqi44KfedgxVk+NeOXRF39zO3NHdXuEAuF0Zez4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2907628},"main":"dist/xhs-mcp.js","type":"module","types":"dist/xhs-mcp.d.ts","engines":{"node":">=18.0.0"},"gitHead":"740411e41e43d90c842ee7bfd2f096560c90e6a1","scripts":{"dev":"tsx src/cli/cli.ts","lint":"eslint src/**/*.ts --config config/eslint.config.js","test":"node tests/integration/image-downloader.test.js && node tests/integration/title-validation.test.js","build":"npm run clean && npm run build:types && npm run build:webpack && chmod +x dist/xhs-mcp.js","clean":"rm -rf dist temp_images/*","format":"prettier --write src/**/*.ts","prepack":"npm run build","version":"npm run build","lint:fix":"eslint src/**/*.ts --fix --config config/eslint.config.js","validate":"node scripts/cli-validation.js","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist --project config/tsconfig.json","postversion":"git push && git push --tags","format:check":"prettier --check src/**/*.ts","build:webpack":"webpack --mode=production --config config/webpack.config.js","prepublishOnly":"npm run build && npm run lint && npm run format:check"},"_npmUser":{"name":"derekluo","email":"happyluoding@gmail.com"},"repository":{"url":"git+https://github.com/algovate/xhs-mcp.git","type":"git"},"_npmVersion":"11.10.0","description":"XiaoHongShu CLI and MCP Server","directories":{},"_nodeVersion":"25.6.1","dependencies":{"cors":"^2.8.5","express":"^5.1.0","commander":"^12.0.0","puppeteer":"^22.0.0","node-fetch":"^3.3.2","string-width":"^8.1.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","webpack":"^5.101.3","prettier":"^3.0.0","ts-loader":"^9.5.4","typescript":"^5.0.0","@babel/core":"^7.28.4","@types/cors":"^2.8.19","@types/node":"^22.0.0","webpack-cli":"^6.0.1","babel-loader":"^10.0.0","@types/express":"^5.0.3","@babel/preset-env":"^7.28.3","terser-webpack-plugin":"^5.3.14","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xhs-mcp_0.8.8_1771566772176_0.7785533142913657","host":"s3://npm-registry-packages-npm-production"}},"0.8.11":{"name":"xhs-mcp","version":"0.8.11","keywords":["xiaohongshu","xhs","mcp","model-context-protocol","automation","puppeteer","cli","social-media","content-publishing","web-automation","typescript"],"author":{"name":"Algovate"},"license":"MIT","_id":"xhs-mcp@0.8.11","maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"homepage":"https://github.com/algovate/xhs-mcp#readme","bugs":{"url":"https://github.com/algovate/xhs-mcp/issues"},"bin":{"xhs-mcp":"dist/xhs-mcp.cjs"},"dist":{"shasum":"e2f60e3d673b28eb69b43e3437228d5dc3a26cd5","tarball":"https://registry.npmjs.org/xhs-mcp/-/xhs-mcp-0.8.11.tgz","fileCount":9,"integrity":"sha512-pvVFUIABYHk0/8mQB4UN55kMURxiefjHHHJbtFS2QcHxm8mF2xxqv6XkBQmdeogN6xUBNdZcvCHdXkPLB6EwzA==","signatures":[{"sig":"MEQCIHTwFkkyP1QpX+DoWM6/MxgW9QSyd5kWnsRlqAyLeACbAiAIk0xK3ijmNmlHeECXMTsLwyI/iw9eo6Q/0cu1uAMr6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2912787},"main":"dist/xhs-mcp.cjs","type":"module","types":"dist/xhs-mcp.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9147880c98b3931b89b261006fab3a716addde59","scripts":{"dev":"tsx src/cli/cli.ts","lint":"eslint src/**/*.ts --config config/eslint.config.js","test":"node tests/integration/image-downloader.test.js && node tests/integration/title-validation.test.js","build":"npm run clean && npm run build:types && npm run build:webpack && chmod +x dist/xhs-mcp.cjs","clean":"rm -rf dist temp_images/*","format":"prettier --write src/**/*.ts","prepack":"npm run build","version":"npm run build","lint:fix":"eslint src/**/*.ts --fix --config config/eslint.config.js","validate":"node scripts/cli-validation.js","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist --project config/tsconfig.json","postversion":"git push && git push --tags","format:check":"prettier --check src/**/*.ts","build:webpack":"webpack --mode=production --config config/webpack.config.js","prepublishOnly":"npm run build && npm run lint && npm run format:check"},"_npmUser":{"name":"derekluo","email":"happyluoding@gmail.com"},"repository":{"url":"git+https://github.com/algovate/xhs-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"XiaoHongShu CLI and MCP Server","directories":{},"_nodeVersion":"25.6.1","dependencies":{"cors":"^2.8.5","express":"^5.1.0","commander":"^12.0.0","puppeteer":"^22.0.0","node-fetch":"^3.3.2","string-width":"^8.1.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","webpack":"^5.101.3","prettier":"^3.0.0","ts-loader":"^9.5.4","typescript":"^5.0.0","@babel/core":"^7.28.4","@types/cors":"^2.8.19","@types/node":"^22.0.0","webpack-cli":"^6.0.1","babel-loader":"^10.0.0","@types/express":"^5.0.3","@babel/preset-env":"^7.28.3","terser-webpack-plugin":"^5.3.14","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xhs-mcp_0.8.11_1772333254454_0.4107837581817668","host":"s3://npm-registry-packages-npm-production"}},"0.8.13":{"name":"xhs-mcp","version":"0.8.13","type":"module","description":"XiaoHongShu CLI and MCP Server","main":"dist/xhs-mcp.cjs","types":"dist/xhs-mcp.d.ts","bin":{"xhs-mcp":"dist/xhs-mcp.cjs"},"scripts":{"build":"npm run clean && npm run build:types && npm run build:webpack && chmod +x dist/xhs-mcp.cjs","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist --project config/tsconfig.json","build:webpack":"webpack --mode=production --config config/webpack.config.js","clean":"rm -rf dist temp_images/*","dev":"tsx src/cli/cli.ts","lint":"eslint src/**/*.ts --config config/eslint.config.js","lint:fix":"eslint src/**/*.ts --fix --config config/eslint.config.js","format":"prettier --write src/**/*.ts","format:check":"prettier --check src/**/*.ts","test":"node tests/integration/image-downloader.test.js && node tests/integration/title-validation.test.js","validate":"node scripts/cli-validation.js","prepublishOnly":"npm run build && npm run lint && npm run format:check","prepack":"npm run build","version":"npm run build","postversion":"git push && git push --tags"},"keywords":["xiaohongshu","xhs","mcp","model-context-protocol","automation","puppeteer","cli","social-media","content-publishing","web-automation","typescript"],"author":{"name":"Algovate"},"license":"MIT","homepage":"https://github.com/algovate/xhs-mcp#readme","repository":{"type":"git","url":"git+https://github.com/algovate/xhs-mcp.git"},"bugs":{"url":"https://github.com/algovate/xhs-mcp/issues"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","commander":"^12.0.0","cors":"^2.8.5","express":"^5.1.0","node-fetch":"^3.3.2","puppeteer":"^22.0.0","string-width":"^8.1.0"},"devDependencies":{"@babel/core":"^7.28.4","@babel/preset-env":"^7.28.3","@types/cors":"^2.8.19","@types/express":"^5.0.3","@types/node":"^22.0.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","babel-loader":"^10.0.0","eslint":"^9.0.0","prettier":"^3.0.0","terser-webpack-plugin":"^5.3.14","ts-loader":"^9.5.4","tsx":"^4.0.0","typescript":"^5.0.0","webpack":"^5.101.3","webpack-cli":"^6.0.1"},"engines":{"node":">=18.0.0"},"_id":"xhs-mcp@0.8.13","gitHead":"16ddd732da5f2775f28d16798389a96b5084a312","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-b21nR5UOxWgiTfM2p8oYPR34OO+1Z8Wja+i+k/sRCMJPI3/qAzMz8VMNxah3eGBMALNek5CrBpVKiQMkoifPaw==","shasum":"b1a2ee4fcf88d58e615ced0120b9641b0b925d38","tarball":"https://registry.npmjs.org/xhs-mcp/-/xhs-mcp-0.8.13.tgz","fileCount":9,"unpackedSize":2949725,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHmqFQQpES9XelYzZzyL2+tG+KOmvDUW191wasca4LGtAiEAwGSAQIirT2jVvE9Av0NglDH0/SXC1Ucdwipv0s8JFk8="}]},"_npmUser":{"name":"derekluo","email":"happyluoding@gmail.com"},"directories":{},"maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/xhs-mcp_0.8.13_1778985128936_0.40147098537246895"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-20T03:19:53.498Z","modified":"2026-05-17T02:32:09.230Z","0.1.0":"2025-09-20T03:19:53.711Z","0.2.0":"2025-09-22T11:46:39.967Z","0.2.1":"2025-09-22T13:15:55.301Z","0.2.2":"2025-09-23T03:01:43.916Z","0.2.3":"2025-09-23T08:48:52.000Z","0.2.4":"2025-09-23T09:04:47.185Z","0.2.5":"2025-09-23T09:38:29.666Z","0.2.8":"2025-09-23T09:49:57.760Z","0.2.9":"2025-09-23T14:41:43.667Z","0.2.10":"2025-09-23T15:11:23.948Z","0.3.0":"2025-09-24T03:12:48.549Z","0.4.0":"2025-09-24T10:43:39.278Z","0.4.1":"2025-09-25T00:32:52.472Z","0.5.0":"2025-09-25T03:53:53.535Z","0.6.0":"2025-09-25T05:01:10.121Z","0.7.0":"2025-09-28T05:26:45.427Z","0.7.1":"2025-09-28T07:34:32.602Z","0.7.3":"2025-09-29T02:50:11.876Z","0.8.2":"2025-10-07T03:43:59.301Z","0.8.3":"2025-10-07T08:06:38.813Z","0.8.4":"2025-10-22T06:11:16.203Z","0.8.6":"2025-10-22T09:12:21.002Z","0.8.7":"2025-10-23T02:14:58.577Z","0.8.8":"2026-02-20T05:52:52.415Z","0.8.11":"2026-03-01T02:47:34.685Z","0.8.13":"2026-05-17T02:32:09.125Z"},"bugs":{"url":"https://github.com/algovate/xhs-mcp/issues"},"author":{"name":"Algovate"},"license":"MIT","homepage":"https://github.com/algovate/xhs-mcp#readme","keywords":["xiaohongshu","xhs","mcp","model-context-protocol","automation","puppeteer","cli","social-media","content-publishing","web-automation","typescript"],"repository":{"type":"git","url":"git+https://github.com/algovate/xhs-mcp.git"},"description":"XiaoHongShu CLI and MCP Server","maintainers":[{"name":"derekluo","email":"happyluoding@gmail.com"}],"readme":"# xhs-mcp\n\n简体中文 | [English](./README.en.md)\n\n`xhs-mcp` 提供统一的命令行入口 `xhs-mcp`，并内置 MCP 服务器子命令。用于小红书（xiaohongshu.com）的 Model Context Protocol（MCP）服务器与 CLI 工具，支持登录、发布、搜索、推荐等自动化能力（基于 Puppeteer）。\n\n[![npm version](https://img.shields.io/npm/v/xhs-mcp.svg)](https://www.npmjs.com/package/xhs-mcp)\n[![npm downloads](https://img.shields.io/npm/dm/xhs-mcp.svg)](https://www.npmjs.com/package/xhs-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## 📦 NPM 信息\n\n- 包名: `xhs-mcp`\n- 运行 CLI（推荐）: `npx xhs-mcp <subcommand>`\n- 启动 MCP：`npx xhs-mcp mcp [--mode stdio|http] [--port 3000]`\n\n## ✨ 功能\n\n- 认证：登录、登出、状态检查\n- 发布：图文和视频发布\n  - **图文发布**：标题≤20字符（40显示单位）、内容≤1000、最多18图\n  - **视频发布**：支持 MP4、MOV、AVI、MKV、WebM、FLV、WMV 格式\n  - ⭐ **新功能**: 支持图片 URL 自动下载（HTTP/HTTPS）\n  - ⭐ **新功能**: 标题宽度精确验证（CJK字符2单位，ASCII字符1单位）\n  - 支持本地图片路径\n  - 支持 URL 和本地路径混合使用\n  - 智能缓存机制，避免重复下载\n- 发现：推荐、搜索、详情、评论\n- 用户笔记：列表查看、删除管理\n- 自动化：Puppeteer 驱动、无头模式、Cookie 管理\n- 验证：发布功能验证脚本，支持 HTML 报告生成\n\n## 📋 可用工具\n\n- `xhs_auth_login`、`xhs_auth_logout`、`xhs_auth_status`\n- `xhs_discover_feeds`、`xhs_search_note`、`xhs_get_note_detail`\n- `xhs_comment_on_note`\n- `xhs_get_user_notes`、`xhs_delete_note`（用户笔记管理）\n- `xhs_publish_content`（统一发布接口：`type`、`title`、`content`、`media_paths`、`tags`）\n  - **图片发布**：1-18个图片文件或URL\n  - **视频发布**：恰好1个视频文件\n  - **混合使用**：支持图片URL和本地路径混合\n\n## 🚀 快速开始（MCP）\n\n### Stdio 模式（默认）\n\n```bash\nnpx xhs-mcp mcp\n\n# 调试日志\nXHS_ENABLE_LOGGING=true npx xhs-mcp mcp\n```\n\n> 首次运行提示：如果未安装 Puppeteer 浏览器，先执行\n>\n> ```bash\n> npx xhs-mcp browser    # 自动检查并安装 Chromium，显示可执行路径\n> # 或\n> npx puppeteer browsers install chrome\n> ```\n>\n> 输出示例：\n> ```json\n> {\n>   \"success\": true,\n>   \"message\": \"Chromium is ready\",\n>   \"data\": {\n>     \"installed\": true,\n>     \"executablePath\": \"/path/to/chromium\"\n>   }\n> }\n> ```\n\n验证 MCP 连接：\n\n```bash\necho '{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"tools/list\"}' | npx xhs-mcp mcp\n```\n\n### HTTP 模式\n\n```bash\n# 启动 HTTP 服务器（默认端口 3000）\nnpx xhs-mcp mcp --mode http\n\n# 指定端口\nnpx xhs-mcp mcp --mode http --port 8080\n\n# 调试模式\nXHS_ENABLE_LOGGING=true npx xhs-mcp mcp --mode http\n```\n\nHTTP 服务器支持：\n- **Streamable HTTP** (协议版本 2025-03-26) - 端点：`/mcp`\n- **SSE** (协议版本 2024-11-05) - 端点：`/sse` 和 `/messages`\n- **健康检查** - 端点：`/health`\n\n详细文档请参考：[HTTP Transports](./docs/HTTP_TRANSPORTS.md)\n\n## 🧰 CLI 子命令\n\n```bash\n# 认证\nnpx xhs-mcp login --timeout 120\nnpx xhs-mcp logout\nnpx xhs-mcp status\n\n# 浏览器依赖\nnpx xhs-mcp browser [--with-deps]  # 检查并安装 Chromium，显示可执行路径\n\n# 发现与检索\nnpx xhs-mcp feeds [-b /path/to/chromium]\nnpx xhs-mcp search -k 关键字 [-b /path/to/chromium]\n\n# 当前用户笔记\nnpx xhs-mcp usernote list [-l 20] [--cursor <cursor>] [-b /path/to/chromium]\n\n# 删除用户笔记\nnpx xhs-mcp usernote delete --note-id <id> [-b /path/to/chromium]\nnpx xhs-mcp usernote delete --last-published [-b /path/to/chromium]\n\n# 互动\nnpx xhs-mcp comment --feed-id <id> --xsec-token <token> -n \"Nice!\" [-b /path/to/chromium]\n\n# 发布\n# 使用本地图片\nnpx xhs-mcp publish --type image --title 标题 --content 内容 -m path1.jpg,path2.png --tags a,b [-b /path/to/chromium]\n\n# ⭐ 使用图片 URL（自动下载）\nnpx xhs-mcp publish --type image --title 标题 --content 内容 -m \"https://example.com/img1.jpg,https://example.com/img2.png\" --tags a,b\n\n# 混合使用 URL 和本地路径\nnpx xhs-mcp publish --type image --title 标题 --content 内容 -m \"https://example.com/img1.jpg,./local/img2.jpg\" --tags a,b\n\n# 发布视频\nnpx xhs-mcp publish --type video --title 视频标题 --content 视频描述 -m path/to/video.mp4 --tags a,b [-b /path/to/chromium]\n\n# 查看可用工具\nnpx xhs-mcp tools [--detailed] [--json]\n\n# 启动 MCP\nnpx xhs-mcp mcp [--mode stdio|http] [--port 3000]\n```\n\n## 🔧 客户端接入（Cursor）\n\n### Stdio 模式\n\n`.cursor/mcp.json`：\n\n```json\n{\n  \"mcpServers\": {\n    \"xhs-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"xhs-mcp\", \"mcp\"],\n      \"env\": { \"XHS_ENABLE_LOGGING\": \"true\" }\n    }\n  }\n}\n```\n\n### HTTP 模式\n\n`.cursor/mcp.json`：\n\n```json\n{\n  \"mcpServers\": {\n    \"xhs-mcp-http\": {\n      \"command\": \"npx\",\n      \"args\": [\"xhs-mcp\", \"mcp\", \"--mode\", \"http\", \"--port\", \"3000\"],\n      \"env\": { \"XHS_ENABLE_LOGGING\": \"true\" }\n    }\n  }\n}\n```\n\n或者使用 HTTP 客户端直接连接：\n\n```json\n{\n  \"mcpServers\": {\n    \"xhs-mcp-http\": {\n      \"url\": \"http://localhost:3000/mcp\"\n    }\n  }\n}\n```\n\n## ⚠️ 注意事项\n\n- **图文发布**：标题≤20、内容≤1000、图片≤18\n- **视频发布**：支持多种格式，文件大小建议≤500MB\n- 避免同账号多端同时网页登录\n- 合理控制发帖频率\n- 图片 URL 自动下载到 `./temp_images/` 目录（自动缓存）\n- 图片 URL 支持格式：JPEG、PNG、GIF、WebP、BMP\n\n## 📖 文档和示例\n\n### 📚 文档\n- [完整使用指南](./docs/USAGE_GUIDE.md) - 详细的使用说明和最佳实践\n- [HTTP 传输文档](./docs/HTTP_TRANSPORTS.md) - HTTP/SSE 模式配置\n- [发布指南](./docs/PUBLISH_GUIDE.md) - NPM 发布流程\n\n### 🎨 示例\n- [使用示例](./examples/README.md) - 图片和发布示例\n- [示例图片](./examples/images/) - 可用于测试的示例图片\n\n### 🧪 测试\n- [运行测试](./tests/README.md) - 测试说明和用法\n- 运行所有测试：`npm test`\n- **验证脚本**: `npm run validate` - 发布功能验证测试，生成 HTML 报告\n\n## 🛠️ 构建说明\n\n- 统一使用单一生产构建配置：`config/webpack.config.js`\n- 已移除开发与优化变体；开发请直接运行：\n  - `npm run dev`（直接运行 TypeScript CLI）\n  - `npm run build`（打包到 `dist/xhs-mcp.cjs`）\n\n## 🙏 致谢\n\n基于 [xiaohongshu-mcp](https://github.com/xpzouying/xiaohongshu-mcp) 重构与扩展（TypeScript、Puppeteer、MCP 优化、日志清理、NPM 发布）。\n","readmeFilename":"README.md"}