reminders-mcp
Provides tools for managing Apple Reminders, including listing, creating, updating, completing, and deleting reminders and reminder lists, with support for due dates, notes, and priorities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@reminders-mcpshow today's reminders"
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.
reminders-mcp
An MCP (Model Context Protocol) server for managing Apple Reminders via the remindctl CLI on macOS. It is intended for Claude Desktop and Claude CoWork, which run sandboxed and cannot run remindctl directly; this server runs as a separate process and talks to remindctl for you.
Prerequisites
macOS (Apple Reminders framework required)
Node.js >= 18
remindctl — install via Homebrew:
brew install steipete/tap/remindctlOn first run, grant Reminders access when macOS prompts. Check status with
remindctl status, request access withremindctl authorize, or enable manually in System Settings > Privacy & Security > Reminders.
Related MCP server: Apple Reminders MCP Server
Tools
Tool | Description |
| Check Apple Reminders authorization status |
| View reminders by filter (today, tomorrow, week, overdue, upcoming, completed, all, or YYYY-MM-DD date) and optional list name |
| List all reminder lists with counts |
| Create a new reminder list |
| Rename an existing list |
| Delete a list and all its reminders |
| Create a reminder with optional list, due date, notes, and priority |
| Modify a reminder's title, list, due date, notes, priority, or completion status |
| Mark one or more reminders as completed |
| Delete one or more reminders |
Installation
npm install -g reminders-mcpConfiguration
Edit claude_desktop_config.json (macOS):
Path:
~/Library/Application Support/Claude/claude_desktop_config.json
Add the MCP server (macOS only; the app uses Apple Reminders):
{
"mcpServers": {
"reminders-mcp": {
"command": "reminders-mcp",
"args": []
}
}
}Restart Claude Desktop or CoWork. The reminders tools (e.g. status, show-reminders) should appear in the tool list.
Development
git clone https://github.com/mikakoivisto/reminders-mcp.git
cd reminders-mcp
npm install
npm run buildRun in watch mode during development:
npm run devTest the server directly (newline-separated JSON-RPC messages):
printf '%s\n%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | node dist/index.jsLicense
MIT
Available Tools
10 toolsadd-reminderAdd ReminderA
Create a new reminder in Apple Reminders. Supports setting list, due date, notes, and priority.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Due date: 'today', 'tomorrow', 'YYYY-MM-DD', or 'YYYY-MM-DD HH:mm' | |
| list | No | List name to add the reminder to (defaults to Reminders) | |
| notes | No | Additional notes | |
| title | Yes | Reminder title | |
| priority | No | Priority level |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of disclosing behavior. It only states 'Create a new reminder' and lists supported attributes, but does not mention success/failure behavior, permissions, default list handling, or what happens if a specified list does not exist. The description is minimal and lacks depth.
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 two concise sentences: the first identifies the action, the second summarizes capabilities. Every word is useful, and there is no redundancy or irrelevant detail.
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?
The tool has no output schema and no annotations, yet the description is only a basic overview. It does not clarify return values, default list behavior, error cases, or the interaction with sibling tools (e.g., whether the list must pre-exist). It is adequate for a simple create operation but leaves several gaps.
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 100%, so the schema already documents all five parameters. The description's phrase 'list, due date, notes, and priority' merely echoes the schema without adding extra meaning or usage nuances.
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 explicitly states 'Create a new reminder in Apple Reminders,' using a specific verb and resource, and lists supported fields (list, due date, notes, priority). This clearly distinguishes it from sibling tools like edit-reminder, complete-reminders, and delete-reminders.
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 clearly indicates the tool is for creating new reminders, which sets it apart from siblings for editing, completing, or deleting reminders. However, it does not explicitly mention alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete-remindersComplete RemindersA
Mark one or more reminders as completed. Reference by index numbers (from show output) or ID/UUID prefixes.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Reminder index numbers or ID/UUID prefixes to mark complete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explains the input interpretation (indexes or UUID prefixes) but does not mention what happens after completion, idempotency, or error handling. For a simple mutation tool, this is adequate but leaves some gaps.
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 two sentences, front-loaded with the primary action, and includes essential reference information without any wasted words. It earns a high score for efficiency and 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?
For a simple tool with one parameter and no output schema, the description covers the core usage: what the tool does and how to specify inputs. It doesn't elaborate on return values or error cases, but given the low complexity, this is nearly complete. A minor gap is the lack of mention of what constitutes 'completed' status, but this is not critical.
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 already documents the 'ids' parameter with a description that mirrors the tool description ('Reminder index numbers or ID/UUID prefixes to mark complete'). Since schema coverage is 100%, the description adds little beyond what the schema provides, meeting the baseline of 3.
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 ('Mark one or more reminders as completed') with a specific verb and resource. It also distinguishes from siblings by focusing on the 'complete' operation, distinct from add/edit/delete. The reference method (index numbers or ID/UUID prefixes) adds further specificity.
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 gives practical usage guidance by explaining how to reference reminders ('from show output' or ID/UUID prefixes), which implies a prerequisite workflow. It does not explicitly contrast with alternatives like delete-reminders, but the context is clear enough for an agent to choose this tool for completing tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-listCreate Reminder ListB
Create a new reminder list with the given name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the list to create |
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 for behavioral disclosure. It only states the action without mentioning side effects, what happens if a list with the same name already exists, permissions required, or the return value. This lack of detail leaves the agent without important behavioral context, though the description is not misleading.
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, concise sentence that front-loads the verb and object. Every word earns its place, and there is no redundancy or filler. It is appropriately sized for the tool's simplicity.
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?
The tool has only one parameter and no output schema, so the description is mostly adequate. However, it does not address edge cases like duplicate list names, naming constraints, or what happens on success/failure. Given the low complexity, this is a moderate gap, making the description minimally viable but not complete.
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 input schema fully describes the 'name' parameter with a clear description: 'Name of the list to create.' The description's phrase 'with the given name' adds no new meaning beyond what the schema already provides. Since schema coverage is 100%, the baseline is 3, and the description does not elevate it.
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 function: 'Create a new reminder list with the given name.' It uses the specific verb 'create' and names the resource 'reminder list', distinguishing it from siblings like 'rename-list' and 'delete-list'. This is a clear and unambiguous purpose statement.
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, such as 'list-lists' to check existing lists or 'rename-list' to modify one. There are no prerequisites, exclusions, or context about when creation is appropriate. The agent must infer usage solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-listDelete Reminder ListADestructive
Delete a reminder list and all its reminders. This action cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the list to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint: true, and the description adds 'This action cannot be undone,' reinforcing irreversibility beyond the annotation. It also specifies that all reminders are deleted, which is a destructive consequence. This is useful behavioral context, though it does not cover potential permission requirements or other edge cases.
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 two sentences and 15 words, immediately stating the action and its consequence. It is front-loaded with the key verb and resource, and every sentence adds value. There is no extraneous 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?
For a simple one-parameter destructive tool with annotations covering the safety profile, the description is complete. It covers the action, the scope (list plus reminders), and irreversibility. No output schema exists, but none is necessary given the simplicity. The description provides all needed context for an AI agent to use the tool correctly.
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 coverage is 100% for the 'name' parameter, with a description 'Name of the list to delete.' The tool description does not add any additional parameter semantics beyond the schema, so the baseline score of 3 is appropriate.
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 identifies the tool's function: 'Delete a reminder list and all its reminders.' It uses a specific verb and resource, and the note about deleting all reminders distinguishes it from sibling tools like delete-reminders, which handles individual reminders. This is a clear and unambiguous purpose statement.
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 for deleting an entire list, but it does not explicitly state when to use this tool versus alternatives like delete-reminders. No exclusions or alternative tools are mentioned. The context is clear about the scope, but lacks explicit guidance on choosing this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-remindersDelete RemindersADestructive
Delete one or more reminders. Reference by index numbers (from show output) or ID/UUID prefixes. This action cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Reminder index numbers or ID/UUID prefixes to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already marks destructiveHint: true, and the description adds 'This action cannot be undone,' which is critical behavioral context beyond the annotation. It discloses irreversibility but no other side effects, which is sufficient for a simple delete 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?
Two short sentences that are front-loaded with the action and include a crucial caveat about irreversibility. No wasted words.
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 one-parameter delete tool with a destructiveHint annotation and a clear reference to show output for indices, the description covers all necessary context. The lack of an output schema is acceptable for a destructive action, but it could have mentioned what happens to related data or confirmations.
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 already documents the 'ids' parameter with a matching description, so schema coverage is 100%. The description repeats the same information without adding new semantics, so the baseline of 3 is appropriate.
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 deletes reminders, with a specific verb ('delete') and resource ('reminders'). It differentiates from sibling tools like complete-reminders by emphasizing permanent removal, and the reference to index numbers from show output adds precise scope.
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?
It provides context that reminders are referenced by index numbers from show output or ID/UUID prefixes, implying a prerequisite viewing step. However, it does not explicitly contrast with alternatives like complete-reminders or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit-reminderEdit ReminderA
Modify an existing reminder. Reference by index number (from show output) or ID/UUID prefix. Can change title, list, due date, notes, priority, or completion status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Reminder index number or ID/UUID prefix | |
| due | No | Set due date: 'today', 'tomorrow', 'YYYY-MM-DD', or 'YYYY-MM-DD HH:mm' | |
| list | No | Move to a different list | |
| notes | No | Set or update notes | |
| title | No | New title | |
| clearDue | No | Remove the due date | |
| complete | No | Mark as completed | |
| priority | No | Change priority level | |
| incomplete | No | Mark as incomplete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden of behavioral disclosure. It explains the reference method and lists modifiable fields, but does not state whether unspecified fields remain unchanged, what happens on invalid references, or whether the operation is a partial update. 'Modify' implies a write operation, so basic behavior is clear, but deeper semantics are missing.
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 two sentences, front-loaded with the core action, and contains no filler. It efficiently covers the purpose, reference method, and modifiable fields without unnecessary detail.
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?
Despite having 9 parameters and no output schema, the description adequately captures the tool's scope and usage. It does not explicitly mention every parameter (e.g., 'clearDue', 'incomplete'), but the schema covers them. The description provides enough behavioral context for moderate complexity, though it could be more explicit about the update semantics.
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 coverage is 100%, with each parameter having a description, so baseline is 3. The description adds a small hint for the 'id' parameter ('from show output') not present in the schema, but otherwise repeats what the schema already covers. The added value is minimal.
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 opens with 'Modify an existing reminder', which clearly states the verb and resource. It distinguishes from siblings like 'add-reminder' and 'delete-reminder' by focusing on modification. The reference method ('index number or ID/UUID prefix') adds specificity beyond the general purpose.
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 clear context on what can be changed ('title, list, due date, notes, priority, or completion status') and how to reference the reminder. It does not explicitly compare to alternatives like 'complete-reminders', but the scope is implicitly clear, so no exclusion guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-listsList Reminder ListsA
List all reminder lists. Returns each list's ID, title, reminder count, and overdue count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return fields (ID, title, reminder count, overdue count), adding clarity about behavior. Since there are no annotations, this information helps the agent understand what to expect. It does not state limitations or side effects, but as a read-only list operation, the coverage is sufficient.
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?
Two sentences: the first states the action, the second specifies the return fields. No filler, appropriately sized.
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?
With zero parameters and no output schema, the description fully covers the tool's purpose and expected return data, making it complete for an agent to use correctly.
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, so the baseline is 4. The description adds no parameter-specific information because none are needed.
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 'List all reminder lists' with a specific verb and resource. It also lists the return fields, distinguishing it from sibling tools like show-reminders (which likely shows reminders within a list) and create-list.
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 clearly indicates this is the tool for listing all reminder lists, providing context for when to use it. It does not explicitly mention alternatives or exclusions, but the simplicity of the operation makes the usage unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename-listRename Reminder ListA
Rename an existing reminder list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Current name of the list | |
| newName | Yes | New name for the list |
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. It only states the action and does not disclose behaviors such as error conditions (e.g., list not found, duplicate newName), side effects, or whether the operation is reversible. This is a significant gap 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 a single, front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose without redundancy or unnecessary detail.
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?
The tool is simple with only two well-documented parameters and no output schema. However, the lack of annotations and absence of any information about return values, error handling, or preconditions leaves some gaps. It is adequate for basic invocation but not fully complete for an agent needing robust behavioral 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?
Input schema coverage is 100% with descriptive parameter names and brief descriptions ('Current name of the list', 'New name for the list'). The description adds no additional parameter context, so a baseline of 3 is appropriate as the schema carries the semantic weight.
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 uses a specific verb 'Rename' with a clear resource 'existing reminder list'. It distinguishes itself from sibling tools like create-list and delete-list by specifying the action is a rename on an existing entity.
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 when to use the tool (when renaming an existing reminder list) but does not explicitly contrast with alternatives or state exclusions. The word 'existing' provides some context, but no direct comparison to sibling tools is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show-remindersShow RemindersA
View reminders filtered by time range or status. Supports today, tomorrow, week, overdue, upcoming, completed, all, or a specific YYYY-MM-DD date. Optionally filter by list name.
| Name | Required | Description | Default |
|---|---|---|---|
| list | No | Limit results to a specific reminder list name | |
| filter | No | Filter: today, tomorrow, week, overdue, upcoming, completed, all, or YYYY-MM-DD date. Defaults to today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does imply a read-only operation with 'View', and it enumerates supported filter values, which provides behavioral context. However, it does not explicitly state the absence of side effects, authentication needs, or how results are returned, so it's minimally adequate but not rich.
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 two sentences, front-loaded with the core purpose, and every word contributes. It efficiently lists the supported filter values and the optional list filter without redundancy, making it appropriately sized.
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 simple tool with two optional parameters and no output schema, the description covers the core usage: viewing reminders with various filters. It does not mention default behavior (though the schema does) or output format, but these are minor gaps for a read-only listing tool, so it's fairly complete.
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 100%, with both 'filter' and 'list' having explicit descriptions. The tool description adds only a brief echo ('Optionally filter by list name') and does not elaborate on parameter semantics beyond what the schema already provides, so it meets the baseline but adds little extra value.
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 ('View') and resource ('reminders'), and enumerates specific filter options (today, tomorrow, week, etc.). This distinguishes 'show-reminders' from sibling tools like 'add-reminder', 'delete-reminders', or 'complete-reminders', which imply different actions.
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 gives clear context on what filters are available (time range or status) and that list name is an optional filter. However, it does not explicitly state when to prefer this tool over siblings or mention any exclusions, so it falls just short of explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusReminders StatusA
Check Apple Reminders authorization status. Returns whether remindctl has permission to access Reminders.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It states the tool 'checks' and returns a boolean-like result, implying a read-only operation with no side effects. However, it does not explicitly state that it is safe to call repeatedly or that it does not modify data, leaving some room for inference.
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, focused sentence that states the action, the resource, and the return value. It is front-loaded with the most important information and contains no filler or redundancy, making it highly concise and well-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?
For a simple status-checking tool with no parameters and no output schema, the description adequately conveys what it does and what it returns. It could specify the exact return format (e.g., boolean) for full completeness, but the qualitative description is sufficient given the tool's simplicity.
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, and the schema coverage is 100%, meaning there is nothing for the description to add beyond what the schema already conveys. The baseline for zero-parameter tools is 4, and the description does not need to clarify parameter meanings.
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 verb 'Check' and the resource 'Apple Reminders authorization status', and it clarifies the purpose by indicating that it returns whether remindctl has permission. This distinguishes it from sibling tools that manage reminders data, making the purpose 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 implies the tool is used to verify authorization before or after other reminder operations, but it does not explicitly state when to use it or mention alternatives. Since there are no sibling tools that perform the same function, the implied usage is clear, but no explicit guidance is provided.
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.
10 tool updates
v1.0.0- First observed
add-reminder - First observed
complete-reminders - First observed
create-list - First observed
delete-list - First observed
delete-reminders - First observed
edit-reminder - First observed
list-lists - First observed
rename-list - First observed
show-reminders - First observed
status
TDQS
Scored across 10 tools
Each tool targets a distinct resource+action: list management, reminder management, status check, and viewing. No two tools have overlapping purposes, as show-reminders is for reminders while list-lists is for lists, and edit-reminder vs complete-reminders serves singular vs bulk completion.
Most tools follow a consistent verb-noun hyphenated pattern (show-reminders, create-list, add-reminder, etc.), but 'status' is a single noun that does not fit the verb-noun convention. This is a minor deviation in an otherwise predictable naming scheme.
With 10 tools, the server is well-scoped for a reminders domain, covering both list and reminder operations without bloat. Each tool earns its place, and the count is within the ideal range for maintainability.
The tool set provides full lifecycle coverage: lists can be created, renamed, listed, and deleted; reminders can be added, shown, edited, completed, and deleted. The addition of a status check for authorization fills a practical need, leaving no obvious gaps.
Maintenance
Related MCP Connectors
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA macOS-only MCP server that exposes Apple Reminders to AI clients, enabling create, read, update, delete, search, and organization of reminders and lists through natural language.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server enabling AI assistants to create, read, list, and delete Apple Reminders on macOS via AppleScript.11Apache 2.0
- AlicenseAqualityDmaintenanceAn MCP server that connects Claude Desktop to Apple Reminders on macOS via AppleScript.57 npmMIT
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol (MCP) server that integrates Apple Reminders with Claude Desktop, enabling comprehensive task management and reminders directly through conversations with Claude.89 npm4MIT