Anytype MCP Server
Provides comprehensive access to Anytype's local API, enabling management of spaces, objects, types, and templates. Supports searching, creating, and deleting objects, exporting content as markdown, managing list views, and retrieving space members and full text content from objects.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Anytype MCP Server search for my meeting notes about the Q2 project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OFFICIAL ANYTYPE MCP WAS RELEASED HERE
https://github.com/anyproto/anytype-mcp
Anytype MCP Server
An MCP (Model Context Protocol) server that provides access to the Anytype API, allowing AI assistants and other MCP clients to interact with your Anytype data.
Based on the Anytype API definition v0.46+ (2025-03-17). Ensure your Anytype Desktop version is compatible.
Features
Get list of spaces (
get_spaces)Search/Get objects within a space (
get_objects,search_space) or globally (global_search)Get detailed object content (
get_object_content, supports retrieving full text)Create and delete spaces (
create_space) and objects (create_object,delete_object)Export objects as markdown (
export_object)Manage list views and objects within lists (
get_list_views,get_list_view_objects,add_objects_to_list,remove_object_from_list)Get space members (
get_space_members)Get types and templates (
get_types,get_type_details,get_templates,get_template_details)
Related MCP server: Logseq MCP Server
Prerequisites
Node.js 18 or higher
Anytype desktop application running locally
An Anytype account
Installation
Manual Installation
Clone this repository:
git clone https://github.com/Qwinty/anytype-mcp.git cd anytype-mcpInstall dependencies:
npm installBuild the project (compiles TypeScript to JavaScript in
build/):npm run buildObtain an App Key: Before configuring the server, you need an App Key from Anytype. See the "Getting an App Key" section below.
Add the MCP server to your MCP configuration file
Getting an App Key
Before using the MCP server, you need to obtain an app key from the Anytype desktop application:
Make sure Anytype desktop is running
Run the helper script:
npm run get-keyFollow the instructions to authorize the application
Note the app key for configuration
Configuration
Add the Anytype MCP server to your MCP configuration file:
For Claude: Edit
claude_desktop_config.jsonFor other MCP clients: Edit their respective configuration files
Example configuration:
{
"mcpServers": {
"anytype": {
"command": "node",
"args": ["{path/to/anytype-mcp}/build/index.js"],
"env": {
"ANYTYPE_APP_KEY": "YOUR_APP_KEY_HERE"
},
"disabled": false
}
}
}Replace path/to/anytype-mcp with the actual path to your installation and YOUR_APP_KEY_HERE with the app key you obtained.
Usage
Starting the server
The MCP server is usually started automatically by the MCP client. However, you can also start it manually for testing:
npm startAvailable Tools
See Tools.md for a detailed list of available tools and their usage examples.
System Prompt
Additionally, a sample system prompt for AI assistants using this server is available in docs/system-prompt.md.
Token Efficiency and Data Filtering
To optimize for token usage with AI assistants, this MCP server implements response filtering by default for tools that return object data (get_objects, global_search, search_space).
Default Behavior: The server returns a simplified version of object data, including essential metadata like ID, name, type, icon, layout, space ID, root ID, snippet (if available), block count, tags, creation/modification dates, and creator info. Full block content and detailed relations are omitted.
include_text: true: Several tools (get_objects,get_object_content,global_search,search_space) support an optionalinclude_textparameter. When set totrue, the server will extract and include the full, formatted text content from the object's blocks in afull_textfield. Use this when you need the complete text, but be aware it significantly increases response size and token count.full_response: true: Theget_objects,global_search, andsearch_spacetools also support afull_responseparameter. Setting this totruebypasses all filtering and returns the raw, complete JSON response directly from the Anytype API. This provides the most detail but uses the most tokens.
Choose the appropriate parameters based on whether you need just metadata, full text content, or the complete raw API response.
Troubleshooting
Anytype API Not Responding
Make sure the Anytype desktop application is running on your computer. The MCP server connects to the local Anytype API at http://localhost:31009/v1.
Authentication Issues
If you encounter authentication errors:
Run
npm run get-keyto obtain a new app keyUpdate your MCP configuration with the new key
Restart your MCP client
Local API Port
The server connects to the Anytype API at http://localhost:31009/v1 by default. If your Anytype installation uses a different port, you currently need to modify the apiBaseUrl variable in src/index.ts and rebuild (npm run build). Making this configurable via an environment variable is a potential future improvement.
License
MIT
Available Tools
18 toolsadd_objects_to_listC
Adds one or more objects to a specific list in a space.
Inputs: space_id (required), list_id (required), object_ids (required).
create_objectA
Creates a new object within a specified Anytype space. This tool allows you to add various types of content (pages, notes, tasks, etc.) to your spaces. You can specify the object's name, type, description, icon, and content. Optionally, you can use a template to create pre-structured objects. Use this tool when you need to add new content to an existing space.
Inputs: space_id (required), name (required), type_key (required), description, +4 more.
create_spaceA
Creates a new Anytype space with the specified name. This tool allows you to set up a fresh workspace for organizing objects and collaborating with others. Use this tool when you need to establish a new organizational container for your Anytype content.
Inputs: name (required).
delete_objectA
Permanently removes an object from a specified Anytype space. This tool deletes the object and all its content. Use this tool with caution as deleted objects cannot be recovered. Always verify the object ID before deletion to avoid removing important content.
Inputs: space_id (required), object_id (required).
export_objectA
Exports an Anytype object in Markdown format. This tool allows you to extract content from Anytype for use in other applications or for backup purposes. Markdown format is human-readable and suitable for documentation. Use this tool when you need to share Anytype content with external systems or create portable backups.
Inputs: space_id (required), object_id (required), format (required).
get_list_view_objectsC
Retrieves objects from a specific list view with applied filters and sorting.
Inputs: space_id (required), list_id (required), view_id (required), offset, +1 more.
get_list_viewsB
Retrieves views configured for a specific list in a space. Views define how objects in the list are filtered and sorted.
Inputs: space_id (required), list_id (required), offset, limit.
get_object_contentA
Retrieves detailed content and metadata for a specific object in an Anytype space. This tool provides comprehensive information about an object including its properties, relations, and content. Use this tool when you need to examine a specific object's details after discovering its ID through the get_objects tool. The optional include_text parameter allows retrieving the full formatted text content of the object.
Inputs: space_id (required), object_id (required), include_text.
get_objectsB
Searches for and retrieves objects within a specified Anytype space. This tool allows you to list all objects or filter them using a search query. Results are paginated for better performance with large spaces. Use this tool to discover objects within a space, find specific objects by name, or browse through collections of objects. The optional include_text parameter allows retrieving the full formatted text content of objects.
Inputs: space_id (required), offset, limit, full_response, +1 more.
get_space_membersA
Retrieves a list of all members who have access to a specified Anytype space. This tool provides information about each member including their ID, name, and access level. Results are paginated for spaces with many members. Use this tool when you need to understand who has access to a space or manage collaboration permissions.
Inputs: space_id (required), offset, limit.
get_spacesA
Retrieves all available Anytype spaces for the current user. This tool returns a list of spaces with their IDs, names, and other metadata. Use this tool to get an overview of all spaces or to find a specific space ID for use with other tools. No parameters are required.
Inputs: no named parameters.
get_template_detailsA
Retrieves detailed information about a specific template in an Anytype space. This tool provides comprehensive details about the template's structure, content, and configuration. Use this tool when you need to examine a template's properties before using it to create new objects, or to understand how a particular template is structured.
Inputs: space_id (required), type_id (required), template_id (required).
get_templatesA
Retrieves all available templates for a specific object type in an Anytype space. Templates provide pre-configured structures and content for creating new objects. This tool returns a list of templates with their IDs, names, and metadata. Results are paginated for types with many templates. Use this tool when you need to find appropriate templates for creating new objects of a specific type.
Inputs: space_id (required), type_id (required), offset, limit.
get_type_detailsA
Retrieves detailed information about a specific object type in an Anytype space. This tool provides comprehensive details about the type's structure, including its relations, views, and configuration options. Use this tool when you need to understand the structure of a particular object type or to examine its available relations and properties.
Inputs: space_id (required), type_id (required).
get_typesA
Retrieves all object types available in a specified Anytype space. This tool provides information about the different types of objects that can be created in the space, including their IDs, names, and metadata. Results are paginated for spaces with many types. Use this tool when you need to understand what types of objects can be created or to find the correct type ID for creating new objects.
Inputs: space_id (required), offset, limit.
global_searchC
Executes a search across all spaces the user has access to, with options for filtering by type and sorting.
Inputs: query (required), types, sort_property, sort_direction, +3 more.
remove_object_from_listC
Removes an object from a specific list in a space.
Inputs: space_id (required), list_id (required), object_id (required).
search_spaceC
Executes a search within a specific space, with options for filtering by type and sorting.
Inputs: space_id (required), query, types, sort_property, +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Most tools have distinct purposes, but there is some overlap between get_objects, search_space, and global_search, which all involve searching or retrieving objects, potentially causing confusion. However, their descriptions clarify the scope differences (space-specific vs. global, with filters), so agents can differentiate with careful reading.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_object, get_objects, delete_object, and export_object. There are no deviations in naming conventions, making the set predictable and easy to understand.
With 18 tools, the count is slightly high but reasonable for a comprehensive Anytype server covering spaces, objects, lists, templates, types, and members. It supports core workflows without being overly bloated, though it might feel dense for simpler use cases.
The tool set provides complete CRUD/lifecycle coverage for the Anytype domain, including create, read, update (implied via object modifications), delete, export, search, and management of spaces, lists, templates, types, and members. There are no obvious gaps that would hinder agent operations.
Maintenance
Related MCP Connectors
Connect an AI assistant to a Capacities space (objects, daily notes, search).
Securely search, create, and organize your Mem notes and collections from AI assistants.
Gives AI agents direct access to your Sanity projects and guidance for working with them
Connect AI assistants to your approved computer for files, commands, browser and desktop tasks.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables interaction with Anytype objects through the Anytype API, including creating, reading, updating, and deleting objects with full Markdown support. Features complete object update functionality that is not available in the official Anytype MCP server.33MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with your local Logseq knowledge base through advanced search, content creation, template management, and knowledge organization with privacy-first, local-only operations.23 npm7MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to read, write, and manage Obsidian notes, folders, and periodic notes via the Local REST API, including search and command execution.14MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control Anytype objects, blocks, and views via its internal gRPC API.MIT