Tana MCP Server
The Tana MCP Server enables AI assistants to create and manipulate data in your Tana workspace through write-access to Tana's Input API.
Capabilities:
Create various node types: Plain text, formatted nodes with rich text (bold, italic, strikethrough, highlight, inline references), reference nodes to existing items, date nodes (ISO 8601 formats), URL/link nodes, checkbox/task nodes, and file attachment nodes (base64 encoded)
Build complex structures: Create nested node hierarchies with parent-child relationships to organize projects, lists, and other data
Manage schema: Define new supertags and fields to extend your workspace's data model, and add field values to existing nodes
Modify existing data: Rename existing plain text nodes and apply supertags with optional field values
Use structured prompts: Leverage pre-built templates for creating tasks, projects, meeting notes, and knowledge base entries
Access resources: View API documentation, node type examples, usage patterns, best practices, and server status information
Configure node placement: Control where new nodes are placed (Inbox, Library root, or specific node ID) via environment variables
Batch operations: Create up to 100 nodes per request
Integrate with MCP clients: Compatible with Raycast, Claude Code (CLI and Desktop), and other MCP-compatible clients
Limitations:
Write-only operations (cannot read or query existing nodes)
Cannot update checkbox/boolean states after creation
Rate limited to 1 request per second
Maximum 100 nodes per request and 5,000 characters per payload
Provides a runtime environment for the Tana MCP server, which connects to Tana's Input API to create and manipulate nodes, fields, and schemas in Tana workspaces.
Enables adding the Tana MCP server to Raycast, allowing users to create and manipulate data in Tana workspaces through Raycast's MCP extension.
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., "@Tana MCP Servercreate a task called 'Review quarterly report' with high priority"
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.
Tana MCP Server
This project is no longer actively maintained. I've moved on from Tana and no longer use the software, so I'm not in a position to keep this MCP server current or provide ongoing support. The repository remains available as a reference, and anyone who finds it useful is encouraged to fork it and continue development.
A Model Context Protocol (MCP) server that connects to Tana's Input API, enabling AI assistants to create and manipulate data in your Tana workspace.
Table of Contents
Related MCP server: Super-Productivity-MCP
Features
Tools (12 available)
Tool | Description |
| Create simple text nodes with optional supertags |
| Create nodes with rich formatting and inline references |
| Create references to existing nodes |
| Create date nodes (supports various ISO 8601 formats) |
| Create URL/link nodes |
| Create checkbox/task nodes |
| Create file attachment nodes (base64 encoded) |
| Create complex nested node hierarchies |
| Define new supertags in your schema |
| Define new fields in your schema |
| Add field values to existing nodes |
| Rename existing nodes (plain nodes only) |
Prompts (4 templates)
create-task - Structured task creation with due dates and priorities
create-project - Project structures with goals and milestones
create-meeting-notes - Meeting documentation with attendees and action items
create-knowledge-entry - Knowledge base entries with categories and sources
Resources (4 available)
api-docs - Complete Tana Input API reference
node-types - Detailed examples of all supported node types
examples - Common usage patterns and best practices
server-info - Current server status and configuration
Prerequisites
A Tana workspace with API access enabled
Tana API token (see Getting Your Tana API Token)
One of the following MCP clients:
Raycast with AI features
Claude Code CLI
Any other MCP-compatible client
Getting Your Tana API Token
Open Tana in your browser
Click on the Settings icon (gear) in the bottom left
Navigate to API tokens
Click Create new token
Give it a descriptive name (e.g., "MCP Server")
Copy the token immediately - it won't be shown again
Installation
Raycast
Raycast integrates MCP servers directly into its AI features. Once configured, use @tana-mcp in any Raycast AI interaction.
Step 1: Install the MCP Extension
Open Raycast
Search for "Store" and open the Raycast Store
Search for "Model Context Protocol"
Install the MCP extension
Step 2: Add the Tana MCP Server
Open Raycast and search for "Install Server" (from the MCP extension)
Fill in the form:
Field | Value |
Name |
|
Type |
|
Command |
|
Arguments |
|
Add environment variables:
TANA_API_TOKEN: Your Tana API tokenTANA_DEFAULT_TARGET:INBOX(optional - see Configuration Options)
Alternative: Copy this JSON before opening "Install Server" - Raycast will auto-populate the form:
{
"name": "Tana",
"type": "stdio",
"command": "npx",
"args": ["-y", "tana-mcp"],
"env": {
"TANA_API_TOKEN": "your-api-token-here",
"TANA_DEFAULT_TARGET": "INBOX"
}
}Step 3: Use in Raycast AI
Once installed, mention the server in any Raycast AI interaction:
Quick AI: Type your query and mention
@TanaAI Chat: Start a chat and use
@Tanato invoke toolsAI Commands: Create custom commands that use Tana tools
Example: "@Tana Create a task called 'Review quarterly report' with high priority"
For more details, see the Raycast MCP documentation.
Claude Code (CLI)
Add Tana MCP as a user-scoped server available in all your Claude Code sessions.
claude mcp add -s user \
-e TANA_API_TOKEN=your-api-token-here \
-e TANA_DEFAULT_TARGET=INBOX \
tana-mcp \
npx -y tana-mcpOr for project-scoped (current directory only):
claude mcp add \
-e TANA_API_TOKEN=your-api-token-here \
tana-mcp \
npx -y tana-mcpVerify it's installed:
claude mcp listClaude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"tana-mcp": {
"command": "npx",
"args": ["-y", "tana-mcp"],
"env": {
"TANA_API_TOKEN": "your-api-token-here",
"TANA_DEFAULT_TARGET": "INBOX"
}
}
}
}Restart Claude Desktop after saving.
Other MCP Clients
For any MCP-compatible client, configure with:
Setting | Value |
Command |
|
Arguments |
|
Environment |
|
Or if installed globally (npm install -g tana-mcp):
Setting | Value |
Command |
|
Environment |
|
Configuration Options
Variable | Required | Default | Description |
| Yes | - | Your Tana API token |
| No | Library root | Where to place nodes when no target specified. Use |
| No | Tana's default | Custom API endpoint (advanced use only) |
Target Options
Omit
TANA_DEFAULT_TARGET: Nodes appear in Library rootINBOX: Nodes go to your Tana Inbox for later processingAny node ID: Nodes created under that specific node
Usage
Available Tools
Basic Node Creation
Create a node called "Meeting Notes - January 9th"Tasks with Checkboxes
Create a task "Review PR #123" that's not yet completedRich Formatted Content
Create a formatted node with **bold text** and a reference to node ID abc123Nested Structures
Create a project structure with:
- Project: Website Redesign
- Phase 1: Research
- Phase 2: Design
- Phase 3: DevelopmentSchema Operations
Create a new supertag called "Book" for tracking my reading listExample Prompts
Here are natural language prompts that work well:
What you want | Example prompt |
Quick capture | "Add 'Call dentist' to my Tana inbox" |
Task with details | "Create a high-priority task 'Finish report' due Friday" |
Meeting notes | "Create meeting notes for my 1:1 with Sarah, we discussed Q1 goals" |
Project setup | "Set up a new project called 'App Launch' with planning, development, and release phases" |
Knowledge entry | "Add a note about TypeScript generics with examples" |
Link a URL | "Save this article: https://example.com/interesting-post" |
Text Formatting
The create_formatted_node tool supports rich text formatting in node names:
Format | Syntax | Result |
Bold |
| text |
Italic |
| text |
Strikethrough |
|
|
Highlight |
| highlighted |
You can also include:
Inline node references: Link to other nodes by ID
Inline dates: Clickable date links
Example:
Create a formatted node: "Discussed **important** changes with [PERSON] on [DATE]"
with PERSON referencing node xyz123 and DATE as 2024-01-15API Limitations
These are Tana Input API limitations, not server limitations:
Limit | Value |
Nodes per request | 100 maximum |
Rate limit | 1 request/second per token |
Payload size | 5,000 characters |
Workspace nodes | 750,000 maximum |
Not supported by Tana's API:
Reading/querying existing nodes (write-only API)
Targeting "Today" or relative date nodes
Updating checkbox/boolean nodes
Non-HTTP/HTTPS links
Development
Building from Source
git clone https://github.com/tim-mcdonnell/tana-mcp.git
cd tana-mcp
bun install # or: npm install
bun run build # or: npm run buildRunning Locally
TANA_API_TOKEN=your-token bun run devTesting with Claude Code
Point Claude Code to your local build:
claude mcp add -s user \
-e TANA_API_TOKEN=your-token \
tana-mcp-dev \
bun /path/to/tana-mcp/dist/index.jsTroubleshooting
"Missing expected parameter key: items"
This error occurred in versions before 2.0.0. Update to the latest version:
npm install -g tana-mcp@latestServer not connecting
Verify your token: Make sure
TANA_API_TOKENis set correctlyCheck the command: Ensure
npxis available in your PATHRestart the client: Some clients require restart after config changes
Check logs: Look for error messages in your MCP client's logs
Nodes appearing in wrong location
Set
TANA_DEFAULT_TARGET=INBOXto use your inboxOr specify
targetNodeIdin individual tool calls
set_node_name returning 400 error
This happens when trying to rename checkbox/boolean nodes. The Tana API only supports renaming plain text nodes.
Rate limiting errors
The Tana API limits requests to 1 per second. If you're hitting rate limits, slow down your requests or batch operations together.
Contributing
Contributions welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details.
Support
Issues: GitHub Issues
Tana API Docs: tana.inc/docs/input-api
MCP Protocol: modelcontextprotocol.io
Sources:
Available Tools
11 toolscreate_checkbox_nodeD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | ||
| name | Yes | ||
| checked | Yes | ||
| description | No | ||
| supertags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_date_nodeD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | ||
| date | Yes | ||
| description | No | ||
| supertags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_fieldD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | SCHEMA | |
| name | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_field_nodeD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | ||
| attributeId | Yes | ||
| children | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_file_nodeD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | ||
| fileData | Yes | ||
| filename | Yes | ||
| contentType | Yes | ||
| description | No | ||
| supertags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_node_structureD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | ||
| node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_plain_nodeD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | ||
| name | Yes | ||
| description | No | ||
| supertags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_reference_nodeD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | ||
| referenceId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_supertagD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | SCHEMA | |
| name | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_url_nodeD
| Name | Required | Description | Default |
|---|---|---|---|
| targetNodeId | No | ||
| url | Yes | ||
| description | No | ||
| supertags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_nameD
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | ||
| newName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
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.
11 tool updates
v1.0.0- First observed
create_checkbox_node - First observed
create_date_node - First observed
create_field - First observed
create_field_node - First observed
create_file_node - First observed
create_node_structure - First observed
create_plain_node - First observed
create_reference_node - First observed
create_supertag - First observed
create_url_node - First observed
set_node_name
TDQS
Scored across 11 tools
The tools have overlapping purposes with unclear boundaries, as multiple 'create_' tools (e.g., create_checkbox_node, create_plain_node, create_file_node) seem to create different node types without clear distinctions in their descriptions. While they target different node types, the lack of descriptions makes it ambiguous when to use one over another, especially for similar-sounding tools like create_field and create_field_node.
The tool names follow a highly consistent verb_noun pattern throughout, with all tools using 'create_' or 'set_' prefixes followed by descriptive nouns (e.g., create_checkbox_node, set_node_name). There are no deviations in naming conventions, making the set predictable and readable.
With 11 tools, the count is reasonable for a server focused on node creation and management in Tana. It is well-scoped, though slightly on the higher side, as each tool appears to serve a specific node type or action, earning its place without being excessive.
The tool surface is significantly incomplete for node management, as it only includes creation and naming tools (e.g., create_* and set_node_name) with no obvious operations for reading, updating, or deleting nodes. This lack of CRUD coverage will likely cause agent failures when trying to perform full lifecycle management.
Maintenance
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for generating rough-draft project plans from natural-language prompts.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol (MCP) server implementation that enables AI assistants to interact with Anytype's API through natural language, allowing users to manage their knowledge base through conversation.637 npm521MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that connects AI assistants to Super Productivity for managing tasks, projects, and tags. Supports quick capture, batch triage, and full planning sessions through natural language.97 npm85MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that connects AI assistants to your TickTick tasks, enabling task management through natural language.81MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that provides an AI LLM orchestrator supporting multiple providers (LM Studio, Ollama, OpenAI, generic) plus SQLite-backed memory, kanban, and todo databases for persistent task and knowledge management.-