Skip to main content
Glama
Qwinty
by Qwinty

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

  1. Clone this repository:

    git clone https://github.com/Qwinty/anytype-mcp.git
    cd anytype-mcp
  2. Install dependencies:

    npm install
  3. Build the project (compiles TypeScript to JavaScript in build/):

    npm run build
  4. Obtain an App Key: Before configuring the server, you need an App Key from Anytype. See the "Getting an App Key" section below.

  5. 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:

  1. Make sure Anytype desktop is running

  2. Run the helper script:

    npm run get-key
  3. Follow the instructions to authorize the application

  4. Note the app key for configuration

Configuration

Add the Anytype MCP server to your MCP configuration file:

  • For Claude: Edit claude_desktop_config.json

  • For 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 start

Available 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 optional include_text parameter. When set to true, the server will extract and include the full, formatted text content from the object's blocks in a full_text field. Use this when you need the complete text, but be aware it significantly increases response size and token count.

  • full_response: true: The get_objects, global_search, and search_space tools also support a full_response parameter. Setting this to true bypasses 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:

  1. Run npm run get-key to obtain a new app key

  2. Update your MCP configuration with the new key

  3. 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 tools
add_objects_to_listC

Adds one or more objects to a specific list in a space.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the list
list_idYesList ID to add objects to
object_idsYesArray of object IDs to add

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention permissions needed, rate limits, whether duplicates are allowed, or what happens if objects are already in the list, leaving critical operational details unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It fails to explain what the tool returns, error conditions, or side effects, leaving significant gaps in understanding how to use it effectively in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond implying that 'object_ids' are added to a list, which is redundant with the schema. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Adds') and target ('objects to a specific list in a space'), making the purpose understandable. It distinguishes from siblings like 'remove_object_from_list' by specifying addition rather than removal, though it doesn't explicitly contrast with other list-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'create_object' or 'remove_object_from_list'. The description lacks context about prerequisites, such as whether objects must already exist or be in the same space, leaving usage unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID to create the object in
nameYesObject name
type_keyYesType key of object to create (e.g. 'ot-page')
descriptionNoObject's short description
iconNoObject icon details (structure based on API docs)
bodyNoObject body/content (Markdown supported)
template_idNoTemplate ID to use
sourceNoSource URL (for bookmarks)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It correctly identifies this as a creation/mutation operation ('Creates a new object') and mentions it works 'within a specified Anytype space.' However, it lacks important behavioral details like required permissions, whether the operation is idempotent, error conditions, or what happens on success. The mention of templates adds some context but doesn't fully compensate for the annotation gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with three sentences. It's front-loaded with the core purpose, followed by parameter context, and ends with usage guidance. There's minimal redundancy, though the second sentence could be slightly more concise by combining the parameter listing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with 8 parameters, no annotations, and no output schema, the description provides adequate but incomplete context. It covers the basic purpose, some parameters, and usage context, but lacks details about behavioral traits, error handling, and return values that would be important for a creation operation. The high schema coverage helps but doesn't fully compensate for the missing behavioral transparency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description mentions some parameters ('name, type, description, icon, and content') and adds context about templates, but doesn't provide significant additional semantic meaning beyond what's in the schema. This meets the baseline expectation when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Creates a new object within a specified Anytype space' with specific resources (pages, notes, tasks) and context (within a space). It distinguishes from siblings like 'create_space' by focusing on objects rather than spaces, but doesn't explicitly differentiate from 'add_objects_to_list' which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage: 'Use this tool when you need to add new content to an existing space.' This gives a positive when-to-use guideline. However, it doesn't explicitly mention when NOT to use it or name alternatives like 'add_objects_to_list' for list-specific operations or 'create_space' for space creation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new space

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it states this is a creation operation, it doesn't mention important behavioral aspects like what permissions are required, whether there are limits on how many spaces can be created, what happens if a space with the same name exists, or what the response format looks like. For a creation tool with zero annotation coverage, this represents significant gaps in behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with two sentences that each serve distinct purposes: the first states what the tool does, and the second provides usage guidance. There's no redundant information or unnecessary elaboration, making it appropriately sized and front-loaded for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a creation tool with no annotations and no output schema, the description provides adequate basic information about purpose and usage but lacks important contextual details about behavioral aspects, error conditions, and response format. The description covers the minimum viable information but leaves significant gaps that an agent would need to understand fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single 'name' parameter. The description adds no additional parameter semantics beyond what's in the schema ('Name for the new space'). With complete schema coverage, the baseline score of 3 is appropriate as the description doesn't need to compensate for schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Creates a new Anytype space') and resource ('space'), distinguishing it from sibling tools like 'create_object' which creates objects within spaces rather than the space container itself. It explicitly mentions the purpose is to 'set up a fresh workspace for organizing objects and collaborating with others,' providing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'Use this tool when you need to establish a new organizational container for your Anytype content.' This clearly distinguishes it from alternatives like 'create_object' (for creating content within spaces) or 'get_spaces' (for retrieving existing spaces), giving the agent clear context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the object
object_idYesObject ID to delete

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: the operation is permanent and irreversible ('deleted objects cannot be recovered'), destructive ('deletes the object and all its content'), and requires caution. It does not cover aspects like error handling, permissions, or rate limits, but provides sufficient critical information for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by critical warnings and a verification step. Each sentence adds value: the first defines the action, the second emphasizes permanence, the third advises caution, and the fourth specifies a prerequisite. There is no wasted text, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, the description is largely complete. It covers the purpose, behavioral risks, and usage caution. It could improve by mentioning error cases (e.g., invalid IDs) or response format, but given the schema's full parameter coverage and the clear warning context, it provides sufficient guidance for safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters ('space_id' and 'object_id'). The description adds no additional parameter-specific details beyond what the schema provides, such as format examples or constraints. The baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('permanently removes', 'deletes') and identifies the resource ('object from a specified Anytype space'). It distinguishes this destructive operation from sibling tools like 'remove_object_from_list' (which likely only removes from a list) and 'create_object'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage with warnings ('use with caution', 'verify before deletion') and implies this is for permanent removal versus alternatives like 'remove_object_from_list'. However, it does not explicitly name when to use this tool versus other deletion-related siblings or specify prerequisites beyond verification.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the object
object_idYesObject ID to export
formatYesExport format (currently only 'markdown' is supported)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the tool's behavior as exporting in Markdown format for external use or backup, which is helpful. However, it lacks details on permissions required, rate limits, file size constraints, or what happens if the object doesn't exist. The description adds some behavioral context but is incomplete for a mutation-like export operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with three sentences. The first sentence front-loads the core purpose, and subsequent sentences add useful context about Markdown format and usage scenarios. There is minimal redundancy, though the second sentence slightly rephrases the first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides adequate purpose and usage context but lacks details on behavioral aspects like error handling, output format specifics (e.g., file structure), or prerequisites. For an export tool with 3 parameters and no structured safety hints, it's minimally complete but could be more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all three parameters (space_id, object_id, format). The description does not add any parameter-specific information beyond what the schema provides (e.g., it doesn't explain format constraints further). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('exports'), resource ('Anytype object'), and format ('Markdown format'). It distinguishes this tool from siblings like 'get_object_content' (which presumably retrieves content without exporting) and 'delete_object' (which removes rather than exports). The purpose is unambiguous and well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'when you need to share Anytype content with external systems or create portable backups.' It provides clear context for usage but does not specify when NOT to use it or name specific alternatives among the sibling tools (e.g., 'get_object_content' might be an alternative for internal viewing).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_list_view_objectsC

