{"_id":"affine-mcp-server","_rev":"27-ab8d22f95bf5d34e8176153ab8ba17b6","name":"affine-mcp-server","dist-tags":{"latest":"3.0.1"},"versions":{"1.2.0":{"name":"affine-mcp-server","version":"1.2.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.2.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"dist/index.js"},"dist":{"shasum":"a2dab91989b1216cc6ec1dc38c9ecbf6c60e4e76","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.2.0.tgz","fileCount":21,"integrity":"sha512-Ehurp01oVfSsMhQGUy21HfJXCJ9ne+YafdU4N8+ShP+Tt6fvV+JVvyFIp1OKQKLKGRzyzOkNIz4WY9pWu7XeYQ==","signatures":[{"sig":"MEQCIDVUK3aisd3hU3kPqSDyNDrxv5xJ+6bp/QQHLehHeMJSAiAS4iycflLgaDZWIwkdXAHNKsZlscdGo9wnSH/Y694iVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86373},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"b64ece1993176728c94dd4d050a92288f0c73cdb","private":false,"scripts":{"dev":"tsx watch src/index.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"11.5.1","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.1.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","dotenv":"^16.6.1","undici":"^6.19.8","form-data":"^4.0.4","node-fetch":"^3.3.2","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.11"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.2.0_1758015303072_0.233332887371279","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"affine-mcp-server","version":"1.2.1","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.2.1","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"dist/index.js"},"dist":{"shasum":"c12edbf92accd75ce88ea21dff1a0773297df74b","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.2.1.tgz","fileCount":21,"integrity":"sha512-mMrBM1T5QP6yWwm+YIO4+KJ+wCI7lqIu8ucIhuT6QA/JXrjlcqSF4snVkjoSJx73Tjw0gLBZh6DHBIKDg38AvQ==","signatures":[{"sig":"MEYCIQDvPoYz4321Xo1o0M5xPe/mSkIv+Lc316j2YyQP7fSSXAIhAPFCzp1tbLz59zLTXMXqZUWz1Cu/VFEbg1Iq3uOFX0ut","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88877},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"64fafd3cd69440ea68a4ac7b118033c4b694429a","private":false,"scripts":{"dev":"tsx watch src/index.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"11.5.1","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.1.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","dotenv":"^16.6.1","undici":"^6.19.8","form-data":"^4.0.4","node-fetch":"^3.3.2","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.11"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.2.1_1758093826345_0.6780095230630361","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"affine-mcp-server","version":"1.2.2","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.2.2","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"a9a333a700966ced281195ae7365e1a5c9fcf922","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.2.2.tgz","fileCount":22,"integrity":"sha512-ru7kynvI5ZQIn2tZzKcNExuoa0xJFUsliZndlgBxfN4AvF5tpqaB1lvax167G07rkqAMRov9Ep82lL/Hru+o5g==","signatures":[{"sig":"MEQCIEORqIzbot3EhY9myyL4hnCuMSmzPxR1tAD2TG6R2kjwAiAw1wvarST+gnqUN6CrguegYdiA2Imo2cDEyU1sLxq3SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88788},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"45ff4291c734bb9401673b4d3cc35d8f246829d2","private":false,"scripts":{"dev":"tsx watch src/index.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"11.5.1","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.1.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","undici":"^6.19.8","form-data":"^4.0.4","node-fetch":"^3.3.2","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.11"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.2.2_1758158369624_0.9795471260585551","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"affine-mcp-server","version":"1.3.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.3.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"e6398bfa2de685a3cfad3ce306f617c37567339f","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.3.0.tgz","fileCount":21,"integrity":"sha512-jLd/SLnZirfebHAc9o9HDmLBwh3bcoNwRYz+smTPQ6Z7DlRH9BxJxXmvOZu8oL19y4q75SnxKUei60p42t/Hsw==","signatures":[{"sig":"MEUCID7tvCkGEvgbK4vqYeI5oGzLVr37iaTiLnJkxBjIkZ4zAiEA0RvyCfvOjx7BnpT0IeYv8rHXpNvRGFGnDnwDKl03YY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76496},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"99607d6b17b8eef31b9ed4b73c85d6adf51edaf6","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","pack:check":"npm pack --dry-run","prepublishOnly":"npm run ci","test:comprehensive":"node test-comprehensive.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","undici":"^6.19.8","form-data":"^4.0.4","node-fetch":"^3.3.2","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^20.14.11"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.3.0_1770967912837_0.24570514131700327","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"affine-mcp-server","version":"1.4.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.4.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"6d072949126ed90c77b7f1c69a812d0a5c3dbbe6","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.4.0.tgz","fileCount":21,"integrity":"sha512-X/0T/Qu081t9ZTqOWhM5CSqQ/78V7UzoVgwW/6k9/ScUImiv+TNckFeNlHgP+h2lPLr3cVzFKchxzY8x6+gsXQ==","signatures":[{"sig":"MEUCIQCpR0BzjZLtplQcf5EuCmiDM9R+Qph9o8ZjhqWDwaPsEwIgUko2jK7UpXMlpJsxRzEkuJ3jmWVf6hW6r4B9JRfPIsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82697},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"b35a2c03e611ecad6a72f50c22bbda4259f3cfb2","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","pack:check":"npm pack --dry-run","prepublishOnly":"npm run ci","test:comprehensive":"node test-comprehensive.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","undici":"^7.21.0","form-data":"^4.0.4","node-fetch":"^3.3.2","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.4.0_1770969424335_0.7413234704180889","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"affine-mcp-server","version":"1.5.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.5.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"5783707f728109a1a718e693687fe80183a39bb8","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.5.0.tgz","fileCount":21,"integrity":"sha512-mVUAvZ361LvmIB0Hrry+QpApMtdqnIcsolyRG5QKvrT4ppMkkBCB6EBGMlrJEm5qWeYaQhRpvBZHmGRzCGoiyA==","signatures":[{"sig":"MEUCIQDZahnIukxTKhP9GY7AOyrYBVhgyRvOxrrhdIcHLU1uoAIgdXWDUjwQ69PqgxJ2tC8T+Mq8ykEVqckiJHkHheWbD/o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124293},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"2bef6eb1e7c40f6b071ec3997a8cc18b3434cab1","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","pack:check":"npm pack --dry-run","prepublishOnly":"npm run ci","test:comprehensive":"node test-comprehensive.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","undici":"^7.21.0","form-data":"^4.0.4","node-fetch":"^3.3.2","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.5.0_1770982734696_0.9994946613240596","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"affine-mcp-server","version":"1.6.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.6.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"14b65ff5a1f79cbb4b2e72f0c640272254623665","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.6.0.tgz","fileCount":26,"integrity":"sha512-pl8DGXHw3N7qCMWDOZnV2EgAuws2/pI07XIuMfAIoPNA2dWzgQz/QD4x9ZtYIn7OnvCkxbrJHcyy0sDKa2Xefg==","signatures":[{"sig":"MEQCIGxrFieQR3zWDsAuAFJl1X4uIkzIhBadKGyoX3/7Kle8AiBJ8nAR+P46TQTMpdUlTEAbCaDEW8Q1ss5TDqtKkwE3uA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233890},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"682d31d2817e6e2cc2ff43beac82316eeac766e7","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","test:bearer":"node tests/test-bearer-auth.mjs","prepublishOnly":"npm run ci","test:db-create":"node tests/test-database-creation.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:comprehensive":"node test-comprehensive.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","undici":"^7.21.0","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/node":"^25.2.3","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.6.0_1771897522294_0.840729137205189","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"affine-mcp-server","version":"1.7.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.7.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"ab1f89e58788088683958aa7652ae101a5a58360","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.7.0.tgz","fileCount":25,"integrity":"sha512-mmBelEAHLuI77k3BLvdA/QAFCIKKcKXHEQ16px5B+KwWNQSNx5HEBzyGDO+1C2hklkfpOgdx2cR00NCtZikneg==","signatures":[{"sig":"MEYCIQDToTplk+AWLrIscT21qiKuIbTP5+Mkdp4iiepIPnAamQIhAPVlF5u42h32Hqo0IOKZG19YZ0gV/rbBOXxlbYYohOq+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251522},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"7da707410426450471ba62084dff08293861d779","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","prepublishOnly":"npm run ci","test:db-create":"node tests/test-database-creation.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:comprehensive":"node test-comprehensive.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.7.0_1772155880611_0.7194515185768755","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"affine-mcp-server","version":"1.7.1","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.7.1","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"ce4237efdb905fb22580d1be293c2e0d163bf9f9","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.7.1.tgz","fileCount":25,"integrity":"sha512-/j69DCoZehTiKmOokpMddT6HUeDlRRF8IPpsdlHOAuAECd+Hh1Xg/BGpKYHzPmpnQzIj6jW1S7V7a6nrDiDreg==","signatures":[{"sig":"MEQCICZhDR1eXisvHU9W3AqEJeueDg2mA602Wl2Hn8PWh5vxAiBeiuFBOZlC1QUSYPt9sdXGr21fF0+YTfBlNfOTX4VNWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253384},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"e716f054975ebd336cd89e26bf1b7e34b872fc6c","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","prepublishOnly":"npm run ci","test:db-create":"node tests/test-database-creation.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:comprehensive":"node test-comprehensive.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.7.1_1772522132550_0.8352175459886331","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"affine-mcp-server","version":"1.7.2","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.7.2","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"fac2c98ba4c84d042ff3be518c66b877abbbce8a","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.7.2.tgz","fileCount":25,"integrity":"sha512-pm28zIGda2klMsrUq06dRr3mBxpmz/zn9HhgfNSF3a4HDSRFQu+371EQPyry2aS5WjUcRG5yzj31IOZoM3Gtgw==","signatures":[{"sig":"MEQCIB5yHr6bMfxM0bUm6DxuD/OArwWSfwzGAPOIEuGrQ2nHAiBSUC/GUt3nI5u5m0DaD+Gb/vsjdRZXiRspwt8Xu9+Wng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263229},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"4fb31b6c17c78b1547dcf54079d020788a0254cf","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","prepublishOnly":"npm run ci","test:db-create":"node tests/test-database-creation.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:comprehensive":"node test-comprehensive.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.7.2_1772609434196_0.9723632630588612","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"affine-mcp-server","version":"1.8.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.8.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"9c184ef2715bfa2691e6ed593b02647742babdb3","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.8.0.tgz","fileCount":25,"integrity":"sha512-oO7BJ9uvh43oMSGnBVFkjK2yu1R2IfPzSpmZgGe6C83B9vvb2yos29pBhp1rocMtSSYpmVv/euQqnfXtOKW5DA==","signatures":[{"sig":"MEUCIH1ti+X2abO7YdWd4qHFYnPTRoGmhsKJ/qXFqUIHmpLdAiEAhABuD0o6c52wl1ySwU8tFfHTLRtje0RQrGuEQ6fULL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277839},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"6c8b3e3b234e15bcd639c47c0da62a0fd5f4e43c","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:db-cells":"node tests/test-database-cells.mjs","prepublishOnly":"npm run ci","test:db-create":"node tests/test-database-creation.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:comprehensive":"node test-comprehensive.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.8.0_1773033980659_0.5451336832961431","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"affine-mcp-server","version":"1.9.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.9.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"7dcb4f27915c0df56d737cdf726f1904a812b270","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.9.0.tgz","fileCount":25,"integrity":"sha512-jRTzTiUQx+xiuG9chu8tZmw98/ziUmvnaI9UALLOOIUQRMSJx69jqjHfF1A3LHqhzQwrNt7MLu+cZuRAUUPRog==","signatures":[{"sig":"MEQCIBhbB67lUAnItFTwWKANNwegFM2u8I4toQItj3h/sEe9AiB/MVCqYlBPNPtv1mVYyZ6SBUyQYa2MDQ7pNXf89w/4qg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283009},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"671cb544ff265b6a565715823b918605ed2e81ad","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:db-cells":"node tests/test-database-cells.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.9.0_1773133819210_0.8531344344194711","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"affine-mcp-server","version":"1.10.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.10.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"428a256b129acce1c912937f96fc0b7c02f52bab","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.10.0.tgz","fileCount":28,"integrity":"sha512-WHYurVT7ssjMJ+/8fQr4qbUAz4hZf0Y4WZnWy5hkTv3VN7cYgeO57ES9eXkRR6Itcfuut73X1a2tpiJbwFxD8Q==","signatures":[{"sig":"MEQCIGvOayUhBKRbf4NNvdsxnt8OTlPl6KeXM/xcwC1kT2hsAiAMLkICi2g6+5K/VLGZzLTXjNg18ZWuz/NCUr2DNBbsvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":365740},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"22b111738d20cbfe772c4aefcecd258b58f7a7f1","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:db-cells":"node tests/test-database-cells.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.10.0_1773794007670_0.36271786841130615","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"affine-mcp-server","version":"1.10.1","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.10.1","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"471d18f58501de70641ce2fc0929ba20646b820a","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.10.1.tgz","fileCount":28,"integrity":"sha512-zJGTNMs6W/aLq2kpqjU39/elCCBWhO70gUNPPxpPg8cdmaLm4EaoAjBCYB3nP26DcipBlXgdZam0D+uwGukSdA==","signatures":[{"sig":"MEUCIQCjhvKjOoh7TjotBWMErF5gvhIuPRZcosglmyoe59O0fwIgNsbA4Ktnl9vISK/3yE+GLG21oz1PSN8hoS1W1HeBssE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366893},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"fb50dc58e0d076f250311054e8faaf6d51187f30","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:db-cells":"node tests/test-database-cells.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^5.5.4","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.10.1_1773799016246_0.1529990851227565","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"affine-mcp-server","version":"1.11.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.11.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"169a7470da93fae4c3d4263d8f0e9061f59dba20","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.11.0.tgz","fileCount":29,"integrity":"sha512-REOdkZVs6PVeICodZHwACBI6LgG+Nx9Rv76PhGyTPaFFHTh2DRy03KoBFzUOde/yjLLoCEbg74mprSGNvYcIqg==","signatures":[{"sig":"MEYCIQC7ij1fUKvNf4GB944uenO/MZM3vofYGqppiakfHTVkcQIhAMXxznU3texvDYICXvvHYobfQ1vIWDP7LWE3oHmWXH7D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":413563},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"bc06e6b5a02c4c6f68564df40342723e9762238a","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.11.0_1774599089137_0.3390181464286077","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"affine-mcp-server","version":"1.11.1","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.11.1","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"38a063c2834ee442d5d389df5e4976b09b81fec8","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.11.1.tgz","fileCount":29,"integrity":"sha512-1JowGyRQaAv5HHPSrjMJBDTGW3jBLGvnd6yUyYxjcE+6JDUIn3XXiOBzKGcZik8CNFkeW4hahhLlxjZJfTqAOw==","signatures":[{"sig":"MEUCIQDIZg2k7amEqOZ1KLYicgvkDE3n7yzPDPcuk3IrFrn+XgIgPTv7ybV9FldyqWUkW0G5w+iOcoE3Aclk6+u2t5TmZvY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":414589},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"34b1c609414dbab459c5edf6d2d39aefa45e2d3a","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.11.1_1774941733482_0.9996829312981301","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"affine-mcp-server","version":"1.11.2","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.11.2","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"a996801633a9d2c6ba21aad8105625bc1e9a29ef","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.11.2.tgz","fileCount":29,"integrity":"sha512-0e7/oa1yTnuq8od0mYNasq6FqMlKY/kgoACN3GRYKhl5ylgRCrHmR0W7zhUeYPwgMrpe6bNw5pA0AhKgkROYQQ==","signatures":[{"sig":"MEUCIHLSUtMSPghCNxYcOS3dgsy5S5YY+1kexlfJOQxrDMlqAiEAnAQCQ5Qq1F06v7hH7xjK4w84MRwiaLbPfh04pbW+1Q4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":415644},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"0eb71e676851c7cc4f8c8ce33237d3168173ad8f","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.11.2_1774942849274_0.3655518325732525","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"affine-mcp-server","version":"1.12.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.12.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"c1040aecc13a03ba20464edfbda8abe4c2f87f3f","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.12.0.tgz","fileCount":29,"integrity":"sha512-RqM5EMQzrqjNYnkD1dNc/ZJKT8a8vbm4lSBSNm9X7yKp83oK0yEN9V7cPCkx/ZYopf/zsuJ3j8RESGtvRno0EA==","signatures":[{"sig":"MEQCIFXQqGRZyxpYHioqtkKadM/PFkX9rn/A8cG/A1vXCo2CAiBm9sgtjP/6YDcEFVXxoJodzGr9bdLfXZES1pjYiAqWxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":421013},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"72dabf0da5cffd6618e6bd53ce64fc09ea1ff0fb","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.21.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.12.0_1775706696744_0.5742552176614033","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"affine-mcp-server","version":"1.13.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@1.13.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"da011107ae88db7c1176eb93ddba61c430bf2d81","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-1.13.0.tgz","fileCount":35,"integrity":"sha512-rPOhgD8oaXJmY4B/IDVchVgjoRIuUYuRqgeoaCcwoJMl0pPn79YfEB2jEhFLiprKgK6AvabN+ctl1+H1tKqWHQ==","signatures":[{"sig":"MEQCIC6e54O+tEFrPvs839zmdDHT13i79MHcHx53rDYeEyAmAiBZLG3T96fTuNDXEveELPQAWZExiZuELZLU/PFzFtj17g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529483},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"e3c9a97a0ab26ad3fc13534c75240327298ebbfb","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:native-template":"node tests/test-native-template-instantiation.mjs","test:create-placement":"node tests/test-create-placement.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:capabilities-fidelity":"node tests/test-capabilities-fidelity.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^8.0.2","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_1.13.0_1775798192399_0.39787925874161467","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"affine-mcp-server","version":"2.0.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@2.0.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/dawncr0w/affine-mcp-server#readme","bugs":{"url":"https://github.com/dawncr0w/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"acea9e43ffba8962a26e64eec579445ada13b7af","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-2.0.0.tgz","fileCount":40,"integrity":"sha512-udPynX2PAPmSp0gLJ7Z+zbzQhDVq/PK9zCg7NWXHb1CczCoLR/nTIS3NXMJNPIiyholEb7ZkGdK3P6ok7nQdGA==","signatures":[{"sig":"MEUCIH3/4u5SSfQSWOC89RHRAyh7nKamjTpZu9/+4RWb6VifAiEA//2U42s1uKMLobWOg/i52/AeU5OcyfHt/+LJc5fyROo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1928211},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"5423f853fca370e520a4be9dbef5f09a41d0e3f2","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:edgeless-ui":"npx playwright test tests/playwright/verify-edgeless-canvas.pw.ts --config tests/playwright/playwright.config.ts","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:edgeless-seed":"node tests/test-edgeless-canvas-setup.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:native-template":"node tests/test-native-template-instantiation.mjs","test:create-placement":"node tests/test-create-placement.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:surface-elements":"node tests/test-surface-elements.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:capabilities-fidelity":"node tests/test-capabilities-fidelity.mjs","test:surface-element-gating":"node scripts/verify-surface-element-gating.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs"},"_npmUser":{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"},"repository":{"url":"git+https://github.com/dawncr0w/affine-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^8.0.2","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_2.0.0_1778141318589_0.24057686398377465","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"affine-mcp-server","version":"2.1.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@2.1.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/DAWNCR0W/affine-mcp-server#readme","bugs":{"url":"https://github.com/DAWNCR0W/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"708fc981a27f5749894183fd6f3cf21328f14ea3","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-2.1.0.tgz","fileCount":40,"integrity":"sha512-oAOnYGLieN1lIMH/wdaCW14PdTJFeYhXBn3Pozz03+UnC7RvN2aCCe60egpLFgAAukfLUM4tiaPvlKMKa4H17Q==","signatures":[{"sig":"MEQCIEfZTUKADCKDSKPzZv13W9UwI03AzlFv6WxR07dDlms9AiAsvbavl1LUfbgbf8s1694UjGXoB8FLgUoNPU3I+1bYFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1934297},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"9f6bc5274dcf723d4e6c01164a4a6db4974df943","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:edgeless-ui":"npx playwright test tests/playwright/verify-edgeless-canvas.pw.ts --config tests/playwright/playwright.config.ts","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:edgeless-seed":"node tests/test-edgeless-canvas-setup.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:native-template":"node tests/test-native-template-instantiation.mjs","test:create-placement":"node tests/test-create-placement.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:surface-elements":"node tests/test-surface-elements.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:find-doc-by-title":"node tests/test-find-doc-by-title.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:capabilities-fidelity":"node tests/test-capabilities-fidelity.mjs","test:surface-element-gating":"node scripts/verify-surface-element-gating.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs","test:create-doc-folder-placement":"node tests/test-create-doc-folder-placement.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7464ab29-6439-4fa4-9861-c09df14c5d56"}},"repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^8.0.2","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_2.1.0_1779354137227_0.34661895730952974","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"affine-mcp-server","version":"2.2.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@2.2.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/DAWNCR0W/affine-mcp-server#readme","bugs":{"url":"https://github.com/DAWNCR0W/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"edb1fb7614e8d9bdaf78ca55376e5b63759b4158","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-2.2.0.tgz","fileCount":41,"integrity":"sha512-7mQYVSvFCFTe2HoKMwmu7vmJhIfEGPYOr1UDM8FkuiGxdZJLBzbEu3I43Olwj71qjeInpntYIkV+4TIX/Hh7Ug==","signatures":[{"sig":"MEUCIAONxKMTFGhTyraOd0+OpM9oh4xw6TmxBXKcRQsnMlfdAiEAmsU5FQKLhPTfmBWZFJwYYrDBKQf6GiypB4dTrioqV5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1957818},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"39309dcb6844f5c459015579827702e972c6bab5","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:edgeless-ui":"npx playwright test tests/playwright/verify-edgeless-canvas.pw.ts --config tests/playwright/playwright.config.ts","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:db-linked-doc":"node tests/test-database-linked-doc.mjs","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:edgeless-seed":"node tests/test-edgeless-canvas-setup.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:doc-properties":"node tests/test-doc-properties.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:native-template":"node tests/test-native-template-instantiation.mjs","test:create-placement":"node tests/test-create-placement.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:surface-elements":"node tests/test-surface-elements.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:find-doc-by-title":"node tests/test-find-doc-by-title.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:read-doc-linked-refs":"node tests/test-read-doc-linked-refs.mjs","test:capabilities-fidelity":"node tests/test-capabilities-fidelity.mjs","test:surface-element-gating":"node scripts/verify-surface-element-gating.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs","test:create-doc-folder-placement":"node tests/test-create-doc-folder-placement.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7464ab29-6439-4fa4-9861-c09df14c5d56"}},"repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.13.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^8.0.2","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_2.2.0_1781514190801_0.9165065774814374","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"affine-mcp-server","version":"2.3.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@2.3.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/DAWNCR0W/affine-mcp-server#readme","bugs":{"url":"https://github.com/DAWNCR0W/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"8701aa47c1a839bb745af70dd187d4724eb328e3","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-2.3.0.tgz","fileCount":43,"integrity":"sha512-KmnX5d9f7V3DSPJOpneN1j805nrnHAhKCc+VCQkVSTkY7vKlHK6A1plNqKwkl64ls9cCYVUQk0H9olNbZb8yLA==","signatures":[{"sig":"MEUCIGpmOKV6fLgZC8xvwVsZ2Qnf3wjcX7BIYo4Dda4imxkbAiEA+RDp0I+TEqDiXejOBH+VWWNbco9TqF8cu1zgw26BxGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1970133},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"50f885370d2303d14101d779b10243729efacffe","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:icons":"node tests/test-icons.mjs","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:edgeless-ui":"npx playwright test tests/playwright/verify-edgeless-canvas.pw.ts --config tests/playwright/playwright.config.ts","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:comprehensive":"bash tests/run-comprehensive.sh","test:db-linked-doc":"node tests/test-database-linked-doc.mjs","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:edgeless-seed":"node tests/test-edgeless-canvas-setup.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:doc-properties":"node tests/test-doc-properties.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:native-template":"node tests/test-native-template-instantiation.mjs","test:create-placement":"node tests/test-create-placement.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:surface-elements":"node tests/test-surface-elements.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:find-doc-by-title":"node tests/test-find-doc-by-title.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:read-doc-linked-refs":"node tests/test-read-doc-linked-refs.mjs","test:capabilities-fidelity":"node tests/test-capabilities-fidelity.mjs","test:surface-element-gating":"node scripts/verify-surface-element-gating.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs","test:create-doc-folder-placement":"node tests/test-create-doc-folder-placement.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7464ab29-6439-4fa4-9861-c09df14c5d56"}},"repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.13.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^8.0.2","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_2.3.0_1781684706966_0.6157288091414768","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"affine-mcp-server","version":"2.4.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@2.4.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/DAWNCR0W/affine-mcp-server#readme","bugs":{"url":"https://github.com/DAWNCR0W/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"0362915e2c3935b3959b2b35e93b240a054a1d43","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-2.4.0.tgz","fileCount":43,"integrity":"sha512-pYu7nnIvnSokx+tm1hJKnLuvU/Co8Av3AvQCjflRnNOWuHVqgTI9BZ46WZ57mscooXJyQfdORs0sx45lB35FGg==","signatures":[{"sig":"MEYCIQDk44Hqe+82njx5e/IWVmSU/a89ibdBEGBPsK1bxwMR2wIhAKa2kjKKt2kxoKRycBXRnMBtGqnAZDR0BPu7IbxPVXVx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1979079},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"714acd7baa98663e018fa3f7b0f5056359ab9265","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:icons":"node tests/test-icons.mjs","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:edgeless-ui":"npx playwright test tests/playwright/verify-edgeless-canvas.pw.ts --config tests/playwright/playwright.config.ts","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:tag-deletion":"node tests/test-tag-deletion.mjs","test:comprehensive":"bash tests/run-comprehensive.sh","test:db-linked-doc":"node tests/test-database-linked-doc.mjs","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:edgeless-seed":"node tests/test-edgeless-canvas-setup.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:doc-properties":"node tests/test-doc-properties.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:native-template":"node tests/test-native-template-instantiation.mjs","test:create-placement":"node tests/test-create-placement.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:surface-elements":"node tests/test-surface-elements.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:find-doc-by-title":"node tests/test-find-doc-by-title.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:read-doc-linked-refs":"node tests/test-read-doc-linked-refs.mjs","test:capabilities-fidelity":"node tests/test-capabilities-fidelity.mjs","test:surface-element-gating":"node scripts/verify-surface-element-gating.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs","test:create-doc-folder-placement":"node tests/test-create-doc-folder-placement.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7464ab29-6439-4fa4-9861-c09df14c5d56"}},"repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.13.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^6.27.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^3.2.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^25.2.3","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_2.4.0_1782113402264_0.13505619884363473","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"affine-mcp-server","version":"2.5.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@2.5.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/DAWNCR0W/affine-mcp-server#readme","bugs":{"url":"https://github.com/DAWNCR0W/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"8036ffc72fcf084fd3d2bc4c0bffcbbd544db64d","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-2.5.0.tgz","fileCount":45,"integrity":"sha512-9/1w1HYtdNm4uhJosqLkKSywgDv9RPAso72YMH12q3GyNnoGYRth016GnFSal3Yx15FGQUG4/eiDpgLaJFzROQ==","signatures":[{"sig":"MEYCIQCRL+mc3i07LrOdwiCg+tQcVL1l0Fi3mLqaqvp58IqEcgIhANW2qjE8QAbDJTJfrS708stJH9k+ffPFBDWZ3FZXHh2i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1989599},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"55aa67bcde37949f0404b4138cd595553c80d292","private":false,"scripts":{"ci":"npm run build && npm run test:tool-manifest && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:tool-manifest","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","test:e2e":"bash tests/run-e2e.sh","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:icons":"node tests/test-icons.mjs","test:bearer":"node tests/test-bearer-auth.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:cli-version":"node tests/test-cli-version.mjs","test:edgeless-ui":"npx playwright test tests/playwright/verify-edgeless-canvas.pw.ts --config tests/playwright/playwright.config.ts","test:http-bearer":"node tests/test-http-bearer.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:tag-deletion":"node tests/test-tag-deletion.mjs","test:comprehensive":"bash tests/run-comprehensive.sh","test:db-linked-doc":"node tests/test-database-linked-doc.mjs","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:edgeless-seed":"node tests/test-edgeless-canvas-setup.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:doc-properties":"node tests/test-doc-properties.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:native-template":"node tests/test-native-template-instantiation.mjs","test:create-placement":"node tests/test-create-placement.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:surface-elements":"node tests/test-surface-elements.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:find-doc-by-title":"node tests/test-find-doc-by-title.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:read-doc-linked-refs":"node tests/test-read-doc-linked-refs.mjs","test:capabilities-fidelity":"node tests/test-capabilities-fidelity.mjs","test:surface-element-gating":"node scripts/verify-surface-element-gating.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs","test:create-doc-folder-placement":"node tests/test-create-doc-folder-placement.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7464ab29-6439-4fa4-9861-c09df14c5d56"}},"repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.16.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^6.27.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^4.0.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^26.0.1","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_2.5.0_1783333787334_0.30401964320482566","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"affine-mcp-server","version":"3.0.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.0.0","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"homepage":"https://github.com/DAWNCR0W/affine-mcp-server#readme","bugs":{"url":"https://github.com/DAWNCR0W/affine-mcp-server/issues"},"bin":{"affine-mcp":"bin/affine-mcp"},"dist":{"shasum":"7ded83af27956e23b36057e84969fc568199b63c","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.0.0.tgz","fileCount":57,"integrity":"sha512-zqjnyttDy+7HBQ10FAcZhx40Kh5C3j5L4hnjb0nMmyprgyOOfQbEfeFmh6rj6w3f30/pf5owwqwaiq0M3j+Tzw==","signatures":[{"sig":"MEYCIQCGVKcbVtFUDwv5YLbJV7OqokBx2ll+oDFCTWa3AvM93wIhAOIVqeGdkLfNbbKaW9DYh01R7VvE9szARXr6/suwYNNY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2209759},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.0.0.tgz","engines":{"node":">=20"},"private":false,"scripts":{"ci":"npm test && npm run pack:check","dev":"tsx watch src/index.ts","test":"npm run test:metadata && npm run test:fast","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","start":"node dist/index.js","pretest":"npm run build","test:e2e":"bash tests/run-e2e.sh","test:docs":"node scripts/verify-docs.mjs && node tests/test-docs-drift.mjs","test:fast":"node scripts/run-test-suite.mjs fast","pack:check":"npm pack --dry-run","start:http":"MCP_TRANSPORT=http node dist/index.js","test:icons":"node tests/test-icons.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:metadata":"npm run test:tool-manifest && npm run test:surface-element-gating && npm run test:suite-manifest && npm run test:docs","test:organize":"node tests/test-organize-tools.mjs","prepublishOnly":"npm run ci","release:verify":"node scripts/verify-release.mjs","test:data-view":"node tests/test-data-view.mjs","test:db-create":"node tests/test-database-creation.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","test:url-safety":"node tests/test-url-safety.mjs","test:cli-version":"node tests/test-cli-version.mjs","test:edgeless-ui":"npx playwright test tests/playwright/verify-edgeless-canvas.pw.ts --config tests/playwright/playwright.config.ts","test:http-bearer":"node tests/test-http-bearer.mjs","test:live-safety":"node tests/test-live-test-safety.mjs","test:auth-session":"tsx tests/test-auth-session.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:http-runtime":"tsx tests/test-http-runtime-safety.mjs","test:mutation-ack":"node tests/test-destructive-mutation-ack.mjs","test:tag-deletion":"node tests/test-tag-deletion.mjs","test:comprehensive":"bash tests/run-comprehensive.sh","test:db-linked-doc":"node tests/test-database-linked-doc.mjs","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:edgeless-seed":"node tests/test-edgeless-canvas-setup.mjs","test:http-security":"tsx tests/test-http-security.mjs","test:package-smoke":"node tests/test-package-smoke.mjs","test:secure-random":"node tests/test-secure-random.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:doc-properties":"node tests/test-doc-properties.mjs","test:suite-manifest":"node scripts/verify-test-suites.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:input-contracts":"node tests/test-input-contracts.mjs","test:native-template":"node tests/test-native-template-instantiation.mjs","test:pr-route-policy":"node tests/test-pr-route-policy.mjs","test:create-placement":"node tests/test-create-placement.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:surface-elements":"node tests/test-surface-elements.mjs","test:comprehensive:raw":"node test-comprehensive.mjs","test:find-doc-by-title":"node tests/test-find-doc-by-title.mjs","test:config-consistency":"node tests/test-config-cli-consistency.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:http-email-password":"node tests/test-http-email-password.mjs","test:mcp-result-contract":"node tests/test-mcp-result-contract.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:oauth-service-policy":"node tests/test-oauth-service-policy.mjs","test:read-doc-linked-refs":"node tests/test-read-doc-linked-refs.mjs","test:release-verification":"node tests/test-release-verification.mjs","test:capabilities-fidelity":"node tests/test-capabilities-fidelity.mjs","test:notification-contract":"node tests/test-notification-contract.mjs","test:markdown-export-safety":"npm run test:markdown-roundtrip && npm run test:markdown-output-safety","test:markdown-output-safety":"node tests/test-markdown-output-safety.mjs","test:surface-element-gating":"node scripts/verify-surface-element-gating.mjs","test:document-mutation-safety":"node tests/test-document-mutation-safety.mjs","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs","test:create-doc-folder-placement":"node tests/test-create-doc-folder-placement.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7464ab29-6439-4fa4-9861-c09df14c5d56"}},"_resolved":"/home/runner/work/_temp/npm-release/affine-mcp-server-3.0.0.tgz","_integrity":"sha512-zqjnyttDy+7HBQ10FAcZhx40Kh5C3j5L4hnjb0nMmyprgyOOfQbEfeFmh6rj6w3f30/pf5owwqwaiq0M3j+Tzw==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.16.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^6.27.0","express":"^5.2.1","form-data":"^4.0.4","node-fetch":"^3.3.2","markdown-it":"^14.1.0","socket.io-client":"^4.8.1","fractional-indexing":"^4.0.0","@modelcontextprotocol/sdk":"^1.17.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^26.0.1","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.0.0_1784521507578_0.9801283992094041","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"affine-mcp-server","version":"3.0.1","private":false,"type":"module","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","author":{"name":"dawncr0w"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git"},"bugs":{"url":"https://github.com/DAWNCR0W/affine-mcp-server/issues"},"homepage":"https://github.com/DAWNCR0W/affine-mcp-server#readme","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"main":"dist/index.js","bin":{"affine-mcp":"bin/affine-mcp"},"scripts":{"clean":"node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"","build":"npm run clean && tsc -p tsconfig.json","dev":"tsx watch src/index.ts","start":"node dist/index.js","start:http":"MCP_TRANSPORT=http node dist/index.js","pretest":"npm run build","test":"npm run test:metadata && npm run test:fast","test:metadata":"npm run test:tool-manifest && npm run test:surface-element-gating && npm run test:suite-manifest && npm run test:docs","test:fast":"node scripts/run-test-suite.mjs fast","test:suite-manifest":"node scripts/verify-test-suites.mjs","test:live-safety":"node tests/test-live-test-safety.mjs","test:cli-version":"node tests/test-cli-version.mjs","test:cli-commands":"node tests/test-cli-commands.mjs","test:config-consistency":"node tests/test-config-cli-consistency.mjs","test:cli-live":"node tests/test-cli-live.mjs","test:notification-contract":"node tests/test-notification-contract.mjs","test:tool-manifest":"node scripts/verify-tool-manifest.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.mjs","test:release-verification":"node tests/test-release-verification.mjs","test:package-smoke":"node tests/test-package-smoke.mjs","test:docs":"node scripts/verify-docs.mjs && node tests/test-docs-drift.mjs","test:mcp-result-contract":"node tests/test-mcp-result-contract.mjs","test:input-contracts":"node tests/test-input-contracts.mjs","test:tool-filtering":"node tests/test-tool-filtering.mjs","test:mutation-ack":"node tests/test-destructive-mutation-ack.mjs","test:pr-route-policy":"node tests/test-pr-route-policy.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:secure-random":"node tests/test-secure-random.mjs","test:oauth-service-policy":"node tests/test-oauth-service-policy.mjs","test:comprehensive":"bash tests/run-comprehensive.sh","test:comprehensive:raw":"node test-comprehensive.mjs","test:e2e":"bash tests/run-e2e.sh","test:db-create":"node tests/test-database-creation.mjs","test:db-cells":"node tests/test-database-cells.mjs","test:db-linked-doc":"node tests/test-database-linked-doc.mjs","test:db-ui-rows":"node tests/test-database-ui-rows.mjs","test:db-schema":"node tests/test-database-schema.mjs","test:data-view":"node tests/test-data-view.mjs","test:doc-discovery":"node tests/test-doc-discovery.mjs","test:doc-properties":"node tests/test-doc-properties.mjs","test:icons":"node tests/test-icons.mjs","test:read-doc-linked-refs":"node tests/test-read-doc-linked-refs.mjs","test:find-doc-by-title":"node tests/test-find-doc-by-title.mjs","test:create-placement":"node tests/test-create-placement.mjs","test:surface-elements":"node tests/test-surface-elements.mjs","test:surface-element-gating":"node scripts/verify-surface-element-gating.mjs","test:edgeless-seed":"node tests/test-edgeless-canvas-setup.mjs","test:edgeless-ui":"npx playwright test tests/playwright/verify-edgeless-canvas.pw.ts --config tests/playwright/playwright.config.ts","test:capabilities-fidelity":"node tests/test-capabilities-fidelity.mjs","test:native-template":"node tests/test-native-template-instantiation.mjs","test:data-view-ui":"npx playwright test tests/playwright/verify-data-view.pw.ts --config tests/playwright/playwright.config.ts","test:http-email-password":"node tests/test-http-email-password.mjs","test:auth-session":"tsx tests/test-auth-session.mjs","test:http-bearer":"node tests/test-http-bearer.mjs","test:http-security":"tsx tests/test-http-security.mjs","test:http-runtime":"tsx tests/test-http-runtime-safety.mjs","test:oauth-http":"node tests/test-oauth-http.mjs","test:organize":"node tests/test-organize-tools.mjs","test:create-doc-folder-placement":"node tests/test-create-doc-folder-placement.mjs","test:supporting-tools":"node tests/test-supporting-tools.mjs","test:tag-visibility":"node tests/test-tag-visibility.mjs","test:tag-deletion":"node tests/test-tag-deletion.mjs","test:url-safety":"node tests/test-url-safety.mjs","test:markdown-roundtrip":"node tests/test-markdown-roundtrip.mjs","test:document-mutation-safety":"node tests/test-document-mutation-safety.mjs","test:markdown-output-safety":"node tests/test-markdown-output-safety.mjs","test:markdown-export-safety":"npm run test:markdown-roundtrip && npm run test:markdown-output-safety","test:markdown-rich-text-import":"node tests/test-markdown-rich-text-import.mjs","test:playwright":"npx playwright test --config tests/playwright/playwright.config.ts","pack:check":"npm pack --dry-run","release:verify":"node scripts/verify-release.mjs","ci":"npm test && npm run pack:check","prepublishOnly":"npm run ci"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"^1.17.2","cors":"^2.8.6","express":"^5.2.1","form-data":"^4.0.4","jose":"^6.2.1","fractional-indexing":"^4.0.0","markdown-it":"^14.1.0","node-fetch":"^3.3.2","socket.io-client":"^4.8.1","undici":"^6.27.0","yjs":"^13.6.27","zod":"^3.23.8"},"devDependencies":{"@playwright/test":"^1.50.0","@types/cors":"^2.8.19","@types/express":"^5.0.6","@types/markdown-it":"^14.1.2","@types/node":"^26.0.1","tsx":"^4.16.2","typescript":"^7.0.2"},"_id":"affine-mcp-server@3.0.1","_integrity":"sha512-tjrjReOQv1d4cWCj0tSswdjiS9FyFfaPCIhVzTdBeQ1bjcqT3udDCueG1AulvlMLeQuM13BIAZNi/1RBf9rZ1A==","_resolved":"/home/runner/work/_temp/npm-release/affine-mcp-server-3.0.1.tgz","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.0.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-tjrjReOQv1d4cWCj0tSswdjiS9FyFfaPCIhVzTdBeQ1bjcqT3udDCueG1AulvlMLeQuM13BIAZNi/1RBf9rZ1A==","shasum":"818308d435db62190113b60676f0cc005b9700d4","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.0.1.tgz","fileCount":57,"unpackedSize":2212953,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDM6NGN2Gkt6S3u4RYhi0RVB6+fk9Ll0rYCd/NQLXSQQIgTHwkR04yWi3UlOFjkNJAVIgQcFb1KoEappHLkz0cSms="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7464ab29-6439-4fa4-9861-c09df14c5d56"}},"directories":{},"maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/affine-mcp-server_3.0.1_1784627248501_0.04461131805197005"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-16T09:35:02.986Z","modified":"2026-07-21T09:47:29.075Z","1.2.0":"2025-09-16T09:35:03.256Z","1.2.1":"2025-09-17T07:23:46.493Z","1.2.2":"2025-09-18T01:19:29.832Z","1.3.0":"2026-02-13T07:31:52.987Z","1.4.0":"2026-02-13T07:57:04.510Z","1.5.0":"2026-02-13T11:38:54.845Z","1.6.0":"2026-02-24T01:45:22.467Z","1.7.0":"2026-02-27T01:31:20.798Z","1.7.1":"2026-03-03T07:15:32.690Z","1.7.2":"2026-03-04T07:30:34.337Z","1.8.0":"2026-03-09T05:26:20.806Z","1.9.0":"2026-03-10T09:10:19.365Z","1.10.0":"2026-03-18T00:33:27.824Z","1.10.1":"2026-03-18T01:56:56.396Z","1.11.0":"2026-03-27T08:11:29.314Z","1.11.1":"2026-03-31T07:22:13.685Z","1.11.2":"2026-03-31T07:40:49.497Z","1.12.0":"2026-04-09T03:51:36.885Z","1.13.0":"2026-04-10T05:16:32.588Z","2.0.0":"2026-05-07T08:08:38.784Z","2.1.0":"2026-05-21T09:02:17.425Z","2.2.0":"2026-06-15T09:03:11.014Z","2.3.0":"2026-06-17T08:25:07.156Z","2.4.0":"2026-06-22T07:30:02.491Z","2.5.0":"2026-07-06T10:29:47.525Z","3.0.0":"2026-07-20T04:25:07.732Z","3.0.1":"2026-07-21T09:47:28.705Z"},"bugs":{"url":"https://github.com/DAWNCR0W/affine-mcp-server/issues"},"author":{"name":"dawncr0w"},"license":"MIT","homepage":"https://github.com/DAWNCR0W/affine-mcp-server#readme","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"repository":{"type":"git","url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git"},"description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"readme":"# AFFiNE MCP Server\n\nA Model Context Protocol (MCP) server for AFFiNE. It exposes AFFiNE workspaces and documents to AI assistants over stdio (default) or HTTP (`/mcp`) and supports both AFFiNE Cloud and self-hosted deployments.\n\n[![Version](https://img.shields.io/badge/version-3.0.1-blue)](https://github.com/dawncr0w/affine-mcp-server/releases)\n[![MCP SDK](https://img.shields.io/badge/MCP%20SDK-1.29.0-green)](https://github.com/modelcontextprotocol/typescript-sdk)\n[![CI](https://github.com/dawncr0w/affine-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/dawncr0w/affine-mcp-server/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/license-MIT-yellow)](LICENSE)\n\n<a href=\"https://glama.ai/mcp/servers/@DAWNCR0W/affine-mcp-server\">\n  <img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/@DAWNCR0W/affine-mcp-server/badge\" alt=\"AFFiNE Server MCP server\" />\n</a>\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Choose Your Path](#choose-your-path)\n- [Quick Start](#quick-start)\n- [Compatibility Matrix](#compatibility-matrix)\n- [Tool Surface](#tool-surface)\n- [Documentation Map](#documentation-map)\n- [Verify Your Setup](#verify-your-setup)\n- [Security and Scope](#security-and-scope)\n- [Development](#development)\n- [Release Notes](#release-notes)\n- [License](#license)\n- [Support](#support)\n\n## Overview\n\nAFFiNE MCP Server is designed for three common scenarios:\n- Run a local stdio MCP server for Claude Code, Codex CLI, Cursor, or Claude Desktop\n- Expose a remote HTTP MCP endpoint for hosted or browser-connected clients\n- Automate AFFiNE workspace, document, database, organization, and comment workflows through a stable MCP tool surface\n\nHighlights:\n\n- Supports AFFiNE Cloud and self-hosted AFFiNE instances\n- Supports stdio and HTTP transports\n- Supports session-cookie and email/password authentication, plus compatible bearer tokens for older deployments\n- Exposes 92 canonical MCP tools backed by AFFiNE GraphQL and WebSocket APIs\n- Includes semantic page composition, native template instantiation, database intent composition, capability and fidelity reporting, and workspace blueprint helpers\n- Includes Docker images, health probes, and end-to-end test coverage\n\nScope boundaries:\n\n- This server can access only server-backed AFFiNE workspaces\n- Browser-local workspaces stored only in local storage are not available through AFFiNE server APIs\n- AFFiNE 0.27+ removed the legacy personal-access-token GraphQL API; this server no longer exposes token-management tools\n- AFFiNE Cloud requires browser-session authentication for this external GraphQL integration; programmatic email/password sign-in is blocked by Cloudflare\n\n> New in v3.0.1: Markdown import/export now preserves AFFiNE inline LinkedPage references for safe round-tripping.\n\n## Choose Your Path\n| Goal | Start here |\n| --- | --- |\n| Set up a local stdio server with the least friction | [docs/getting-started.md](docs/getting-started.md) |\n| Run the server in Docker or another OCI runtime | [docs/getting-started.md#path-c-run-from-the-docker-image](docs/getting-started.md#path-c-run-from-the-docker-image) |\n| Configure Claude Code, Claude Desktop, Codex CLI, or Cursor | [docs/client-setup.md](docs/client-setup.md) |\n| Run the server remotely over HTTP or behind OAuth | [docs/configuration-and-deployment.md](docs/configuration-and-deployment.md) |\n| Lock down tool exposure for least-privilege deployments | [docs/configuration-and-deployment.md#least-privilege-tool-exposure](docs/configuration-and-deployment.md#least-privilege-tool-exposure) |\n| Learn common AFFiNE workflows and tool sequences | [docs/workflow-recipes.md](docs/workflow-recipes.md) |\n| Browse the tool catalog by domain | [docs/tool-reference.md](docs/tool-reference.md) |\n\n## Quick Start\n\n### 1. Install the CLI\n\n```bash\nnpm i -g affine-mcp-server\naffine-mcp --version\n```\n\nYou can also run the package ad hoc:\n\n```bash\nnpx -y -p affine-mcp-server affine-mcp -- --version\n```\n\n### 2. Or run the server in Docker\n\n```bash\ndocker run -d \\\n  -p 3000:3000 \\\n  -e MCP_TRANSPORT=http \\\n  -e AFFINE_BASE_URL=https://your-affine-instance.com \\\n  -e AFFINE_EMAIL=you@example.com \\\n  -e AFFINE_PASSWORD=your-password \\\n  -e AFFINE_MCP_AUTH_MODE=bearer \\\n  -e AFFINE_MCP_HTTP_TOKEN=your-strong-secret \\\n  ghcr.io/dawncr0w/affine-mcp-server:latest\n```\n\nThen point your client at:\n\n```json\n{\n  \"mcpServers\": {\n    \"affine\": {\n      \"type\": \"http\",\n      \"url\": \"http://localhost:3000/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer your-strong-secret\"\n      }\n    }\n  }\n}\n```\n\nFor Docker, health checks, and remote deployment details, see [docs/configuration-and-deployment.md#docker](docs/configuration-and-deployment.md#docker).\n\n### 3. Save credentials with interactive login\n\n```bash\naffine-mcp login\n```\n\nThis stores credentials in `$XDG_CONFIG_HOME/affine-mcp/config` when `XDG_CONFIG_HOME` is set, otherwise in `~/.config/affine-mcp/config`, with mode `600`.\n\n- For AFFiNE Cloud, paste the Cookie request header from a signed-in browser session\n- For self-hosted AFFiNE, use email/password (recommended) or a signed-in session cookie\n- `AFFINE_API_TOKEN` remains available only for deployments that still accept a compatible GraphQL bearer token\n\n### 4. Register the server with your client\n\nClaude Code project config:\n\n```json\n{\n  \"mcpServers\": {\n    \"affine\": {\n      \"command\": \"affine-mcp\"\n    }\n  }\n}\n```\n\nCodex CLI:\n\n```bash\ncodex mcp add affine -- affine-mcp\n```\n\nMore client-specific setup is in [docs/client-setup.md](docs/client-setup.md).\n\n### 5. Verify the connection\n\n```bash\naffine-mcp status\naffine-mcp doctor\n```\n\nIf you want to expose the server remotely over HTTP instead of stdio, start with [docs/configuration-and-deployment.md](docs/configuration-and-deployment.md).\n\n## Compatibility Matrix\n\nNode.js 20 is the minimum supported runtime. CI validates the minimum runtime and the current Node.js release used by the npm publish workflow.\n\n| Target | Transport | Recommended auth | Recommended path |\n| --- | --- | --- | --- |\n| Claude Code | stdio | Saved config | [docs/client-setup.md#claude-code](docs/client-setup.md#claude-code) |\n| Claude Desktop | stdio | Saved config or session cookie | [docs/client-setup.md#claude-desktop](docs/client-setup.md#claude-desktop) |\n| Codex CLI | stdio | Saved config or self-hosted email/password | [docs/client-setup.md#codex-cli](docs/client-setup.md#codex-cli) |\n| Cursor | stdio | Saved config or session cookie | [docs/client-setup.md#cursor](docs/client-setup.md#cursor) |\n| Containerized remote deployment | HTTP | Bearer token or OAuth | [docs/getting-started.md#path-c-run-from-the-docker-image](docs/getting-started.md#path-c-run-from-the-docker-image) |\n| Remote MCP clients | HTTP | Bearer token or OAuth | [docs/configuration-and-deployment.md#http-mode](docs/configuration-and-deployment.md#http-mode) |\n| AFFiNE Cloud | stdio or HTTP | Signed-in browser session cookie | [docs/configuration-and-deployment.md#auth-strategy-matrix](docs/configuration-and-deployment.md#auth-strategy-matrix) |\n| Self-hosted AFFiNE | stdio or HTTP | Email/password or session cookie | [docs/configuration-and-deployment.md#auth-strategy-matrix](docs/configuration-and-deployment.md#auth-strategy-matrix) |\n\n## Tool Surface\n\n`tool-manifest.json` is the source of truth for canonical tool names. The MCP server exposes those tools through `tools/list` and `tools/call`; tool definitions returned by `tools/list` include MCP annotations that mark read-only, destructive, idempotent, and external-world behavior for client-side tool selection.\n\nDomains:\n\n- Workspace: create, inspect, update, delete, and traverse workspaces\n- Organization: collections, collection-rule sync, workspace blueprints, and experimental organize or folder helpers\n- Documents: search, read, create, publish, move, tag, custom properties, import/export, semantic composition, template inspection and native instantiation, capability and fidelity reporting, and block-level mutation\n- Databases: create columns, add rows, update rows, inspect schema, and compose database structures from intent\n- Comments: list, create, update, delete, and resolve\n- History: version history listing\n- Users and authentication: current user, sign-in, and profile/settings\n- Notifications: list and mark notifications as read\n- Blob storage: upload, delete, and cleanup blobs\n\nUse `AFFINE_TOOL_PROFILE=read_only`, `core`, or `authoring` when a deployment should expose a smaller surface than the complete `full` default. This is the recommended path for hosted, browser-connected, or least-privilege deployments because it reduces agent choice overload while keeping the full tool catalog available as an opt-in surface. You can also combine profiles with `AFFINE_DISABLED_GROUPS` such as `docs.database`, `destructive`, or `admin` for finer control.\n\nFor the grouped catalog, notes, and operational caveats, see [docs/tool-reference.md](docs/tool-reference.md).\n\n## Documentation Map\n\n| Document | Purpose |\n| --- | --- |\n| [docs/getting-started.md](docs/getting-started.md) | First-run setup paths and verification |\n| [docs/client-setup.md](docs/client-setup.md) | Client-specific configuration snippets and tips |\n| [docs/configuration-and-deployment.md](docs/configuration-and-deployment.md) | Environment variables, auth modes, Docker, HTTP mode, and deployment guidance |\n| [docs/workflow-recipes.md](docs/workflow-recipes.md) | End-to-end workflows and example tool sequences |\n| [docs/tool-reference.md](docs/tool-reference.md) | Tool catalog grouped by domain |\n| [docs/edgeless-canvas-cookbook.md](docs/edgeless-canvas-cookbook.md) | Edgeless canvas layout helpers and surface elements, worked end-to-end |\n| [CONTRIBUTING.md](CONTRIBUTING.md) | Contributor workflow |\n| [SECURITY.md](SECURITY.md) | Security reporting |\n\n## Verify Your Setup\n\nUseful CLI commands:\n\n- `affine-mcp status` - test the effective configuration\n- `affine-mcp status --json` - machine-readable status output\n- `affine-mcp doctor` - diagnose config and connectivity issues\n- `affine-mcp show-config` - print the effective config with secrets redacted\n- `affine-mcp config-path` - print the config file path\n- `affine-mcp snippet <claude|cursor|codex|all> [--env]` - generate ready-to-paste client config\n- `affine-mcp logout` - remove stored credentials\n\n`status`, `doctor`, and the server runtime use the same `environment > saved config > defaults` resolution. For a self-hosted deployment with a non-standard GraphQL route, use `affine-mcp login --graphql-path /your/graphql/path` or set `AFFINE_GRAPHQL_PATH`; `show-config --json` prints the exact resolved `graphqlEndpoint` without exposing secrets.\n\nFor common failures, see:\n\n- [docs/getting-started.md#common-first-run-failures](docs/getting-started.md#common-first-run-failures)\n- [docs/configuration-and-deployment.md#deployment-checklist](docs/configuration-and-deployment.md#deployment-checklist)\n\n## Security and Scope\n\n- Never commit passwords, session cookies, or compatible bearer tokens\n- Use a dedicated least-privilege AFFiNE account for unattended deployments\n- Email/password HTTP sessions share one login and never fall back to anonymous backend requests after authentication failure\n- Use HTTPS for non-local deployments\n- Keep remote HTTP MCP listeners authenticated; bearer mode refuses a non-loopback bind without `AFFINE_MCP_HTTP_TOKEN`\n- Send MCP bearer tokens in the `Authorization` header, never in the URL\n- Re-run `affine-mcp login` when a saved browser session expires\n- Restrict exposed tools with `AFFINE_DISABLED_GROUPS` and `AFFINE_DISABLED_TOOLS` for least-privilege setups\n- Treat OAuth mode as a shared AFFiNE service-account deployment: it defaults to `read_only`, and write-capable profiles require `AFFINE_OAUTH_ALLOW_SERVICE_WRITES=true`\n- Use `/healthz` and `/readyz` when running the HTTP server behind a container platform or load balancer\n- Set HTTP body, session, idle, and shutdown limits explicitly for high-volume deployments\n\n## Development\n\nRun the main quality gates before opening a PR:\n\n```bash\nnpm run ci\n```\n\nAdditional validation:\n\n- `npm test` verifies tool metadata, test-suite coverage, and the fast regression suite without requiring a live AFFiNE instance\n- `npm run test:comprehensive` boots a local Docker AFFiNE stack and validates the tool surface\n- `npm run test:e2e` runs Docker, MCP, and Playwright together\n- `npm run test:playwright` runs the Playwright suite only\n- Focused runners for the new high-level tool surface include `npm run test:create-placement`, `npm run test:capabilities-fidelity`, `npm run test:native-template`, `npm run test:mutation-ack`, `node tests/test-database-intent.mjs`, `node tests/test-semantic-page-composer.mjs`, `node tests/test-structured-receipts.mjs`, `node tests/test-organize-tools.mjs`, and `node tests/test-supporting-tools.mjs`\n\nLive tests can mutate or delete AFFiNE data. They allow loopback targets by\ndefault and refuse non-loopback targets unless the disposable target is\nexplicitly enabled and confirmed as documented in `CONTRIBUTING.md`. Never run\nthem against production.\n\nLocal clone flow:\n\n```bash\ngit clone https://github.com/dawncr0w/affine-mcp-server.git\ncd affine-mcp-server\nnpm install\nnpm run build\nnode dist/index.js\n```\n\n## Release Notes\n\n- [CHANGELOG.md](CHANGELOG.md)\n- [RELEASE_NOTES.md](RELEASE_NOTES.md)\n- [GitHub Releases](https://github.com/dawncr0w/affine-mcp-server/releases)\n\n## License\n\nMIT License - see [LICENSE](LICENSE).\n\n## Support\n\n- Open an issue on [GitHub](https://github.com/dawncr0w/affine-mcp-server/issues)\n- Review AFFiNE product documentation at [docs.affine.pro](https://docs.affine.pro)\n\n## Acknowledgments\n\n- Built for the [AFFiNE](https://affine.pro) knowledge base platform\n- Uses the [Model Context Protocol](https://modelcontextprotocol.io) specification\n- Powered by [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk)\n","readmeFilename":"README.md"}