{"_id":"affine-mcp-server","_rev":"43-1ee0b28e3d3c35f46d54fe5855aae7aa","name":"affine-mcp-server","dist-tags":{"latest":"3.8.4"},"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","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.0.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":"818308d435db62190113b60676f0cc005b9700d4","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.0.1.tgz","fileCount":57,"integrity":"sha512-tjrjReOQv1d4cWCj0tSswdjiS9FyFfaPCIhVzTdBeQ1bjcqT3udDCueG1AulvlMLeQuM13BIAZNi/1RBf9rZ1A==","signatures":[{"sig":"MEUCIQDDM6NGN2Gkt6S3u4RYhi0RVB6+fk9Ll0rYCd/NQLXSQQIgTHwkR04yWi3UlOFjkNJAVIgQcFb1KoEappHLkz0cSms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2212953},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.0.1.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:markdown-linked-page":"node tests/test-markdown-linked-page.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.1.tgz","_integrity":"sha512-tjrjReOQv1d4cWCj0tSswdjiS9FyFfaPCIhVzTdBeQ1bjcqT3udDCueG1AulvlMLeQuM13BIAZNi/1RBf9rZ1A==","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.1_1784627248501_0.04461131805197005","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"affine-mcp-server","version":"3.1.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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":"e5ace30e7bb916a316cc1342eccf8e5968f77aef","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.1.0.tgz","fileCount":57,"integrity":"sha512-W2MZEkYEFCnfhQ8FaViPBa0LQO4bN7jT5WSEBCg9+tx5oENgY1frSyn1yZ4Bs+o89tDkwkSuRw6TtFtIxd1iPg==","signatures":[{"sig":"MEUCIQDQQbDTGRLhWBJ5PucJ5PnQm3ewa8rUS2v2H+YfD3OCqwIgPlZ7y32VG44f58RVAXMUAFqeCLzefHmJ8qYWzOzx4ZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2233063},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.1.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.1.0.tgz","_integrity":"sha512-W2MZEkYEFCnfhQ8FaViPBa0LQO4bN7jT5WSEBCg9+tx5oENgY1frSyn1yZ4Bs+o89tDkwkSuRw6TtFtIxd1iPg==","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.1.0_1785150832860_0.20631317011157813","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"affine-mcp-server","version":"3.2.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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":"4b5f91ac44f3ff289801f406af114e2922bd6ea1","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.2.0.tgz","fileCount":58,"integrity":"sha512-dsiufjEICPTYv+yVG3B30mkp3hgkB06KCWywh+TAfVH1oY8UgtYba4vVyb8xHh4gm5gYd+0WPcpvo1Pz8i1dZg==","signatures":[{"sig":"MEYCIQCZlLHF6tqY5XYw3RJX0ACB6v5xFtlAfYxo7xdZf2GuXwIhAJhEOIPs4V0DcaAL2k5uFVZraE5Im65hwuJFKoheY4CN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2252877},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.2.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:output-schemas && 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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.2.0.tgz","_integrity":"sha512-dsiufjEICPTYv+yVG3B30mkp3hgkB06KCWywh+TAfVH1oY8UgtYba4vVyb8xHh4gm5gYd+0WPcpvo1Pz8i1dZg==","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.28.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.30.0"},"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.2.0_1785812144655_0.683501694710738","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"affine-mcp-server","version":"3.2.1","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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":"bin/affine-mcp"},"dist":{"shasum":"e686474c3dc3becd073862a06b5c9381f9d5648b","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.2.1.tgz","fileCount":58,"integrity":"sha512-IQLI5tkTchMVRvAga9mZDSs1KJGaoUmlSgGG9C/pNRkLZOLpTKCjHxEiJy1h23g2suhmKvJqr7McW2KFQlyi/A==","signatures":[{"sig":"MEQCIDyxZe05Tmp/8agSr3ZUaTOQCdeGgSTbU+Iq6ZqNZGaZAiBzxrHKgdJEqr95cxrts7udUlYpKyPHGVSMOuHhEoyJXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2263551},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.2.1.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:output-schemas && 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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.2.1.tgz","_integrity":"sha512-IQLI5tkTchMVRvAga9mZDSs1KJGaoUmlSgGG9C/pNRkLZOLpTKCjHxEiJy1h23g2suhmKvJqr7McW2KFQlyi/A==","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.28.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.30.0"},"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.2.1_1785985747736_0.770174628630558","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"affine-mcp-server","version":"3.2.2","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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":"07b95437395cc0ca16e19b5187ba8212db136100","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.2.2.tgz","fileCount":58,"integrity":"sha512-Bri50O/w9qG3CDYfFogZ67dmt6KtV2xiwO/ia4XNDfe0DGJPhX+9OSIXDhjtmg56wXPkB7NvpN2H71ebQDIYKg==","signatures":[{"sig":"MEUCIGL0kMrDJIYVY35gbVWpTiI1E6lFqPskShuZU5vu7b+sAiEAiZElqAwdXr4hG0PYldX5vd1A3jTp+3682jPZZH880NU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2267623},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.2.2.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.2.2.tgz","_integrity":"sha512-Bri50O/w9qG3CDYfFogZ67dmt6KtV2xiwO/ia4XNDfe0DGJPhX+9OSIXDhjtmg56wXPkB7NvpN2H71ebQDIYKg==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.17.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"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.2.2_1787030958451_0.7311632049447916","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"affine-mcp-server","version":"3.3.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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":"6492ecceef9f0c966683cb2b907458f7b72a660b","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.3.0.tgz","fileCount":58,"integrity":"sha512-gVan+lw8MhsRjBmSrX3IgvDNKgtyfGxG9UwbkEzHav+TcOJUTHXxhUHuqgR5JnThTU96emAtFftOEffJkvYppA==","signatures":[{"sig":"MEUCIGy7GF6gCLAIdpnpK91hhWGNROB+mpv+WRlLONEObuCGAiEAsEZ8Zvwnqfl8ZmTX3gxKiqBapHacwD8/42FJBreeNkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2303894},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.3.0.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.3.0.tgz","_integrity":"sha512-gVan+lw8MhsRjBmSrX3IgvDNKgtyfGxG9UwbkEzHav+TcOJUTHXxhUHuqgR5JnThTU96emAtFftOEffJkvYppA==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.17.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"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.3.0_1787559736187_0.9844284271647086","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"affine-mcp-server","version":"3.4.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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":"0790ec911405c103b7bc2855063ef0adc8c73232","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.4.0.tgz","fileCount":59,"integrity":"sha512-S43xpirJny1MOoHymASqgQe/+ziH+ucKLGpd3jSoQJEhLayAeCGSYAZrOJY5JjrTWOEwCb+vTx2i3uBmXRZN3Q==","signatures":[{"sig":"MEYCIQC1tezPCHrvpdDYYnKxvUE8kYPQq+O71DXRJ/L1xZ/TDQIhANHpChHt3uDXY0gA01VMK0sVh4aCRwV7iViGLSoIAr5T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2312086},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.4.0.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.4.0.tgz","_integrity":"sha512-S43xpirJny1MOoHymASqgQe/+ziH+ucKLGpd3jSoQJEhLayAeCGSYAZrOJY5JjrTWOEwCb+vTx2i3uBmXRZN3Q==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.17.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^20.18.1","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.4.0_1787801201260_0.8216716671595898","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"affine-mcp-server","version":"3.4.1","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.4.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":"ed280ede632b42c5cd24411ef1981041f2df4414","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.4.1.tgz","fileCount":59,"integrity":"sha512-3VHkLs2aTF8+r5Sm5NIGJjNTFvfonnkqPnbHAepEWU/F4lxKmZomHPGioiQMivBszx12l46ae3twfVK+mGRTMg==","signatures":[{"sig":"MEYCIQDBMWgSJzpQFudfRKzHxhrU/llZcRwtbDCQQHUlU0scAgIhAKR5GgsBTIPQOJG1NYvhqHU6ZwhwjSkTJNNs8Vf8lz3U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2314424},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.4.1.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.4.1.tgz","_integrity":"sha512-3VHkLs2aTF8+r5Sm5NIGJjNTFvfonnkqPnbHAepEWU/F4lxKmZomHPGioiQMivBszx12l46ae3twfVK+mGRTMg==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.17.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^20.18.1","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.4.1_1787806366558_0.6433520460431401","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"affine-mcp-server","version":"3.5.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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":"8e01b193263aae07b296592b44c6dc521964d791","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.5.0.tgz","fileCount":59,"integrity":"sha512-bCB3JTNNzhzQx9FRa+0vpFQIy93TkNAVnbwZ05nXKNn+mvFLVuOiUkMrwZVqsSywYCFzpg5Opnihbq7fCr0kkw==","signatures":[{"sig":"MEQCIGuktx+EKCXU68RD+1xZejDE9kiv7sAg58+VGq2CcusRAiBPnXLrK2exYmCpmIPHY8jKtDyh43oloQc5fKaBWfFnVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2325643},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.5.0.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.5.0.tgz","_integrity":"sha512-bCB3JTNNzhzQx9FRa+0vpFQIy93TkNAVnbwZ05nXKNn+mvFLVuOiUkMrwZVqsSywYCFzpg5Opnihbq7fCr0kkw==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.17.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^20.18.1","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.5.0_1788149627311_0.5466602859922849","host":"s3://npm-registry-packages-npm-production"}},"3.5.1":{"name":"affine-mcp-server","version":"3.5.1","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.5.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":"73b83847a2796429302bfd4607d6264c6c19ef9a","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.5.1.tgz","fileCount":59,"integrity":"sha512-JlhcISZE3OWNofRw7QHp8YjkoU/kwx6Ulhg4JIFrjcm+Z+NYJugxao3rosy84N3Q5s+LXh85ZK8/a0rUehpABg==","signatures":[{"sig":"MEYCIQC4OtA/FZFMLigDzTKZcH9LnIxuGLCafKyN6/WiZxTIaAIhAMz7yst3BjzcnA2ArMSBd/kEfj4HUomBGi+/Xt8rgIKu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCM1JN99+9LwYwe0dh9EeA3ixvgo1tatZmTlJtQ7fvW3wIhAKl17N8KoFWgeFYjLjK+ad8Q7CIejtfwAoVvM5/P+vcT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2328547},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.5.1.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.5.1.tgz","_integrity":"sha512-JlhcISZE3OWNofRw7QHp8YjkoU/kwx6Ulhg4JIFrjcm+Z+NYJugxao3rosy84N3Q5s+LXh85ZK8/a0rUehpABg==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^20.18.1","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.5.1_1788742253272_0.09357872870823414","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"affine-mcp-server","version":"3.6.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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":"529cdb8450b0bc67d0986f98ad0d42774c4553d4","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.6.0.tgz","fileCount":62,"integrity":"sha512-p2dF8GM3Z7COPpDrEXuIi31V3q8TTgw4p3qTetoJcMupS1vXomMlFJLbfFfFms4NlmtaqTV+KJRr3AU25mrctw==","signatures":[{"sig":"MEYCIQCRGTtsbeu3hqb/NfLJaxHj8HsH4/ILwLijlT+4kZl9jgIhAL3/CprCIK5Y4a/nFru+qGNBns0SeDYSDww/JaXiQ7Vz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCcLXD6oHXyZ0XU83KKlKRiv/Rh7XYxVUOdqFXd9g5YIQIhAIg2AoGosdKVbGqzglHsriimqvTVTJ2MMy0saeZz4xJ3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2384981},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.6.0.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.6.0.tgz","_integrity":"sha512-p2dF8GM3Z7COPpDrEXuIi31V3q8TTgw4p3qTetoJcMupS1vXomMlFJLbfFfFms4NlmtaqTV+KJRr3AU25mrctw==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^20.18.1","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.6.0_1788847516905_0.01792829517498462","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"affine-mcp-server","version":"3.7.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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","affine-mcp-http-proxy":"bin/affine-mcp-http-proxy"},"dist":{"shasum":"3f1b21fcaddc50b2d0456c3c8b50d8587efc22fc","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.7.0.tgz","fileCount":64,"integrity":"sha512-FzJb2GQs61HIvEHih+Q3hIt/nD/OKc4xweR6dW0pT0ls2lLMN+7gT1+7Bum1WVzQcgEbtsna9xnP3jfWi29veQ==","signatures":[{"sig":"MEQCICQeuEsqA52oUqxh3DblmivSZh4kN09h6Qa5swR7kRkRAiBa8IKpx8kUVr9Nsj7yPyLN5YNBpI9JFnqWbJLv5EkwAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDd74+NOueZbPiuluhMriywPuEyu+ENfkws+DjxEAGgBwIgJZnoe58QZhrB87htVr/JXCb2kSlo+kFProTLOyOfOUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2402442},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.7.0.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.7.0.tgz","_integrity":"sha512-FzJb2GQs61HIvEHih+Q3hIt/nD/OKc4xweR6dW0pT0ls2lLMN+7gT1+7Bum1WVzQcgEbtsna9xnP3jfWi29veQ==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.23.8","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^20.18.1","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.7.0_1789009458001_0.9939322794400267","host":"s3://npm-registry-packages-npm-production"}},"3.8.0":{"name":"affine-mcp-server","version":"3.8.0","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.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","affine-mcp-http-proxy":"bin/affine-mcp-http-proxy"},"dist":{"shasum":"dd0118e4aa01f4e7f279fbf6117c53900e65ea22","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.8.0.tgz","fileCount":69,"integrity":"sha512-nFfQ35iCaR0jb5rehYYrYBYe6q0aaYYFnoT13EedPHJAZc0hq24KdtulBfK7Xws4Tefyem8nB53SAGHiM4u5lg==","signatures":[{"sig":"MEUCIQCSJbynPA96RDZe6uD3nQF6a3xbYDQ0nQ/ugtRdiP2zSwIgZMsB3mCfCc1ANRSN58tlgCHLq1FTFnTYnoXPzrfcoyU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDX0GMRcNxTbKmV+kxvwiURNpWbZaCsP8mBgGCc/eosKwIgZN42O3Jrr4Ql6UzcSkVdbMvqJwUtd1CuMulxntaKkSE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2492692},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.8.0.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:concurrent-writes":"node tests/test-concurrent-writes.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.8.0.tgz","_integrity":"sha512-nFfQ35iCaR0jb5rehYYrYBYe6q0aaYYFnoT13EedPHJAZc0hq24KdtulBfK7Xws4Tefyem8nB53SAGHiM4u5lg==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.25.76","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^20.18.1","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.8.0_1789358895238_0.47609842253894064","host":"s3://npm-registry-packages-npm-production"}},"3.8.1":{"name":"affine-mcp-server","version":"3.8.1","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.8.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","affine-mcp-http-proxy":"bin/affine-mcp-http-proxy"},"dist":{"shasum":"e1a1ddcf7b70b934a29306cf711a1c094d692301","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.8.1.tgz","fileCount":69,"integrity":"sha512-ui/hoEVLqRvNI9qkTkSNFqMKvwlOeTQcuF7S/owtoe9NO6TCjQ2gbCI+9lVSdazRtGeo+mBkpbf9s4pRUzKaBw==","signatures":[{"sig":"MEUCIAwa9rz2l+1TiRx+QwsvtksJjwfLMN8yLnMYANRcA8L+AiEAz9QBqqNOLGZnxGSSdkstJhV0fPJQ7dYqYyO/YCS4Eyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCA+0b0jXXoiyHyiioLymGj4gLBbUi7k4Y/R3dcbPfG4AIgb1a1dWev6uo8wRwMywDMIlJVMHkQ4biBOAt0E1EgbAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2501601},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.8.1.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:concurrent-writes":"node tests/test-concurrent-writes.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.8.1.tgz","_integrity":"sha512-ui/hoEVLqRvNI9qkTkSNFqMKvwlOeTQcuF7S/owtoe9NO6TCjQ2gbCI+9lVSdazRtGeo+mBkpbf9s4pRUzKaBw==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.25.76","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^24.13.4","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.8.1_1789959711623_0.2834304491912045","host":"s3://npm-registry-packages-npm-production"}},"3.8.2":{"name":"affine-mcp-server","version":"3.8.2","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.8.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","affine-mcp-http-proxy":"bin/affine-mcp-http-proxy"},"dist":{"shasum":"65baf03726a20449be6772cecd4d8cf19d07f66d","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.8.2.tgz","fileCount":69,"integrity":"sha512-nDW/AqRTkXImaye4H0w8DowfYXy6IsYDKf+t5OU6cS8gphYKZA9LcxqSBwRzB6DvYDaSsmApFccD2OC2C+yWzA==","signatures":[{"sig":"MEYCIQDpkpTKogjj9sQN99/DlbDZc8xVLRlUlTCThMwQPzzLVgIhAJztlktmgso4aCD6dDPCqnareosatwSyQeu5GeXN9HLV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCyJ1Ml84poz5/ZsYKYzqbys4cwOXzGwLSajsgmrEqUogIhAPFsiCggfp9Cr13xFMbQt8bjCchxjQO3ziMzpi+g+UWT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2501021},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.8.2.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:concurrent-writes":"node tests/test-concurrent-writes.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.8.2.tgz","_integrity":"sha512-nDW/AqRTkXImaye4H0w8DowfYXy6IsYDKf+t5OU6cS8gphYKZA9LcxqSBwRzB6DvYDaSsmApFccD2OC2C+yWzA==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"yjs":"^13.6.27","zod":"^3.25.76","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^24.13.4","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.8.2_1790047642807_0.8623926254014684","host":"s3://npm-registry-packages-npm-production"}},"3.8.3":{"name":"affine-mcp-server","version":"3.8.3","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"author":{"name":"dawncr0w"},"license":"MIT","_id":"affine-mcp-server@3.8.3","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","affine-mcp-http-proxy":"bin/affine-mcp-http-proxy"},"dist":{"shasum":"e6cbc9103d946fe144a25460e8b05517442228db","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.8.3.tgz","fileCount":69,"integrity":"sha512-8eo4ArhudsqCcI4bQ1coTtlb74FU+pOYIndIvIuWK3f1xIXQxMHtxFOxmn44t5hDe5d3BDzh6lbyc1GQAbuw2Q==","signatures":[{"sig":"MEYCIQCoIIHw5MBcm3dF6Mi4qCrFPyUHCwBPrO24OO6QUDtKqQIhAMkffoy4NRWSm2LZE8MDjc/0viUZE1ytw04b30DmB3ha","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB60c6AuwDZjM24HHgLGpPPoAuIXqVNKVnqxZaOgho+GAiEAzIidpAOz0Enfuq0X38oaIsR3u5m197L3WemsvPsBvJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2518187},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.8.3.tgz","engines":{"node":">=20.18.1"},"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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:concurrent-writes":"node tests/test-concurrent-writes.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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.8.3.tgz","_integrity":"sha512-8eo4ArhudsqCcI4bQ1coTtlb74FU+pOYIndIvIuWK3f1xIXQxMHtxFOxmn44t5hDe5d3BDzh6lbyc1GQAbuw2Q==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"yjs":"^13.6.27","zod":"^3.25.76","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^24.13.4","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/affine-mcp-server_3.8.3_1790569024370_0.3826314499868859","host":"s3://npm-registry-packages-npm-production"}},"3.8.4":{"_id":"affine-mcp-server@3.8.4","bin":{"affine-mcp":"bin/affine-mcp","affine-mcp-http-proxy":"bin/affine-mcp-http-proxy"},"bugs":{"url":"https://github.com/DAWNCR0W/affine-mcp-server/issues"},"dist":{"shasum":"9e3d9d7e9ac65432fa3df9d043ac12c211ab3e8f","tarball":"https://registry.npmjs.org/affine-mcp-server/-/affine-mcp-server-3.8.4.tgz","fileCount":71,"integrity":"sha512-4M+qnjSMYSoko1jVMnfEYHbF5fEpDVmF4JfKYe/53+JJxXcpzzStXYPC2r0+AoF470s5MT09iuVRAh47PXx+Yw==","signatures":[{"sig":"MEUCIQDbY4X4DF4f34Q5fZcZr6ADt/N+adDfR2iJRc6Ueoe0JQIgZPagyjiQXSV7jjU93D8MliHayd14YSu6lxUWg8VyMB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIASit2H9xaevfqjs0dJ1spWDSmzhxvo9dxb+6Kd0D4HdAiBa9j59AcCZ5v5SnAXwXWrc5ek8RwKZ9SNIucOf4D5/MQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/affine-mcp-server@3.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2533277},"main":"dist/index.js","name":"affine-mcp-server","type":"module","_from":"file:/home/runner/work/_temp/npm-release/affine-mcp-server-3.8.4.tgz","author":{"name":"dawncr0w"},"engines":{"node":">=20.18.1"},"license":"MIT","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:output-schemas && 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:block-editing":"node tests/test-block-editing.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:output-schemas":"node --import tsx tests/test-output-schemas.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:concurrent-writes":"node tests/test-concurrent-writes.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:workspace-discovery":"node tests/test-workspace-discovery.mjs","test:blob-upload-contract":"node tests/test-blob-upload-contract.mjs","test:markdown-linked-page":"node tests/test-markdown-linked-page.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"},"version":"3.8.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7464ab29-6439-4fa4-9861-c09df14c5d56"}},"homepage":"https://github.com/DAWNCR0W/affine-mcp-server#readme","keywords":["mcp","affine","model-context-protocol","ai","claude","knowledge-base"],"_resolved":"/home/runner/work/_temp/npm-release/affine-mcp-server-3.8.4.tgz","_integrity":"sha512-4M+qnjSMYSoko1jVMnfEYHbF5fEpDVmF4JfKYe/53+JJxXcpzzStXYPC2r0+AoF470s5MT09iuVRAh47PXx+Yw==","repository":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.","directories":{},"maintainers":[{"name":"dawncr0w","email":"dev.dawncrow@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"yjs":"^13.6.27","zod":"^3.25.76","cors":"^2.8.6","jose":"^6.2.1","undici":"^7.29.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.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.2","typescript":"^7.0.2","@types/cors":"^2.8.19","@types/node":"^24.13.4","@types/express":"^5.0.6","@playwright/test":"^1.50.0","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/affine-mcp-server_3.8.4_1790654816436_0.7850659392351949"}}},"time":{"created":"2025-09-16T09:35:02.986Z","modified":"2026-09-29T04:06:56.953Z","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","3.1.0":"2026-07-27T11:13:53.146Z","3.2.0":"2026-08-04T02:55:44.809Z","3.2.1":"2026-08-06T03:09:08.015Z","3.2.2":"2026-08-18T05:29:18.628Z","3.3.0":"2026-08-24T08:22:16.370Z","3.4.0":"2026-08-27T03:26:41.493Z","3.4.1":"2026-08-27T04:52:46.764Z","3.5.0":"2026-08-31T04:13:47.467Z","3.5.1":"2026-09-07T00:50:53.406Z","3.6.0":"2026-09-08T06:05:17.029Z","3.7.0":"2026-09-10T03:04:18.174Z","3.8.0":"2026-09-14T04:08:15.355Z","3.8.1":"2026-09-21T03:01:51.785Z","3.8.2":"2026-09-22T03:27:22.915Z","3.8.3":"2026-09-28T04:17:04.496Z","3.8.4":"2026-09-29T04:06:56.600Z"},"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":{"url":"git+https://github.com/DAWNCR0W/affine-mcp-server.git","type":"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.8.4-blue)](https://github.com/dawncr0w/affine-mcp-server/releases)\n[![MCP SDK](https://img.shields.io/badge/MCP%20SDK-1.30.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- Coordinates concurrent writes per workspace through one shared MCP server; optional document revisions reject stale edits\n- Supports session-cookie and email/password authentication, plus compatible bearer tokens for older deployments\n- Exposes 106 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.2.1: Scripted cookie login now keeps session secrets out of process arguments, validates workspace access before saving credentials, and restores document pagination for ordinary workspace members.\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| Let multiple agents write through one coordinated server | [Concurrent writes](docs/configuration-and-deployment.md#concurrent-writes) |\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:3.8.4\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\nHTTP deployments have two environment-only session limits:\n\n| Variable | Default | Purpose |\n| --- | --- | --- |\n| `AFFINE_MCP_HTTP_MAX_SESSIONS` | `32` | Combined Streamable HTTP and legacy SSE session capacity, including sessions being initialized |\n| `AFFINE_MCP_HTTP_SESSION_IDLE_TIMEOUT_MS` | `1800000` (30 minutes) | Idle time before an inactive session is closed |\n\nShort-lived Streamable HTTP clients, including cron jobs, should send `DELETE /mcp`\nwith their `Mcp-Session-Id` and authentication headers when finished. Exiting the\nclient process alone does not terminate its server-side session. A long idle\ntimeout can let abandoned sessions fill the limit and cause `503` / `-32002`\nerrors. Close unused sessions and choose an appropriate idle timeout before\nraising the cap. See [session capacity troubleshooting](docs/configuration-and-deployment.md#runtime-limits-and-shutdown).\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\nThe login flow reuses the configured or saved AFFiNE URL when you press Enter at\nthe URL prompt. After authentication, workspace discovery displays the workspace\nname first and falls back to `Workspace name unavailable` when profile metadata\nhas no name; the full ID remains visible. An invalid numeric selection is rejected\nand prompted again. Enter `q` or send end-of-file to cancel without writing a new\nconfig. A failed discovery request is reported as a failure; it is not treated as\na completed login.\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\nThe prompt defaults to `AFFINE_BASE_URL` from the environment or the saved config file, so pressing Enter keeps an already-configured self-hosted URL instead of switching back to AFFiNE Cloud.\n\nFor a self-hosted instance reached over plain HTTP on a trusted private network, `AFFINE_ALLOW_INSECURE_HTTP=true` must be set for the login run as well as for the server. The opt-in is read from the environment first and then from the saved config file.\n\nTo avoid re-running login when a session expires, persist the account credentials instead of the session cookie:\n\n```bash\naffine-mcp login --save-credentials\n```\n\nWith the email/password method, this stores `AFFINE_EMAIL` and `AFFINE_PASSWORD` so the server signs in on its own and renews the session before it expires. The password is written to the mode-`600` config file, so use a dedicated least-privilege AFFiNE account. Without this flag the CLI keeps storing only the session credential, which never renews by itself.\n\nFor scripted session-cookie setup, keep the cookie out of process arguments:\n\n```bash\naffine-mcp login --url https://app.affine.pro --cookie-stdin --workspace-id your-workspace-id --force\n```\n\nPaste the cookie at the hidden prompt, or pipe it from a trusted secret source. The CLI verifies `--workspace-id` against the authenticated account before saving it. Piped input requires `--force` when existing credentials would be replaced.\n\nAfter login, inspect and switch the saved default workspace without signing in\nagain:\n\n```bash\naffine-mcp workspaces\naffine-mcp workspaces --json\naffine-mcp workspace <workspace-id>\n```\n\n`workspaces` lists names first and marks the current default. `workspace` validates\nthe requested ID with the active credentials and changes only the local default\n(`AFFINE_WORKSPACE_ID`); it does not grant access to a workspace or change the\nauthenticated account. With no ID, it uses the same validated selection flow.\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\naffine-mcp snippet codex\n```\n\nThe recommended Codex form is a command-only registration line that keeps using\nthe current saved login. `snippet claude` and `snippet cursor` print JSON\nconfiguration instead. Apply the generated snippet, then restart or reconnect\nthe MCP client so it starts a fresh server process.\n\nFor an explicit environment snapshot, add `--env` to any snippet command. It\ncopies the currently resolved URL, authentication, headers, workspace, and\nrelevant OAuth settings; client environment variables win over saved config at\nruntime. Remove or regenerate copied credentials when they expire instead of\nexpecting a saved login to override them.\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).\nIf an HTTP server already runs on the same host as your stdio client, use the\nprivate [stdio HTTP bridge](docs/configuration-and-deployment.md#private-stdio-bridge-for-a-local-http-listener)\ninstead of starting another full server process.\n\n## Compatibility Matrix\n\nNode.js 20.18.1 is the minimum supported runtime. CI validates the Node.js 20, 22, 24, and 26 release lines.\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\nEvery canonical tool also declares an MCP `outputSchema` for its `structuredContent`. Object results retain their existing top-level fields, while array and scalar results use stable `{ items }`, `{ text }`, or `{ value }` envelopes. The existing text `content` remains unchanged for compatibility with clients that do not consume structured results.\n\n`get_capabilities` exposes the full implemented list in\n`server.supportedTools` and the currently enabled surface in\n`server.effective.profile` and `server.effective.enabledTools`, after profiles,\ndisabled groups or tools, and auth-mode policy. Inspect `tools/list` when you\nneed the final set of callable tools.\n\nAdvertised input and output schemas omit the SDK-generated draft-07 `$schema` marker. Schema interpretation follows the client context, allowing clients that reject an explicit draft-07 declaration to consume the tool surface.\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\nFor new document content, use `create_doc` for an optional single plain-text\nparagraph and `create_doc_from_markdown` for native headings, lists, links, and\ncode blocks. Both tools accept `folderId` for immediate organize-folder placement.\nNew pages record the authenticated AFFiNE account in the app's **Created by**\nproperty, including semantic pages, template instances, and workspace welcome pages.\nExisting creator records are preserved; older pages are not backfilled.\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\nFull-note replacement with `replace_doc_with_markdown` is destructive and requires `full` without disabling the `destructive` group. `core` and `authoring` retain incremental editing through `append_markdown` and `update_block`.\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 workspaces [--json]` - list accessible workspaces by name and mark the default\n- `affine-mcp workspace [id]` - validate and set the local default workspace\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\nCore configuration uses `environment > saved config > defaults`. HTTP body/session\nlimits, proxy settings, WebSocket timeouts, and the HTTP compatibility escape\nhatches are environment-only runtime flags; they are not read from the saved\n`KEY=value` file. See [configuration precedence and environment scope](docs/configuration-and-deployment.md#configuration-precedence).\nFor a self-hosted deployment with a non-standard GraphQL route, use\n`affine-mcp login --graphql-path /your/graphql/path` or set\n`AFFINE_GRAPHQL_PATH`; `show-config --json` prints the exact resolved\n`graphqlEndpoint` without exposing secrets. Generated workspace and document URLs\nuse the configured AFFiNE base URL, so a custom GraphQL path does not become part\nof a browser link.\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- For GUI clients, verify `command -v affine-mcp` and `command -v node`; an absolute\n  script path does not fix a `#!/usr/bin/env node` shebang when the GUI process has\n  no Node.js directory in `PATH`. See [GUI client PATH troubleshooting](docs/client-setup.md#gui-client-path-troubleshooting).\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"}