{"_id":"@anansitrading/raindrop-mcp","_rev":"5-981367ce7d57d521ad21f3c478dbb33f","name":"@anansitrading/raindrop-mcp","dist-tags":{"latest":"3.0.1"},"versions":{"2.0.17":{"name":"@anansitrading/raindrop-mcp","version":"2.0.17","keywords":["mcp","raindrop.io","modelcontextprotocol","mcp-server","raindrop","bookmarks","ai-assistant","llm-tools","typescript"],"author":{"name":"Adam E"},"license":"MIT","_id":"@anansitrading/raindrop-mcp@2.0.17","maintainers":[{"name":"anansitrading","email":"anansitrading@gmail.com"}],"homepage":"https://github.com/adeze/raindrop-mcp#readme","bugs":{"url":"https://github.com/adeze/raindrop-mcp/issues"},"bin":{"raindrop-mcp":"build/index.js"},"dist":{"shasum":"1acbdc21c3af7a902e74182807b1ed841d0839b7","tarball":"https://registry.npmjs.org/@anansitrading/raindrop-mcp/-/raindrop-mcp-2.0.17.tgz","fileCount":7,"integrity":"sha512-ebcNf/FV45Ik1YRn61GxRD1AWWSmT6SQh6r8h7G9HD3IkhwGKFqn3GgqT+VX1ilI2DQsJ0GxfeALk+3Ebfs66A==","signatures":[{"sig":"MEQCIFg293muLYebssGuzilX0/z6dVHTu63UPEQ7j/Lcw5q4AiAfMWsNPKXvSwPBwZoNBSXZz1Hntgvb3h/nsIoJUbwtDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317715},"main":"build/index.js","type":"module","module":"build/index.js","engines":{"bun":">=1.0.0","node":">=18.0.0"},"gitHead":"5222674fed800e68948d6cc9341814f75779406e","private":false,"scripts":{"dev":"bun run build && bun --watch src/index.ts","run":"bun run build/index.js","docs":"typedoc","test":"bun  --env-file .env test","build":"esbuild src/index.ts src/server.ts --bundle --platform=node --format=esm --sourcemap --outdir=build --external:@modelcontextprotocol/* --external:express --external:axios --external:dotenv --external:openapi-fetch --external:rate-limiter-flexible --external:simple-oauth2 --external:zod --external:zod-to-json-schema --external:openai","clean":"rm -rf build","dev:http":"bun run build && bun --watch src/server.ts","dxt:pack":"npx @anthropic-ai/mcpb@latest pack && mcpb clean raindrop-mcp.dxt","inspector":"npx @modelcontextprotocol/inspector node build/index.js","bump:major":"bun pm version major","bump:minor":"bun pm version minor","bump:patch":"bun pm version patch","bun:update":"bun update","start:http":"bun run src/server.ts","start:prod":"bun run build/index.js","type-check":"tsc --noEmit","release:dxt":"bun run dxt:pack && gh release create v$(jq -r .version package.json) raindrop-mcp.dxt --title \"Release v$(jq -r .version package.json)\" --notes \"DXT manifest for MCP\"","tag:version":"git tag v$(jq -r .version package.json) && git push origin master && git push origin v$(jq -r .version package.json)","test:coverage":"bun test --coverage","bun:publish:npm":"bun publish --access public","generate:client":"npx @openapitools/openapi-generator-cli generate -i ./raindrop-complete.yaml -g typescript-axios -o src/services/raindrop-client","generate:schema":"npx openapi-typescript ./raindrop-complete.yaml -o ./src/types/raindrop.schema.d.ts --tsconfig ./tsconfig.json --export-type --useUnionTypes --immutable","bun:publish:github":"bun publish --registry=https://npm.pkg.github.com/ --access public","inspector:http-server":"npx @modelcontextprotocol/inspector node build/server.js"},"_npmUser":{"name":"anansitrading","email":"anansitrading@gmail.com"},"repository":{"url":"git+https://github.com/adeze/raindrop-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP Server for Raindrop.io bookmark management","directories":{},"_nodeVersion":"20.19.5","dependencies":{"esm":"^3.2.25","zod":"3.24.1","axios":"^1.12.2","dotenv":"^17.2.2","openai":"^5.20.3","express":"^5.1.0","openapi-fetch":"^0.14.0","simple-oauth2":"^5.1.0","zod-to-json-schema":"^3.24.6","rate-limiter-flexible":"^7.3.1","@modelcontextprotocol/sdk":"^1.18.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","esbuild":"^0.25.10","typedoc":"^0.28.13","@types/bun":"^1.2.22","typescript":"^5.9.2","@types/node":"^24.5.1","@types/express":"^5.0.3","@anthropic-ai/dxt":"^0.2.6","openapi-typescript":"^7.9.1","@vitest/coverage-v8":"^3.2.4","@modelcontextprotocol/inspector":"^0.16.7","@openapitools/openapi-generator-cli":"^2.23.4"},"_npmOperationalInternal":{"tmp":"tmp/raindrop-mcp_2.0.17_1759613097838_0.06203670582467913","host":"s3://npm-registry-packages-npm-production"}},"2.0.18":{"name":"@anansitrading/raindrop-mcp","version":"2.0.18","keywords":["mcp","raindrop.io","modelcontextprotocol","mcp-server","raindrop","bookmarks","ai-assistant","llm-tools","typescript"],"author":{"name":"Adam E"},"license":"MIT","_id":"@anansitrading/raindrop-mcp@2.0.18","maintainers":[{"name":"anansitrading","email":"anansitrading@gmail.com"}],"homepage":"https://github.com/adeze/raindrop-mcp#readme","bugs":{"url":"https://github.com/adeze/raindrop-mcp/issues"},"bin":{"raindrop-mcp":"build/index.js"},"dist":{"shasum":"808dd9de8f4b75b01eb840f8cf919d6804d8582b","tarball":"https://registry.npmjs.org/@anansitrading/raindrop-mcp/-/raindrop-mcp-2.0.18.tgz","fileCount":7,"integrity":"sha512-4zfhadodBbo9tlMTlr7mDvfNREjx1dUJVaS/ZALfEX0F+laZVX8vahuNv4KrQMMberDLWTmjQiSJ7zO5jiFvJA==","signatures":[{"sig":"MEUCIQDdl77xSeDA4UHTcm1AEgVnO+CvzmIN6NaH1FBFnmHkmAIgFNHYHaNA1x4wVzqqrH7V7pb3cIGlh0VulyOnpiLzo38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317547},"main":"build/index.js","type":"module","module":"build/index.js","engines":{"bun":">=1.0.0","node":">=18.0.0"},"gitHead":"8dbc5b520c9c8c4074264a52be529ebfd317a227","private":false,"scripts":{"dev":"bun run build && bun --watch src/index.ts","run":"bun run build/index.js","docs":"typedoc","test":"bun  --env-file .env test","build":"esbuild src/index.ts src/server.ts --bundle --platform=node --format=esm --sourcemap --outdir=build --external:@modelcontextprotocol/* --external:express --external:axios --external:dotenv --external:openapi-fetch --external:rate-limiter-flexible --external:simple-oauth2 --external:zod --external:zod-to-json-schema --external:openai","clean":"rm -rf build","dev:http":"bun run build && bun --watch src/server.ts","dxt:pack":"npx @anthropic-ai/mcpb@latest pack && mcpb clean raindrop-mcp.dxt","inspector":"npx @modelcontextprotocol/inspector node build/index.js","bump:major":"bun pm version major","bump:minor":"bun pm version minor","bump:patch":"bun pm version patch","bun:update":"bun update","start:http":"bun run src/server.ts","start:prod":"bun run build/index.js","type-check":"tsc --noEmit","release:dxt":"bun run dxt:pack && gh release create v$(jq -r .version package.json) raindrop-mcp.dxt --title \"Release v$(jq -r .version package.json)\" --notes \"DXT manifest for MCP\"","tag:version":"git tag v$(jq -r .version package.json) && git push origin master && git push origin v$(jq -r .version package.json)","test:coverage":"bun test --coverage","bun:publish:npm":"bun publish --access public","generate:client":"npx @openapitools/openapi-generator-cli generate -i ./raindrop-complete.yaml -g typescript-axios -o src/services/raindrop-client","generate:schema":"npx openapi-typescript ./raindrop-complete.yaml -o ./src/types/raindrop.schema.d.ts --tsconfig ./tsconfig.json --export-type --useUnionTypes --immutable","bun:publish:github":"bun publish --registry=https://npm.pkg.github.com/ --access public","inspector:http-server":"npx @modelcontextprotocol/inspector node build/server.js"},"_npmUser":{"name":"anansitrading","email":"anansitrading@gmail.com"},"repository":{"url":"git+https://github.com/adeze/raindrop-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP Server for Raindrop.io bookmark management","directories":{},"_nodeVersion":"20.19.5","dependencies":{"esm":"^3.2.25","zod":"3.24.1","axios":"^1.12.2","dotenv":"^17.2.2","openai":"^5.20.3","express":"^5.1.0","openapi-fetch":"^0.14.0","simple-oauth2":"^5.1.0","zod-to-json-schema":"^3.24.6","rate-limiter-flexible":"^7.3.1","@modelcontextprotocol/sdk":"^1.18.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","esbuild":"^0.25.10","typedoc":"^0.28.13","@types/bun":"^1.2.22","typescript":"^5.9.2","@types/node":"^24.5.1","@types/express":"^5.0.3","@anthropic-ai/dxt":"^0.2.6","openapi-typescript":"^7.9.1","@vitest/coverage-v8":"^3.2.4","@modelcontextprotocol/inspector":"^0.16.7","@openapitools/openapi-generator-cli":"^2.23.4"},"_npmOperationalInternal":{"tmp":"tmp/raindrop-mcp_2.0.18_1759613488656_0.34904926558830773","host":"s3://npm-registry-packages-npm-production"}},"2.0.19":{"name":"@anansitrading/raindrop-mcp","version":"2.0.19","keywords":["mcp","raindrop.io","modelcontextprotocol","mcp-server","raindrop","bookmarks","ai-assistant","llm-tools","typescript"],"author":{"name":"Adam E"},"license":"MIT","_id":"@anansitrading/raindrop-mcp@2.0.19","maintainers":[{"name":"anansitrading","email":"anansitrading@gmail.com"}],"homepage":"https://github.com/adeze/raindrop-mcp#readme","bugs":{"url":"https://github.com/adeze/raindrop-mcp/issues"},"bin":{"raindrop-mcp":"build/index.js"},"dist":{"shasum":"fb35cb117ba5e3380cda655e146015fd87464111","tarball":"https://registry.npmjs.org/@anansitrading/raindrop-mcp/-/raindrop-mcp-2.0.19.tgz","fileCount":7,"integrity":"sha512-I5HomUljI2j1KR01y4AN+tXwINU39gAUwkURuZlqRmhSiSHcksbfB9brFnNRcbw7hnkOzH9Io1PMbsKUV02enQ==","signatures":[{"sig":"MEUCIAiKRIMuHJprUokf33eVS/+gRrrfWEk8YyHZsJNjyCvxAiEAhBwBwZXm9U0UVVvyhHo5xU4yO282iQTJbJXAyA+zctY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1095522},"main":"build/index.js","type":"module","module":"build/index.js","engines":{"bun":">=1.0.0","node":">=18.0.0"},"gitHead":"8dbc5b520c9c8c4074264a52be529ebfd317a227","private":false,"scripts":{"dev":"bun run build && bun --watch src/index.ts","run":"bun run build/index.js","docs":"typedoc","test":"bun  --env-file .env test","build":"esbuild src/index.ts src/server.ts --bundle --platform=node --format=esm --sourcemap --outdir=build --external:@modelcontextprotocol/* --external:express --external:axios --external:dotenv --external:openapi-fetch --external:rate-limiter-flexible --external:simple-oauth2 --external:openai","clean":"rm -rf build","dev:http":"bun run build && bun --watch src/server.ts","dxt:pack":"npx @anthropic-ai/mcpb@latest pack && mcpb clean raindrop-mcp.dxt","inspector":"npx @modelcontextprotocol/inspector node build/index.js","bump:major":"bun pm version major","bump:minor":"bun pm version minor","bump:patch":"bun pm version patch","bun:update":"bun update","start:http":"bun run src/server.ts","start:prod":"bun run build/index.js","type-check":"tsc --noEmit","release:dxt":"bun run dxt:pack && gh release create v$(jq -r .version package.json) raindrop-mcp.dxt --title \"Release v$(jq -r .version package.json)\" --notes \"DXT manifest for MCP\"","tag:version":"git tag v$(jq -r .version package.json) && git push origin master && git push origin v$(jq -r .version package.json)","test:coverage":"bun test --coverage","bun:publish:npm":"bun publish --access public","generate:client":"npx @openapitools/openapi-generator-cli generate -i ./raindrop-complete.yaml -g typescript-axios -o src/services/raindrop-client","generate:schema":"npx openapi-typescript ./raindrop-complete.yaml -o ./src/types/raindrop.schema.d.ts --tsconfig ./tsconfig.json --export-type --useUnionTypes --immutable","bun:publish:github":"bun publish --registry=https://npm.pkg.github.com/ --access public","inspector:http-server":"npx @modelcontextprotocol/inspector node build/server.js"},"_npmUser":{"name":"anansitrading","email":"anansitrading@gmail.com"},"repository":{"url":"git+https://github.com/adeze/raindrop-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP Server for Raindrop.io bookmark management","directories":{},"_nodeVersion":"20.19.5","dependencies":{"esm":"^3.2.25","zod":"3.24.1","axios":"^1.12.2","dotenv":"^17.2.2","openai":"^5.20.3","express":"^5.1.0","openapi-fetch":"^0.14.0","simple-oauth2":"^5.1.0","zod-to-json-schema":"^3.24.6","rate-limiter-flexible":"^7.3.1","@modelcontextprotocol/sdk":"^1.18.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","esbuild":"^0.25.10","typedoc":"^0.28.13","@types/bun":"^1.2.22","typescript":"^5.9.2","@types/node":"^24.5.1","@types/express":"^5.0.3","@anthropic-ai/dxt":"^0.2.6","openapi-typescript":"^7.9.1","@vitest/coverage-v8":"^3.2.4","@modelcontextprotocol/inspector":"^0.16.7","@openapitools/openapi-generator-cli":"^2.23.4"},"_npmOperationalInternal":{"tmp":"tmp/raindrop-mcp_2.0.19_1759614001911_0.6979786553606597","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@anansitrading/raindrop-mcp","version":"3.0.0","keywords":["mcp","raindrop.io","modelcontextprotocol","mcp-server","raindrop","bookmarks","ai-assistant","llm-tools","typescript"],"author":{"name":"Adam E"},"license":"MIT","_id":"@anansitrading/raindrop-mcp@3.0.0","maintainers":[{"name":"anansitrading","email":"anansitrading@gmail.com"}],"homepage":"https://github.com/adeze/raindrop-mcp#readme","bugs":{"url":"https://github.com/adeze/raindrop-mcp/issues"},"bin":{"raindrop-mcp":"build/simple.js"},"dist":{"shasum":"8a2718a62902c1c7c277859c4e2cf76f160c9433","tarball":"https://registry.npmjs.org/@anansitrading/raindrop-mcp/-/raindrop-mcp-3.0.0.tgz","fileCount":8,"integrity":"sha512-gVjoP1dlZTgEOKF+BVLW6vkX2nhUmm37DA3ghWugmBWmVYCQUULi3NohBlJU12hAc3kGd33CSuEW/qdNe2wkag==","signatures":[{"sig":"MEUCICR/mfIsgi/NjRwLlhqq3wEtYD8jl1fq0O3SPgf+b8MJAiEAm57rYGzvMZj8LgKN+MzUbwOEOuNavXSG714YJaHxZLM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1102838},"main":"build/simple.js","type":"module","module":"build/simple.js","engines":{"bun":">=1.0.0","node":">=18.0.0"},"gitHead":"eb2349b1e75df550de24ab7ef026fd11d0855663","private":false,"scripts":{"dev":"bun run build && bun --watch src/index.ts","run":"bun run build/index.js","docs":"typedoc","test":"bun  --env-file .env test","build":"esbuild src/index.ts src/server.ts --bundle --platform=node --format=esm --sourcemap --outdir=build --external:@modelcontextprotocol/* --external:express --external:axios --external:dotenv --external:openapi-fetch --external:rate-limiter-flexible --external:simple-oauth2 --external:openai","clean":"rm -rf build","dev:http":"bun run build && bun --watch src/server.ts","dxt:pack":"npx @anthropic-ai/mcpb@latest pack && mcpb clean raindrop-mcp.dxt","inspector":"npx @modelcontextprotocol/inspector node build/index.js","bump:major":"bun pm version major","bump:minor":"bun pm version minor","bump:patch":"bun pm version patch","bun:update":"bun update","start:http":"bun run src/server.ts","start:prod":"bun run build/index.js","type-check":"tsc --noEmit","release:dxt":"bun run dxt:pack && gh release create v$(jq -r .version package.json) raindrop-mcp.dxt --title \"Release v$(jq -r .version package.json)\" --notes \"DXT manifest for MCP\"","tag:version":"git tag v$(jq -r .version package.json) && git push origin master && git push origin v$(jq -r .version package.json)","test:coverage":"bun test --coverage","bun:publish:npm":"bun publish --access public","generate:client":"npx @openapitools/openapi-generator-cli generate -i ./raindrop-complete.yaml -g typescript-axios -o src/services/raindrop-client","generate:schema":"npx openapi-typescript ./raindrop-complete.yaml -o ./src/types/raindrop.schema.d.ts --tsconfig ./tsconfig.json --export-type --useUnionTypes --immutable","bun:publish:github":"bun publish --registry=https://npm.pkg.github.com/ --access public","inspector:http-server":"npx @modelcontextprotocol/inspector node build/server.js"},"_npmUser":{"name":"anansitrading","email":"anansitrading@gmail.com"},"repository":{"url":"git+https://github.com/adeze/raindrop-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Simple, working MCP Server for Raindrop.io bookmark management","directories":{},"_nodeVersion":"20.19.5","dependencies":{"esm":"^3.2.25","zod":"3.24.1","axios":"^1.12.2","dotenv":"^17.2.2","openai":"^5.20.3","express":"^5.1.0","openapi-fetch":"^0.14.0","simple-oauth2":"^5.1.0","zod-to-json-schema":"^3.24.6","rate-limiter-flexible":"^7.3.1","@modelcontextprotocol/sdk":"^1.18.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","esbuild":"^0.25.10","typedoc":"^0.28.13","@types/bun":"^1.2.22","typescript":"^5.9.2","@types/node":"^24.5.1","@types/express":"^5.0.3","@anthropic-ai/dxt":"^0.2.6","openapi-typescript":"^7.9.1","@vitest/coverage-v8":"^3.2.4","@modelcontextprotocol/inspector":"^0.16.7","@openapitools/openapi-generator-cli":"^2.23.4"},"_npmOperationalInternal":{"tmp":"tmp/raindrop-mcp_3.0.0_1759616452912_0.8226152243710683","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@anansitrading/raindrop-mcp","version":"3.0.1","description":"Simple, working MCP Server for Raindrop.io bookmark management","main":"build/simple.js","module":"build/simple.js","type":"module","bin":{"raindrop-mcp":"build/simple.js"},"private":false,"scripts":{"dev":"bun run build && bun --watch src/index.ts","dev:http":"bun run build && bun --watch src/server.ts","inspector":"npx @modelcontextprotocol/inspector node build/index.js","inspector:http-server":"npx @modelcontextprotocol/inspector node build/server.js","type-check":"tsc --noEmit","test":"bun  --env-file .env test","test:coverage":"bun test --coverage","run":"bun run build/index.js","build":"esbuild src/index.ts src/server.ts --bundle --platform=node --format=esm --sourcemap --outdir=build --external:@modelcontextprotocol/* --external:express --external:axios --external:dotenv --external:openapi-fetch --external:rate-limiter-flexible --external:simple-oauth2 --external:openai","start:prod":"bun run build/index.js","start:http":"bun run src/server.ts","clean":"rm -rf build","bump:patch":"bun pm version patch","bump:minor":"bun pm version minor","bump:major":"bun pm version major","bun:update":"bun update","dxt:pack":"npx @anthropic-ai/mcpb@latest pack && mcpb clean raindrop-mcp.dxt","generate:schema":"npx openapi-typescript ./raindrop-complete.yaml -o ./src/types/raindrop.schema.d.ts --tsconfig ./tsconfig.json --export-type --useUnionTypes --immutable","generate:client":"npx @openapitools/openapi-generator-cli generate -i ./raindrop-complete.yaml -g typescript-axios -o src/services/raindrop-client","bun:publish:github":"bun publish --registry=https://npm.pkg.github.com/ --access public","bun:publish:npm":"bun publish --access public","tag:version":"git tag v$(jq -r .version package.json) && git push origin master && git push origin v$(jq -r .version package.json)","release:dxt":"bun run dxt:pack && gh release create v$(jq -r .version package.json) raindrop-mcp.dxt --title \"Release v$(jq -r .version package.json)\" --notes \"DXT manifest for MCP\"","docs":"typedoc"},"repository":{"type":"git","url":"git+https://github.com/adeze/raindrop-mcp.git"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"keywords":["mcp","raindrop.io","modelcontextprotocol","mcp-server","raindrop","bookmarks","ai-assistant","llm-tools","typescript"],"author":{"name":"Adam E"},"license":"MIT","bugs":{"url":"https://github.com/adeze/raindrop-mcp/issues"},"homepage":"https://github.com/adeze/raindrop-mcp#readme","dependencies":{"@modelcontextprotocol/sdk":"^1.18.0","axios":"^1.12.2","dotenv":"^17.2.2","esm":"^3.2.25","express":"^5.1.0","openai":"^5.20.3","openapi-fetch":"^0.14.0","rate-limiter-flexible":"^7.3.1","simple-oauth2":"^5.1.0","zod":"3.24.1","zod-to-json-schema":"^3.24.6"},"devDependencies":{"@anthropic-ai/dxt":"^0.2.6","@modelcontextprotocol/inspector":"^0.16.7","@openapitools/openapi-generator-cli":"^2.23.4","@types/bun":"^1.2.22","@types/express":"^5.0.3","@types/node":"^24.5.1","@vitest/coverage-v8":"^3.2.4","esbuild":"^0.25.10","openapi-typescript":"^7.9.1","typedoc":"^0.28.13","typescript":"^5.9.2","vitest":"^3.2.4"},"engines":{"node":">=18.0.0","bun":">=1.0.0"},"_id":"@anansitrading/raindrop-mcp@3.0.1","gitHead":"5416933429beb558b1b25d34948926fbeefacc57","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-p9zlE8dy5bZli9rPBx/nOZshAaC3+lio0xXBm5FFzIJD44m88qeKRyzTvffX49f2hmHzY36Ndk08vyHNDX147A==","shasum":"e0dd2ee1d0ef5ce3f33620ab842ce97739dadee6","tarball":"https://registry.npmjs.org/@anansitrading/raindrop-mcp/-/raindrop-mcp-3.0.1.tgz","fileCount":8,"unpackedSize":1102836,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFhYoySWyIYn+cipGReFh62paxIXhY22rz5BeCv2dZAbAiEAkex8Oj+WiC0yRVX/WiwBt8I8VHso159amq7N/D1cCn4="}]},"_npmUser":{"name":"anansitrading","email":"anansitrading@gmail.com"},"directories":{},"maintainers":[{"name":"anansitrading","email":"anansitrading@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/raindrop-mcp_3.0.1_1759616563238_0.5259920616499649"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-04T21:24:57.773Z","modified":"2025-10-04T22:22:44.326Z","2.0.17":"2025-10-04T21:24:58.050Z","2.0.18":"2025-10-04T21:31:28.838Z","2.0.19":"2025-10-04T21:40:02.186Z","3.0.0":"2025-10-04T22:20:53.135Z","3.0.1":"2025-10-04T22:22:43.470Z"},"bugs":{"url":"https://github.com/adeze/raindrop-mcp/issues"},"author":{"name":"Adam E"},"license":"MIT","homepage":"https://github.com/adeze/raindrop-mcp#readme","keywords":["mcp","raindrop.io","modelcontextprotocol","mcp-server","raindrop","bookmarks","ai-assistant","llm-tools","typescript"],"repository":{"type":"git","url":"git+https://github.com/adeze/raindrop-mcp.git"},"description":"Simple, working MCP Server for Raindrop.io bookmark management","maintainers":[{"name":"anansitrading","email":"anansitrading@gmail.com"}],"readme":"# Raindrop.io MCP Server\n\n[![smithery badge](https://smithery.ai/badge/@adeze/raindrop-mcp)](https://smithery.ai/server/@adeze/raindrop-mcp)\n\nThis project provides a Model Context Protocol (MCP) server for interacting with the [Raindrop.io](https://raindrop.io/) bookmarking service. It allows Language Models (LLMs) and other AI agents to access and manage your Raindrop.io data through the MCP standard.\n\n[![npm version](https://badge.fury.io/js/%40adeze%2Fraindrop-mcp.svg)](https://www.npmjs.com/package/@adeze/raindrop-mcp)\n\n## Features\n\n- **CRUD Operations**: Create, Read, Update, and Delete collections and bookmarks.\n- **Advanced Search**: Filter bookmarks by various criteria like tags, domain, type, creation date, etc.\n- **Tag Management**: List, rename, merge, and delete tags.\n- **Highlight Access**: Retrieve text highlights from bookmarks.\n- **Collection Management**: Reorder, expand/collapse, merge, and remove empty collections.\n- **File Upload**: Upload files directly to Raindrop.io.\n- **Reminders**: Set reminders for specific bookmarks.\n- **Import/Export**: Initiate and check the status of bookmark imports and exports.\n- **Trash Management**: Empty the trash.\n- **MCP Compliance**: Exposes Raindrop.io functionalities as MCP resources and tools.\n- **Optimized Tools**: Enhanced tool structure with 9 core tools using modern `resource_link` patterns for efficient data access.\n- **AI-Friendly Interface**: Clear naming conventions and comprehensive parameter documentation.\n- **Streaming Support**: Provides real-time SSE (Server-Sent Events) endpoints for streaming bookmark updates.\n- **Built with TypeScript**: Strong typing for better maintainability.\n- **Uses Axios**: For making requests to the Raindrop.io API.\n- **Uses Zod**: For robust schema validation of API parameters and responses.\n- **Uses MCP SDK**: Leverages the official `@modelcontextprotocol/sdk`.\n\n## Prerequisites\n\n- Node.js (v18 or later recommended) or Bun\n- A Raindrop.io account\n- A Raindrop.io API Access Token (create one in your [Raindrop.io settings](https://app.raindrop.io/settings/integrations))\n\n## Installation and Usage\n\n### Using NPX (Recommended)\n\nYou can run the server directly using npx without installing it:\n\n```bash\n# Set your API token as an environment variable\nexport RAINDROP_ACCESS_TOKEN=YOUR_RAINDROP_ACCESS_TOKEN\n\n# Run the server\nnpx @adeze/raindrop-mcp\n```\n\n### From Source\n\n1.  **Clone the repository:**\n\n    ```bash\n    git clone https://github.com/adeze/raindrop-mcp.git\n    cd raindrop-mcp\n    ```\n\n2.  **Install dependencies:**\n\n    ```bash\n    bun install\n    ```\n\n3.  **Configure Environment Variables:**\n    Create a `.env` file in the root directory by copying the example:\n\n    ```bash\n    cp .env.example .env\n    ```\n\n    Edit the `.env` file and add your Raindrop.io API Access Token:\n\n    ```env\n    RAINDROP_ACCESS_TOKEN=YOUR_RAINDROP_ACCESS_TOKEN\n    ```\n\n4.  **Build and Run:**\n    ```bash\n    bun run build\n    bun start\n    ```\n\n\n## Inspector CLI & VS Code Integration\n\nThis project is designed for seamless debugging and protocol inspection using the [MCP Inspector CLI](https://github.com/modelcontextprotocol/inspector). For full instructions and best practices, see [`./github/prompts/inspector.prompt.md`](.github/prompts/inspector.prompt.md).\n\n### MCP Inspector CLI Usage\n\n- **List available tools:**\n  ```bash\n  npx -y @modelcontextprotocol/inspector --cli node build/index.js --method tools/list\n  ```\n- **Send protocol requests (e.g., ping):**\n  ```bash\n  npx -y @modelcontextprotocol/inspector --cli node build/index.js --method ping\n  ```\n- **Debug with Inspector:**\n  - For STDIO server:\n    ```bash\n    npx -y @modelcontextprotocol/inspector node build/index.js\n    ```\n  - For HTTP server:\n    ```bash\n    npx -y @modelcontextprotocol/inspector node build/server.js\n    ```\n\nYou can automate these flows in VS Code using launch configurations and tasks. See the prompt file for more advanced scenarios and flags.\n\n---\n\nThe server uses standard input/output (stdio) for communication by default, listening for requests on stdin and sending responses to stdout.\n\n## Usage with MCP Clients\n\nConnect your MCP client (like an LLM agent) to the running server process via stdio. The server exposes the following resource patterns:\n\n### **Static Resources:**\n- `mcp://user/profile` - User account information\n- `diagnostics://server` - Server diagnostics and environment info\n\n### **Dynamic Resources:** \n- `mcp://collection/{id}` - Access any Raindrop collection by ID (e.g., `mcp://collection/123456`)\n- `mcp://raindrop/{id}` - Access any Raindrop bookmark by ID (e.g., `mcp://raindrop/987654`)\n\n### **Available Tools (10 total):**\n- **diagnostics** - Server diagnostic information\n- **collection_list** - List all collections (returns `resource_link` to individual collections)\n- **collection_manage** - Create, update, or delete collections\n- **bookmark_search** - Search bookmarks (returns `resource_link` to individual bookmarks)  \n- **bookmark_manage** - Create, update, or delete bookmarks\n- **tag_manage** - Rename, merge, or delete tags\n- **highlight_manage** - Create, update, or delete highlights\n- **getRaindrop** - Fetch single bookmark by ID (legacy)\n- **listRaindrops** - List bookmarks for collection (legacy)\n- **bulk_edit_raindrops** - Bulk update tags, favorite status, media, cover, or move bookmarks to another collection.\n\n### Bulk Edit Tool Usage\n\n**Tool Name:** `bulk_edit_raindrops`\n\nBulk update multiple bookmarks in a collection. Supports updating tags, favorite status, media, cover, and moving bookmarks to another collection.\n\n**Input Schema:**\n```json\n{\n  \"collectionId\": 123456,                // Collection to update raindrops in\n  \"ids\": [987654, 876543],               // (Optional) Array of raindrop IDs to update\n  \"important\": true,                     // (Optional) Mark as favorite\n  \"tags\": [\"work\", \"urgent\"],           // (Optional) Tags to set (empty array removes all tags)\n  \"media\": [\"https://img.com/a.png\"],   // (Optional) Media URLs (empty array removes all media)\n  \"cover\": \"<screenshot>\",              // (Optional) Cover URL\n  \"collection\": { \"$id\": 654321 },      // (Optional) Move to another collection\n  \"nested\": false                        // (Optional) Include nested collections\n}\n```\n\n**Example Usage:**\n- Update tags and favorite status for two bookmarks:\n```json\n{\n  \"collectionId\": 123456,\n  \"ids\": [987654, 876543],\n  \"tags\": [\"project\", \"review\"],\n  \"important\": true\n}\n```\n- Remove all tags from all bookmarks in a collection:\n```json\n{\n  \"collectionId\": 123456,\n  \"tags\": []\n}\n```\n- Move bookmarks to another collection:\n```json\n{\n  \"collectionId\": 123456,\n  \"ids\": [987654, 876543],\n  \"collection\": { \"$id\": 654321 }\n}\n```\n\n**Response:**\nReturns a text message indicating success and the number of modified bookmarks.\n```json\n{\n  \"content\": [\n    { \"type\": \"text\", \"text\": \"Bulk edit successful. Modified: 2\" }\n  ]\n}\n```\n\nThe modern tools use the efficient `resource_link` pattern - they return lightweight links to resources instead of full data, allowing clients to fetch complete data only when needed via the dynamic resource URIs.\n\n### MCP Configuration\n\nTo use the Raindrop MCP server with your AI assistant or MCP-compatible client, you can add the following configuration to your `.mcp.json` file:\n\n```json\n\"raindrop\": {\n  \"command\": \"npx\",\n  \"args\": [\n    \"@adeze/raindrop-mcp@latest\"\n  ],\n  \"env\": {\n    \"RAINDROP_ACCESS_TOKEN\": \"YOUR_RAINDROP_API_TOKEN\"\n  }\n}\n```\n\nFor Claude Code or other MCP-compatible clients, this will register the Raindrop server under the name \"raindrop\" and make all of its resources and tools available to your AI assistant.\n\n## Development\n\n- **Testing:** `bun test`\n- **Type checking:** `bun run type-check`\n- **Build:** `bun run build`\n- **Development:** `bun run dev`\n- **Debug:** `bun run debug` or `bun run inspector`\n- **HTTP server:** `bun run start:http`\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\n## Architecture Overview\n\n### Project Structure\n\n- **Source:** `src/`\n  - `index.ts`, `server.ts`: Entrypoints for STDIO and HTTP MCP servers.\n  - `connectors/`: External service connectors (e.g., OpenAI).\n  - `services/`: Business logic for Raindrop.io and MCP protocol (`raindrop.service.ts`, `raindropmcp.service.ts`).\n  - `types/`: TypeScript types and schemas (MCP, Raindrop, OAuth, Zod).\n  - `utils/`: Logging and shared utilities.\n- **Build:** `build/`\n  - Compiled output for deployment and inspection.\n- **Tests:** `tests/`\n  - All Vitest test files for services, connectors, and protocol compliance.\n\n### Key Technologies & Patterns\n\n- **TypeScript:** Type-safe, modular codebase.\n- **Zod:** Schema validation for all API inputs/outputs.\n- **Bun:** Package management, scripts, and runtime.\n- **Vitest:** Testing framework for all logic and integration tests.\n- **MCP Protocol:** Implements Model Context Protocol via STDIO and HTTP, exposing Raindrop.io as MCP resources and tools.\n- **Inspector Tool:** Integrated for protocol debugging and inspection.\n- **Defensive Programming:** Centralized error handling, explicit types, and robust validation.\n- **Declarative Tooling:** Tools and resources are defined with clear schemas and documentation, following MCP and DXT specifications.\n\n### Tool & Resource Design\n\n- **Resources:** Exposed as MCP URIs (e.g., `collections://all`, `tags://all`, `highlights://raindrop/{id}`).\n- **Tools:** Modular, context-aware, and AI-friendly. Reduced redundancy and grouped by category/action.\n- **Service Layer:** Centralized business logic, endpoint construction, and error handling.\n- **Connector Layer:** Handles external integrations (e.g., OpenAI).\n\n### Development & Release\n\n- **Scripts:** All build, test, and release scripts use Bun.\n- **DXT Manifest:** Automated packaging and release via GitHub CLI.\n- **Continuous Integration:** Version tagging and manifest publishing are fully automated.\n\n## 📋 Recent Enhancements (v2.0.12)\n\n### **MCP Resource Links Implementation** ✨ NEW\n- **Modern `resource_link` pattern** following MCP SDK v1.17.2 best practices\n- **Efficient data access** - tools return lightweight links instead of full data payloads\n- **Better performance** - clients fetch full bookmark/collection data only when needed\n- **Seamless integration** with existing dynamic resource system (`mcp://raindrop/{id}`)\n\n### **SDK & API Updates**\n- **Updated to MCP SDK v1.17.2** with latest protocol features\n- **Modern tool registration** using `registerTool()` API with proper descriptions\n- **Fixed API endpoints** - corrected Raindrop.io API path parameters\n- **Enhanced tool implementations** - all 9 tools now fully functional\n\n### **Tool Optimization** \n- **Resource-efficient responses** - bookmark/collection lists return `resource_link` objects\n- **Dynamic resource access** - `mcp://collection/{id}` and `mcp://raindrop/{id}` patterns\n- **Better UX** - clients can display lists without loading full data\n- **MCP compliance** - follows official SDK patterns and examples\n\n### **Service Layer Improvements**\n- **25-30% code reduction** through extracted common functions and patterns\n- **Consistent error handling** with standardized response processing\n- **Enhanced type safety** with generic response handlers\n- **Centralized endpoint building** for better API consistency\n\n### **Developer Experience**\n- **[VS Code Configuration](https://github.com/adeze/raindrop-mcp/issues/3)**: Enterprise-grade testing & debugging support\n- **Enhanced error messages** with actionable suggestions\n- **Standardized resource patterns** for consistent API interactions\n- **Comprehensive diagnostic tools** for monitoring and debugging\n\n## Automated Release & Tagging\n\nThis project uses Bun scripts and GitHub CLI to automate version tagging and DXT manifest release.\n\n### Tagging the Current Version\n\nTags the current commit with the version from `package.json` and pushes it to GitHub:\n\n```bash\n# Bump version locally\nbun run bump:patch  # 2.0.10 → 2.0.11\n\n# Then either:\n# Option A: Let workflow handle publishing\nbun run tag:version  # Creates tag, triggers workflow\n\n# Option B: Publish manually  \nbun run build\nbun run bun:publish:npm\nbun run bun:publish:github\n```\n\n### Publishing the DXT Manifest to GitHub Releases\n\nCreates a GitHub release for the current version and attaches the `raindrop-mcp.dxt` manifest:\n\n```bash\nbun run release:dxt\n```\n\n**Requirements:**\n- [GitHub CLI](https://cli.github.com/) (`gh`) must be installed and authenticated.\n- [`jq`](https://stedolan.github.io/jq/) must be installed (`brew install jq` on macOS).\n- The `raindrop-mcp.dxt` file must exist in the project root.\n\n**Scripts (in `package.json`):**\n```json\n\"tag:version\": \"git tag v$(jq -r .version package.json) && git push origin v$(jq -r .version package.json)\",\n\"release:dxt\": \"gh release create v$(jq -r .version package.json) raindrop-mcp.dxt --title \\\"Release v$(jq -r .version package.json)\\\" --notes \\\"DXT manifest for MCP\\\"\"\n```\n\nSee [Model Context Protocol documentation](https://modelcontextprotocol.io/) and [Raindrop.io API docs](https://developer.raindrop.io) for more details.\n","readmeFilename":"README.md"}