Commonly MCP Server
OFFICIAL SERVERConnects a coding agent to a Commonly pod to chat, take on tasks and keep memory there
Read and edit Anytype spaces, objects, types and chats through the app's local API
Official · Any Association TypeScript Local · stdio ProductivityKnowledge and memory
71 popularity score ★ 537 ↓ 1.6k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs OPENAPI_MCP_HEADERS. Replace each <NAME> with your value.
claude mcp add anytype -e OPENAPI_MCP_HEADERS=<OPENAPI_MCP_HEADERS> -- npx -y @anyproto/anytype-mcp{
"mcpServers": {
"anytype": {
"command": "npx",
"args": [
"-y",
"@anyproto/anytype-mcp"
],
"env": {
"OPENAPI_MCP_HEADERS": "<OPENAPI_MCP_HEADERS>"
}
}
}
}{
"mcpServers": {
"anytype": {
"command": "npx",
"args": [
"-y",
"@anyproto/anytype-mcp"
],
"env": {
"OPENAPI_MCP_HEADERS": "<OPENAPI_MCP_HEADERS>"
}
}
}
}{
"servers": {
"anytype": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@anyproto/anytype-mcp"
],
"env": {
"OPENAPI_MCP_HEADERS": "<OPENAPI_MCP_HEADERS>"
}
}
}
}[mcp_servers.anytype]
command = "npx"
args = ["-y", "@anyproto/anytype-mcp"]
[mcp_servers.anytype.env]
OPENAPI_MCP_HEADERS = "<OPENAPI_MCP_HEADERS>"gemini mcp add --scope user -e OPENAPI_MCP_HEADERS=<OPENAPI_MCP_HEADERS> anytype npx -- -y @anyproto/anytype-mcpOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs OPENAPI_MCP_HEADERS. Replace each <NAME> with your value.
git clone https://github.com/anyproto/anytype-mcp.git
cd anytype-mcp
bun install
bun run buildclaude mcp add anytype -e OPENAPI_MCP_HEADERS=<OPENAPI_MCP_HEADERS> -- node '<ABSOLUTE_PATH_TO_CLONE>/bin/cli.mjs'{
"mcpServers": {
"anytype": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/bin/cli.mjs"
],
"env": {
"OPENAPI_MCP_HEADERS": "<OPENAPI_MCP_HEADERS>"
}
}
}
}{
"mcpServers": {
"anytype": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/bin/cli.mjs"
],
"env": {
"OPENAPI_MCP_HEADERS": "<OPENAPI_MCP_HEADERS>"
}
}
}
}{
"servers": {
"anytype": {
"type": "stdio",
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/bin/cli.mjs"
],
"env": {
"OPENAPI_MCP_HEADERS": "<OPENAPI_MCP_HEADERS>"
}
}
}
}[mcp_servers.anytype]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/bin/cli.mjs"]
[mcp_servers.anytype.env]
OPENAPI_MCP_HEADERS = "<OPENAPI_MCP_HEADERS>"gemini mcp add --scope user -e OPENAPI_MCP_HEADERS=<OPENAPI_MCP_HEADERS> anytype node -- '<ABSOLUTE_PATH_TO_CLONE>/bin/cli.mjs'OPENAPI_MCP_HEADERS |
Required: JSON with the Authorization header ("Bearer <YOUR_API_KEY>") and Anytype-Version (the README uses 2025-11-08). |
|---|---|
ANYTYPE_API_BASE_URL |
Optional: Address of the Anytype API; defaults to http://127.0.0.1:31009, use http://localhost:31012 for anytype-cli. |
ANYTYPE_MCP_DEBUG |
Optional: Set to 1 to log operation names, status and timing to stderr. |
Anytype MCP Server is the Anytype team's own bridge between an MCP client and the Anytype app. It does not ship a fixed set of tools: when it starts, it downloads the OpenAPI document that the locally running Anytype app serves (by default at http://127.0.0.1:31009), turns each API operation into a tool, and forwards calls to that local API with the user's API key.
With a current app this means the v2 API: search across spaces or within one, spaces and members, objects, collections and saved queries, properties and their options, types and templates, file upload and download, and space chats. If the app does not serve v2, the server falls back to the v1 document; a spec URL or local file can also be passed after the `run` argument to pin a version.
The tool list is wider than the README's feature list suggests. Against the v2 API document kept in the repository's test fixtures (taken from the app on 2026-09-15), version 2.0.1 exposes 46 tools, listed here by operation name; a client sees each as `API-` plus that name with hyphens (list_properties appears as `API-list-properties`). They include eleven for chats and two for files. Three operations are held back by its tool policy: creating auth challenges, creating API keys, and the chat event stream. Because the list comes from the app, the exact tools depend on the Anytype version installed; restart the server after updating Anytype to pick up new operations.
Writes can carry `expected_etag` so an update fails instead of overwriting a changed object, and the server adds a retry key to writes that support one. The package also has a `get-key` command that pairs with the app to create an API key from the terminal.
| Runtime | Node.js |
|---|
Node.js with npx (or Bun to build from source). The Anytype desktop app installed, signed in and running on the same machine, with its local API reachable (port 31009 by default, or 31012 for anytype-cli via `ANYTYPE_API_BASE_URL`). An API key created in Anytype under App Settings > API Keys, or with `npx -y @anyproto/anytype-mcp get-key`, passed in `OPENAPI_MCP_HEADERS`.
It fails to start if the Anytype app is not running or reachable, if the key is rejected, or if the API document cannot be read; it does not retry with another API version in those cases. The tool list is read once per process, so updating Anytype needs a server restart. It cannot create API keys or pairing challenges, and it does not stream chat events; chat messages are fetched by listing. Downloaded files are written to a private temporary folder on the machine running the server and stay there until removed. Tools differ between v1 and v2 apps.
Suits Anytype users who want an assistant to search, file and update their own notes, tasks and collections on the same computer where the app runs, and who are comfortable giving it a key that can also delete objects and post in chats. As it talks only to the local app, it is not a fit for reaching Anytype from a remote server or a machine without the desktop app or anytype-cli running.
auth_whoamilist_schemasget_op_schemaget_schemasearch_globallist_spacescreate_spaceget_spaceupdate_spacelist_chatscreate_chatget_chat_messagesadd_chat_messagedelete_chat_messageedit_chat_messagetoggle_chat_reactionread_chatcreate_collectionget_collection_objectsget_collection_viewsupload_filedownload_filelist_membersget_member_melist_objectscreate_objectdelete_objectget_objectpatch_objectlist_propertiescreate_propertydelete_propertyupdate_propertylist_property_optionscreate_queryget_query_objectsget_query_viewssearch_spacecreate_templatelist_typescreate_typedelete_typeget_typeupdate_typeget_type_schemavalidate