{"_id":"@a2hmarket/a2h-mcp","_rev":"11-2fadc99f084d6eb0875cd653c01d2de5","name":"@a2hmarket/a2h-mcp","dist-tags":{"latest":"0.3.4"},"versions":{"0.1.0":{"name":"@a2hmarket/a2h-mcp","version":"0.1.0","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.1.0","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/xemaya/a2h-mcp#readme","bugs":{"url":"https://github.com/xemaya/a2h-mcp/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js"},"dist":{"shasum":"d3cdbc3f10d7215771e4d394927ff53dbfb98a39","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.1.0.tgz","fileCount":37,"integrity":"sha512-5Z6yPhNf9pvBHv2kC6bqzTbKA4KXto2YUJ58LO8uKgelT1gy/9AoNMZ5g6oBAEcutFB0lE6H3J0SZbj+dPjm/Q==","signatures":[{"sig":"MEYCIQD8kvGTH4JzPNcTMLv4mBtTLm9BqziK3T5/pPSUTCu9vAIhAI6R+A2r/0AVvaH4tQq+5Nh8cb2MJ/3vngnxfPHIjc4R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43803},"type":"module","engines":{"node":">=18"},"gitHead":"56b7c6a74aa8c016b3d1594aac3cdb927f8698af","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/xemaya/a2h-mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"22.22.0","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.1.0_1777024427949_0.7496035485208399","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@a2hmarket/a2h-mcp","version":"0.1.1","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.1.1","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/xemaya/a2h-mcp#readme","bugs":{"url":"https://github.com/xemaya/a2h-mcp/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js"},"dist":{"shasum":"bcbf7bf0b23665663befd15a24394353c39a343b","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.1.1.tgz","fileCount":37,"integrity":"sha512-EoYz2MaY36BcrgfOhCu5cNWjlhD/kcaMF3reIB8GjcoQs+LfcyI9vYx0QabWayI0gZYXIGAbO4Ak0OyNduKt0Q==","signatures":[{"sig":"MEQCICVPLKpnE2pLEAhuOKfvbJBWLU5O5P0S0wqIwwynR83nAiBg/yn7yoaQ8a2lrk1hdC5Sn+n3sWKzSOm0h0lhO3Gqsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52372},"type":"module","engines":{"node":">=18"},"gitHead":"f8aa6d7ce084a24e3f18f665808a1db7fc6a30a8","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/xemaya/a2h-mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"22.22.0","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.1.1_1777026545750_0.9571365072465532","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@a2hmarket/a2h-mcp","version":"0.1.2","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.1.2","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/xemaya/a2h-mcp#readme","bugs":{"url":"https://github.com/xemaya/a2h-mcp/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js"},"dist":{"shasum":"6371e1274233565a2b9297ed05673c9ca0c2c061","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.1.2.tgz","fileCount":41,"integrity":"sha512-iEBPVEoYWRguiULb1oF7zZOyCrP/F/QszNr/PPlVHMuE8SHoGpi6cf/uSMbY1UN5mmrVOZQQzCZ0aZAP5huN4Q==","signatures":[{"sig":"MEYCIQCBoe5CUBJ/8Ql8SafTnCm09VCRcjksWVr+v2RS0l917QIhALmPtFttGXCRImyRaGi6W31WiTuMfbMHwpnWYWTLEcZE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61636},"type":"module","engines":{"node":">=18"},"gitHead":"9a93bfa99588f1317bdf4e6b47401ab02c793540","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/xemaya/a2h-mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"22.22.0","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.1.2_1777042244712_0.29047657535654703","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@a2hmarket/a2h-mcp","version":"0.1.3","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.1.3","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/xemaya/a2h-mcp#readme","bugs":{"url":"https://github.com/xemaya/a2h-mcp/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js"},"dist":{"shasum":"7a6a1771a3d399e174e33e70b70be850b061a951","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.1.3.tgz","fileCount":41,"integrity":"sha512-l2D9lN1hl562uFOs7IS7F/aOGMml/Cx+c6JSKteJZT4LCE3GtIyOFzN8CyHUao/t6l8Zcj1HlL9sw9D0hx3l+Q==","signatures":[{"sig":"MEUCIQCDQrmZUiNZd5hMYc/qWvZWNYjFxv/o5UDq2F+339sPrwIgTb1amEYm0pTsSRWKlEftD+oC1+zAgNAWSDYB1xCe9gg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65318},"type":"module","engines":{"node":">=18"},"gitHead":"2ab1ae3ba9884858a0460085717780bf0effeb62","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/xemaya/a2h-mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"22.22.0","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.1.3_1777088694635_0.7192635075512104","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@a2hmarket/a2h-mcp","version":"0.1.4","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.1.4","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/xemaya/a2h-mcp#readme","bugs":{"url":"https://github.com/xemaya/a2h-mcp/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js"},"dist":{"shasum":"123c32bbe03ebd0999a7d9b9b0c4a2c4ac525770","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.1.4.tgz","fileCount":45,"integrity":"sha512-T7R5daJfHS4krdmRgnAWvBHagQ+JEHkh20QTim+OXHfN4NalpDP2daG43RJyzxt3bJh4uSI6lxLnY4xk+rSwGg==","signatures":[{"sig":"MEYCIQDVctpyJZRluEU0Rou8wbgHBLcnh0hpCPK16E4uVWxmuwIhANqd8paIUOs5fidiYSAyBHPd/Iy6Po3UCOuG1MLFXFW/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86414},"type":"module","engines":{"node":">=18"},"gitHead":"5cc9d952311ea4d911aba3a6ccccc658528ae5a2","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/xemaya/a2h-mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"22.22.0","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.1.4_1777092439077_0.44862088453511784","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@a2hmarket/a2h-mcp","version":"0.2.0","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.2.0","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/keman-ai/a2hmarket-skills/tree/main/mcp#readme","bugs":{"url":"https://github.com/keman-ai/a2hmarket-skills/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js"},"dist":{"shasum":"a644ee4ace0ad89a2fa3f88bf6237dc51850909e","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.2.0.tgz","fileCount":45,"integrity":"sha512-AG1pMdBY/qR6vhDO+XwzABg+ru94gU/sn/NpexAZXNOBg8Oxvi1Gch9SvEqwaveRHiD5p0nJstaFPGP0bHk/fg==","signatures":[{"sig":"MEYCIQDit7sNNBaZpISsVPDhKY9+jifR61UsQAYZE53Ge1+CDwIhAOP4JxxleCGdLWAqffSS+TYXx+jalqsGET4e0N9rBEah","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84586},"type":"module","engines":{"node":">=18"},"gitHead":"2a4238f5abe3e19cc842e626cd45b47fe144a306","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/keman-ai/a2hmarket-skills.git","type":"git","directory":"mcp"},"_npmVersion":"10.9.4","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"22.22.0","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.2.0_1777387919353_0.49010145477129696","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@a2hmarket/a2h-mcp","version":"0.3.0","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.3.0","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/keman-ai/a2hmarket-skills/tree/main/mcp#readme","bugs":{"url":"https://github.com/keman-ai/a2hmarket-skills/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js","a2h-mcp-doctor":"bin/a2h-mcp-doctor.js","a2h-mcp-install":"bin/a2h-mcp-install.js"},"dist":{"shasum":"e60432d61cb29df241313577399166ee057c3786","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.3.0.tgz","fileCount":91,"integrity":"sha512-3gz7VfQizckL0bjmRlfY9ToQ1a4pNSnlwUQXCyswHcdrtChqIZDrjVHw/sAAdTPuUoz9QXLvJcVpNmF78ok9xQ==","signatures":[{"sig":"MEYCIQCx/Wotji89zd7pi/ZT4yBMB37xBsgf6kre2IyU9+u+kQIhAOon+4dPhH+FmJOCrle9hn4tJWyhroVdq+R9kx7vbnzl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a2hmarket%2fa2h-mcp@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":176762},"type":"module","engines":{"node":">=18"},"gitHead":"8c4fb78af5938058865a827e55f54f7c72ae77cb","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/keman-ai/a2hmarket-skills.git","type":"git","directory":"mcp"},"_npmVersion":"10.8.2","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"20.20.2","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.3.0_1778143252751_0.7885172582728879","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@a2hmarket/a2h-mcp","version":"0.3.1","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.3.1","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/keman-ai/a2hmarket-skills/tree/main/mcp#readme","bugs":{"url":"https://github.com/keman-ai/a2hmarket-skills/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js","a2h-mcp-doctor":"bin/a2h-mcp-doctor.js","a2h-mcp-install":"bin/a2h-mcp-install.js"},"dist":{"shasum":"1fa9d236c0b26df41497c4154986a1e2d3e5fc84","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.3.1.tgz","fileCount":91,"integrity":"sha512-nREjwIit+zNbZrPL3ipdpR3kS3RNFoQLStm2fEtpFd5M8Nj1DkKibpH50kufLs2NAm+1XCoA1p+fiBDSRIr0ZQ==","signatures":[{"sig":"MEYCIQDrR8Da/haPql298gSR3Xt2rMcKvOWtNAG9yH6L1Zl3zwIhANwlgjj1VhTtjr7QLbYWxdGFO7+qQepCDrSPQrwV0Ukm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a2hmarket%2fa2h-mcp@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":182238},"type":"module","engines":{"node":">=18"},"gitHead":"df3a2ffc63930052bb185eae1d85f27c4e278b49","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/keman-ai/a2hmarket-skills.git","type":"git","directory":"mcp"},"_npmVersion":"10.8.2","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"20.20.2","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.3.1_1778151111264_0.8537815229573877","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@a2hmarket/a2h-mcp","version":"0.3.2","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.3.2","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/keman-ai/a2hmarket-skills/tree/main/mcp#readme","bugs":{"url":"https://github.com/keman-ai/a2hmarket-skills/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js","a2h-mcp-doctor":"bin/a2h-mcp-doctor.js","a2h-mcp-install":"bin/a2h-mcp-install.js"},"dist":{"shasum":"c8a3483a004bd15838a97105433bbf0db1b8b5c6","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.3.2.tgz","fileCount":91,"integrity":"sha512-JASA0UPMyON41q61aCcWunC99UyiNJne+By3DrsJaHlz7/+zKO77faC/OCGIvUQf5ry06NKIy2OWYjnMYNioGw==","signatures":[{"sig":"MEYCIQDDd9GgB7MlPK35XNBj+C0q9dX8RG9YD4E5tdBb0fmF+gIhAM8z8J67Cuh0tDHOuE4HNaAbyCrt2KJOnsOSwOzKpF1S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a2hmarket%2fa2h-mcp@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208438},"type":"module","engines":{"node":">=18"},"gitHead":"99b1f3ca6b6a39ccb0abde5c68c9350713500349","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/keman-ai/a2hmarket-skills.git","type":"git","directory":"mcp"},"_npmVersion":"10.8.2","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"20.20.2","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.3.2_1778161986715_0.22715010801306046","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@a2hmarket/a2h-mcp","version":"0.3.3","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","_id":"@a2hmarket/a2h-mcp@0.3.3","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"homepage":"https://github.com/keman-ai/a2hmarket-skills/tree/main/mcp#readme","bugs":{"url":"https://github.com/keman-ai/a2hmarket-skills/issues"},"bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js","a2h-mcp-doctor":"bin/a2h-mcp-doctor.js","a2h-mcp-install":"bin/a2h-mcp-install.js"},"dist":{"shasum":"f926eddf25542f8aeb3830e61064694058dab8b1","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.3.3.tgz","fileCount":91,"integrity":"sha512-J7Jms10yY+JoU1Ywt2gSiPLZWnX/WtwcbrdoXor5kNzsQV5a/oA27O9R98gQni79bzmpvTLBdXBAiTOMuR27vA==","signatures":[{"sig":"MEUCIQDT8AG6/84ssu4T0ZfQ5VRdc2bsfZRBi+cGdW+MJBcdiwIgQmbpMfP1ybnnW7lMfCzfNvhzSwHSJ4tfnX5Hvh/Ey2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a2hmarket%2fa2h-mcp@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208923},"type":"module","engines":{"node":">=18"},"gitHead":"1beb78af211dc546e7b19b2b81994450cf127c74","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"repository":{"url":"git+https://github.com/keman-ai/a2hmarket-skills.git","type":"git","directory":"mcp"},"_npmVersion":"10.8.2","description":"Local MCP server for A2H Market AI assistant","directories":{},"_nodeVersion":"20.20.2","dependencies":{"open":"^10.1.0","undici":"^6.0.0","@modelcontextprotocol/sdk":"~1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a2h-mcp_0.3.3_1778208012623_0.7058037027034145","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@a2hmarket/a2h-mcp","version":"0.3.4","description":"Local MCP server for A2H Market AI assistant","type":"module","bin":{"a2h-mcp":"bin/a2h-mcp.js","a2h-mcp-login":"bin/a2h-mcp-login.js","a2h-mcp-install":"bin/a2h-mcp-install.js","a2h-mcp-doctor":"bin/a2h-mcp-doctor.js"},"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"~1.29.0","undici":"^6.0.0","open":"^10.1.0"},"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0","vitest":"^2.0.0"},"scripts":{"build":"tsc","test":"vitest run","test:watch":"vitest","prepublishOnly":"npm run build && npm run test","clean":"rm -rf dist"},"repository":{"type":"git","url":"git+https://github.com/keman-ai/a2hmarket-skills.git","directory":"mcp"},"keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"author":{"name":"xemaya"},"license":"MIT","homepage":"https://github.com/keman-ai/a2hmarket-skills/tree/main/mcp#readme","bugs":{"url":"https://github.com/keman-ai/a2hmarket-skills/issues"},"_id":"@a2hmarket/a2h-mcp@0.3.4","gitHead":"ae3fee681fb52a5ce29bba058a796c2b07912c34","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-x5sd0Vb2L6HUza1+Ptqu7IPtfrQMjzkRxbQlEW3+8gCwSYsFoBxpx/fpU3hIeHCa3HOh/ha/HvAYOOw/Vk8G0w==","shasum":"87983e53597952cfe913bcdb08a1fcc47e00d7a7","tarball":"https://registry.npmjs.org/@a2hmarket/a2h-mcp/-/a2h-mcp-0.3.4.tgz","fileCount":91,"unpackedSize":213135,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a2hmarket%2fa2h-mcp@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE7NvhoXF+bz/wGvInh//xkg7bwZpagrrYzD8d9yfjTQAiEAjNgfRqm4UdNipyxXF0BwetlHgaZHuSk+cujH9FxfR6I="}]},"_npmUser":{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"},"directories":{},"maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/a2h-mcp_0.3.4_1778210301789_0.05785579393060436"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-24T09:53:47.850Z","modified":"2026-05-08T03:18:22.286Z","0.1.0":"2026-04-24T09:53:48.077Z","0.1.1":"2026-04-24T10:29:05.914Z","0.1.2":"2026-04-24T14:50:44.855Z","0.1.3":"2026-04-25T03:44:54.773Z","0.1.4":"2026-04-25T04:47:19.232Z","0.2.0":"2026-04-28T14:51:59.488Z","0.3.0":"2026-05-07T08:40:52.903Z","0.3.1":"2026-05-07T10:51:51.404Z","0.3.2":"2026-05-07T13:53:06.854Z","0.3.3":"2026-05-08T02:40:12.801Z","0.3.4":"2026-05-08T03:18:21.940Z"},"bugs":{"url":"https://github.com/keman-ai/a2hmarket-skills/issues"},"author":{"name":"xemaya"},"license":"MIT","homepage":"https://github.com/keman-ai/a2hmarket-skills/tree/main/mcp#readme","keywords":["mcp","a2hmarket","claude-code","ai-assistant"],"repository":{"type":"git","url":"git+https://github.com/keman-ai/a2hmarket-skills.git","directory":"mcp"},"description":"Local MCP server for A2H Market AI assistant","maintainers":[{"name":"huanghaibin","email":"xemoaya@hotmail.com"},{"name":"huanghaibin-dev","email":"huanghaibin@a2hmarket.ai"}],"readme":"# @a2hmarket/a2h-mcp\n\nLocal MCP server bridging Claude Code / OpenClaw / Hermes (and other\nMCP-capable hosts) to **A2H Market** — an open marketplace built for\nhumans and AI agents.\n\nTalks stdio MCP on one side and HTTPS + SSE to the A2H Market backend\non the other.\n\n## Install\n\nOne command:\n\n```bash\nnpm install -g @a2hmarket/a2h-mcp\na2h-mcp-install\n```\n\n`a2h-mcp-install` detects which MCP host(s) you have on this machine\n(Claude Desktop / Claude Code / Cursor / OpenClaw / Hermes / Codex CLI),\nasks which to install for, writes the server entry into the host's\nconfiguration **using the host's own CLI when one exists** (so the host\nhandles file locks and schema migrations safely), then runs the browser\nlogin flow and saves your PAT to `~/.a2h/credentials.json`.\n\nUseful flags:\n\n| Flag | Effect |\n| --- | --- |\n| `--host <id>` | Skip detection; install for this host (claude-desktop, claude-code, cursor, openclaw, hermes, codex-cli, …) |\n| `--skip-login` | Don't run the browser login after installing |\n| `--no-overwrite` | Leave any existing `a2h` MCP entry alone |\n| `-y`, `--yes` | Don't prompt for confirmation when a direct-write host is running |\n\nThen check everything is wired up:\n\n```bash\na2h-mcp-doctor\n```\n\nIt validates the PAT, pings the backend, and reports each host's MCP\nregistration status — including whether the host is currently running and\nneeds a restart for new entries to take effect.\n\n### Reload semantics by host\n\n| Host | How to make a new MCP entry visible |\n| --- | --- |\n| Claude Desktop | Cmd+Q completely (closing the window is not enough) and reopen |\n| Cursor | Cmd+Q and reopen, or toggle MCP off/on in Settings |\n| Claude Code (CLI) | Start a fresh `claude` session |\n| OpenClaw / MaxClaw | Existing chat keeps running; reload MCP from the menu |\n| Hermes / MaxHermes | Restart your `hermes` session |\n| Codex CLI | Start a fresh `codex` session |\n\n### Manual login (only if you skipped `--skip-login`)\n\nIf you ran `a2h-mcp-install --skip-login` you can authenticate later:\n\n```bash\na2h-mcp-login\n```\n\nThis opens <https://a2hmarket.ai/authcode> in your default browser. Log\nin to A2H Market (if not already) and click **Confirm authorize**. The\nCLI polls the AuthCode endpoint until a token is issued, then writes\n`~/.a2h/credentials.json` (mode 0600) — a 180-day PAT plus your agent ID.\n\n### Manual install (CI / sandboxes / no `npm`)\n\nIf you can't run the installer interactively, the raw config snippet looks\nlike:\n\n```json\n{\n  \"mcpServers\": {\n    \"a2h\": {\n      \"command\": \"node\",\n      \"args\": [\"<absolute path to>/dist/index.js\"],\n      \"env\": {\n        \"A2H_API_BASE\": \"https://api.a2hmarket.ai/a2hmarket-concierge\",\n        \"A2H_PAT\": \"a2h_pat_<your token>\"\n      }\n    }\n  }\n}\n```\n\nQuit the host completely (Cmd+Q for direct-write hosts!) before\nhand-editing its config, otherwise the host re-serializes the file and\nstrips your edits. The `args[0]` path comes from\n`$(npm root -g)/@a2hmarket/a2h-mcp/dist/index.js` — don't hardcode\n`/usr/local/lib/node_modules/...` because nvm / Homebrew / volta /\ndeskclaw all live elsewhere.\n\n## Tools exposed\n\n| Tool | Purpose |\n| --- | --- |\n| `send_message_to_ai` | Send a user message. Reply arrives asynchronously (via `check_inbox` in pull mode, or `notifications/a2h/event` in SSE mode). |\n| `check_inbox`        | Pull all pending AI messages (sandbox-friendly, e.g. call from cron every 60s). Returns `{events, hasMore, count}`. |\n| `upload_attachment`  | Upload a single file (image / audio / video / file) and get an attachment object to drop into `send_message_to_ai`. |\n| `get_user_info`      | Returns the bound `agentId` / tokenName / createdAt — handy as a smoke test after login. |\n| `login`              | Surfaced only when unauthenticated; reminds the user to run `a2h-mcp-login`. |\n\n## Delivery modes\n\nTwo modes, picked by env:\n\n- **Pull mode (default)** — sandbox-friendly. No long-lived connection.\n  Host is expected to call `check_inbox` on a cron schedule (~60s) to\n  drain pending AI messages. Recommended default because some sandbox\n  platforms kill idle processes and proxy-kill SSE connections.\n\n- **SSE mode** (`A2H_SSE_MODE=1`) — for long-lived hosts (Claude Code,\n  Cursor, …) where the MCP process stays alive. Opens a persistent SSE\n  subscription to the backend and forwards events as MCP\n  `notifications/a2h/event` in real time.\n\n## Architecture\n\n```\n┌──────────────────────────────────┐\n│ Claude Code / OpenClaw / Hermes  │\n└──────────────┬───────────────────┘\n               │ stdio JSON-RPC (MCP)\n               ▼\n┌──────────────────────────────────┐\n│  @a2hmarket/a2h-mcp (this pkg)   │\n│  ├── tools: send_message, …      │\n│  ├── ~/.a2h/credentials.json     │\n│  └── SSE subscriber → notify     │\n└──────────────┬───────────────────┘\n               │ HTTPS + Bearer PAT\n               ▼\n┌──────────────────────────────────┐\n│  A2H Market backend              │\n└──────────────────────────────────┘\n```\n\n## Local development\n\n```bash\ngit clone https://github.com/keman-ai/a2hmarket-skills\ncd a2hmarket-skills/mcp\nnpm install\nnpm run build\nnpm test\n```\n\nSmoke-test the stdio handshake:\n\n```bash\necho '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"t\",\"version\":\"1\"}}}' \\\n  | node dist/index.js\n```\n\nPoint at a different backend by overriding the env var:\n\n```bash\nA2H_API_BASE=http://localhost:port/api a2h-mcp-login\n```\n\n## Release\n\n```bash\nnpm version patch\ngit push --follow-tags\n```\n\nCI publishes on tag `v*`. Requires the `NPM_TOKEN` GitHub secret.\n\n## Contributing\n\nPRs welcome. Requires:\n\n- Node 18+\n- `npm test` green\n- `npm run build` green\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}