Anytype-mcp-plus v1.1.0 — Enhanced MCP Server with 34 Tools, Bug Fixes, and API Research

GitHub: GitHub - MAB2908/anytype-mcp-plus: Enhanced MCP server for Anytype — 34 tools for full CRUD on spaces, objects, types, properties, tags, templates and collections · GitHub
npm: https://www.npmjs.com/package/anytype-mcp-plus
Anytype: https://anytype.io


What you get — in plain language

Think of it as a smart assistant for your Anytype workspace you can give instructions to in plain text — and it carries them out, without clicking through the interface.

You tell Claude: “Find all my tasks in project X created this week and tag them as urgent”
Claude does it — finds the right objects, applies the tags.

You tell Claude: “Create a notes page with this content and add it to my Reading collection”
Claude creates the page — with the content, in the right collection.

You tell Claude: “What do I have on productivity across all my spaces?”
Claude searches everywhere — returns a list with brief descriptions.

What the assistant can do

  • Content — create, edit, delete pages, notes, tasks, bookmarks. Write and update Markdown.
  • Search — search by text and type within one space or across all spaces. Sort by date or name.
  • Structure — create object types, add properties (tags, dates, links, checkboxes). Create tags inline with a property in one step.
  • Tags — create, rename, recolor, delete tags; assign tags to objects.
  • Collections — add/remove objects from collections; read templates.
  • Spaces — view spaces and members; create and update spaces.

What is this (technical)

anytype-mcp-plus is an MCP (Model Context Protocol) server that lets AI assistants — primarily Claude — interact with your Anytype workspace through the REST API. 34 tools cover full CRUD for objects, spaces, types, properties, tags, templates, and collections.


Lineage

Built on two open-source projects:

  • cryptonahue/mcp-anytype (MIT) — unofficial MCP server by Nahuel González. Served as the code foundation.
  • anyproto/anytype-mcp (MIT) — official MCP server from the Anytype team. Used as a reference for API behavior research. Key reference: parser.ts, commit 542d477, Jan 7 2026, “Clarify filter support”.

Problems discovered and fixed

1. update_property without name → Tool execution failed
API requires name in every PATCH. Fix: auto-fetch current name via GET before patching.

2. update_type with property IDs → Tool execution failed
API expects PropertyLink objects {format, key, name}, not plain IDs. Fix: resolve each ID via GET first.

3. list_tags with string key → Tool execution failed
API URL requires bafyrei... hash, not string key like "tag". Fix: auto-resolve via list_properties.

4. delete_object returns archived: false — misleading
API returns pre-archiving snapshot. Fix: added explicit deleted: true flag + explanation note.

5. create_property inline tags not shown in response
Tags variable was lost in a destructuring spread. Also: CreateTagRequest requires color as mandatory per OpenAPI spec. Fix: explicit extraction + default color “grey” + auto-fetch tags after creation.

6. Space icon silently ignored
API accepts icon for spaces but ignores it. Removed from tool schemas, documented.

7. Env var name mismatch
Config used ANYTYPE_BASE_URL but code read ANYTYPE_API_URL. Fix: both names now accepted.

8. Outdated API version
Was using 2025-05-20. Updated to 2025-11-08.


Unsolvable — API limitations

A. Body update changes object ID and resets creation date
The body field in PATCH is silently ignored despite docs. Recreation is the only working method.

B. FilterExpression in search has no effect
The official anyproto/anytype-mcp explicitly marks this as TODO: // TODO: Add support for filters (commit 542d477, Jan 2026). Use types for filtering, query for text search.

C. No REST endpoint for deleting a space. Only possible in the desktop app.

D. No CRUD for templates and collection views. API provides only GET.

E. No block-level editing. API operates on the whole markdown body only.


New in v1.1.0

  • anytype_global_search — search across ALL spaces (POST /v1/search)
  • sort in search_objects — sort by created_date, last_modified_date, last_opened_date, name
  • Inline tags in create_property — create property + tags in one API call
  • type_key in update_object — change object type (e.g. page → task) without losing content

Installation

npm install -g anytype-mcp-plus

Claude Desktop config:

{
  "mcpServers": {
    "anytype": {
      "command": "npx",
      "args": ["anytype-mcp-plus"],
      "env": { "ANYTYPE_API_KEY": "your-api-key-here" }
    }
  }
}

Get your API key: Anytype Desktop → Settings → API → Create API Key.

License: MIT. Issues and feedback: GitHub · Where software is built

Thanks for sharing this and for the detailed write-up. It’s really valuable to see this level of exploration and the concrete issues you ran into with the API and MCP behavior. I’ve passed this along to the team working on MCP and API improvements.

hey @Filip I dont know if this is the right context to ask for this… uuhm: would it be possible to let claude only see specific spaces, not all? because i wanted to use some spaces as a legit “safe data grave” and not necessarily claude sneeking into it sometimes :smiley: so in easier terms: i only want claude to see one space. not all. do i just prompt that? but the feeling of “it COULD” is weird. or something as… lets say…custom settings for different spaces? in my main space: dont auto-delete. in a newly created exploration-space: go ahead, do what ever you want claude.

I just started using mcp

Hey, there’s already a FR for this here:

Thank you!!