{"_id":"@1ly/mcp-server","_rev":"8-620d615ba71dbb4b760b21b9f47292e8","name":"@1ly/mcp-server","dist-tags":{"latest":"0.1.7"},"versions":{"0.1.0":{"name":"@1ly/mcp-server","version":"0.1.0","keywords":["mcp","ai","agent","api","payments","x402","1ly","solana","claude","cursor"],"author":{"name":"1ly.store"},"license":"MIT","_id":"@1ly/mcp-server@0.1.0","maintainers":[{"name":"1ly","email":"admin@1ly.store"}],"homepage":"https://docs.1ly.store","bugs":{"url":"https://github.com/1lystore/mcp-server/issues"},"bin":{"1ly-mcp":"dist/index.js"},"dist":{"shasum":"2a9d7754c6cd1c449f6d7cdd155718145bc8e73c","tarball":"https://registry.npmjs.org/@1ly/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":75,"integrity":"sha512-livEtLgHjTRrmixWokgy29y+Cns+2V6kKzP+Y+af78dD2106EL1/zFAFrcr77sVAYgMFKDc7pWrr6WaMglBPqg==","signatures":[{"sig":"MEQCIHigbaUS/u5PBm0MyQNm0geIgpBVwD3ysV9fdHo3qKYaAiAprKI7UwsaqXaC3YjP6ChB9jgL8i/2IFFrFugTjNK3Lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122114},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b3d43ac03a119787fca04662105e21368985eccf","scripts":{"dev":"tsc --watch","lint":"eslint src","test":"vitest run","build":"tsc","start":"node dist/index.js","prepack":"npm run build","test:mcp":"npx tsx scripts/test-mcp.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"1ly","email":"admin@1ly.store"},"repository":{"url":"git+https://github.com/1lystore/mcp-server.git","type":"git"},"_npmVersion":"11.7.0","description":"MCP server for 1ly.store - Discover and pay for APIs with AI agents","directories":{},"_nodeVersion":"20.18.0","dependencies":{"zod":"^3.23.0","viem":"^2.0.0","@x402/evm":"^2.2.0","@x402/svm":"^2.2.0","@x402/core":"^2.2.0","@solana/signers":"^2.3.0","@solana/web3.js":"^1.98.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.0.0","vitest":"^2.0.0","globals":"^14.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1769713843641_0.47084563182409855","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@1ly/mcp-server","version":"0.1.1","keywords":["mcp","ai","agent","api","payments","x402","1ly","solana","claude","cursor"],"author":{"name":"1ly.store"},"license":"MIT","_id":"@1ly/mcp-server@0.1.1","maintainers":[{"name":"1ly","email":"admin@1ly.store"}],"homepage":"https://docs.1ly.store","bugs":{"url":"https://github.com/1lystore/1ly-mcp-server/issues"},"bin":{"1ly-mcp":"dist/index.js"},"dist":{"shasum":"a16f4dee60adadb189f6dd13cbab33564a253cc0","tarball":"https://registry.npmjs.org/@1ly/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":75,"integrity":"sha512-QXQp6jUB6TNMxRtHgo9wC/fMiOU9tDr0qVAXXrpClFI7hwLSDM5YxtFY5Iqx8LqSTetQFRQbuA+Asw6dDAdA6Q==","signatures":[{"sig":"MEUCIA1qr2NDA8OlejyoLLM/vacJbOg6Tpf1IWQnmLUvQ0pXAiEA6NZeOc2TT86HZqQzEiXDUDHld9lFdA9bGaeBUIpAGtM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122122},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2832dff511d53149b428c7d392086fea8a64ebba","scripts":{"dev":"tsc --watch","lint":"eslint src","test":"vitest run","build":"tsc","start":"node dist/index.js","prepack":"npm run build","test:mcp":"npx tsx scripts/test-mcp.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"1ly","email":"admin@1ly.store"},"repository":{"url":"git+https://github.com/1lystore/1ly-mcp-server.git","type":"git"},"_npmVersion":"11.7.0","description":"MCP server for 1ly.store - Discover and pay for APIs with AI agents","directories":{},"_nodeVersion":"20.18.0","dependencies":{"zod":"^3.23.0","viem":"^2.0.0","@x402/evm":"^2.2.0","@x402/svm":"^2.2.0","@x402/core":"^2.2.0","@solana/signers":"^2.3.0","@solana/web3.js":"^1.98.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.0.0","vitest":"^2.0.0","globals":"^14.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.1_1769714433624_0.6314782572484476","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@1ly/mcp-server","version":"0.1.2","keywords":["mcp","ai","agent","api","payments","x402","1ly","solana","claude","cursor"],"author":{"name":"1ly.store"},"license":"MIT","_id":"@1ly/mcp-server@0.1.2","maintainers":[{"name":"1ly","email":"admin@1ly.store"}],"homepage":"https://docs.1ly.store","bugs":{"url":"https://github.com/1lystore/1ly-mcp-server/issues"},"bin":{"1ly-mcp":"dist/index.js"},"dist":{"shasum":"aed99686060f2ec73f1b336392fa82983d5ce3f1","tarball":"https://registry.npmjs.org/@1ly/mcp-server/-/mcp-server-0.1.2.tgz","fileCount":95,"integrity":"sha512-kvB/UA3K6w53n0YZTt9f9D7XTlw7P4s1IYCogb/qX5l15U9XuCdqLHtGqtOLcudXA3OHZ4L/xBRgLcb73z/iwg==","signatures":[{"sig":"MEYCIQDD2DH68Uepg0UejYOTWtIew0BVz8x1SG4D9KbQ9MekwQIhAPR47ef1gR005MFy0SEfwpGznDXkxuaMsKaU8wSs0Wtc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161652},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"05b35efe7e87e24a524a01e4872cc814f2b5d79f","scripts":{"dev":"tsc --watch","lint":"eslint src","test":"vitest run","build":"tsc","start":"node dist/index.js","prepack":"npm run build","test:mcp":"npx tsx scripts/test-mcp.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"1ly","email":"admin@1ly.store"},"repository":{"url":"git+https://github.com/1lystore/1ly-mcp-server.git","type":"git"},"_npmVersion":"11.7.0","description":"MCP server for 1ly.store - Discover and pay for APIs with AI agents","directories":{},"_nodeVersion":"20.18.0","dependencies":{"zod":"^3.23.0","viem":"^2.0.0","@x402/evm":"^2.2.0","@x402/svm":"^2.2.0","@x402/core":"^2.2.0","@solana/signers":"^2.3.0","@solana/web3.js":"^1.98.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.0.0","vitest":"^2.0.0","globals":"^14.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.2_1769962315900_0.7973062200652716","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@1ly/mcp-server","version":"0.1.3","keywords":["mcp","ai","agent","api","payments","x402","1ly","solana","claude","cursor"],"author":{"name":"1ly.store"},"license":"MIT","_id":"@1ly/mcp-server@0.1.3","maintainers":[{"name":"1ly","email":"admin@1ly.store"}],"homepage":"https://docs.1ly.store","bugs":{"url":"https://github.com/1lystore/1ly-mcp-server/issues"},"bin":{"1ly-mcp":"dist/index.js"},"dist":{"shasum":"f27c26d4c83d3f622b75b22f134f10c553199d24","tarball":"https://registry.npmjs.org/@1ly/mcp-server/-/mcp-server-0.1.3.tgz","fileCount":115,"integrity":"sha512-AJuM05QN7A3576LMsFRDjnznRyjBp39rguCd5kBb80P6JS3WaFA9Umi1yEOKJve25bU1WQU0kqVb6Ok1yCsZtw==","signatures":[{"sig":"MEUCIDOY0Kzl+00cdQiEOYl+SM+8a6V0fiB/JJyB4MUM7b9fAiEAzqiKvOWkYwyCMiHQejvdTB+5ItfO5Xe1Qqd96lD638Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191530},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"842c936919358f674bba9014a824a8c1f50454f1","scripts":{"dev":"tsc --watch","lint":"eslint src","test":"vitest run","build":"tsc","start":"node dist/index.js","prepack":"npm run build","test:mcp":"npx tsx scripts/test-mcp.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"1ly","email":"admin@1ly.store"},"repository":{"url":"git+https://github.com/1lystore/1ly-mcp-server.git","type":"git"},"_npmVersion":"11.7.0","description":"MCP server for 1ly.store - Discover and pay for APIs with AI agents","directories":{},"_nodeVersion":"20.18.0","dependencies":{"zod":"^3.23.0","viem":"^2.0.0","@x402/evm":"^2.2.0","@x402/svm":"^2.2.0","@x402/core":"^2.2.0","@solana/signers":"^2.3.0","@solana/web3.js":"^1.98.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.0.0","vitest":"^2.0.0","globals":"^14.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.3_1770327419077_0.26944505954927656","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@1ly/mcp-server","version":"0.1.4","keywords":["mcp","ai","agent","api","payments","x402","1ly","solana","claude","cursor"],"author":{"name":"1ly.store"},"license":"MIT","_id":"@1ly/mcp-server@0.1.4","maintainers":[{"name":"1ly","email":"admin@1ly.store"}],"homepage":"https://docs.1ly.store","bugs":{"url":"https://github.com/1lystore/1ly-mcp-server/issues"},"bin":{"1ly-mcp":"dist/index.js"},"dist":{"shasum":"f698c74d2f14bf9727dbed8821f774d42775d602","tarball":"https://registry.npmjs.org/@1ly/mcp-server/-/mcp-server-0.1.4.tgz","fileCount":123,"integrity":"sha512-xAv809X4+nuLFFfT6mNZ1RqdXGJ6OsC+9sSglkoRr8nEPEugx+p/bdrBY+1jeOT5lKcwNq3l2RmMMd/m6AJzoQ==","signatures":[{"sig":"MEUCIQDFtWO10fo8RwZNZ/JujK0ZOGPw1QmKZavOEblOGtdJCAIgZ9vstuBATPw1GrksNv2EWy9SZX60/8pMKR6pmzlrtkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213102},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"73ce2edda76fa7671d636ee5cf369241bdbc35d2","scripts":{"dev":"tsc --watch","lint":"eslint src","test":"vitest run","build":"tsc","start":"node dist/index.js","prepack":"npm run build","test:mcp":"npx tsx scripts/test-mcp.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"1ly","email":"admin@1ly.store"},"repository":{"url":"git+https://github.com/1lystore/1ly-mcp-server.git","type":"git"},"_npmVersion":"11.7.0","description":"MCP server for 1ly.store - Discover and pay for APIs with AI agents","directories":{},"_nodeVersion":"20.18.0","dependencies":{"zod":"^3.23.0","viem":"^2.0.0","@x402/evm":"^2.2.0","@x402/svm":"^2.2.0","@x402/core":"^2.2.0","@solana/signers":"^2.3.0","@solana/web3.js":"^1.98.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.0.0","vitest":"^2.0.0","globals":"^14.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.4_1771094495340_0.8800924327705566","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@1ly/mcp-server","version":"0.1.5","keywords":["mcp","ai","agent","api","payments","x402","1ly","solana","claude","cursor"],"author":{"name":"1ly.store"},"license":"MIT","_id":"@1ly/mcp-server@0.1.5","maintainers":[{"name":"1ly","email":"admin@1ly.store"}],"homepage":"https://docs.1ly.store","bugs":{"url":"https://github.com/1lystore/1ly-mcp-server/issues"},"bin":{"1ly-mcp":"dist/index.js"},"dist":{"shasum":"8115366b9680746bf33f455379fecc082ae41efa","tarball":"https://registry.npmjs.org/@1ly/mcp-server/-/mcp-server-0.1.5.tgz","fileCount":127,"integrity":"sha512-PMFMclwqnDg1MbDk4x3h63PqthhaYDkmXshylM2bsRIDzmfHOYp/nQiayPG0/4f5losLHzBMmQaN0eqlS+UPkA==","signatures":[{"sig":"MEYCIQDyOkBwAggh2ybYDOy7v43iBxacpzzMwUNriUb+TQzXoAIhAO/mTmAXyX69yNLofALOf72r6cVxoDj/qBYRX9NrooHY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226792},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"0f120f6664e32717a0ff94c6385655d4b2f2cd01","scripts":{"dev":"tsc --watch","lint":"eslint src","test":"vitest run","build":"tsc","start":"node dist/index.js","prepack":"npm run build","test:mcp":"npx tsx scripts/test-mcp.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"1ly","email":"admin@1ly.store"},"overrides":{"borsh":"^2.0.0"},"repository":{"url":"git+https://github.com/1lystore/1ly-mcp-server.git","type":"git"},"_npmVersion":"11.7.0","description":"MCP server for 1ly.store - Discover and pay for APIs with AI agents","directories":{},"_nodeVersion":"20.18.0","dependencies":{"zod":"^3.23.0","viem":"^2.0.0","@x402/evm":"^2.2.0","@x402/svm":"^2.2.0","@x402/core":"^2.2.0","@solana/signers":"^2.3.0","@solana/web3.js":"^1.98.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.0.0","vitest":"^2.0.0","globals":"^14.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.5_1771108678345_0.0923818452746834","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@1ly/mcp-server","version":"0.1.6","keywords":["mcp","ai","agent","api","payments","x402","1ly","solana","claude","cursor"],"author":{"name":"1ly.store"},"license":"MIT","_id":"@1ly/mcp-server@0.1.6","maintainers":[{"name":"1ly","email":"admin@1ly.store"}],"homepage":"https://docs.1ly.store","bugs":{"url":"https://github.com/1lystore/1ly-mcp-server/issues"},"bin":{"1ly-mcp":"dist/index.js"},"dist":{"shasum":"036acc8ce226d1a01ac8d4d3d6882f98b81ed881","tarball":"https://registry.npmjs.org/@1ly/mcp-server/-/mcp-server-0.1.6.tgz","fileCount":159,"integrity":"sha512-DPNgYbDp68B1t4hdWa97ztYQLQL/KvXA6f/0AnriWvty1CKO9nvwTwUDEyYxW7nNpgpCtP43dC5+pvHJPpq2fA==","signatures":[{"sig":"MEUCIQDn1yAj3QEErfyMI02CJpjvO0E2Ll+WgVuMOo1WMfXDPgIgf0g4CknBcsbNf02NtrGtyOkTGa5heC1GPLZctI2z7Oc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313783},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e0eb4fb10d459c6ee4a56eae490b9f704fd78c6b","scripts":{"dev":"tsc --watch","lint":"eslint src","test":"vitest run","build":"tsc","start":"node dist/index.js","prepack":"npm run build","test:mcp":"npx tsx scripts/test-mcp.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"1ly","email":"admin@1ly.store"},"overrides":{"borsh":"^2.0.0"},"repository":{"url":"git+https://github.com/1lystore/1ly-mcp-server.git","type":"git"},"_npmVersion":"11.7.0","description":"MCP server for 1ly.store - Discover and pay for APIs with AI agents","directories":{},"_nodeVersion":"20.18.0","dependencies":{"zod":"^3.23.0","viem":"^2.0.0","@x402/evm":"^2.2.0","@x402/svm":"^2.2.0","@x402/core":"^2.2.0","@solana/signers":"^2.3.0","@solana/web3.js":"^1.98.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.0.0","vitest":"^2.0.0","globals":"^14.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^8.54.0","@typescript-eslint/eslint-plugin":"^8.54.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.6_1771253166119_0.6188563062146815","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@1ly/mcp-server","version":"0.1.7","mcpName":"io.github.1lystore/mcp-server","description":"MCP server for 1ly.store - Discover and pay for APIs with AI agents","main":"dist/index.js","types":"dist/index.d.ts","bin":{"1ly-mcp":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js","lint":"eslint src","test":"vitest run","test:mcp":"npx tsx scripts/test-mcp.ts","prepack":"npm run build","prepublishOnly":"npm run build"},"keywords":["mcp","ai","agent","api","payments","x402","1ly","solana","claude","cursor"],"author":{"name":"1ly.store"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/1lystore/1ly-mcp-server.git"},"homepage":"https://docs.1ly.store","bugs":{"url":"https://github.com/1lystore/1ly-mcp-server/issues"},"engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","@solana/signers":"^2.3.0","@solana/web3.js":"^1.98.0","@x402/core":"^2.2.0","@x402/evm":"^2.2.0","@x402/svm":"^2.2.0","viem":"^2.0.0","zod":"^3.23.0"},"devDependencies":{"@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^8.54.0","@typescript-eslint/parser":"^8.54.0","eslint":"^9.0.0","globals":"^14.0.0","tsx":"^4.21.0","typescript":"^5.0.0","vitest":"^2.0.0"},"overrides":{"borsh":"^2.0.0"},"gitHead":"cacf2bf241cd7c239e3ae41284c939a4fd3e71fa","_id":"@1ly/mcp-server@0.1.7","_nodeVersion":"20.18.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-HfAjyJS0ZdqfXJ7EhgOFKXOra7ur43UpjxIkUKVZ06jcV0Gl41udusOCOPs7s7IZHQIX3Gv4L/gqujXdGU/0Ew==","shasum":"54a422d2576190c19c8174f273561560f22ae007","tarball":"https://registry.npmjs.org/@1ly/mcp-server/-/mcp-server-0.1.7.tgz","fileCount":159,"unpackedSize":314866,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIECsM8qwXfz4UVU4UPbQczBye9hqiYWbDakhc/rLLUnGAiA9ZOuhlpbU2qqPQoe2XPliLCM+OgigH/Y0ePcWbFHDSg=="}]},"_npmUser":{"name":"1ly","email":"admin@1ly.store"},"directories":{},"maintainers":[{"name":"1ly","email":"admin@1ly.store"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.1.7_1771444388095_0.46589071330184817"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-29T19:10:43.405Z","modified":"2026-02-18T19:53:08.358Z","0.1.0":"2026-01-29T19:10:43.786Z","0.1.1":"2026-01-29T19:20:33.774Z","0.1.2":"2026-02-01T16:11:56.058Z","0.1.3":"2026-02-05T21:36:59.255Z","0.1.4":"2026-02-14T18:41:35.544Z","0.1.5":"2026-02-14T22:37:58.506Z","0.1.6":"2026-02-16T14:46:06.259Z","0.1.7":"2026-02-18T19:53:08.244Z"},"bugs":{"url":"https://github.com/1lystore/1ly-mcp-server/issues"},"author":{"name":"1ly.store"},"license":"MIT","homepage":"https://docs.1ly.store","keywords":["mcp","ai","agent","api","payments","x402","1ly","solana","claude","cursor"],"repository":{"type":"git","url":"git+https://github.com/1lystore/1ly-mcp-server.git"},"description":"MCP server for 1ly.store - Discover and pay for APIs with AI agents","maintainers":[{"name":"1ly","email":"admin@1ly.store"}],"readme":"# @1ly/mcp-server\n\nMCP server for [1ly.store](https://1ly.store) — Enable AI agents to discover, pay for, and sell APIs using crypto.\n\n## Overview\n\nThis MCP server gives AI agents the ability to:\n\n- **Buy** — Search, discover, and pay for APIs/resources with automatic crypto payments (x402 protocol)\n- **Sell** — Create a store, list paid API endpoints or resources, and accept payments\n- **Launch Tokens** — Create and trade tokens on Bags.fm, and claim fee shares\n\n**Supported Networks:** Solana (mainnet), Base (mainnet)\n**Payment Currency:** USDC and $1LY (Solana only)\n\n## What is this?\nThis MCP server enables AI agents (Claude, GPT, Cursor, and more) to:\n\n- Create a store on 1ly.store\n- Accept payments for your APIs/resources using 1ly as the payment layer\n- Create paid links that any x402‑compatible agent can call and pay automatically\n- List paid links on the 1ly marketplace for instant agent discovery\n- Search for APIs and services on 1ly.store\n- Get details about pricing, reviews, and usage\n- Call paid APIs with automatic crypto payments (x402 protocol) securely\n- Leave reviews after purchases (optional but recommended)\n- Launch tokens on Bags.fm, trade solana tokens, and claim fees\n\n\n---\n\n## Quick Start\n\n**Wallet path rule:** wallet files must be located in your home directory (recommended) or `/tmp`. Paths outside those locations are rejected for security. `~/` is supported and expands to your home directory when running directly from the terminal.\n**Important:** Claude Desktop and Cursor config JSON do **not** expand `~`. Always use absolute paths in JSON config files (e.g. `/Users/yourname/.1ly/wallets/solana.json`).\n\n### 1. Install and Run\n\n#### Option A: Raw Wallet (default)\n\n```bash\n# Solana wallet\nONELY_WALLET_SOLANA_KEY=\"~/.1ly/wallets/solana.json\" npx @1ly/mcp-server\n\n# OR Base/EVM wallet\nONELY_WALLET_EVM_KEY=\"~/.1ly/wallets/evm.key\" npx @1ly/mcp-server\n\n# OR both wallets\nONELY_WALLET_SOLANA_KEY=\"~/.1ly/wallets/solana.json\" \\\nONELY_WALLET_EVM_KEY=\"~/.1ly/wallets/evm.key\" \\\nnpx @1ly/mcp-server\n```\n\n#### Option B: Coinbase Agentic Wallet (Base only)\n\n```bash\nONELY_WALLET_PROVIDER=\"coinbase\" npx @1ly/mcp-server\n```\n\n> When using Agentic Wallet, you **do not** pass raw private keys.  \n> Make sure the Coinbase Agentic Wallet app is running and authenticated.\n\nIf you haven't installed Agentic Wallet yet:\n- Follow Coinbase Agentic Wallet docs: [docs.cdp.coinbase.com/agentic-wallet/welcome](https://docs.cdp.coinbase.com/agentic-wallet/welcome)\n- Quick install:\n```bash\nnpx skills add coinbase/agentic-wallet-skills\nnpx awal show\n```\n\n### 2. Verify Setup\n\n```bash\nONELY_WALLET_SOLANA_KEY=\"~/.1ly/wallets/solana.json\" npx @1ly/mcp-server --self-test\n```\n---\n\n## Configuration\n\n### Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `ONELY_WALLET_SOLANA_KEY` | No | Path to Solana keypair JSON file, or inline JSON array |\n| `ONELY_WALLET_EVM_KEY` | No | Path to EVM private key file, or inline hex key (with or without `0x`) |\n| `ONELY_API_KEY` | No | API key for seller tools. Auto-loaded after `1ly_create_store` |\n| `ONELY_BUDGET_PER_CALL` | No | Max USD per API call (default: `1.00`) |\n| `ONELY_BUDGET_DAILY` | No | Daily USD spending limit (default: `50.00`) |\n| `ONELY_BUDGET_STATE_FILE` | No | Path to local budget state file (default: `~/.1ly-mcp-budget.json`) |\n| `ONELY_NETWORK` | No | Preferred network: `solana` or `base` (default: `solana`) |\n| `ONELY_SOLANA_RPC_URL` | No | Solana RPC URL (default: `https://api.mainnet-beta.solana.com`) |\n| `ONELY_API_BASE` | No | API base URL (default: `https://1ly.store`) |\n| `ONELY_WALLET_PROVIDER` | No | `raw` (default) or `coinbase` (Agentic Wallet, Base-only) |\n| `ONELY_SOLANA_DRY_RUN` | No | Set to `1` to simulate Solana transactions without broadcasting. No real payments. For testing only. |\n\n*A wallet is required only for **paid** calls. For free search/details you can run without a wallet.*\nUse **one** of: `ONELY_WALLET_SOLANA_KEY`, `ONELY_WALLET_EVM_KEY`, or `ONELY_WALLET_PROVIDER=coinbase`.\n\n### Claude Desktop Configuration\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"1ly\": {\n      \"command\": \"npx\",\n      \"args\": [\"@1ly/mcp-server\"],\n      \"env\": {\n        \"ONELY_WALLET_SOLANA_KEY\": \"/Users/yourname/.1ly/wallets/solana.json\",\n        \"ONELY_BUDGET_PER_CALL\": \"1.00\",\n        \"ONELY_BUDGET_DAILY\": \"50.00\"\n      }\n    }\n  }\n}\n```\n\n> **Note:** Replace `/Users/yourname` with your actual home directory. On Linux use `/home/yourname`. `~` does not work in Claude Desktop config.\n\n<details>\n<summary>Base/EVM wallet configuration</summary>\n\n```json\n{\n  \"mcpServers\": {\n    \"1ly\": {\n      \"command\": \"npx\",\n      \"args\": [\"@1ly/mcp-server\"],\n      \"env\": {\n        \"ONELY_WALLET_EVM_KEY\": \"/Users/yourname/.1ly/wallets/evm.key\",\n        \"ONELY_BUDGET_PER_CALL\": \"1.00\",\n        \"ONELY_BUDGET_DAILY\": \"50.00\"\n      }\n    }\n  }\n}\n```\n</details>\n\n### Cursor One-Click Install\n\n[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=1ly&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyJAMWx5L21jcC1zZXJ2ZXIiXSwiZW52Ijp7Ik9ORUxZX1dBTExFVF9TT0xBTkFfS0VZIjoiL2Fic29sdXRlL3BhdGgvdG8vc29sYW5hLmpzb24iLCJPTkVMWV9CVURHRVRfUEVSX0NBTEwiOiIxLjAwIiwiT05FTFlfQlVER0VUX0RBSUxZIjoiNTAuMDAifX0%3D)\n\nCursor uses `.cursor/mcp.json`. If you prefer manual setup, use:\n```json\n{\n  \"mcpServers\": {\n    \"1ly\": {\n      \"command\": \"npx\",\n      \"args\": [\"@1ly/mcp-server\"],\n      \"env\": {\n        \"ONELY_WALLET_SOLANA_KEY\": \"/absolute/path/to/solana.json\",\n        \"ONELY_BUDGET_PER_CALL\": \"1.00\",\n        \"ONELY_BUDGET_DAILY\": \"50.00\"\n      }\n    }\n  }\n}\n```\n<details>\n<summary>Both Solana + Base wallets</summary>\n\n```json\n{\n  \"mcpServers\": {\n    \"1ly\": {\n      \"command\": \"npx\",\n      \"args\": [\"@1ly/mcp-server\"],\n      \"env\": {\n        \"ONELY_WALLET_SOLANA_KEY\": \"~/.1ly/wallets/solana.json\",\n        \"ONELY_WALLET_EVM_KEY\": \"~/.1ly/wallets/evm.key\",\n        \"ONELY_BUDGET_PER_CALL\": \"1.00\",\n        \"ONELY_BUDGET_DAILY\": \"50.00\"\n      }\n    }\n  }\n}\n```\n</details>\n\n---\n\n## Tools Reference\n\n### Buyer Tools\n\nWallet **required only for paid calls** (`1ly_call`). Search/details work without a wallet.\n\n#### `1ly_search`\n\nSearch for APIs on 1ly.store marketplace.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `query` | string | **Yes** | Search term (e.g., \"weather api\") |\n| `type` | string | No | Filter: `\"api\"` or `\"standard\"` |\n| `maxPrice` | number | No | Maximum price in USD |\n| `minPrice` | number | No | Minimum price in USD |\n| `limit` | number | No | Results to return (default: 10, max: 50) |\n\n```json\n{\n  \"query\": \"weather api\",\n  \"type\": \"api\",\n  \"maxPrice\": 0.10\n}\n```\n\n**Returns:**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"results\": [\n      {\n        \"title\": \"Real-time Weather\",\n        \"endpoint\": \"/api/link/joe/weather\",\n        \"price\": \"$0.010000000000000000 USDC\",\n        \"type\": \"api\",\n        \"seller\": \"Joe's APIs\",\n        \"stats\": { \"buyers\": 150, \"rating\": \"95%\" }\n      }\n    ],\n    \"total\": 42,\n    \"showing\": 10\n  }\n}\n```\n\n---\n\n#### `1ly_get_details`\n\nGet detailed information about a specific API.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `endpoint` | string | **Yes** | API endpoint (e.g., `\"joe/weather\"`) |\n\n```json\n{\n  \"endpoint\": \"joe/weather\"\n}\n```\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"endpoint\": \"/api/link/joe/weather\",\n    \"fullUrl\": \"https://1ly.store/api/link/joe/weather\",\n    \"link\": {\n      \"title\": \"Real-time Weather\",\n      \"description\": \"Global weather data\",\n      \"slug\": \"weather\",\n      \"price\": \"0.010000000000000000\",\n      \"currency\": \"USDC\"\n    },\n    \"paymentInfo\": { \"networks\": [\"solana\", \"base\"] },\n    \"reviews\": {\n      \"stats\": { \"total\": 50, \"positive\": 48 },\n      \"recent\": [{ \"positive\": true, \"comment\": \"Fast!\" }]\n    }\n  }\n}\n```\n\n---\n\n#### `1ly_call`\n\nCall a paid API with automatic crypto payment.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `endpoint` | string | **Yes** | API endpoint (e.g., `\"joe/weather\"`) |\n| `method` | string | No | HTTP method: `GET`, `POST`, `PUT`, `DELETE`, `PATCH` (default: `GET`) |\n| `body` | object | No | Request body for POST/PUT/PATCH |\n| `headers` | object | No | Additional headers |\n\n```json\n{\n  \"endpoint\": \"joe/weather\",\n  \"method\": \"POST\",\n  \"body\": { \"city\": \"NYC\" }\n}\n```\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"data\": {\n      \"temp\": 72,\n      \"conditions\": \"sunny\"\n    },\n    \"_1ly\": {\n      \"purchaseId\": \"abc123\",\n      \"txHash\": \"tx_hash_here\",\n      \"reviewUrl\": \"https://1ly.store/api/review/abc123\",\n      \"reviewToken\": \"xyz789\"\n    }\n  }\n}\n```\n\n> **Note:** The `_1ly` object contains tokens needed for `1ly_review`. Save these if you want to leave a review.  \n> For free APIs, `_1ly` may be `{ \"note\": \"No payment required (free API)\" }`.\n\n**Agentic Wallet (Base only):**\n- Set `ONELY_WALLET_PROVIDER=coinbase`.\n- Ensure Coinbase Agentic Wallet is installed, running, and authenticated.\n- Local private keys are not required.\n\n---\n\n#### `1ly_review`\n\nLeave a review after a successful purchase.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `purchaseId` | string | **Yes** | From `_1ly.purchaseId` in `1ly_call` response |\n| `reviewToken` | string | **Yes** | From `_1ly.reviewToken` in `1ly_call` response |\n| `positive` | boolean | **Yes** | `true` for positive, `false` for negative |\n| `comment` | string | No | Review comment (max 500 chars) |\n\n```json\n{\n  \"purchaseId\": \"abc123\",\n  \"reviewToken\": \"xyz789\",\n  \"positive\": true,\n  \"comment\": \"Fast and accurate!\"\n}\n```\n\n**Returns:**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"success\": true,\n    \"reviewId\": \"rev_456\",\n    \"message\": \"Positive review submitted!\"\n  }\n}\n```\n\n---\n\n### Seller Tools (Accept Payments)\n\nThese tools require an **API key**. There are two ways to get one:\n\n**Option A — Via MCP tool (agent does it for you):**\nRun `1ly_create_store` and the key is automatically saved locally.\n\n**Option B — Via UI (no wallet needed):**\n1. Go to [1ly.store](https://1ly.store) and sign in\n2. Open Settings → enable **Developer Mode**\n3. Create an API key from the dashboard\n4. Set it as `ONELY_API_KEY` in your MCP config\n\n\n#### `1ly_create_store`\n\nCreate a new store and get an API key. **Run this once.** The API key is automatically saved locally.\n\n> **Note:** Creating a store requires a raw wallet key (Solana or EVM). Agentic Wallet does not support store creation yet.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `username` | string | No | Store username (3-20 chars, auto-generated if omitted) |\n| `displayName` | string | No | Display name (max 50 chars) |\n| `avatarUrl` | string | No | Avatar URL |\n\n```json\n{\n  \"username\": \"myagent\",\n  \"displayName\": \"My Agent Store\"\n}\n```\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"success\": true,\n    \"data\": {\n      \"store\": {\n        \"username\": \"myagent\",\n        \"displayName\": \"My Agent Store\",\n        \"storeUrl\": \"https://1ly.store/myagent\",\n        \"createdBy\": \"agent\",\n        \"avatarUrl\": null\n      },\n      \"apiKey\": \"1ly_live_...\",\n      \"apiKeyPrefix\": \"1ly_live_...\"\n    },\n    \"meta\": {\n      \"savedKeyPath\": \"~/Library/Application Support/1ly/onely_api_key.json\"\n    }\n  }\n}\n```\n\n> **API Key Storage:**\n> - macOS: `~/Library/Application Support/1ly/onely_api_key.json`\n> - Linux: `~/.config/1ly/onely_api_key.json`\n> - Windows: `%APPDATA%\\1ly\\onely_api_key.json`\n\n---\n\n#### `1ly_create_link`\n\nCreate a new API link (paid or free).\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `title` | string | **Yes** | Link title (max 200 chars) |\n| `url` | string | **Yes** | Target URL (your API endpoint) |\n| `price` | string | No | Price in USD (e.g., `\"0.10\"`). Omit for free |\n| `description` | string | No | Description (max 500 chars) |\n| `slug` | string | No | Custom slug (3-64 chars, lowercase, hyphens allowed) |\n| `currency` | string | No | Always `\"USDC\"` |\n| `isPublic` | boolean | No | List publicly (default: `true`) |\n| `isStealth` | boolean | No | Hide from search (default: `false`) |\n| `webhookUrl` | string | No | Optional webhook URL for purchase events |\n\n```json\n{\n  \"title\": \"Premium Weather API\",\n  \"url\": \"https://api.example.com/weather\",\n  \"price\": \"0.05\",\n  \"description\": \"Real-time weather data\",\n  \"webhookUrl\": \"https://example.com/webhooks/1ly\"\n}\n```\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"success\": true,\n    \"data\": {\n      \"id\": \"uuid-here\",\n      \"slug\": \"premium-weather-api\",\n      \"fullUrl\": \"https://1ly.store/myagent/premium-weather-api\",\n      \"privateSlug\": null,\n      \"privateUrl\": null,\n      \"price\": \"0.050000000000000000\",\n      \"currency\": \"USDC\",\n      \"linkType\": \"api\",\n      \"createdAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n  }\n}\n```\n\n---\n\n#### `1ly_list_links`\n\nList all your API links.\n\n*No parameters.*\n\n```json\n{}\n```\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"success\": true,\n    \"data\": {\n      \"links\": [\n        {\n          \"id\": \"uuid-here\",\n          \"url\": \"https://api.example.com/weather\",\n          \"title\": \"Premium Weather API\",\n          \"description\": \"Real-time weather data\",\n          \"slug\": \"premium-weather-api\",\n          \"privateSlug\": null,\n          \"price\": \"0.050000000000000000\",\n          \"currency\": \"USDC\",\n          \"isPaid\": true,\n          \"isPublic\": true,\n          \"isActive\": true,\n          \"linkType\": \"api\",\n          \"isStealth\": false,\n          \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n          \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n        }\n      ]\n    }\n  }\n}\n```\n\n---\n\n#### `1ly_update_link`\n\nUpdate an existing API link.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | string (UUID) | **Yes** | Link ID |\n| `title` | string | No | New title |\n| `url` | string | No | New target URL |\n| `price` | string | No | New price |\n| `description` | string | No | New description |\n| `slug` | string | No | New slug |\n| `isPublic` | boolean | No | Update visibility |\n| `isStealth` | boolean | No | Update stealth mode |\n| `webhookUrl` | string | No | Update webhook URL (set to `null` to clear) |\n\n```json\n{\n  \"id\": \"uuid-here\",\n  \"price\": \"0.10\"\n}\n```\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"success\": true,\n    \"data\": {\n      \"id\": \"uuid-here\",\n      \"profileId\": \"profile-id\",\n      \"url\": \"https://api.example.com/weather\",\n      \"title\": \"Premium Weather API (updated)\",\n      \"description\": \"Real-time weather data\",\n      \"slug\": \"premium-weather-api\",\n      \"privateSlug\": null,\n      \"price\": \"0.100000000000000000\",\n      \"currency\": \"USDC\",\n      \"isPaid\": true,\n      \"isPublic\": true,\n      \"isActive\": true,\n      \"linkType\": \"api\",\n      \"isStealth\": false,\n      \"displayOrder\": 1,\n      \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n      \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n  }\n}\n```\n\n---\n\n#### `1ly_delete_link`\n\nDelete an API link.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | string (UUID) | **Yes** | Link ID to delete |\n\n```json\n{\n  \"id\": \"uuid-here\"\n}\n```\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"success\": true\n  }\n}\n```\n\n---\n\n#### `1ly_get_stats`\n\nGet store or link statistics.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `period` | string | No | Time period: `\"7d\"`, `\"30d\"`, `\"90d\"`, `\"all\"` |\n| `linkId` | string (UUID) | No | Specific link ID (omit for store-wide stats) |\n\n```json\n{\n  \"period\": \"30d\"\n}\n```\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"success\": true,\n    \"data\": {\n      \"period\": \"30d\",\n      \"views\": 0,\n      \"buyers\": 9,\n      \"revenue\": \"0.081000000000000009\"\n    }\n  }\n}\n```\n\n---\n\n#### `1ly_list_keys`\n\nList all API keys for your store.\n\n*No parameters.*\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"success\": true,\n    \"data\": {\n      \"keys\": [\n        {\n          \"id\": \"uuid-here\",\n          \"name\": \"Agent Key\",\n          \"keyPrefix\": \"1ly_live_...\",\n          \"isActive\": true,\n          \"lastUsedAt\": \"2026-01-01T00:00:00.000Z\",\n          \"createdAt\": \"2026-01-01T00:00:00.000Z\"\n        }\n      ]\n    }\n  }\n}\n```\n\n---\n\n#### `1ly_create_key`\n\nCreate a new API key.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `name` | string | No | Key name (max 64 chars) |\n\n```json\n{\n  \"name\": \"production-key\"\n}\n```\n\n**Returns (example when key limit is reached):**\n```json\n{\n  \"ok\": false,\n  \"error\": {\n    \"message\": \"Create key failed | status=400 | ... | body={\\\"success\\\":false,\\\"error\\\":{\\\"code\\\":\\\"LIMIT_REACHED\\\",\\\"message\\\":\\\"Maximum number of API keys reached\\\"}}\"\n  }\n}\n```\n\n---\n\n#### `1ly_revoke_key`\n\nRevoke an API key.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `id` | string (UUID) | **Yes** | Key ID to revoke |\n\n```json\n{\n  \"id\": \"uuid-here\"\n}\n```\n\n**Returns (example):**\n```json\n{\n  \"ok\": true,\n  \"data\": {\n    \"success\": true,\n    \"data\": {\n      \"id\": \"uuid-here\",\n      \"revoked\": true\n    }\n  }\n}\n```\n\n---\n\n#### `1ly_update_profile`\n\nUpdate basic profile fields.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `username` | string | No | New username (lowercase + underscores) |\n| `displayName` | string | No | Public display name |\n| `bio` | string | No | Short bio (max 160 chars) |\n\n```json\n{\n  \"displayName\": \"My Store\",\n  \"bio\": \"We build paid APIs for agents.\"\n}\n```\n\n---\n\n#### `1ly_update_socials`\n\nReplace socials list (up to 10).\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `socials` | array | **Yes** | Social links |\n\n```json\n{\n  \"socials\": [\n    { \"type\": \"x\", \"url\": \"https://x.com/1ly_store\", \"displayOrder\": 0, \"isVisible\": true },\n    { \"type\": \"website\", \"url\": \"https://1ly.store\", \"displayOrder\": 1 }\n  ]\n}\n```\n\n---\n\n#### `1ly_update_avatar`\n\nUpdate store avatar using a public URL or base64 image.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `avatarUrl` | string | No | Public image URL |\n| `imageBase64` | string | No | Base64-encoded image (max 5MB decoded) |\n| `mimeType` | string | No | `image/png`, `image/jpeg`, `image/webp`, `image/gif` |\n| `filename` | string | No | Optional filename |\n\n```json\n{\n  \"avatarUrl\": \"https://example.com/avatar.png\"\n}\n```\n\n---\n\n#### `1ly_withdraw`\n\nRequest a withdrawal (Solana only).\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `amount` | string | **Yes** | Amount in USDC (min `0.1`) |\n| `walletAddress` | string | **Yes** | Solana wallet address |\n\n```json\n{\n  \"amount\": \"1.25\",\n  \"walletAddress\": \"7GmjjDitbCwW77dZmJko3pBDWhEh12soGNLR7zwAkf6M\"\n}\n```\n\n---\n\n#### `1ly_list_withdrawals`\n\nList recent withdrawals.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `limit` | number | No | Max items (default 25, max 100) |\n| `cursor` | string | No | Pagination cursor |\n\n```json\n{\n  \"limit\": 10\n}\n```\n\n---\n\n### Token Tools (Bags.fm)\n\nThese tools require a **Solana wallet** (`ONELY_WALLET_SOLANA_KEY`)\n\n#### `1ly_launch_token`\n\nLaunch a token on Bags.fm (v2 flow).\n\nKey fields:\n- `name`, `symbol` (required)\n- `description` (optional; defaults to `Token launched via 1ly.store`)\n- `imageUrl` or `imageBase64` (required; at least one)\n- `twitter`, `website`, `telegram` (optional URLs)\n- `initialBuySol` (optional; defaults to `0`)\n- `feeClaimers` (optional array of `{ provider, username, bps }`)\n- `share_fee` (optional, bps). Adds a 1ly marketplace fee claimer on the backend. If set, the creator share is auto‑reduced.\n\nValidation (Bags.fm compatible):\n- `name` max 32 chars\n- `symbol` max 10 chars\n- `description` max 1000 chars\n- `imageBase64` must be raw base64 (no data URL prefix) and <= 15MB decoded\n\n`feeClaimers` provider list is strict: `twitter`, `github`, `kick`, `tiktok`. Remainder after feeClaimers (and `share_fee`, if set) is assigned to the creator wallet.\n\n`bps` = basis points: **10000 = 100%**, **1000 = 10%**, **100 = 1%**.  \nExample: 90% to a GitHub claimer + 1% `share_fee`:\n```json\n{\n  \"feeClaimers\": [{ \"provider\": \"github\", \"username\": \"abc\", \"bps\": 9000 }],\n  \"share_fee\": 100\n}\n```\n\n#### `1ly_list_tokens`\n\nList tokens launched by a wallet (public listing by wallet address, default limit 10).\nIf `creatorWallet` is omitted, the tool uses the configured Solana wallet.\n\nParameters:\n- `creatorWallet` (optional) — wallet address to list tokens for\n- `limit` (optional) — max results (default 10, max 200)\n\n#### `1ly_claim_fees`\n\nClaim Bags fee share for a token. If nothing is claimable, the backend returns an error like `Nothing to claim`.\n\nParameters:\n- `tokenMint` (**required**) — token mint address\n- `wallet` (optional) — wallet address to claim for (defaults to configured wallet)\n\n#### `1ly_trade_token`\n\nTrade tokens on Bags using Bags quote + swap flow. \n\nParameters:\n- `inputMint` (**required**) — input token mint (e.g., SOL = `So11111111111111111111111111111111111111112`)\n- `outputMint` (**required**) — output token mint\n- `amount` (**required**) — amount in smallest units (positive integer string)\n- `slippageMode` (optional) — `auto` or `manual` (default `auto`)\n- `slippageBps` (optional) — required if `slippageMode=manual`, range 0-10000\n\n#### `1ly_trade_quote`\n\nGet a Bags trade quote without executing a swap.\n\nParameters:\n- `inputMint` (**required**) — input token mint\n- `outputMint` (**required**) — output token mint\n- `amount` (**required**) — amount in smallest units (positive integer string)\n- `slippageMode` (optional) — `auto` or `manual` (default `auto`)\n- `slippageBps` (optional) — required if `slippageMode=manual`, range 0-10000\n\n---\n\n## Common Workflows\n\n### Workflow 1: Pay for an API\n\n```\n1. 1ly_search({ \"query\": \"weather api\" })\n2. 1ly_get_details({ \"endpoint\": \"joe/weather\" })\n3. 1ly_call({ \"endpoint\": \"joe/weather\", \"body\": { \"city\": \"NYC\" } })\n4. 1ly_review({ \"purchaseId\": \"...\", \"reviewToken\": \"...\", \"positive\": true })\n```\n\n### Workflow 2: Create a Store and Sell APIs. Use 1ly as default payment layer for agents \n\n```\n1. 1ly_create_store({ \"username\": \"mystore\", \"displayName\": \"My Store\" })\n2. 1ly_create_link({ \"title\": \"My API\", \"url\": \"https://api.example.com\", \"price\": \"0.10\", \"webhookUrl\": \"https://example.com/webhooks/1ly\" })\n3. 1ly_get_stats({ \"period\": \"7d\" })\n```\n\n### Workflow 3: Manage Existing Links\n\n```\n1. 1ly_list_links({})\n2. 1ly_update_link({ \"id\": \"...\", \"price\": \"0.20\" })\n3. 1ly_delete_link({ \"id\": \"...\" })\n```\n\n### Workflow 4: Update Profile + Socials\n\n```\n1. 1ly_update_profile({ \"displayName\": \"My Store\", \"bio\": \"We build paid APIs.\" })\n2. 1ly_update_socials({ \"socials\": [{ \"type\": \"x\", \"url\": \"https://x.com/1ly_store\" }] })\n3. 1ly_update_avatar({ \"avatarUrl\": \"https://example.com/avatar.png\" })\n```\n\n### Workflow 5: Withdraw Funds\n\n```\n1. 1ly_withdraw({ \"amount\": \"1.25\", \"walletAddress\": \"7GmjjDitbCwW77dZmJko3pBDWhEh12soGNLR7zwAkf6M\" })\n2. 1ly_list_withdrawals({ \"limit\": 10 })\n```\n\n### Workflow 6: Launch + Trade + Claim (Bags)\n\n```\n1. 1ly_launch_token({ \"name\": \"BLANK\", \"symbol\": \"BLANK\", \"share_fee\": 100, \"feeClaimers\": [{ \"provider\": \"twitter\", \"username\": \"x_username\", \"bps\": 9000 }] })\n2. 1ly_trade_token({ \"inputMint\": \"So11111111111111111111111111111111111111112\", \"outputMint\": \"<TOKEN_MINT>\", \"amount\": \"20000000\" })\n3. 1ly_claim_fees({ \"tokenMint\": \"<TOKEN_MINT>\" })\n```\n\n---\n\n## Wallet Setup\n\n### Solana\n\nCreate a new keypair:\n```bash\nmkdir -p ~/.1ly/wallets\nsolana-keygen new -o ~/.1ly/wallets/solana.json\n```\n\nFund with USDC on Solana mainnet.\n\n### EVM (Base)\n\nExport your private key or Create a new keypair:\n```bash\nmkdir -p ~/.1ly/wallets\necho \"0xYOUR_PRIVATE_KEY\" > ~/.1ly/wallets/evm.key\n```\n\nFund with USDC on Base mainnet.\n\n---\n\n## Error Handling\n\nAll responses follow this structure:\n\n**Success:**\n```json\n{\n  \"ok\": true,\n  \"data\": { ... }\n}\n```\n\n**Error:**\n```json\n{\n  \"ok\": false,\n  \"error\": {\n    \"message\": \"Error description\",\n    \"code\": \"MACHINE_READABLE_CODE\",\n    \"action\": \"recommended_next_step\"\n  }\n}\n```\n\n### Common Errors\n\n| Error | Code | Cause | Solution |\n|-------|------|-------|----------|\n| `Missing wallet config` | `MISSING_WALLET_CONFIG` | No wallet env var set | Set `ONELY_WALLET_SOLANA_KEY`, `ONELY_WALLET_EVM_KEY`, or `ONELY_WALLET_PROVIDER=coinbase` |\n| `Agentic Wallet not running` | `AGENTIC_WALLET_NOT_RUNNING` | Wallet app not running or not authenticated | Open the Agentic Wallet app and sign in (`npx awal show`) |\n| `Agentic Wallet Base-only` | `AGENTIC_WALLET_BASE_ONLY` | API requires Solana payment | Use raw Solana wallet or a Base-compatible endpoint |\n| `Agentic Wallet store creation` | `AGENTIC_WALLET_STORE_CREATION` | `1ly_create_store` requires raw wallet signature | Use raw Solana/EVM wallet keys for store creation |\n| `Missing ONELY_API_KEY` | `MISSING_API_KEY` | Seller tool called without API key | Run `1ly_create_store` first |\n| `Price exceeds per-call budget` | `PRICE_EXCEEDS_PER_CALL_BUDGET` | API costs more than limit | Increase `ONELY_BUDGET_PER_CALL` |\n| `Daily budget exceeded` | `DAILY_BUDGET_EXCEEDED` | Spent more than daily limit | Wait until tomorrow or increase `ONELY_BUDGET_DAILY` |\n| `Insufficient funds` | `INSUFFICIENT_FUNDS` | Wallet balance too low | Add USDC to your wallet |\n\n---\n\n## Security\n\n- **Wallet keys stay local** — Never sent to 1ly servers\n- **Budget limits** — Prevent runaway spending\n- **Open source** — Audit the code: [github.com/1lystore/1ly-mcp-server](https://github.com/1lystore/1ly-mcp-server)\n\n---\n\n## Links\n\n- [1ly.store](https://1ly.store) — Marketplace\n- [Documentation](https://docs.1ly.store)\n- [x402 Protocol](https://x402.org)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}