Skip to main content
Glama
Krishna-Desiraju

Apple Reminders MCP Server

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Every tool has a clearly distinct purpose with no ambiguity. Each targets a specific action (create, get, update, delete, complete, search) on specific resources (reminders, lists) or states (completed, overdue, today's). The descriptions make it easy to differentiate between similar tools like get_reminders, get_completed_reminders, get_overdue_reminders, and get_todays_reminders.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern using snake_case throughout. The naming is predictable and readable, with verbs like create, get, update, delete, complete, uncomplete, and search consistently applied to nouns like reminder, reminders, or lists.

    Tool Count5/5

    With 11 tools, the count is well-scoped for a reminders management server. Each tool earns its place by covering essential CRUD operations, status management, filtering, and list handling, without being excessive or too sparse for the domain.

    Completeness5/5

    The tool set provides complete coverage for Apple Reminders management. It includes full CRUD for reminders (create, get, update, delete), lifecycle management (complete/uncomplete), filtering by status and date (completed, overdue, today's, all), search capabilities, and list operations. There are no obvious gaps that would hinder agent workflows.

  • Average 3/5 across 11 of 11 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • 0 of 1 community issues answered or closed in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but lacks behavioral details. It implies a mutation (marking as complete) but doesn't disclose side effects (e.g., if completion triggers notifications, updates timestamps, or affects list visibility), permissions required, or error conditions. This leaves gaps for safe agent operation.

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

    Conciseness5/5

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

    The description is a single, direct sentence with zero waste—'Mark a reminder as complete' efficiently conveys the core action. It's front-loaded and appropriately sized for a simple tool, earning full marks for conciseness.

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

    Completeness2/5

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

    Given the mutation nature (implied by 'Mark'), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'complete' means behaviorally, potential return values, or error handling. For a tool that likely changes system state, more context is needed for reliable agent use.

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

    Parameters3/5

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

    Schema description coverage is 100%, with the single parameter 'id' documented as 'The reminder ID to mark as complete (required)'. The description adds no additional meaning beyond this, such as ID format or sourcing. Baseline 3 is appropriate since the schema adequately covers parameter semantics.

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

    Purpose4/5

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

    The description clearly states the action ('Mark') and resource ('a reminder') with a specific outcome ('as complete'). It distinguishes from siblings like 'uncomplete_reminder' by specifying the opposite action. However, it doesn't explicitly mention what 'complete' entails (e.g., status change, timestamp update), keeping it from 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.

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the reminder must exist and be incomplete), contrast with 'update_reminder' for partial changes, or specify scenarios like marking overdue reminders. The agent must infer usage from context alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a reminder but doesn't cover aspects like whether it requires specific permissions, how errors are handled, what the return value looks like, or any rate limits. This is a significant gap for a mutation tool with zero 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.

    Conciseness4/5

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

    The description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words, though it could be slightly more specific (e.g., noting it's for Apple Reminders only). Every word earns its place, but it's not maximally dense.

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

    Completeness2/5

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

    Given the complexity of a creation tool with 8 parameters, no annotations, and no output schema, the description is incomplete. It lacks behavioral context, usage guidelines, and details on the return value, leaving significant gaps for an AI agent to understand how to invoke it correctly beyond basic parameter input.

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

    Parameters3/5

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

    The schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, such as explaining interactions between parameters or default behaviors. Baseline 3 is appropriate when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('create a new reminder') and specifies the target system ('in Apple Reminders'), which distinguishes it from generic creation tools. However, it doesn't explicitly differentiate from sibling tools like 'update_reminder' beyond the verb 'create' versus 'update'.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'update_reminder' or 'complete_reminder', nor does it mention prerequisites such as authentication or list availability. It lacks explicit usage context or exclusions.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'permanently' indicates irreversible deletion, it doesn't address important behavioral aspects like required permissions, whether deletion affects associated data, confirmation requirements, or error conditions. The description is minimal for a destructive operation.

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

    Conciseness5/5

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

    The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the essential action and includes the critical qualifier 'permanently' to indicate severity. Every word earns its place.

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

    Completeness2/5

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

    For a destructive operation with no annotations and no output schema, the description is inadequate. It doesn't explain what 'permanently' entails operationally, what happens to the deleted data, whether deletion can be undone, what permissions are required, or what the response looks like. Given the tool's destructive nature, more context is needed.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already fully documents the single 'id' parameter. The description adds no additional parameter information beyond what the schema provides, which is acceptable given the complete schema coverage but doesn't enhance understanding.

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

    Purpose4/5

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

    The description clearly states the action ('Delete') and resource ('a reminder') with the qualifier 'permanently', which distinguishes it from temporary removal operations. However, it doesn't explicitly differentiate from sibling tools like 'uncomplete_reminder' or 'complete_reminder' that might also affect reminder status.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools that manipulate reminders (complete_reminder, uncomplete_reminder, update_reminder), there's no indication of when deletion is appropriate versus status changes or modifications.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states the tool retrieves reminders with optional filtering, but lacks critical behavioral details: it does not specify if this is a read-only operation, whether it requires authentication, how results are returned (e.g., pagination, format), or any rate limits. The description is minimal and misses key 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the purpose and optional filtering. It is front-loaded with the core action and avoids unnecessary words, making it easy to parse quickly.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete. It does not explain return values, error handling, or behavioral traits like safety or performance. For a tool with no structured metadata, the description should provide more context to guide the agent effectively, but it remains overly brief.

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

    Parameters3/5

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

    Schema description coverage is 100%, with the parameter 'completed' fully documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., no examples, edge cases, or usage tips). With high schema coverage, the baseline is 3, as the description does not compensate but does not detract.

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

    Purpose4/5

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

    The description clearly states the action ('Get all reminders') and specifies optional filtering by completion status. It distinguishes from siblings like 'get_completed_reminders' and 'get_overdue_reminders' by indicating it can retrieve all reminders or filter by completion, but does not explicitly contrast with 'search_reminders' or 'get_todays_reminders', which limits differentiation.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'get_completed_reminders' (for only completed), 'get_overdue_reminders' (for overdue ones), or 'search_reminders' (for more complex queries). It mentions optional filtering but does not specify 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.

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states the tool performs a mutation ('Mark'), implying it changes data, but doesn't disclose behavioral traits such as permissions required, whether the operation is reversible, error conditions (e.g., invalid ID), or what happens if the reminder is already incomplete. For a mutation tool with zero annotation coverage, this is a significant gap.

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

    Conciseness5/5

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

    The description is a single, efficient sentence with zero waste. It is front-loaded and directly states the tool's purpose without unnecessary elaboration, making it easy to parse quickly.

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

    Completeness2/5

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

    Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., side effects, error handling) and doesn't explain what the tool returns. For a tool that changes state, more context is needed to ensure safe and correct usage.

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

    Parameters3/5

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

    Schema description coverage is 100%, with the single parameter 'id' fully documented in the schema as 'The reminder ID to mark as incomplete (required)'. The description adds no additional meaning beyond this, such as ID format or examples. Baseline 3 is appropriate when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Mark') and resource ('a reminder') with the specific state change ('as incomplete'). It distinguishes from 'complete_reminder' by specifying the opposite state, but doesn't explicitly differentiate from other mutation tools like 'update_reminder' or 'delete_reminder' beyond the implied state change.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the reminder must exist and be currently marked as complete), nor does it contrast with similar tools like 'update_reminder' which might also handle state changes. Usage is implied but not explicitly defined.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden but only states it updates attributes without disclosing behavioral traits. It lacks details on permissions required, whether updates are reversible, rate limits, error handling, or what happens to unspecified attributes (e.g., partial vs. full updates).

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core action ('update an existing reminder') without unnecessary words. Every part earns its place, 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.

    Completeness2/5

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

    Given the complexity of a mutation tool with 9 parameters, no annotations, and no output schema, the description is incomplete. It fails to address key contextual aspects like behavioral transparency, usage guidelines, or output expectations, leaving significant gaps for an AI agent.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema fully documents all 9 parameters. The description adds no additional meaning beyond implying 'new attributes' map to the parameters, but doesn't clarify semantics like how tags replace or merge, or format specifics beyond the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the verb ('update') and resource ('existing reminder'), specifying it modifies attributes. It distinguishes from create_reminder by focusing on existing items, though it doesn't explicitly differentiate from other sibling tools like complete_reminder or uncomplete_reminder.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives is provided. The description doesn't mention prerequisites (e.g., needing an existing reminder ID), exclusions, or comparisons to sibling tools like complete_reminder or delete_reminder, leaving usage context unclear.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action is to 'Get' (implying a read operation) but doesn't cover aspects like pagination, rate limits, authentication needs, or what happens if date parameters are omitted. For a tool with zero 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's 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.

    Completeness3/5

    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 optional parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic action and scope but lacks details on usage guidelines, behavioral traits, and output format, which are important for an agent to use it effectively without annotations.

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

    Parameters3/5

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

    The schema description coverage is 100%, with both parameters ('startDate' and 'endDate') documented as optional ISO 8601 dates. The description adds context by implying date-range filtering but doesn't provide additional semantics beyond what the schema already states, such as default behaviors or format details. This meets the baseline for high schema coverage.

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

    Purpose4/5

    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 'completed reminders' with the scope 'within a date range', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_reminders' or 'get_overdue_reminders' beyond the 'completed' qualifier, which is why it doesn't achieve 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.

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives such as 'get_reminders' (which might include all reminders) or 'get_overdue_reminders'. There's no mention of prerequisites, exclusions, or contextual usage, leaving the agent to infer based on tool names alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states what the tool does but lacks behavioral details: it doesn't mention permissions needed, whether results are paginated, if it's a read-only operation, or what the return format looks like. For a tool with zero 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.

    Conciseness5/5

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

    The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple, parameterless tool. Every word earns its place.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'reminders due today' means (e.g., timezone handling, recurrence), the return structure, or error conditions. For a tool in a rich sibling set with no structured support, more context is needed.

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

    Parameters4/5

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

    The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, which is appropriate here. Baseline is 4 for zero parameters, as no compensation is needed.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('all reminders due today'), making the purpose immediately understandable. It distinguishes from siblings like 'get_reminders' (general) and 'get_overdue_reminders' (past due), but doesn't explicitly contrast them. The specificity is good but lacks explicit sibling differentiation.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like 'get_reminders' (which might allow date filtering) or 'get_overdue_reminders'. The description implies usage for today's reminders only, but doesn't state exclusions or name specific alternatives, leaving the agent to infer context from sibling names alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the search functionality but lacks details on permissions, rate limits, pagination, or response format. For a search tool with zero annotation coverage, this is a significant gap in transparency about how the tool behaves beyond its basic function.

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

    Conciseness5/5

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

    The description is a single, efficient sentence: 'Search reminders by text in title or notes.' It is front-loaded with the core purpose, has zero waste, and is appropriately sized for the tool's complexity. Every word earns its place, 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.

    Completeness3/5

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

    Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose but lacks behavioral context, usage guidelines, and output details. Without annotations or an output schema, the description should do more to compensate, but it meets a minimum viable standard with clear gaps.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents both parameters ('searchText' and 'completed') fully. The description implies text-based searching but does not add syntax, format details, or examples beyond what the schema provides. With high schema coverage, the baseline score of 3 is appropriate as the description adds minimal extra value.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Search reminders by text in title or notes.' It specifies the verb ('search'), resource ('reminders'), and scope ('by text in title or notes'), making it easy to understand what the tool does. However, it does not explicitly differentiate from sibling tools like 'get_reminders' or 'search_reminders' (if any other search tools exist), 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.

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_reminders', 'get_completed_reminders', and 'get_overdue_reminders', it's unclear if this tool is for general retrieval or specific text-based searches. There are no explicit when/when-not instructions or named alternatives, leaving usage ambiguous.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only operation ('Get'), but doesn't disclose critical traits like authentication requirements, rate limits, pagination, error handling, or what 'all' entails (e.g., scope, limits). For a tool with zero annotation coverage, this is inadequate, though 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose ('Get all reminder lists') with a clarifying parenthetical ('calendars'). There is no wasted verbiage, repetition, or unnecessary elaboration, making it optimally concise for its simple function.

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

    Completeness3/5

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

    Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is minimally complete—it states what the tool does. However, it lacks context for usage (e.g., how it fits with siblings) and behavioral details (e.g., response format, errors), which would be helpful even for simple tools. It meets the bare minimum but doesn't excel.

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

    Parameters4/5

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

    The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, earning a baseline high score. However, it doesn't reach 5 because it could optionally note the lack of parameters (e.g., 'no inputs required'), but this is minor.

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

    Purpose4/5

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

    The description clearly states the action ('Get') and resource ('all reminder lists (calendars)'), making the purpose immediately understandable. It distinguishes itself from sibling tools that focus on individual reminders or specific subsets (e.g., get_todays_reminders, get_overdue_reminders) by targeting lists/calendars. However, it doesn't explicitly contrast with all siblings (e.g., get_reminders might also retrieve lists), keeping it from 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.

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), differentiate from similar tools like get_reminders (which might also list items), or specify use cases (e.g., for overview vs. detailed views). This leaves the agent without context for selection among the many sibling tools.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves overdue reminders but doesn't describe return format (e.g., list structure, fields), pagination behavior, error conditions, or authentication requirements. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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

    Conciseness5/5

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

    The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose ('Get all overdue reminders'), making it immediately understandable without requiring additional parsing. Every word earns its place by specifying the action and resource.

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

    Completeness3/5

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

    Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on return values, error handling, or behavioral traits. For a read-only tool with no parameters, this might be sufficient, but the absence of output schema means the description should ideally hint at the response format.

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

    Parameters4/5

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

    The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details beyond the schema, which is appropriate. A baseline of 4 is applied since there are no parameters to document, and the description doesn't introduce unnecessary complexity.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('overdue reminders'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'get_todays_reminders' and 'get_completed_reminders' by specifying the time-based filter. However, it doesn't explicitly mention what constitutes 'overdue' (e.g., past-due reminders), leaving some ambiguity.

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

    Usage Guidelines3/5

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

    The description implies usage context by specifying 'overdue' reminders, suggesting it should be used when retrieving past-due items rather than all reminders or those due today. However, it lacks explicit guidance on when to use this tool versus alternatives like 'search_reminders' or 'get_reminders', and doesn't mention prerequisites or exclusions.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

apple-reminders-swift-mcp-server MCP server

Copy to your README.md:

Score Badge

apple-reminders-swift-mcp-server MCP server

Copy to your README.md:

Latest Blog Posts

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/Krishna-Desiraju/apple-reminders-swift-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server