Retrieves objects from a specific list view with applied filters and sorting.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the list
list_idYesList ID
view_idYesView ID
offsetNoPagination offset
limitNoNumber of results per page (1-1000)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'retrieves' which implies a read-only operation, but doesn't clarify permissions, rate limits, pagination behavior beyond the schema, or what happens with invalid inputs. For a tool with 5 parameters and no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action ('retrieves objects') and adds necessary qualifiers ('from a specific list view with applied filters and sorting'). There is zero waste, and it's appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool with 5 parameters. It doesn't explain the return format, error conditions, or behavioral nuances like how filters/sorting are applied. For a retrieval tool in a context with many siblings, more guidance is needed to ensure correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters (space_id, list_id, view_id, offset, limit). The description adds minimal value by mentioning 'filters and sorting' but doesn't explain how these relate to the parameters or provide additional context beyond the schema. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieves' and the resource 'objects from a specific list view', making the purpose understandable. It specifies that filters and sorting are applied, which distinguishes it from generic retrieval tools like 'get_objects'. However, it doesn't explicitly differentiate from 'get_list_views' (which likely retrieves views rather than objects), leaving some sibling distinction incomplete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a list view setup), exclusions, or compare it to sibling tools like 'get_objects' (which might retrieve objects without view filters) or 'global_search'. Usage is implied by the name but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_list_viewsB

