{"_id":"@anyslate/mcp","_rev":"12-13d55e6e98a0c3f8e8a8c823847ae38e","name":"@anyslate/mcp","dist-tags":{"latest":"1.2.3"},"versions":{"1.0.0":{"name":"@anyslate/mcp","version":"1.0.0","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"license":"MIT","_id":"@anyslate/mcp@1.0.0","maintainers":[{"name":"anyslate","email":"webmaster@anyslate.io"}],"homepage":"https://github.com/AnySlate/anyslate#readme","bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"bin":{"anyslate-mcp":"dist/index.js"},"dist":{"shasum":"e10549fb123e44444065ac309de48b5e0ce1eea2","tarball":"https://registry.npmjs.org/@anyslate/mcp/-/mcp-1.0.0.tgz","fileCount":3,"integrity":"sha512-pRoqSoO9HqeDAZSYdXar9LMlLwtvZ14kAfADiMil3+eneVJvfKeIcHRKioiHVA2bMzySrdE2hLPLCOTfFLcnkQ==","signatures":[{"sig":"MEYCIQCJL8fK3NpNBdns3rMFruMK14OClIRLpdEGps34si55hAIhAPg52xcfVKHFM3qhjVp7HQug0EJgSt6kELXm8jLwRPkP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6637},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"c36b78d3ee84d1b88d39b5edf6bb8fa7303ff148","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"anyslate","email":"webmaster@anyslate.io"},"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"_npmVersion":"10.8.3","description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","directories":{},"_nodeVersion":"21.7.3","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.0.0_1773147593944_0.5003438761315979","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@anyslate/mcp","version":"1.0.1","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"license":"MIT","_id":"@anyslate/mcp@1.0.1","maintainers":[{"name":"anyslate","email":"webmaster@anyslate.io"}],"homepage":"https://github.com/AnySlate/anyslate#readme","bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"bin":{"anyslate-mcp":"dist/index.js"},"dist":{"shasum":"c83d2f96bbdb0fe399edc0daff20a2c7d0d350e9","tarball":"https://registry.npmjs.org/@anyslate/mcp/-/mcp-1.0.1.tgz","fileCount":3,"integrity":"sha512-R63Bh6pjKeeqUfDgCOhklWi8RlEzixgMj6gsu+kIfMyYJveZmPOPW3iS11rVSbZejk9OqGgp5JtmlhwVoP0knQ==","signatures":[{"sig":"MEUCIBiuLxV1vE4O8tlNquGo04yEe0Je1BPuUibKJsJ5zdLkAiEA41rXWonW8tgQc1TB0sRZ2TCOWG5XeQi3eOtJoYpYNd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6943},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"9aa11a591dde23d874be4589f73077b4633146e8","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"anyslate","email":"webmaster@anyslate.io"},"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"_npmVersion":"10.8.3","description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","directories":{},"_nodeVersion":"21.7.3","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.0.1_1773153187744_0.2551423410673517","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@anyslate/mcp","version":"1.0.2","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"license":"MIT","_id":"@anyslate/mcp@1.0.2","maintainers":[{"name":"anyslate","email":"webmaster@anyslate.io"}],"homepage":"https://github.com/AnySlate/anyslate#readme","bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"bin":{"anyslate-mcp":"dist/cli.js"},"dist":{"shasum":"225e9af75e8dfdd903d402b81797d32e810a1cbc","tarball":"https://registry.npmjs.org/@anyslate/mcp/-/mcp-1.0.2.tgz","fileCount":4,"integrity":"sha512-YFPdOGpwTkJuAcRXgn67hkEhMXKq76iZxgfaR/LJqF8zWfSHSIOtpIff8gm50popvcukdYFTGDajGUbKNe8lMQ==","signatures":[{"sig":"MEUCIQD0z2Su/hppsw9HomZ7dEmrG2B2FMECZAJb8zjVMi5i8wIgTkB84zlvqwoW7Potbek4iVkGgkuYPQSZIFvwbhDyi1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8123},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"9aa11a591dde23d874be4589f73077b4633146e8","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"anyslate","email":"webmaster@anyslate.io"},"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"_npmVersion":"10.8.3","description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","directories":{},"_nodeVersion":"21.7.3","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.0.2_1773154088846_0.5588096602530734","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@anyslate/mcp","version":"1.0.3","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"license":"MIT","_id":"@anyslate/mcp@1.0.3","maintainers":[{"name":"anyslate","email":"webmaster@anyslate.io"}],"homepage":"https://github.com/AnySlate/anyslate#readme","bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"bin":{"anyslate-mcp":"dist/cli.js"},"dist":{"shasum":"bd4e948f692e497c29404ffe469157bff6e17829","tarball":"https://registry.npmjs.org/@anyslate/mcp/-/mcp-1.0.3.tgz","fileCount":4,"integrity":"sha512-h3F0rh+mQWebKeucw2Hoo9xW5x54o1P6mfjIOCZvtBDhKs8txYeTv6hEAMF5eBHzUVOKJ/fkvf2pkLEbiRh/mA==","signatures":[{"sig":"MEYCIQCbPa55/kupSbAOSefjfHp1V/IXVKeNBntt7OsdWouMWwIhAOwZGy4f95qnsPDTI2lPwTzn8eX43imkgSuOI7E0EGO5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8123},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"9aa11a591dde23d874be4589f73077b4633146e8","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"anyslate","email":"webmaster@anyslate.io"},"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"_npmVersion":"10.8.3","description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","directories":{},"_nodeVersion":"21.7.3","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.0.3_1773164379854_0.4181037958326981","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@anyslate/mcp","version":"1.0.4","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"license":"MIT","_id":"@anyslate/mcp@1.0.4","maintainers":[{"name":"anyslate","email":"webmaster@anyslate.io"}],"homepage":"https://github.com/AnySlate/anyslate#readme","bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"bin":{"anyslate-mcp":"dist/cli.js"},"dist":{"shasum":"0b5c1e17d66d73a2f9a0a33b820c5bb18b8a0b5c","tarball":"https://registry.npmjs.org/@anyslate/mcp/-/mcp-1.0.4.tgz","fileCount":4,"integrity":"sha512-myt9U+hRaccvL4aPUuDfbMPHTFdNlM50xlPwRv8XkUpC3+zvLJLOog+UbSv5jIKph0H5QZ7m02TQ/cUGCG0a/g==","signatures":[{"sig":"MEUCIQDKk14lr8BvPY4hYsc7g6zlSUn7znGFz7yS09KDfVocHgIgSL1aAG695yzGkZl4P/Qb0YHdBjlNEMl7T1HJvSeTqoA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8123},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"9aa11a591dde23d874be4589f73077b4633146e8","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"anyslate","email":"webmaster@anyslate.io"},"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"_npmVersion":"10.8.3","description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","directories":{},"_nodeVersion":"21.7.3","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.0.4_1773212714248_0.6619631576164926","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@anyslate/mcp","version":"1.1.0","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"license":"MIT","_id":"@anyslate/mcp@1.1.0","maintainers":[{"name":"anyslate","email":"webmaster@anyslate.io"}],"homepage":"https://github.com/AnySlate/anyslate#readme","bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"bin":{"anyslate-mcp":"dist/cli.js"},"dist":{"shasum":"7be1fdfcf70ad21c99b7feacf269507cb13bb09b","tarball":"https://registry.npmjs.org/@anyslate/mcp/-/mcp-1.1.0.tgz","fileCount":5,"integrity":"sha512-M0Pfqw8c8Th4+vRP+yAbHnmn54xmXmbXk8zxMHWgu/C+qYjBoqAc//uYOln1QsFq+BEdgPq8aRpJLuSaJd+m6Q==","signatures":[{"sig":"MEUCIBVduAseOy42Ey03ZC5tYTC8c57HUD35bIX37lyRVGbzAiEA2tLyF1BxKnzE3Kd0ksGNQvEVH+k4GXTbvzbgquwjLlk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21624},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"b34f93e3aec0ec14cea8c5114c146f97b16bcbb9","scripts":{"build":"tsc","publish:npm":"dotenv -e .env -- npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"anyslate","email":"webmaster@anyslate.io"},"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"_npmVersion":"11.9.0","description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"dotenv-cli":"^11.0.0","typescript":"^5.3.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.1.0_1778309528901_0.2998938720023929","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@anyslate/mcp","version":"1.2.1","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"license":"MIT","_id":"@anyslate/mcp@1.2.1","maintainers":[{"name":"anyslate","email":"webmaster@anyslate.io"}],"homepage":"https://github.com/AnySlate/anyslate#readme","bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"bin":{"anyslate-mcp":"dist/cli.js"},"dist":{"shasum":"0db5fc67abbe0216f7016ad3f9c32abe378a18aa","tarball":"https://registry.npmjs.org/@anyslate/mcp/-/mcp-1.2.1.tgz","fileCount":5,"integrity":"sha512-OUjhtU8hDWmA7GSqZoUo7YlIwlWnA7U7OtGtU3KtRRDjqHdHmad0tOwhcFbSqnYs/JdXym/MmH4/VJo2OXm6AA==","signatures":[{"sig":"MEYCIQDb/BqQ2UZXpXsHJs8D9qPVs+HTXeIKZPTkshCVOtcWRQIhAN/dbRFALvps2bQOB8BFaK8WRpWfJC0ndfp86glF75N5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25452},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"6f03ab0763cfb3e3eb32306d34b477f78147fea8","scripts":{"build":"tsc","publish:npm":"dotenv -e .env -- npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"anyslate","email":"webmaster@anyslate.io"},"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"_npmVersion":"11.9.0","description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"dotenv-cli":"^11.0.0","typescript":"^5.3.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.2.1_1778831599691_0.26270430766092967","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@anyslate/mcp","version":"1.2.2","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"license":"MIT","_id":"@anyslate/mcp@1.2.2","maintainers":[{"name":"anyslate","email":"webmaster@anyslate.io"}],"homepage":"https://github.com/AnySlate/anyslate#readme","bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"bin":{"anyslate-mcp":"dist/cli.js"},"dist":{"shasum":"7b347340379c7ce70ed01e87555b96efa7b93477","tarball":"https://registry.npmjs.org/@anyslate/mcp/-/mcp-1.2.2.tgz","fileCount":5,"integrity":"sha512-EFZ0br+e/0g3QJ5ZpWdNds3JpmtDM/WakOtiDULsz2XV97aRD2SE8xo/coGIHSpx43UlFFJFGvNapOoFk2lCEA==","signatures":[{"sig":"MEYCIQCFZUNgwhbnlt5s1HssvJUUOhsDmcjbbyyHnfXy11KFIwIhANCqpiG8g4nkDN9SSwI+EA3FqcCDJjUvn6XALn9y8Zy1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31928},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"88a045c7512c2e823beb826625389f436f5071ae","scripts":{"build":"tsc","publish:npm":"dotenv -e .env -- npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"anyslate","email":"webmaster@anyslate.io"},"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"_npmVersion":"11.9.0","description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"dotenv-cli":"^11.0.0","typescript":"^5.3.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.2.2_1784451198316_0.9671175708663153","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@anyslate/mcp","version":"1.2.3","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"license":"MIT","_id":"@anyslate/mcp@1.2.3","maintainers":[{"name":"anyslate","email":"webmaster@anyslate.io"}],"homepage":"https://github.com/AnySlate/anyslate#readme","bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"bin":{"anyslate-mcp":"dist/cli.js"},"dist":{"shasum":"99b0c6b7821e706a99f5beb6d485993f1018e1a7","tarball":"https://registry.npmjs.org/@anyslate/mcp/-/mcp-1.2.3.tgz","fileCount":5,"integrity":"sha512-3eUl6DiV7gQwopPeDVHuOQk+Vaq6zxO7b3iHfhj2D6JoOxsmL5Q73ZzGreKIr4f8La51PLUp+NhD7iP0CeEOlg==","signatures":[{"sig":"MEYCIQDkV4raW3VshEFOYkvFGOO0IAcKYp5ojDmFKKYcrSFW4QIhAOIEzMaKj98wNf9Z4lpGV0ppq7y2RITg5vqnEfMbulR3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32806},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"333e94d02166a35d996f9cec02742df0481d29ed","scripts":{"build":"tsc","publish:npm":"dotenv -e .env -- npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"anyslate","email":"webmaster@anyslate.io"},"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"_npmVersion":"11.9.0","description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"dotenv-cli":"^11.0.0","typescript":"^5.3.0","@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.2.3_1785765993375_0.13704530831777695","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-03-10T12:59:53.825Z","modified":"2026-09-08T10:22:24.027Z","1.0.0":"2026-03-10T12:59:54.085Z","1.0.1":"2026-03-10T14:33:07.953Z","1.0.2":"2026-03-10T14:48:08.990Z","1.0.3":"2026-03-10T17:39:40.005Z","1.0.4":"2026-03-11T07:05:14.392Z","1.1.0":"2026-05-09T06:52:09.058Z","1.2.1":"2026-05-15T07:53:19.830Z","1.2.2":"2026-07-19T08:53:18.468Z","1.2.3":"2026-08-03T14:06:33.537Z"},"bugs":{"url":"https://github.com/AnySlate/anyslate/issues"},"license":"MIT","homepage":"https://github.com/AnySlate/anyslate#readme","keywords":["mcp","anyslate","markdown","ai","model-context-protocol"],"repository":{"url":"git+https://github.com/AnySlate/anyslate.git","type":"git","directory":"backend-serverless/mcp-package"},"description":"AnySlate MCP server — connect AI agents to your AnySlate workspace","maintainers":[{"email":"webmaster@anyslate.io","name":"anyslate-org"},{"email":"harikrishna@marensolutions.com","name":"marendev"},{"email":"anasv.p@marensolutions.com","name":"anasvp"}],"readme":"# @anyslate/mcp\n\nConnect AI agents to your [AnySlate](https://anyslate.io) workspace via the Model Context Protocol.\n\n## Do you need this package?\n\nIncreasingly, no — and that is the point of this section.\n\nAnySlate runs a remote MCP server at `https://mcp.anyslate.io/mcp` that speaks\nOAuth (authorization code + PKCE, with dynamic client registration). Any client\nthat supports remote MCP servers can connect to it directly: you add the URL,\napprove once in the browser, and **no token is ever created, pasted, or stored\nin a config file**. Claude Desktop's custom connectors, `claude mcp add\n--transport http`, and Cursor's `url`-form entries all take that path.\n\nThis package is the **stdio bridge for clients that cannot do that** — hosts\nwithout remote-server support, CI, and air-gapped setups. It requires a static\ntoken by design. If your client can add a remote MCP server, prefer that: a\nlong-lived bearer sitting in a plaintext config is a worse credential than an\nexpiring OAuth token the client refreshes for you.\n\nEverything below is the bridge path.\n\n## Setup\n\nAdd to your MCP client configuration:\n\n### Claude Desktop\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"anyslate\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@anyslate/mcp@latest\"],\n      \"env\": {\n        \"ANYSLATE_TOKEN\": \"as_mcp_your_token_here\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add anyslate -- npx -y @anyslate/mcp@latest\n```\n\nThen set the `ANYSLATE_TOKEN` environment variable before running Claude Code.\n\n### OpenAI Codex\n\nUse the dedicated AnySlate Codex plugin when available:\n\n```text\nplugins/anyslate-codex\n```\n\nThe plugin registers this same MCP bridge and adds Codex-specific automatic\nrecall/checkpoint rules. Configure the token in `~/.anyslate/codex.env`.\nUse the **AI Memory automation** token profile unless you explicitly need\nordinary Markdown file-management tools.\n\n### Cursor\n\nGo to **Settings > MCP Servers > Add Server**:\n\n```json\n{\n  \"anyslate\": {\n    \"command\": \"npx\",\n    \"args\": [\"-y\", \"@anyslate/mcp@latest\"],\n    \"env\": {\n      \"ANYSLATE_TOKEN\": \"as_mcp_your_token_here\"\n    }\n  }\n}\n```\n\n### Devin Desktop (formerly Windsurf)\n\nEdit `~/.codeium/windsurf/mcp_config.json` — Cognition renamed the editor in\nJune 2026 but the config path carried over unchanged, so this is correct and\nnot a typo:\n\n```json\n{\n  \"mcpServers\": {\n    \"anyslate\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@anyslate/mcp@latest\"],\n      \"env\": {\n        \"ANYSLATE_TOKEN\": \"as_mcp_your_token_here\"\n      }\n    }\n  }\n}\n```\n\n## Getting a Token\n\n1. Go to [app.anyslate.io](https://app.anyslate.io)\n2. Navigate to **Settings > MCP Tokens**\n3. Click **Create Token**\n4. Choose one access profile:\n   - **AI Memory automation** for Claude, Cursor, Devin Desktop, and other agents\n   - **Markdown files only** for normal `.md` workspace file management\n   - **Full access** only when the same integration must do both\n5. (Optional) Pick a **Memory scope** to narrow the token below workspace-wide:\n   - **Entire workspace** (default) — token can touch every memory.\n   - **A single project** — bound to one project folder; other projects are invisible to this token.\n   - **A topic tag** — bound to memories tagged with that word.\n   - **Specific memories** — pinned to one or more memory ids.\n   Picking a narrower scope mints a paired capability handle on the server and binds it to the token. The bridge below applies the scope automatically — you do NOT need to set any extra env var.\n6. Copy the token (starts with `as_mcp_`)\n\nMCP access is included with every AnySlate plan.\n\n### Scope binding (how the narrowing actually takes effect)\n\nEach MCP token can carry an optional `default_handle_id` on its server row.\nWhen the worker dispatches a tool call and `args.handle` is absent, the\ndispatcher resolves that bound handle and applies its scope automatically.\nResult: the bridge stays a thin pass-through; the user's scope choice in\nthe desktop dialog is enforced server-side even when the agent has no\nconcept of handles.\n\nWant a different scope? Mint a different token in the desktop dialog —\none token, one scope is the clean invariant. Scoped tokens (those minted\nwith anything narrower than \"Entire workspace\") have their scope\nenforced server-side and cannot be widened by anything the client sends.\nThe dispatcher ignores `args.handle` from clients holding a scoped token\n— the bound scope is the only scope.\n\nThe original handle primitive (caller-supplied `args.handle` to narrow a\nbroader bearer) is still honoured for legacy/unscoped tokens\n(`default_handle_id IS NULL`) so older agents that pass a handle keep\nworking.\n\nThe remote MCP server filters `tools/list` by token scope. A Memory token\ndoes not advertise Markdown resource CRUD tools, which keeps agents from\nusing `create_resource` or `update_resource` when they should be calling\n`import_chat`, `checkpoint_session`, and `upload_artifact`.\n\n## Available Tools\n\nThe visible tool list depends on the token profile.\n\n### Resource tools (markdown files)\n| Tool | Description |\n|------|-------------|\n| `list_resources` | List markdown files with pagination and folder filtering |\n| `search_resources` | Search files by name |\n| `read_resource` | Read file content and section structure |\n| `get_resource_versions` | View version history |\n| `create_resource` | Create new markdown files |\n| `update_resource` | Replace entire file content |\n| `update_resource_section` | Update a specific section by ID |\n| `delete_resource` | Delete a file |\n\n### Memory tools (AI Work Memory Layer)\n| Tool | Description |\n|------|-------------|\n| `list_memories` / `read_memory` / `search_memory` | Browse and search captured chats |\n| `import_chat` | Spawn a new memory page from a fresh chat |\n| `checkpoint_session` | Append a turn / decision / task / artifact to a memory |\n| `recall` | Semantic + lexical hybrid search across all memories (the primary \"find prior work\" tool) |\n| `surface_relevant` | Proactively surface memory that bears on the current turn (can abstain) |\n| `search_files` | Markdown filename substring search |\n| `attach_artifact_url` / `request_artifact_upload` / `upload_artifact` / `get_artifact` | Ingest reachable URLs, raw local binaries via short-lived PUT, or inline UTF-8 text; retrieve stored artifacts |\n| `append_decision` / `append_task` | Promote a single decision or task |\n| `generate_continuation_prompt` | Render a continuation seed for an existing memory |\n| `get_checkpoint_status` / `get_context_subgraph` / `expand_decision` / `get_related` / `list_handles` | Inspect graph and pending state |\n\n## Slash prompts (MCP `prompts/list`)\n\nWhen your host surfaces MCP prompts as slash commands (Cursor, Claude Desktop, Claude Code, Devin Desktop), AnySlate exposes:\n\n- `/anyslate-new` - paste-as-first-message capture seed for a fresh chat. The agent will spawn an AnySlate memory page and checkpoint every reply automatically.\n- `/anyslate-continue <memory_id>` - continuation seed for an existing memory. Renders the canonical mcp_lite header + glossary + decisions + open tasks.\n\nOptional arguments: `topic` (anyslate-new) and `theme` (both): `general | coding | debugging | prd | strategy | marketing | research`.\n\n## Repo scaffolding\n\n```bash\nnpx @anyslate/mcp@latest setup-repo [path] [--force]\n```\n\nDrops AnySlate instruction files into the target directory:\n\n| File | Picked up by |\n|------|--------------|\n| `CLAUDE.md` | Claude Code, Aider, generic CLAUDE.md-aware tools |\n| `.cursor/rules/anyslate.md` | Cursor (Project Rules) |\n| `AGENTS.md` | OpenAI Codex and other AGENTS.md-aware tools |\n| `.windsurfrules` | Devin Desktop (formerly Windsurf) workspace rules — filename unchanged by the rebrand |\n\nEach file contains the AnySlate standing rules: recall-before-answering, checkpoint-after-every-reply, upload-artifacts-first, optional `handle`. Existing files are skipped unless `--force` is passed; safe to re-run.\n\nImportant: MCP exposes the tools, but the repo rules tell the agent when to\nuse them. Cursor and Devin Desktop need these rules for automatic memory behavior.\nClaude Code can also use lifecycle hooks from `@anyslate/cli` for background\nactivity capture.\n\n## Requirements\n\n- Node.js 18 or later\n- Any active AnySlate account\n\n## Troubleshooting\n\n**\"Node.js 18 or later is required\"** - The MCP SDK needs Node 18+. If you use nvm, set your default: `nvm alias default 22`. Or specify the full path in your config:\n```json\n{\n  \"command\": \"/Users/you/.nvm/versions/node/v22.22.0/bin/npx\",\n  \"args\": [\"-y\", \"@anyslate/mcp@latest\"]\n}\n```\n\n**\"TransformStream is not defined\"** - Same cause as above: you're running on Node <18. Update Node or use a full path.\n\n**\"Missing ANYSLATE_TOKEN\"** - Set the `ANYSLATE_TOKEN` environment variable in your MCP client config.\n\n## Configuration (env vars)\n\n| Variable | Required | Purpose |\n|---|---|---|\n| `ANYSLATE_TOKEN` | **yes** | Bearer credential (`as_mcp_…` or `as_oauth_…`). Carries scope (memory: read/write/search, files: read/write/search) AND any memory narrowing you picked in the desktop Create Token dialog (project / topic / specific memories). The narrowing is enforced server-side — no separate handle env var. |\n| `ANYSLATE_MCP_URL` | no | Override the MCP endpoint. Defaults to `https://mcp.anyslate.io/mcp`. Set to a dev workers.dev URL when testing against staging. |\n\n**\"Invalid token format\"** - Static tokens start with `as_mcp_`; OAuth-issued access tokens start with `as_oauth_`. Generate a static token at [app.anyslate.io](https://app.anyslate.io), or use OAuth from browser-hosted MCP clients.\n\n**\"Invalid or expired token\"** - Your token may have been revoked or expired. Generate a new one.\n\n**\"MCP access is unavailable\"** - Sign in again and confirm the token has the required scope. MCP itself is included on every plan.\n\n## Documentation\n\nFull documentation: [anyslate.io/docs/mcp](https://anyslate.io/docs/mcp)\n","readmeFilename":"README.md"}