Things MCP Server
The Things MCP Server enables Claude Desktop to interact with your task management data in the Things app, offering comprehensive functionality for personal productivity management:
Access standard lists: Inbox, Today, Upcoming, Anytime, Someday, Logbook, and Trash
Manage projects and areas: Create, update, and organize your workflow structure
Work with tags: Retrieve tagged items or get all available tags
Search capabilities: Find tasks by title, notes, or advanced filters (status, deadline, tag, area)
Time-based operations: View recently created items or completed todos within specific periods
Detailed information: Access todos with checklists, projects with contained items
Create and update: Add new todos/projects with complete details (tags, deadlines, notes, checklists) or modify existing ones
Direct app integration: Show specific items or lists directly in the Things app
Click on "Install 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., "@Things MCP Serverwhat's in my inbox today?"
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.
Things MCP Server
This Model Context Protocol (MCP) server lets you use Claude Desktop to interact with your task management data in Things 3 from Cultured Code. You can ask Claude to create tasks, analyze projects, help manage priorities, and more.
This server leverages the Things.py library and the Things URL Scheme.
Support the Project
If you find this project helpful, consider supporting its development:
Related MCP server: Things MCP
Features
Access to all major Things lists (Inbox, Today, Upcoming, etc.)
Project and area management
Tag operations
Advanced search capabilities
Recent items
Detailed item information including checklists
Support for nested data (projects within areas, todos within projects)
Someday project filtering: tasks in Someday projects are automatically excluded from Today, Upcoming, and Anytime views, matching Things UI behavior
Installation
Prerequisites
macOS (Things 3 is Mac-only)
Things 3 app with "Enable Things URLs" turned on (Settings → General)
A MCP client, such as Claude Desktop or Claude Code
uv Python package manager:
brew install uv
Install via uvx (Any MCP Client)
Things MCP is published on PyPI and can be run directly with uvx:
uvx things-mcpConfigure your MCP client to use uvx with things-mcp as the argument.
Claude Desktop
Option 1: One-Click Install (Recommended)
Download the latest file from the releases page
Double-click the
.mcpbfileDone!
Option 2: Manual Config
Go to Claude → Settings → Developer → Edit Config
Add the Things server:
{
"mcpServers": {
"things": {
"command": "uvx",
"args": ["things-mcp"]
}
}
}Save and restart Claude Desktop
Claude Code
claude mcp add-json things '{"command":"uvx","args":["things-mcp"]}'To make it available globally (across all projects), add -s user:
claude mcp add-json -s user things '{"command":"uvx","args":["things-mcp"]}'Verify it's working
After installation:
If using Claude Desktop, you should see "Things MCP" in the "Search and tools" list
Try asking: "What's in my Things inbox?"
Sample Usage with Claude Desktop
"What's on my todo list today?"
"Create a todo to pack for my beach vacation next week, include a packing checklist."
"Evaluate my current todos using the Eisenhower matrix."
"Help me conduct a GTD-style weekly review using Things."
"Show me tasks that haven't been modified in over a month."
Tips
Create a project in Claude with custom instructions that explains how you use Things and organize areas, projects, tags, etc. Tell Claude what information you want included when it creates a new task (eg asking it to include relevant details in the task description might be helpful).
Try adding another MCP server that gives Claude access to your calendar. This will let you ask Claude to block time on your calendar for specific tasks, create todos from upcoming calendar events (eg prep for a meeting), etc.
Use task ages to identify stale items: "Which tasks in my Anytime list are older than 2 weeks?"
Available Tools
List Views
get-inbox- Get todos from Inboxget-today- Get todos due todayget-upcoming- Get upcoming todosget-anytime- Get todos from Anytime listget-someday- Get todos from Someday list, including tasks in Someday projectsget-logbook- Get completed todosget-trash- Get trashed todos
Basic Operations
get-todos- Get todos, optionally filtered by projectget-projects- Get all projectsget-areas- Get all areas
Tag Operations
get-tags- Get all tagsget-tagged-items- Get items with a specific tagget-tag-usage- Report how many items use each tag, sorted by usage; flag unused tags for cleanup
Search Operations
search-todos- Simple search by title/notessearch-advanced- Advanced search with multiple filters
Time-based Operations
get-recent- Get recently created items
Things URL Scheme Operations
add-todo- Create a new todoadd-project- Create a new projectadd-area- Create a new Area (via AppleScript; Things URL scheme has no add-area command)update-area- Update an existing Area: rename or set tags (via AppleScript)update-todo- Update an existing todobulk-update-todos- Apply the same update to many todos in a single operationupdate-project- Update an existing projectshow-item- Show a specific item or list in Thingssearch-items- Search for items in Things
Tool Parameters
Pagination (most read tools)
The list/search read tools (get-inbox, get-today, get-upcoming, get-anytime, get-someday, get-logbook, get-trash, get-todos, get-projects, get-areas, get-tags, get-tagged-items, get-headings, search-todos, search-advanced, get-recent) accept optional pagination:
limit- Maximum number of items to return (default: all;get-logbookdefaults to 50)offset- Number of items to skip from the start (default: 0)
When neither is set, output is unchanged. When set, a Showing X-Y of Z items header is prepended so you know how much more there is. An offset past the end is reported distinctly from an empty result.
These same read tools also return structured content alongside the human-readable text: MCP clients receive the raw item dicts plus count/total/offset/limit under structured_content, so data can be consumed programmatically without parsing the formatted text.
get-todos
project_uuid(optional) - Filter todos by projectinclude_items(optional, default: true) - Include checklist items
get-projects / get-areas / get-tags
include_items(optional, default: false) - Include contained items
search-advanced
status- Filter by status (incomplete/completed/canceled)start_date- Filter by start date (YYYY-MM-DD)deadline- Filter by deadline (YYYY-MM-DD)tag- Filter by tagarea- Filter by area UUIDtype- Filter by item type (to-do/project/heading)last- Filter by creation date (e.g., '3d' for last 3 days, '1w' for last week)
get-recent
period- Time period (e.g., '3d', '1w', '2m', '1y')
get-logbook
period(optional, default: '7d') - Look-back window by completion date. Acceptsd/w/m/y(e.g., '3d', '1w', '2m', '1y'); months ≈ 30 days, years ≈ 365 dayslimit(optional, default: 50) - Maximum number of completed items to return
get-tag-usage
only_unused(optional, default: false) - Return only tags that no item references (cleanup candidates)
update-todo (checklist & tags)
tags- Replace all tags on the todoadd_tags- Append tags without removing existing oneschecklist_items- Replace the entire checklist with this listprepend_checklist_items- Add these items to the top of the checklistappend_checklist_items- Add these items to the bottom of the checklist
bulk-update-todos
Applies the same change to every todo in ids in a single operation. Requires the Things auth token to be enabled (Things → Settings → General → Enable Things URLs → Manage); the server reads it automatically.
ids(required) - List of todo UUIDs to updatelist/list_id- Move all into a project/area (by title or UUID)tags/add_tags- Replace or append tags on allwhen- Reschedule all (keyword or YYYY-MM-DD)deadline- Set deadline on all (YYYY-MM-DD)heading/heading_id- Move all under a heading (by title or UUID)completed/canceled- Mark all completed or canceled
Scheduling with Reminders (add-todo, add-project, update-todo, update-project)
when- Accepts multiple formats:Keywords:
today,tomorrow,evening,anytime,somedayDate:
YYYY-MM-DD(e.g.,2024-01-15)DateTime with reminder:
YYYY-MM-DD@HH:MM(e.g.,2024-01-15@14:30)
Troubleshooting
If it's not working:
Make sure Things 3 is installed and has been opened at least once
The Things database needs to exist for the server to work
Check that "Enable Things URLs" is turned on
Open Things → Settings → General → Enable Things URLs
Claude Desktop can't find
uvxInstall uv globally with Homebrew (
brew install uv)Alternative: Use the full path to
uvxin your config. Find it withwhich uvx(typically/Users/USERNAME/.local/bin/uvx)
Development
Running Tests
The project includes a comprehensive unit test suite for the URL scheme and formatter modules.
# Install test dependencies
uv sync --extra test
# Run all tests
uv run pytest
# Run tests with verbose output
uv run pytest -v
# Run a specific test file
uv run pytest tests/test_url_scheme.py
# Run tests matching a pattern
uv run pytest -k "test_add_todo"MCP Integration Test
The project includes an integration test plan that can be executed by Claude (via Claude Cowork or Claude Code) to verify all MCP tools work correctly against a live Things database.
See docs/mcp_integration_test_plan.md for the full test plan.
Project Structure
things-mcp/
├── src/things_mcp/ # Main package
│ ├── __init__.py # Package exports
│ ├── __main__.py # Entry point for python -m
│ ├── server.py # MCP server implementation
│ ├── url_scheme.py # Things URL scheme implementation
│ └── formatters.py # Data formatting utilities
├── tests/ # Unit tests
│ ├── conftest.py # Test fixtures and configuration
│ ├── test_url_scheme.py
│ ├── test_formatters.py
│ ├── test_someday_filtering.py
│ └── test_mcp_server_filtering.py
├── docs/ # Documentation
│ └── mcp_integration_test_plan.md # Claude-executable integration test
├── manifest.json # MCPB package manifest
├── build_mcpb.sh # MCPB package build script
├── pyproject.toml # Project dependencies, build config, and pytest config
├── .env.example # Sample environment configuration
└── run.sh # Convenience runner scriptHTTP Transport
By default, the server uses stdio transport for communication with MCP clients. For remote access scenarios, you can run the server with HTTP transport.
Configuration
Set these environment variables to enable HTTP transport:
Variable | Default | Description |
|
| Transport type: |
|
| HTTP server bind address |
|
| HTTP server port |
Example
# Using uvx
THINGS_MCP_TRANSPORT=http THINGS_MCP_HOST=0.0.0.0 THINGS_MCP_PORT=8000 uvx things-mcp
# Or from source
THINGS_MCP_TRANSPORT=http THINGS_MCP_HOST=0.0.0.0 THINGS_MCP_PORT=8000 uv run things-mcpSee .env.example for a sample configuration file.
Available Tools
22 toolsadd_projectB
Create a new project in Things
Args: title: Title of the project notes: Notes for the project when: When to schedule the project deadline: Deadline for the project tags: Tags to apply to the project area_id: ID of area to add to area_title: Title of area to add to todos: Initial todos to create in the project
| Name | Required | Description | Default |
|---|---|---|---|
| area_id | No | ||
| area_title | No | ||
| deadline | No | ||
| notes | No | ||
| tags | No | ||
| title | Yes | ||
| todos | No | ||
| when | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 creation action. It doesn't disclose behavioral traits like whether creation requires specific permissions, what happens on duplicate titles, if the project appears in specific views (e.g., Today/Upcoming), or error conditions. The description is minimal beyond the core function.
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?
The description is appropriately sized and front-loaded with the core purpose in the first sentence. The parameter list is organized but could be more concise (e.g., merging 'area_id' and 'area_title' explanations). Every sentence adds value, though the 'Args:' section is somewhat verbose.
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?
Given 8 parameters with 0% schema coverage and no annotations, the description provides basic parameter semantics but lacks behavioral context for a creation tool. The presence of an output schema reduces the need to explain return values, but gaps remain in usage guidelines and transparency (e.g., no mention of default behaviors or error handling).
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?
Schema description coverage is 0%, so the description must compensate. It provides a clear list of all 8 parameters with brief explanations of each (e.g., 'Title of the project', 'ID of area to add to'), adding meaningful semantics beyond the schema's basic titles. However, it lacks format details (e.g., date formats for 'when'/'deadline', whether 'area_id' and 'area_title' are mutually exclusive).
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?
The description clearly states the specific action ('Create a new project') and resource ('in Things'), distinguishing it from sibling tools like 'update_project' which modifies existing projects or 'get_projects' which retrieves them. The verb+resource combination is precise and unambiguous.
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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether an area must exist first), when to use 'add_todo' instead for single tasks, or how it differs from 'update_project' for modifying existing projects. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_todoB
Create a new todo in Things
Args: title: Title of the todo notes: Notes for the todo when: When to schedule the todo (today, tomorrow, evening, anytime, someday, or YYYY-MM-DD) deadline: Deadline for the todo (YYYY-MM-DD) tags: Tags to apply to the todo checklist_items: Checklist items to add list_id: ID of project/area to add to list_title: Title of project/area to add to heading: Heading title to add under heading_id: Heading ID to add under (takes precedence over heading)
| Name | Required | Description | Default |
|---|---|---|---|
| checklist_items | No | ||
| deadline | No | ||
| heading | No | ||
| heading_id | No | ||
| list_id | No | ||
| list_title | No | ||
| notes | No | ||
| tags | No | ||
| title | Yes | ||
| when | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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. While 'Create' implies a write operation, it doesn't specify permissions needed, whether todos are immediately saved or require confirmation, what happens on duplicate titles, or error conditions. The description mentions parameter precedence ('heading_id takes precedence over heading') which adds some behavioral context, but overall 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized but not optimally structured. The initial sentence clearly states the purpose, but the parameter documentation could be better organized. While each parameter explanation is concise, the list format is functional but not particularly elegant. Every sentence earns its place, but the structure could be more front-loaded with critical information.
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?
Given the tool's complexity (10 parameters, mutation operation) and the presence of an output schema (which handles return values), the description is moderately complete. It excels at parameter documentation but lacks behavioral context for a mutation tool with no annotations. The combination of good parameter semantics but missing behavioral guidance results in an incomplete picture for proper tool invocation.
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?
With 0% schema description coverage, the description provides excellent parameter semantics that fully compensate. It explains all 10 parameters with clear meanings, including special formats for 'when' (today, tomorrow, evening, anytime, someday, or YYYY-MM-DD) and 'deadline' (YYYY-MM-DD), plus important behavioral details like precedence rules for heading_id vs heading. This goes well beyond what the bare schema provides.
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?
The description clearly states the verb ('Create') and resource ('new todo in Things'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'add_project' or 'update_todo', which would require mentioning this is specifically for todos (not projects) and creates new items (not updates existing ones).
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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'add_todo' over 'add_project' for different item types, or when to use 'update_todo' instead for modifying existing todos. There's also no mention of prerequisites or contextual constraints for creating todos.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_anytimeC
Get todos from Anytime list
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 but only states the action ('Get todos') without details on permissions, rate limits, or what 'Anytime list' entails (e.g., is it a filtered view, does it include all todos?). It lacks critical behavioral context for a tool with output schema.
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?
The description is a single, efficient sentence with no wasted words. It is appropriately sized and front-loaded, making it easy to parse quickly.
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?
Given the complexity implied by multiple sibling tools (e.g., 'get_todos', 'get_today') and no annotations, the description is incomplete. It fails to explain what 'Anytime list' is or how it differs from other todo-fetching tools, leaving gaps in understanding despite the presence of an output schema.
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?
The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description does not add param semantics, but this is acceptable given the absence of parameters, aligning with the baseline for 0 params.
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?
The description 'Get todos from Anytime list' restates the tool name 'get_anytime' in slightly different wording (tautology), failing to clearly differentiate what 'Anytime list' means or how it differs from sibling tools like 'get_todos', 'get_today', or 'get_upcoming'. It provides minimal specificity beyond the name.
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?
No guidance is provided on when to use this tool versus alternatives such as 'get_todos', 'get_today', or 'get_upcoming'. The description lacks context, exclusions, or explicit comparisons, leaving the agent with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_areasC
Get all areas from Things
Args: include_items: Include projects and tasks within areas
| Name | Required | Description | Default |
|---|---|---|---|
| include_items | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 this is a 'Get' operation, implying read-only behavior, but doesn't disclose any behavioral traits like whether it requires authentication, has rate limits, returns paginated results, or what the output format is. The description is minimal and lacks essential context for safe invocation.
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?
The description is appropriately sized with two sentences: one stating the purpose and another explaining the parameter. It's front-loaded with the main purpose first. There's no wasted text, though the 'Args:' formatting is slightly redundant but not excessive.
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?
Given the tool has an output schema (which handles return values) and only one parameter with good semantic coverage in the description, the description is minimally adequate. However, for a retrieval tool with no annotations, it should ideally mention more about behavior (e.g., read-only, potential errors). The presence of an output schema raises the baseline, but gaps remain in behavioral transparency.
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?
The description adds meaningful semantics for the single parameter 'include_items' by explaining it controls whether to 'Include projects and tasks within areas'. With 0% schema description coverage (the schema only has a title 'Include Items'), this compensates well by clarifying what 'items' refers to in this context. For a tool with only one parameter, this is sufficient.
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?
The description states 'Get all areas from Things' which provides a clear verb ('Get') and resource ('areas'), but it doesn't distinguish this tool from sibling tools like 'get_projects', 'get_todos', or 'get_headings' that also retrieve specific Things resources. The purpose is understandable but lacks sibling differentiation.
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?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools like 'get_projects', 'get_todos', 'get_inbox', etc., the description doesn't indicate what makes 'areas' distinct or when an agent should choose this over other retrieval tools. Usage is implied only by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_headingsC
Get headings from Things
Args: project_uuid: Optional UUID of a specific project to get headings from
| Name | Required | Description | Default |
|---|---|---|---|
| project_uuid | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 states it 'gets' data, implying a read-only operation, but lacks details on permissions, rate limits, return format, or any side effects. This is inadequate for a tool with no annotation coverage.
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?
The description is appropriately sized with two sentences: one stating the purpose and another explaining the parameter. It's front-loaded with the main action, though the 'Args:' section could be integrated more smoothly, but overall it's efficient with minimal waste.
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?
Given the tool has an output schema (which handles return values) and low complexity with one optional parameter, the description is somewhat complete but lacks behavioral context due to no annotations. It covers the basic purpose and parameter semantics but misses usage guidelines and transparency details, making it minimally adequate.
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?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'project_uuid' is optional and specifies it's for 'a specific project to get headings from', clarifying the parameter's purpose beyond the schema's basic type. However, it doesn't detail format (e.g., UUID structure) or default behavior when omitted, leaving some gaps.
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?
The description clearly states the verb 'Get' and resource 'headings from Things', which is specific and actionable. However, it doesn't differentiate from sibling tools like 'get_projects' or 'get_todos' that also retrieve data from the same system, missing explicit distinction.
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?
No guidance is provided on when to use this tool versus alternatives such as 'get_projects' or 'search_items'. The description only mentions an optional parameter without context on appropriate use cases or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inboxC
Get todos from Inbox
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 states it 'gets' data, implying a read-only operation, but doesn't mention permissions, rate limits, pagination, or what happens on failure. It lacks critical context for safe and effective use.
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?
The description is very concise with just three words, making it easy to parse. However, it's arguably too brief, potentially under-specifying the tool's purpose. It front-loads the key action but could benefit from slightly more detail to improve clarity.
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?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, it lacks context about the Inbox concept, how it differs from other todo-related tools, and behavioral traits, making it incomplete for optimal agent use without additional inference.
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?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, but that's appropriate here. A baseline of 4 is given as it adequately handles the lack of parameters without introducing confusion.
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?
The description 'Get todos from Inbox' clearly states the action (get) and resource (todos from Inbox), but it's vague about scope and doesn't differentiate from siblings like 'get_todos' or 'get_today'. It specifies the source (Inbox) but lacks detail on what 'Inbox' means in this context.
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?
No guidance is provided on when to use this tool versus alternatives like 'get_todos' or 'get_today'. The description implies it's for retrieving todos from a specific location (Inbox), but it doesn't clarify if this is a filtered view, default location, or how it relates to other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logbookA
Get completed todos from Logbook, defaults to last 7 days
Args: period: Time period to look back (e.g., '3d', '1w', '2m', '1y'). Defaults to '7d' limit: Maximum number of entries to return. Defaults to 50
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| period | No | 7d |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 adds useful context about default time periods and limits, which helps understand the tool's behavior beyond basic functionality. However, it doesn't cover aspects like authentication needs, rate limits, error handling, or what 'completed' entails (e.g., status criteria). The description compensates partially but leaves gaps for a read operation.
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?
The description is appropriately sized and front-loaded, with the core purpose stated first ('Get completed todos from Logbook, defaults to last 7 days'), followed by a structured 'Args:' section. Every sentence adds value, and there's no redundant information. It could be slightly more concise by integrating the defaults into the initial sentence, but overall it's efficient.
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?
Given the tool's low complexity (2 parameters, no annotations, but has an output schema), the description is reasonably complete. It explains the purpose, parameters, and defaults, which covers the essentials for a read operation. The presence of an output schema means the description doesn't need to explain return values, and the parameter documentation compensates for the 0% schema coverage. Minor gaps remain in behavioral details.
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?
The schema description coverage is 0%, so the description must fully document parameters. It successfully adds meaning by explaining both parameters: 'period' as a time period with examples (e.g., '3d', '1w') and defaults, and 'limit' as maximum entries with defaults. This covers all 2 parameters adequately, though it could provide more detail on format constraints (e.g., valid period strings).
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?
The description clearly states the tool's purpose: 'Get completed todos from Logbook'. It specifies the resource (completed todos) and the source (Logbook), making the verb+resource combination explicit. However, it doesn't explicitly differentiate from sibling tools like 'get_todos' or 'get_recent', which likely also retrieve todo-related data, leaving some ambiguity about uniqueness.
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?
The description implies usage by stating it 'defaults to last 7 days', suggesting it's for retrieving recent completed todos. However, it provides no explicit guidance on when to use this tool versus alternatives like 'get_todos' or 'get_recent', nor does it mention any exclusions or prerequisites. The context is clear but lacks sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectsC
Get all projects from Things
Args: include_items: Include tasks within projects
| Name | Required | Description | Default |
|---|---|---|---|
| include_items | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'Get all projects' but doesn't disclose behavioral traits like whether this is paginated, rate-limited, requires authentication, returns all projects at once, or what format the output takes. The description is minimal and lacks essential operational context.
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?
The description is brief but structured with a main statement and an 'Args:' section. However, the formatting is somewhat informal and could be more polished. It's concise but not optimally front-loaded or professionally structured.
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?
Given 1 parameter with 0% schema coverage and an output schema exists, the description compensates somewhat for parameters but lacks behavioral context. For a simple retrieval tool, it's minimally adequate but doesn't provide enough guidance on usage or operational details to be fully helpful.
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?
With 0% schema description coverage and 1 parameter, the description adds meaningful context by explaining that 'include_items' controls whether tasks within projects are included. This clarifies the parameter's purpose beyond the schema's basic boolean type and title, though it doesn't detail default behavior or implications.
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?
The description states 'Get all projects from Things' which provides a clear verb ('Get') and resource ('projects'), but it doesn't distinguish this from sibling tools like 'get_areas', 'get_tags', or 'get_todos' that also retrieve different Things resources. The purpose is clear but lacks sibling differentiation.
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?
No guidance is provided about when to use this tool versus alternatives like 'search_advanced', 'search_items', or 'search_todos' for filtered queries, or 'get_today'/'get_upcoming' for time-based retrieval. The description only states what the tool does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recentC
Get recently created items
Args: period: Time period (e.g., '3d', '1w', '2m', '1y')
| Name | Required | Description | Default |
|---|---|---|---|
| period | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool retrieves items but doesn't specify what 'items' refers to (e.g., projects, todos, areas), whether it requires authentication, what the output format is, or if there are rate limits. The description is minimal and leaves critical 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main purpose, followed by parameter details. Both sentences earn their place by stating what the tool does and explaining the parameter. There's no unnecessary verbiage, though it could be slightly more structured (e.g., separating purpose and args more clearly).
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?
Given the tool has one parameter with no schema descriptions but an output schema exists, the description provides adequate basics but lacks context. It explains the parameter well but doesn't clarify what 'items' are or how 'recently created' is defined (e.g., relative to now?). The output schema will handle return values, but the description could better integrate with sibling tools and item types.
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?
The description adds significant value beyond the input schema, which has 0% description coverage. It explains that 'period' is a 'Time period' and provides examples of valid values ('3d', '1w', '2m', '1y'), clarifying the parameter's purpose and format. This compensates well for the schema's lack of documentation, though it doesn't cover all possible edge cases.
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?
The description states the tool's purpose as 'Get recently created items', which is a clear verb+resource combination. However, it doesn't distinguish this from sibling tools like 'get_today', 'get_upcoming', or 'get_anytime' that also retrieve items with different temporal filters. The purpose is understandable but lacks sibling differentiation.
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?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools that retrieve items (e.g., 'get_today', 'get_upcoming', 'get_anytime', 'get_tagged_items'), there's no indication of when 'recently created' is appropriate versus other temporal or categorical filters. The user must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_somedayB
Get todos from Someday list
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 a read operation ('Get'), implying it's likely non-destructive, but doesn't disclose any behavioral traits such as permissions needed, rate limits, or what the output contains. This leaves significant gaps for an agent to understand how to interact with it effectively.
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?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it efficient and easy to parse for an agent.
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?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, with no annotations and multiple sibling tools, it lacks context on usage and behavioral aspects, making it incomplete for optimal agent selection in a crowded toolset.
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?
The tool has 0 parameters with 100% schema coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, but it could hint at implicit filtering (e.g., by list type), though not required. Baseline is 4 for zero parameters.
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?
The description clearly states the action ('Get') and resource ('todos from Someday list'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_today', 'get_upcoming', or 'get_todos' which likely retrieve similar items from different contexts, so it misses full sibling distinction.
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?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'get_today', 'get_upcoming', and 'get_todos', the description lacks context on what makes the 'Someday list' unique or when it's appropriate to use this specific retrieval method.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tagged_itemsC
Get items with a specific tag
Args: tag: Tag title to filter by
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 it 'Get items' but doesn't clarify if this is a read-only operation, what permissions are needed, how results are returned (e.g., pagination), or error handling. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
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?
The description is brief and front-loaded with the main purpose, followed by a clear 'Args' section. It avoids unnecessary words, but the lack of additional context or examples slightly reduces its efficiency in fully informing the agent.
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?
Given the tool has an output schema (which handles return values), the description doesn't need to explain outputs. However, with no annotations and low schema coverage, the description should compensate more by detailing behavioral aspects and usage context, which it only partially does. It's minimally adequate but leaves room for improvement.
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?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds value by explaining that 'tag' is a 'Tag title to filter by', which clarifies its purpose beyond the schema's basic type. However, it doesn't detail format constraints or examples, leaving some ambiguity.
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?
The description clearly states the verb 'Get' and the resource 'items with a specific tag', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_items' or 'search_todos' that might also filter by tags, so it's not fully distinguished from alternatives.
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?
The description provides no guidance on when to use this tool versus alternatives like 'search_items' or 'get_tags', nor does it mention prerequisites or exclusions. The agent must infer usage from the name and context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tagsC
Get all tags
Args: include_items: Include items tagged with each tag
| Name | Required | Description | Default |
|---|---|---|---|
| include_items | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'Get all tags' implies a read operation, but there's no information about permissions needed, rate limits, pagination, or what 'all' means in practice (complete list or limited). The description adds minimal behavioral context beyond the basic operation.
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?
The description is appropriately brief with two sentences that directly address the tool's purpose and its single parameter. The 'Args:' section is clearly separated, though the formatting could be more polished. There's no wasted verbiage, and information is front-loaded effectively.
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?
Given the simple tool with 1 parameter and an output schema (which handles return values), the description is minimally adequate. However, for a retrieval tool with no annotations, it should ideally mention whether this returns all tags at once or uses pagination, and clarify the relationship with 'get_tagged_items'. The presence of an output schema reduces but doesn't eliminate the need for more context.
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?
With 0% schema description coverage and only 1 parameter, the description compensates well by explaining the 'include_items' parameter's purpose: 'Include items tagged with each tag.' This adds meaningful semantic context that the schema's boolean type alone doesn't provide, though it could specify what format these included items take.
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?
The description states 'Get all tags' which clearly indicates the verb (get) and resource (tags). However, it doesn't distinguish this from sibling tools like 'get_tagged_items' or explain how this differs from other retrieval tools in the system. The purpose is clear but lacks sibling differentiation.
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?
No guidance is provided about when to use this tool versus alternatives. With sibling tools like 'get_tagged_items' and 'search_items' available, the description doesn't indicate whether this retrieves tag metadata versus tagged content, or when to prefer one approach over another. The single sentence offers no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_todayB
Get todos due today
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, it doesn't specify whether this returns all todos due today or only incomplete ones, how results are sorted, if there's pagination, or what authentication might be required. The description is too minimal for a tool with no annotation support.
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?
The description is extremely concise at just three words, front-loading the essential information with zero wasted language. Every word earns its place by specifying the action, resource, and temporal filter in minimal form.
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?
Given the tool has zero parameters and an output schema exists, the description doesn't need to explain parameters or return values. However, for a read operation with no annotations, it should provide more behavioral context about what 'todos due today' means operationally. The description is complete enough for basic understanding but lacks depth about implementation details.
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?
The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description doesn't need to compensate for any parameter gaps, and it correctly implies no input is required beyond the implicit 'today' filter. This meets the baseline expectation for zero-parameter tools.
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?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('todos due today'), making it immediately understandable. However, it doesn't explicitly distinguish this tool from similar siblings like 'get_todos' or 'get_upcoming', which might also retrieve todo items with different filters.
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?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_todos', 'get_upcoming', 'get_recent', and 'get_anytime', there's no indication of when this specific 'today' filter is appropriate or what distinguishes it from other date-based queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_todosB
Get todos from Things, optionally filtered by project
Args: project_uuid: Optional UUID of a specific project to get todos from include_items: Include checklist items
| Name | Required | Description | Default |
|---|---|---|---|
| include_items | No | ||
| project_uuid | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It mentions optional project filtering and checklist inclusion, but doesn't describe what 'Get todos' actually returns (list format, pagination, sorting), authentication requirements, rate limits, or whether this is a read-only operation (though implied by 'Get').
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?
Extremely concise with zero wasted words. The purpose is stated in the first sentence, followed by clear parameter explanations. Every sentence earns its place, and the structure (purpose then args) is logical and front-loaded.
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?
Given the tool has an output schema (which handles return values), 2 parameters with 0% schema coverage, and no annotations, the description is minimally adequate. It covers the basic purpose and parameters but lacks behavioral context and sibling differentiation that would be helpful given the many similar get_* tools.
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?
Schema description coverage is 0%, so the description must compensate. It provides basic semantic meaning for both parameters ('Optional UUID of a specific project' and 'Include checklist items'), which adds value beyond the bare schema. However, it doesn't explain format details (what a valid UUID looks like) or the implications of including/excluding items.
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?
The description clearly states the verb 'Get' and resource 'todos from Things', making the purpose immediately understandable. It distinguishes from some siblings like 'add_todo' or 'update_todo', but doesn't explicitly differentiate from other get_* tools like 'get_today' or 'get_inbox' that also retrieve todos with different filters.
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?
The description mentions optional filtering by project, but provides no guidance on when to use this tool versus the many sibling get_* tools (get_today, get_inbox, get_upcoming, etc.) that appear to retrieve todos with different scopes. No alternatives, prerequisites, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trashB
Get trashed todos
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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. 'Get trashed todos' implies a read-only operation that retrieves deleted items, but it doesn't specify whether this requires special permissions, what format the output takes, whether there are pagination limits, or if the trash has retention policies. The description adds minimal behavioral context beyond the basic operation.
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?
The description is a perfectly concise three-word phrase that communicates the essential action and target. Every word earns its place: 'Get' specifies the action, 'trashed' distinguishes the state, and 'todos' identifies the resource. There's zero waste or redundancy.
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?
Given the tool's simplicity (0 parameters, output schema exists), the description is adequate but minimal. The output schema will document return values, so the description doesn't need to explain those. However, for a tool that presumably accesses deleted/sensitive data, more context about permissions, scope, or limitations would be helpful despite the structured fields.
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?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the lack of inputs. The description doesn't need to explain parameters, and it correctly doesn't mention any. The baseline for zero parameters with complete schema coverage is 4, as there's nothing to compensate for.
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?
The description clearly states the verb 'Get' and resource 'trashed todos', making the purpose immediately understandable. It distinguishes this from sibling tools like get_todos, get_today, etc. by specifying the 'trashed' state. However, it doesn't explicitly contrast with other trash-related operations that might exist (though none are listed among siblings).
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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when you might need trashed todos versus active ones (get_todos), or how this relates to other retrieval tools like get_inbox or get_tagged_items. There's no context about prerequisites, permissions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcomingB
Get upcoming todos
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 but offers minimal information. It implies a read operation but doesn't specify whether it returns all upcoming todos, paginated results, or any filtering/sorting behavior. No details on permissions, rate limits, or error conditions are included.
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?
The description is extremely concise with just three words, front-loading the essential information ('Get upcoming todos') without any wasted text. It efficiently communicates the core purpose in a minimal format.
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?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is adequate as a basic read operation. However, it lacks context about what 'upcoming' entails (e.g., definition, scope) and behavioral details, making it minimally viable but with gaps in usage clarity.
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?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, but this is appropriate given the lack of inputs, justifying a baseline score of 4 for clarity in a parameterless context.
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?
The description clearly states the action ('Get') and resource ('upcoming todos'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'get_today' or 'get_someday' by specifying 'upcoming' as the time frame, though it doesn't explicitly contrast with all similar tools like 'get_recent'.
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?
The description provides no guidance on when to use this tool versus alternatives like 'get_today', 'get_someday', or 'get_recent'. It lacks context about what 'upcoming' means (e.g., time range, priority) or any prerequisites, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_advancedB
Advanced todo search with multiple filters
Args: status: Filter by todo status (incomplete, completed, canceled) start_date: Filter by start date (YYYY-MM-DD) deadline: Filter by deadline (YYYY-MM-DD) tag: Filter by tag area: Filter by area UUID type: Filter by item type (to-do, project, heading)
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| deadline | No | ||
| start_date | No | ||
| status | No | ||
| tag | No | ||
| type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 only states that it performs a search with filters, lacking information on permissions needed, rate limits, pagination, response format, or whether it's read-only. This is inadequate for a search tool with 6 parameters and no annotation coverage.
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?
The description is appropriately sized and front-loaded, with the main purpose stated first followed by a structured list of parameters. Each sentence earns its place, though the parameter explanations could be slightly more concise (e.g., repeating 'Filter by' for each).
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?
Given the tool's complexity (6 parameters, no annotations, but with output schema), the description is partially complete. It covers parameter semantics well but lacks behavioral context and usage guidelines. The presence of an output schema means return values are documented elsewhere, reducing the burden on the 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?
Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all 6 parameters, explaining what each filters by (e.g., 'status: Filter by todo status', 'area: Filter by area UUID'), including specific values for 'status' and 'type'. This adds significant meaning beyond the bare schema.
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?
The description clearly states the tool's purpose as 'Advanced todo search with multiple filters', specifying the verb ('search') and resource ('todo'). It distinguishes from basic search tools by emphasizing 'advanced' with multiple filters, though it doesn't explicitly differentiate from sibling tools like 'search_items' or 'search_todos'.
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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this advanced search is preferable over simpler sibling tools like 'get_todos', 'search_todos', or 'search_items', nor does it specify prerequisites or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_itemsC
Search for items in Things
Args: query: Search query
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 only states the basic function without mentioning important behavioral aspects like whether this is a read-only operation, what kind of items are returned, how results are formatted/paginated, or any limitations/constraints. For a search tool with zero annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences. The first states the purpose, the second documents the single parameter. There's no wasted text, though the structure with 'Args:' heading is slightly informal but clear.
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?
Given there's an output schema (which handles return values), the description focuses on the search function and parameter. However, for a tool with 1 parameter but 0% schema description coverage and no annotations, the description should provide more context about what 'items' means in this system versus the many sibling tools, and how this search differs from other search options.
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?
The schema description coverage is 0%, so the description must compensate. It does provide the parameter name 'query' and indicates it's a search query, which adds basic semantic meaning beyond the schema's bare type information. However, it doesn't explain query syntax, supported operators, or examples - just the minimal parameter identification.
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?
The description states 'Search for items in Things' which clearly indicates the verb (search) and resource (items in Things). However, it doesn't differentiate from sibling tools like 'search_todos' or 'search_advanced' - it's unclear what 'items' encompasses versus 'todos' or what makes the advanced search different.
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?
No guidance is provided about when to use this tool versus alternatives like 'search_todos', 'search_advanced', or the various 'get_' tools. The description only states what the tool does, not when it's appropriate versus other search or retrieval options available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_todosC
Search todos by title or notes
Args: query: Search term to look for in todo titles and notes
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions what fields are searched (title/notes) but doesn't cover important aspects like search behavior (exact match, partial, case sensitivity), result format, pagination, or error conditions. This leaves significant gaps for a search operation.
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?
The description is appropriately brief with two sentences that directly address purpose and parameter meaning. The 'Args:' section is slightly redundant but adds clarity. No wasted words, though it could be more front-loaded by integrating the parameter explanation into the main sentence.
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?
Given the tool has an output schema (which handles return values), the description's main gaps are in behavioral transparency and usage guidelines. For a search tool with no annotations and multiple similar siblings, it should provide more context about search behavior and differentiation, making it minimally adequate but incomplete.
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?
The description adds meaningful context for the single parameter: it explains that 'query' searches in 'todo titles and notes'. With 0% schema description coverage, this compensates somewhat, but doesn't provide details on query syntax, length limits, or special characters. The baseline is appropriate given the single parameter.
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?
The description clearly states the tool's purpose: 'Search todos by title or notes' specifies the verb (search), resource (todos), and scope (title/notes). However, it doesn't explicitly distinguish this tool from sibling search tools like 'search_advanced' or 'search_items', which prevents a perfect score.
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?
The description provides no guidance on when to use this tool versus alternatives. With multiple search-related siblings ('search_advanced', 'search_items'), there's no indication of what differentiates this tool or when it's preferred, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_itemB
Show a specific item or list in Things
Args: id: ID of item to show, or one of: inbox, today, upcoming, anytime, someday, logbook query: Optional query to filter by filter_tags: Optional tags to filter by
| Name | Required | Description | Default |
|---|---|---|---|
| filter_tags | No | ||
| id | Yes | ||
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 showing items or lists but doesn't describe the output format, whether it's read-only, if it requires authentication, or any rate limits. For a tool with no annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose, followed by parameter explanations in a clear 'Args:' section. It avoids unnecessary words, though the structure could be slightly more polished by integrating the parameter details more seamlessly.
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?
Given the tool has an output schema, the description doesn't need to explain return values, which helps. However, with no annotations, 3 parameters (one required), and many sibling tools, the description lacks context on behavior and usage guidelines, making it only minimally adequate.
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?
The description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'id' can be an item ID or predefined list names (e.g., 'inbox', 'today'), and clarifies that 'query' and 'filter_tags' are optional filters. This compensates well for the schema's lack of descriptions.
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?
The description clearly states the verb 'show' and resource 'specific item or list in Things', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_inbox', 'get_today', etc., which appear to serve similar list-retrieval functions, so it falls short of a perfect score.
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?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'get_inbox', 'get_today', and 'search_items' that likely overlap in functionality, there's no indication of when this tool is preferred or what distinguishes it, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_projectB
Update an existing project in Things
Args: id: ID of the project to update title: New title notes: New notes when: New schedule deadline: New deadline tags: New tags completed: Mark as completed canceled: Mark as canceled
| Name | Required | Description | Default |
|---|---|---|---|
| canceled | No | ||
| completed | No | ||
| deadline | No | ||
| id | Yes | ||
| notes | No | ||
| tags | No | ||
| title | No | ||
| when | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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. While 'Update' implies a mutation operation, the description doesn't specify what happens to fields not mentioned (partial vs full updates), whether changes are reversible, what permissions are required, or what the response format looks like. It provides basic parameter mapping but minimal behavioral context.
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?
The description is reasonably concise with a clear purpose statement followed by parameter explanations. However, the parameter list format ('Args:') is somewhat redundant with the schema and could be more integrated. The structure is functional but not optimally front-loaded.
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?
For an update tool with 8 parameters, no annotations, but with an output schema, the description provides adequate parameter semantics but lacks behavioral context. The presence of an output schema reduces the need to describe return values, but the description should still address mutation behavior, partial updates, and usage context given the sibling tools available.
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?
With 0% schema description coverage, the description provides essential semantic information for all 8 parameters, mapping each to specific project attributes. It clarifies that 'id' identifies which project to update, 'completed' marks as completed, 'canceled' marks as canceled, etc. This significantly compensates for the lack of schema descriptions.
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?
The description clearly states the action ('Update') and resource ('an existing project in Things'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this from sibling tools like 'update_todo' or 'add_project' beyond the different resource type.
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?
The description provides no guidance on when to use this tool versus alternatives like 'add_project' (for creating new projects) or 'update_todo' (for updating todos instead of projects). It also doesn't mention prerequisites or constraints for using this update operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_todoB
Update an existing todo in Things
Args: id: ID of the todo to update title: New title notes: New notes when: New schedule deadline: New deadline tags: New tags completed: Mark as completed canceled: Mark as canceled list: The title of a project or area to move the to-do into list_id: The ID of a project or area to move the to-do into (takes precedence over list) heading: The heading title to move the to-do under heading_id: The heading ID to move the to-do under (takes precedence over heading)
| Name | Required | Description | Default |
|---|---|---|---|
| canceled | No | ||
| completed | No | ||
| deadline | No | ||
| heading | No | ||
| heading_id | No | ||
| id | Yes | ||
| list | No | ||
| list_id | No | ||
| notes | No | ||
| tags | No | ||
| title | No | ||
| when | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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. While 'update' implies mutation, it doesn't describe permission requirements, whether partial updates are supported, what happens when moving todos between lists/headings, or error conditions. The description only lists parameters without explaining the tool's behavior.
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?
The description is front-loaded with the purpose statement, but the parameter documentation is lengthy (12 items). While each parameter explanation is concise, the overall structure could be improved by grouping related parameters or providing more conceptual guidance before the detailed list.
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?
For a mutation tool with 12 parameters, no annotations, and 0% schema description coverage, the description does well on parameter semantics but lacks behavioral context. The presence of an output schema reduces the need to describe return values, but important aspects like error handling, partial update behavior, and permission requirements remain undocumented.
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?
The description provides clear semantic explanations for all 12 parameters beyond their titles in the schema (which has 0% description coverage). It clarifies precedence rules ('takes precedence over list/heading'), explains what each field controls, and distinguishes between title-based and ID-based parameters. This significantly compensates for the schema's lack of descriptions.
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?
The description clearly states 'Update an existing todo in Things' which specifies the verb (update), resource (todo), and system (Things). However, it doesn't differentiate from sibling 'update_project' or explain how this differs from other update operations in the system.
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?
The description provides no guidance on when to use this tool versus alternatives like 'update_project' or when to use it versus creating new todos with 'add_todo'. There's no mention of prerequisites, constraints, or typical use cases for updating versus other operations.
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. Dates show when Glama detected each change.
22 tool updates
v1.0.0- First observed
add_project - First observed
add_todo - First observed
get_anytime - First observed
get_areas - First observed
get_headings - First observed
get_inbox - First observed
get_logbook - First observed
get_projects - First observed
get_recent - First observed
get_someday - First observed
get_tagged_items - First observed
get_tags - First observed
get_today - First observed
get_todos - First observed
get_trash - First observed
get_upcoming - First observed
search_advanced - First observed
search_items - First observed
search_todos - First observed
show_item - First observed
update_project - First observed
update_todo
TDQS
Most tools have distinct purposes targeting specific resources like projects, todos, areas, or lists, with clear separation between creation, retrieval, and update operations. However, there is some overlap between search_items, search_todos, and search_advanced, which could cause confusion about which to use for different search scenarios.
Tool names follow a highly consistent verb_noun pattern throughout, with verbs like add, get, update, and search paired with specific nouns (e.g., add_project, get_areas, update_todo, search_items). All names use snake_case uniformly, making the set predictable and easy to navigate.
With 22 tools, the count is on the higher side for a task management server, bordering on heavy. While many tools serve distinct functions, the number might feel overwhelming compared to a more streamlined set, though it's not extreme given the domain's complexity.
The tool set provides comprehensive coverage for task management, including full CRUD operations for projects and todos, retrieval of various lists (e.g., inbox, today, upcoming), search capabilities, and management of related entities like areas, tags, and headings. No obvious gaps exist for core workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceLets you use Claude Desktop to interact with your task management data in Things app, enabling you to create tasks, analyze projects, manage priorities, and implement productivity workflows through natural language.36MIT
- AlicenseBqualityDmaintenanceEnables Claude to interact with Things 3 on macOS, allowing users to create, update, and manage to-dos and projects, list tasks, search items, and navigate through Things lists using natural language.202017ISC
- AlicenseBqualityDmaintenanceEnables Claude to interact with Things 3 task management, allowing creation, analysis, and management of tasks, projects, and tags via natural language.22MIT
- AlicenseBqualityDmaintenanceEnables Claude to interact with Things 3 task management, allowing natural language task creation, project analysis, and GTD workflow automation.2444MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hald/things-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server