Retrieves views configured for a specific list in a space. Views define how objects in the list are filtered and sorted.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the list
list_idYesList ID to get views for
offsetNoPagination offset
limitNoNumber of results per page (1-1000)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions retrieval but doesn't specify whether this is a read-only operation, if it requires specific permissions, what the return format looks like, or any rate limits. For a tool with 4 parameters and no annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two sentences that each earn their place: the first states the core purpose, the second adds valuable context about what views define. No wasted words, and information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a retrieval tool with 4 parameters, 100% schema coverage, but no annotations and no output schema, the description provides adequate basic purpose but lacks important behavioral context. It doesn't explain what the return values look like or any operational constraints, leaving the agent with incomplete understanding despite good schema documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter information beyond what's in the schema descriptions. This meets the baseline of 3 when schema coverage is high, but doesn't provide extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieves') and resource ('views configured for a specific list in a space'), with additional context about what views define. It distinguishes from siblings like get_objects or get_list_view_objects by focusing on view configurations rather than objects themselves. However, it doesn't explicitly differentiate from all possible siblings in the list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing view configurations for a list, but provides no explicit guidance on when to use this versus alternatives like get_list_view_objects (which retrieves objects within a view) or other list-related tools. No exclusions or prerequisites are mentioned, leaving usage context somewhat vague.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the object
object_idYesObject ID to retrieve
include_textNoSet to true to include full formatted text content from blocks

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the tool as a retrieval operation (implied read-only) and mentions comprehensive information, but lacks details on permissions, rate limits, error conditions, or response format. It adds some context about the include_text parameter's effect, but overall behavioral disclosure is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by usage guidance and parameter clarification in two efficient sentences. Every sentence adds value without repetition or fluff, making it appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does well by covering purpose, usage, and some parameter context. However, it lacks details on the return structure (e.g., what 'comprehensive information' includes) and error handling, which would be helpful for a retrieval tool with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal value by clarifying that include_text retrieves 'full formatted text content from blocks,' which slightly expands on the schema's description. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieves') and resource ('detailed content and metadata for a specific object in an Anytype space'), specifying it provides comprehensive information including properties, relations, and content. It distinguishes from siblings like get_objects (which discovers IDs) and get_list_view_objects (which focuses on list views).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'Use this tool when you need to examine a specific object's details after discovering its ID through the get_objects tool.' It provides a clear alternative (get_objects for discovery) and a prerequisite (needing an object ID first).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID to get objects from
offsetNoPagination offset
limitNoNumber of results per page (1-1000)
full_responseNoSet to true to get full unfiltered response
include_textNoSet to true to include full formatted text content from blocks

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal pagination behavior ('Results are paginated for better performance with large spaces') and mentions the include_text parameter's effect on content retrieval. However, it doesn't disclose important behavioral aspects like whether this is a read-only operation (implied but not stated), performance characteristics, error conditions, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized at 4 sentences and front-loaded with the core purpose. However, the third sentence ('Use this tool to...') is somewhat redundant with the first two sentences, and the final sentence about include_text could be integrated more efficiently. Most sentences earn their place but could be tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search/retrieval tool with 5 parameters, 100% schema coverage, but no annotations and no output schema, the description is adequate but has clear gaps. It covers the basic purpose and some behavioral aspects (pagination, include_text) but lacks information about return values, error handling, performance considerations, and explicit differentiation from similar search tools. The absence of an output schema increases the need for return value description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value beyond the schema - it only mentions the include_text parameter's purpose ('allows retrieving the full formatted text content of objects'), which is already covered in the schema description. No additional syntax, format details, or parameter relationships are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as searching for and retrieving objects within a specified Anytype space, with specific verbs ('searches for', 'retrieves', 'list', 'filter', 'discover', 'find', 'browse'). It distinguishes from some siblings like create_object or delete_object but doesn't explicitly differentiate from similar search tools like search_space or global_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance ('Use this tool to discover objects within a space, find specific objects by name, or browse through collections of objects') but doesn't explicitly state when to use this tool versus alternatives like search_space or global_search. It mentions pagination for large spaces but lacks explicit when-not-to-use guidance or clear alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID to get members from
offsetNoPagination offset
limitNoNumber of results per page (1-1000)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully describes key behavioral traits: that results are paginated (important for handling large datasets), and it implies this is a read-only operation by using 'retrieves' and 'provides information'. However, it doesn't mention potential rate limits, authentication requirements, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in three sentences: purpose statement, details about returned information, and usage guidance. Every sentence adds value - the first establishes core functionality, the second adds important behavioral context (pagination), and the third provides application guidance. No wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read operation with no output schema, the description provides good context: it explains what information is returned (ID, name, access level), mentions pagination behavior, and gives usage guidance. However, without annotations or output schema, it could benefit from more detail about return format structure or error handling. The 100% schema coverage helps compensate for some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents all three parameters thoroughly. The description doesn't add any additional parameter semantics beyond what's in the schema - it doesn't explain space_id format, offset/limit usage patterns, or provide examples. The baseline of 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('retrieves a list of all members'), identifies the resource ('specified Anytype space'), and distinguishes it from siblings by focusing on space membership rather than objects, spaces, or search operations. It goes beyond the tool name by specifying what information is provided about each member.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('when you need to understand who has access to a space or manage collaboration permissions'), providing clear context for its application. However, it doesn't specify when NOT to use it or mention alternatives among the sibling tools (like whether get_spaces or search_space might be related alternatives).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool returns a list with IDs, names, and metadata, and that no parameters are required. However, it doesn't mention potential limitations like pagination, rate limits, or authentication requirements, which would be helpful for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with zero waste: it states the purpose, details the return value, and provides usage guidance. It's front-loaded with the core action and efficiently covers all necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description is mostly complete. It explains what the tool does, what it returns, and when to use it. However, without annotations or an output schema, it could benefit from more detail on the return structure (e.g., format of 'other metadata') or behavioral constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage. The description explicitly states 'No parameters are required,' which adds clarity beyond the empty schema. This is appropriate for a parameterless tool, though it doesn't need to explain non-existent parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Retrieves'), resource ('Anytype spaces'), and scope ('for the current user'). It distinguishes this tool from siblings like 'get_space_members' or 'create_space' by focusing on listing all spaces rather than modifying or getting details of specific spaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('to get an overview of all spaces or to find a specific space ID for use with other tools'). It implies an alternative use case compared to siblings like 'search_space' (which likely filters) or 'get_space_members' (which focuses on members of a specific space).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the template
type_idYesType ID for the template
template_idYesTemplate ID to retrieve details for

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the tool as retrieving comprehensive details, which implies a read-only operation, but does not explicitly state behavioral traits like whether it requires specific permissions, rate limits, or error conditions. It adds some context about the type of information returned (structure, content, configuration), but lacks full behavioral disclosure for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences: the first states the purpose, and the second provides usage guidelines. It is front-loaded with the core function and avoids unnecessary details, though it could be slightly more concise by combining ideas without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a read operation with 3 required parameters), no annotations, and no output schema, the description does a good job by explaining the purpose and usage. However, it lacks details on the return format or error handling, which would be helpful for completeness. It compensates somewhat with clear usage context but falls short of being fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters (space_id, type_id, template_id) with descriptions. The description does not add any parameter-specific details beyond what the schema provides, such as format examples or interdependencies. Baseline 3 is appropriate when the schema handles parameter documentation effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieves' and resource 'detailed information about a specific template in an Anytype space'. It distinguishes from sibling tools like 'get_templates' (which likely lists templates) by specifying retrieval of comprehensive details for a specific template, making the purpose specific and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to 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'. This provides clear context for usage, including a specific alternative scenario (using it to create objects) and distinguishes it from general listing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the type
type_idYesType ID to get templates for
offsetNoPagination offset
limitNoNumber of results per page (1-1000)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states that the tool retrieves data (read-only operation), returns a list with IDs, names, and metadata, and that results are paginated. It doesn't mention rate limits, authentication needs, or error conditions, but for a read-only tool with pagination described, this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: first states purpose, second explains what templates are, third describes output and pagination, fourth provides usage guidance. It's front-loaded with the core purpose and wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no output schema, the description does well by explaining what the return value contains (list with IDs, names, metadata) and pagination behavior. It could mention error cases or authentication requirements, but given the tool's relative simplicity and clear purpose, it's mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain what 'space_id' or 'type_id' represent in context). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('retrieves') and resource ('all available templates for a specific object type in an Anytype space'), distinguishing it from siblings like get_template_details (which presumably gets details for a single template) and get_types (which gets types rather than templates). It specifies the scope (templates for a specific type in a specific space) and what templates are used for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'Use this tool when you need to find appropriate templates for creating new objects of a specific type.' It distinguishes from alternatives by focusing on template retrieval for a specific type, unlike global_search or search_space which are broader, and get_template_details which likely provides detailed info for a single template.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the type
type_idYesType ID to retrieve details for

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what information is retrieved (type structure, relations, views, configuration options) which is helpful. However, it doesn't mention important behavioral aspects like whether this is a read-only operation (implied but not stated), potential rate limits, authentication requirements, or what happens if the type doesn't exist. The description adds value but leaves gaps in behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences. The first sentence states the core purpose, and the second provides usage guidance. Every element serves a clear purpose with no redundant information. It's appropriately sized and front-loaded with the main functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read operation with 2 parameters and 100% schema coverage but no annotations or output schema, the description provides adequate but not complete context. It explains what information is retrieved but doesn't describe the return format or structure. Given the complexity of retrieving 'comprehensive details' about object types, more information about the output would be helpful, but the description covers the essential purpose and usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters ('space_id' and 'type_id') clearly documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema. This meets the baseline of 3 when schema coverage is high, but doesn't provide additional semantic context about parameter usage or relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('retrieves') and resource ('detailed information about a specific object type in an Anytype space'). It distinguishes from sibling tools like 'get_types' (which likely lists types) by specifying it provides comprehensive details about a particular type's structure including relations, views, and configuration options.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'when you need to understand the structure of a particular object type or to examine its available relations and properties.' This provides clear context, though it doesn't explicitly mention when NOT to use it or name specific alternatives among the sibling tools (like 'get_types' for listing types rather than getting details).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID to get types from
offsetNoPagination offset
limitNoNumber of results per page (1-100)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a read operation ('Retrieves'), mentions pagination ('Results are paginated'), and specifies the scope ('available in a specified Anytype space'). However, it doesn't cover potential rate limits, error conditions, or authentication needs, leaving some behavioral aspects unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with three sentences, each adding value: the first states the purpose, the second elaborates on the information provided, and the third gives usage guidelines. It's front-loaded with the core functionality and avoids redundancy, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (a read operation with pagination), no annotations, and no output schema, the description does a good job of covering purpose, usage, and key behaviors. However, it lacks details on return values (e.g., what metadata is included) and error handling, which would be helpful since there's no output schema. It's mostly complete but has minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing full documentation for all parameters (space_id, offset, limit). The description adds no additional parameter semantics beyond what's in the schema, such as format details or usage examples. According to the rules, with high schema coverage (>80%), the baseline score is 3 when no param info is added in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieves') and resource ('all object types available in a specified Anytype space'), specifying what the tool does. It distinguishes from siblings like get_type_details (which gets details for a specific type) and get_objects (which retrieves objects rather than types), making the purpose specific and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to 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.' This provides clear context for usage, distinguishing it from alternatives like get_type_details for specific type details or create_object for creating objects, offering explicit guidance on appropriate scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_object_from_listC

