TimeTree-MCP
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clear, distinct purpose: calendar listing, event listing, event creation, event updating, poster workspace inspection, and poster processed marking. No two tools overlap in function, and the descriptions reinforce the boundaries.
Naming Consistency4/5Most tools follow a consistent verb_noun pattern (list_calendars, list_events, create_event, update_event, mark_poster_processed). The exception is poster_workspace_status, which uses a noun_noun structure, but it is still understandable and does not create confusion.
Tool Count5/5Six tools is well-scoped for the server's dual purpose of TimeTree calendar management and local poster workflow. Each tool earns its place without redundancy or unnecessary bloat.
Completeness4/5The server covers the core lifecycle of events (list, create, update) and the poster workflow (status, mark processed, integrated image upload). Minor gaps include no delete_event or get_single_event, but these can be worked around with list_events and update_event, so the coverage is adequate for typical use.
Average 4.3/5 across 6 of 6 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit 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
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
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.jsonto 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
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It usefully discloses the public-calendar scope, date-range filtering, and timezone default behavior. However, it does not mention pagination, ordering, limits, return shape, or error/edge behavior, leaving moderate gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences, front-loaded with the action and resource. The second sentence efficiently provides the key usage prerequisites and timezone default. There is no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with a fully documented schema and no output schema, the description covers purpose, prerequisites, timezone default, and parameter provenance. It is slightly incomplete because it does not characterize the return data, but the operation is simple and the schema handles the parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all four parameters with 100% coverage, including the alias_code source and ISO date format. The description mostly restates these facts, adding little semantic value beyond reinforcing the parameter relationships. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'List' and clearly identifies the resource: 'events in a TimeTree public calendar within a date range.' It also references alias_code from list_calendars, distinguishing this tool from sibling list_calendars and create/update event tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete guidance: use alias_code (from list_calendars) and ISO date strings for from/to, and notes the default timezone. It doesn't explicitly state when not to use it or mention alternatives, but the read-only list purpose and sibling tool names make appropriate usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that timezone defaults to Asia/Taipei, that the calendar must be managed by the authenticated account, and that the return value includes the event id and public URL. This goes beyond the schema by adding 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with a clear front-loaded purpose, a usage workflow, a default value note, and the return value. No filler; every sentence contributes valuable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 11 parameters and no output schema, the description adequately covers the main workflow, return value, and default timezone. It connects to sibling tools (list_calendars for alias_code, poster processing context) and leaves parameter details to the well-documented schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats some parameter info (alias_code, title, start, location, description) but adds little semantic nuance beyond what the schema already provides. It does hint that description should be 1-2 sentences for poster events, which is a minor addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create an event') with a specific resource ('TimeTree public calendar'), and adds the scope 'that the authenticated account manages'. This distinguishes it from sibling tools like list_events and update_event, and includes a concrete usage directive ('after reading an event poster').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance ('after reading an event poster') and directs the user to obtain alias_code from list_calendars. It implies the creation context versus update_event, though it doesn't explicitly state when not to use or name alternatives for existing events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure responsibility. It explicitly states side effects: creates folders and moves files, and notes the 'by default' behavior for the move operation. It does not mention error conditions, permissions, or whether moves are reversible, but covers the essential mutating actions clearly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, well-structured sentence that front-loads the purpose and efficiently packs all key behaviors: side effects, default action, and return value. There is no redundant wording, and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately explains the return value ('pending poster image paths'). It also covers side effects. However, it does not enumerate the 'standard folders' beyond 00_待處理, which could be useful for understanding the workspace structure. This minor gap prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for both root and move_loose_images_to_pending. The description reiterates the default behavior of moving images but adds no new semantic information beyond the schema. Thus it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's function with a specific verb ('Prepare and inspect') and resource ('local poster workflow folder'). It details three concrete actions: creating standard folders if missing, moving loose image files, and returning pending poster paths. This distinguishes it from sibling tools focused on calendar/event management or marking processed posters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: it prepares the workspace and returns items that 'should be read next,' indicating a precursor step. However, it does not explicitly mention alternatives or when not to use it. Sibling tools like mark_poster_processed are clearly different but not referenced, so the guidance is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses full-replace PUT semantics, the dangerous cover-clearing side effect when neither image_path nor remove_image is passed, and the need to re-upload to preserve the cover. This goes well beyond a generic 'update' statement and addresses the most surprising behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is about 90 words, front-loaded with the key purpose and method (PUT full replace). Every sentence adds operational detail, including the cover edge case and re-upload requirement. It's slightly dense but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter mutation tool with no annotations or output schema, the description covers the core update semantics, cover handling, and required inputs. It doesn't explicitly state what happens to other omitted optional fields beyond the cover, but the 'full replace' phrase and 'all the fields you want' imply they would be reset. Overall, it's complete enough to guide correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds meaningful value by explaining the interplay between image_path, remove_image, and the default clear behavior, and stresses that all desired fields must be passed and event_id comes from list_events. This supplements the already-detailed schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing event in a TimeTree public calendar (full replace — PUT)' with a specific verb and resource. It also enumerates capabilities like adding/replacing/removing cover images and changing title/time, which distinguishes it from create_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use this to add/replace/remove a cover image on an existing event, or change title/time/etc.', giving clear when-to-use context. It also references passing event_id from list_events, which is a necessary prerequisite. It doesn't explicitly contrast with create_event, but the 'existing event' constraint makes the boundary obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the default env var behavior, override semantics, and the specific return fields (calendar id, alias_code, name, category, subscription count, label palette). It omits potential error conditions, but for a list tool this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero filler. The first sentence states the core function, and subsequent sentences add essential configuration context and return format. Efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists the returned fields, covering what the agent needs to know. It explains default and override paths. It doesn't mention prerequisites or error behavior, but for a simple list tool this is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers alias_codes with a description, and the schema coverage is 100%. The description adds value by providing the URL template (https://timetr.ee/p/<code>) and clarifying that it overrides the env var, enriching the parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List configured TimeTree public calendars' with a specific verb and resource. It distinguishes from sibling tools like list_events by focusing on calendar listing, and explains the default vs override behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use: without args it uses the TIMETREE_CALENDAR_ALIASES env var, and how to override with alias_codes, including the URL format for codes. No explicit alternatives are mentioned, but sibling tools are clearly event-related, making the context obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries some burden. It discloses that it moves an image (out of 00_待處理) and appends a CSV log, and mentions statuses map to folders. However, it doesn't disclose potential side effects like file system changes, whether it modifies existing files, or error conditions. For a file-moving tool, more could be said, but the description does provide meaningful behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource, then adds usage guidance. Every sentence earns its place, with no redundant fluff. It effectively conveys the core action and when to use it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool mutates file system state and has 9 parameters, the description is reasonably complete. It explains the tool's role relative to create_event/update_event and covers the main use case. It lacks explicit mention of return values or error handling, but no output schema is expected. Slight gap: no list of parameters in the description, but the schema covers them all. A 4 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by connecting the 'status' parameter to folder destinations via an example ('created -> 10_已新增...') in the schema, and clarifies the tool's purpose. It doesn't add much beyond schema, but the schema itself is quite descriptive, so a 4 is justified for reinforcing the workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: 'Move one poster image out of 00_待處理 after processing and append the CSV log.' It names the verb (move/append), the resource (poster image, CSV log), and distinguishes from siblings by noting that create_event/update_event normally do this automatically, making this tool for manual corrections or review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool vs alternatives: 'Normally create_event/update_event do this automatically... Use this for manual corrections or posters that need review.' This gives clear context and exclusions, naming sibling tools and their relationship.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
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/Alvin0919/TimeTree-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server