Removes an object from a specific list in a space.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID containing the list
list_idYesList ID to remove object from
object_idYesObject ID to remove

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the action is 'removes,' implying a destructive mutation, but doesn't disclose behavioral traits like whether removal is permanent/reversible, permission requirements, error conditions (e.g., if object isn't in list), or what happens to the object after removal (e.g., deleted or just unlinked). This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and target, making it easy to parse quickly. Every word earns its place by conveying essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks crucial context like what 'removes' entails (e.g., permanent deletion or unlisting), expected outcomes, error handling, or permissions. Given the complexity and missing structured data, it should provide more behavioral guidance to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for all three parameters (space_id, list_id, object_id). The description adds no additional meaning beyond the schema, such as explaining relationships between parameters or providing examples. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('removes') and target ('an object from a specific list in a space'), making the purpose understandable. It distinguishes from obvious siblings like 'add_objects_to_list' by specifying removal rather than addition. However, it doesn't differentiate from 'delete_object' which might delete the object entirely rather than just removing it from a list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing the object to be in the list first), when not to use it (e.g., vs. deleting the object entirely), or refer to sibling tools like 'delete_object' or 'add_objects_to_list' for context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_spaceC

Executes a search within a specific space, with options for filtering by type and sorting.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID to search within
queryNoSearch term
typesNoOptional list of object type keys or IDs to filter by
sort_propertyNoProperty to sort bylast_modified_date
sort_directionNoSort directiondesc
offsetNoPagination offset
limitNoNumber of results per page (1-1000)
full_responseNoSet to true to get full unfiltered response
include_textNoSet to true to include full formatted text content from blocks. USE WITH CAUTION: This can return a large amount of data.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'options for filtering by type and sorting' but lacks critical details: it doesn't specify what types of objects are searchable, the search scope (e.g., metadata, content), pagination behavior (implied by offset/limit but not explained), performance implications, or error handling. For a search tool with 9 parameters and no annotations, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy and waste, though it could be slightly more structured (e.g., separating scope from options). It earns its place by summarizing key capabilities concisely.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, search functionality), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the search returns (e.g., object metadata, snippets), how results are formatted, or limitations (e.g., search accuracy, rate limits). For a search tool, this leaves significant gaps for an AI agent to infer behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are documented in the schema. The description adds minimal value beyond the schema—it mentions 'filtering by type and sorting,' which aligns with the 'types,' 'sort_property,' and 'sort_direction' parameters but doesn't provide additional context like valid type values or sorting nuances. With high schema coverage, the baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Executes a search within a specific space, with options for filtering by type and sorting.' It specifies the verb ('executes a search'), resource ('within a specific space'), and scope ('filtering by type and sorting'). However, it doesn't explicitly differentiate from sibling tools like 'global_search' or 'get_objects', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'global_search' (for searches across all spaces) or 'get_objects' (for retrieving objects without search), nor does it specify prerequisites or exclusions. The agent must infer usage from the description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 18 tool updatesv1.0.0
    • Changedadd_objects_to_list2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcreate_object2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcreate_space2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changeddelete_object2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedexport_object2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_list_view_objects2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_list_views2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_object_content2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_objects2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_space_members2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_spaces1 field changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
    • Changedget_template_details2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_templates2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_type_details2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_types2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglobal_search2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedremove_object_from_list2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedsearch_space2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
  2. 18 tool updates
    • First observedadd_objects_to_list
    • First observedcreate_object
    • First observedcreate_space
    • First observeddelete_object
    • First observedexport_object
    • First observedget_list_view_objects
    • First observedget_list_views
    • First observedget_object_content
    • First observedget_objects
    • First observedget_space_members
    • First observedget_spaces
    • First observedget_template_details
    • First observedget_templates
    • First observedget_type_details
    • First observedget_types
    • First observedglobal_search
    • First observedremove_object_from_list
    • First observedsearch_space

TDQS

A3.7/5.0

Scored across 18 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    Enables 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.
    33
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    21
    7
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to read, write, and manage Obsidian notes, folders, and periodic notes via the Local REST API, including search and command execution.
    14
    MIT