Sync Day
Server Details
Free no-signup group scheduling describe a plan, share a link, rank times by who's free. Public MCP for AI assistants.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
8 toolscreate_eventCreate eventAInspect
Create a sync.day availability poll and get its share link. Candidate days run from startDate to endDate (inclusive; or give days instead). Each day offers candidate START times from hourFrom, every startStepMinutes, as long as start + durationMinutes <= hourTo. Returns slug, public url (share this), adminUrl and adminKey (keep private; needed for update_event / remove_participant). Example: 周六周日下午聚餐 3 小时 -> {title:'周末聚餐', startDate:'2026-09-05', endDate:'2026-09-06', hourFrom:13, hourTo:18, durationMinutes:180, startStepMinutes:60}.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of consecutive days from startDate (1-21); alternative to endDate. | |
| title | Yes | Event name, max 60 chars. e.g. 周末聚餐, Team sync | |
| hourTo | Yes | End of each day's window, exclusive (1-24), must be > hourFrom. e.g. 22 | |
| endDate | No | Last candidate day, inclusive, YYYY-MM-DD (same as startDate for a single day; at most 21 days). Give this or days; endDate wins when both are set. | |
| hourFrom | Yes | Earliest hour of each day (0-23). e.g. 9 | |
| question | No | Optional prompt shown to participants, max 200 chars. e.g. 哪天晚上有空? | |
| startDate | Yes | First candidate day, YYYY-MM-DD. e.g. 2026-09-05 | |
| durationMinutes | Yes | Event length in minutes. One of 30, 60, 90, 120, 180, 240, 480. | |
| startStepMinutes | No | Gap between candidate start times in minutes: 30 or 60 (default 60). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are all false/default and provide no behavioral safety signals, so the description carries the full burden. It explicitly discloses the day-range semantics (inclusive endDate or days), the candidate-time generation rule (start + durationMinutes <= hourTo), return fields, and the confidentiality split between public URL and adminKey.
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 uses four dense, purposeful sentences and a concrete example. The purpose is front-loaded, the time-window logic is compressed into one clear sentence, and the example maps natural-language intent to actual parameter values without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly enumerates the returned slug, public url, adminUrl, and adminKey, and explains their privacy roles. It covers the core algorithm and provides an example, but it does not mention that endDate wins over days when both are supplied; that precedence is only in the schema. Overall it is nearly complete for a 9-parameter tool.
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 baseline is 3. The description adds real cross-parameter meaning by explaining how startDate, endDate/days, hourFrom, hourTo, startStepMinutes, and durationMinutes combine to generate candidate slots. It doesn't individually cover optional parameters like question, but the schema already documents those.
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 a specific verb and resource: 'Create a sync.day availability poll and get its share link.' It clearly identifies the tool as a creation action and distinguishes it from sibling tools by noting that the returned adminKey is needed for update_event and remove_participant.
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 for using the tool: create a poll, define the candidate day/time window, and share the public URL while keeping adminKey private. It references update_event and remove_participant as follow-up operations, but does not explicitly state when not to use create_event or when an alternative sibling would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decide_timeDecide the timeAIdempotentInspect
Organiser only: settle on a start time (locks availability picking and voting; the page shows 已定). Pass start=null to reopen. Requires the adminKey from create_event.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Event slug from the URL, e.g. calm-otter-4821 (sync.day/calm-otter-4821) | |
| start | Yes | A candidate start key of the event (normally one of voteOptions), or null to reopen. | |
| adminKey | Yes | Organiser key returned by create_event (the ?key= part of adminUrl). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the locking side effect, the UI change ('page shows 已定'), the reopening behavior via null, and the admin-only scope. This goes well beyond the annotations, which only indicate a non-read, idempotent, non-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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences cover scope, purpose, side effects, the reopen case, and required credentials. The most important information is front-loaded and every sentence earns its place.
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 small mutation tool with three fully documented parameters and no output schema, the description covers who may call it, what it does, what side effects occur, and how the null case behaves. No critical calling context is missing.
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%, so baseline is 3. The description mostly restates what the schema already says about start and adminKey; the main added nuance is the behavioral pairing of start=null with reopening, but that is also present in the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and object: 'settle on a start time', and clarifies the effect by 'locks availability picking and voting; the page shows 已定'. This clearly distinguishes it from voting tools like vote_time and generic mutation tools like update_event.
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 explicitly restricts usage to organisers ('Organiser only'), names the required credential ('adminKey from create_event'), and documents the reopen case with 'Pass start=null to reopen'. It does not name alternatives explicitly, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventGet eventARead-onlyInspect
Read an event: settings, every candidate start key per day (startOptions), who has answered (participants with their start keys; names may repeat), the top 10 start times by head-count (ranked), the starts EVERYONE with picks can make with their votes (voteOptions), each person's vote (votes) and decidedStart. No key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Event slug from the URL, e.g. calm-otter-4821 (sync.day/calm-otter-4821) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds valuable behavioral detail: no authentication key is needed, participants can have repeated names, returned start options are ranked by head-count, and only voteOptions usable by everyone with picks are returned. This meaningfully informs the agent about edge cases and response semantics that the schema and annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and then delivers a dense but purposeful list of returned fields. It is somewhat long and run-on, but every clause adds useful information and nothing is wasted.
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 no output schema present, the description carries the full responsibility of explaining return values, and it does so thoroughly: it names every major result group and notes the no-key requirement. For a single-parameter read tool, the agent has enough information to call it correctly and interpret the result.
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% for the single slug parameter, and the schema already explains its format and example. The description does not add parameter-level details, but it does not need to; the baseline of 3 applies.
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 a specific verb and resource, 'Read an event', and then enumerates exactly what data is returned: settings, startOptions, participants, ranked start times, voteOptions, votes, and decidedStart. This clearly distinguishes it from the mutating sibling tools like create_event, update_event, and vote_time.
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 'Read an event' framing plus the readOnlyHint annotation makes the retrieval purpose clear, and 'No key needed' tells the agent a key is not required before calling. It does not explicitly name alternatives or state when not to use it, but the context is unmistakable alongside the mutating siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_event_textParse event textARead-onlyInspect
Turn a natural-language sentence (Chinese works best) into create_event input using sync.day's AI parser. Does NOT create anything; review the result, then call create_event. Example: '下周六或周日下午聚餐,大概 3 小时'.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | One sentence describing the event, max 300 chars. | |
| today | No | Reference date for relative words like 明天/下周, YYYY-MM-DD. Defaults to today in Asia/Shanghai. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already flag readOnlyHint=true, and the description reinforces this by stating 'Does NOT create anything'. It adds useful behavioral context beyond annotations: the use of 'sync.day's AI parser' and that the result should be reviewed before creating. No contradiction with the read-only annotation.
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?
Three sentences with no filler. Each sentence serves a purpose: defining the action, clarifying the non-destructive workflow, and giving a concrete example. Front-loaded with the core purpose and immediately followed by the critical 'does NOT create anything' caveat.
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 no output schema, the description adequately communicates the output as 'create_event input' and instructs the agent to review before creating. Combined with the readOnly annotation and the example, it fully equips the agent to invoke the tool and handle the result safely. There is no missing critical information for such a simple tool.
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 covers both parameters with descriptions (text max 300 chars, today format and default). The description adds an example and notes 'Chinese works best', but does not add significant parameter-level semantics beyond what the schema provides. With 100% schema coverage, 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 names a specific verb ('Turn'), a clear input ('natural-language sentence'), and a concrete output ('create_event input'). It explicitly says it 'Does NOT create anything', which distinguishes it from the sibling create_event tool. The example further clarifies the expected input format.
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 clearly states when to use the tool: when you have natural language to convert to event input. It also provides a workflow ('review the result, then call create_event') and a language hint ('Chinese works best'). It does not explicitly mention when not to use it or compare it to alternatives like decide_time, but the context is clear enough for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_participantRemove participantADestructiveIdempotentInspect
Organiser only: remove one participant by name (the oldest row with that name when it repeats), together with their vote. Requires the adminKey from create_event.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact participant name to remove. | |
| slug | Yes | Event slug from the URL, e.g. calm-otter-4821 (sync.day/calm-otter-4821) | |
| adminKey | Yes | Organiser key returned by create_event (the ?key= part of adminUrl). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructive, idempotent), the description discloses specific behavioral details: it removes the participant's vote, and when names repeat it targets the oldest row. It also surfaces the auth requirement (adminKey), which is not carried by annotations alone.
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 tight sentences: the first front-loads the core action and constraints, the second clarifies the required credential source. There is no redundant phrasing or filler; every sentence earns its place.
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 destructive operation with three well-documented parameters and annotations covering idempotence and destructiveness, the description supplies the essential context: organizer-only access, the adminKey dependency, the exact removal target, and duplicate handling. Nothing critical is missing.
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%, so the baseline is 3. The description adds value by clarifying the tie-breaking rule for the name parameter ('oldest row') and by specifying that adminKey comes from create_event, enriching the parameter semantics beyond the schema text.
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 ('remove'), names the resource ('one participant by name'), and clarifies the scope ('together with their vote'). It also states the organizer-only restriction, which differentiates this from other event-editing siblings like update_event or vote_time.
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 for when to use the tool: it is organizer-only and requires the adminKey from create_event. It does not explicitly name alternatives or exclusions, but the prerequisites make the usage context unambiguous and the tool has no direct sibling with a similar function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_availabilitySubmit availabilityAIdempotentInspect
Save (or replace) one person's availability: the candidate start keys they can make, from get_event.startOptions. The person is identified by identity, not by name: the same identity later overwrites the same row (and can rename it), a different identity with the same name is a second participant. Keys outside the event's start options are rejected. Returns the updated ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name, 1-20 chars, may repeat. e.g. 小明 | |
| slug | Yes | Event slug from the URL, e.g. calm-otter-4821 (sync.day/calm-otter-4821) | |
| starts | Yes | Start keys like 2026-09-05T14:00. Empty array clears this person's picks. | |
| identity | Yes | Random secret for this person that you generate and keep per person, 16-256 chars (e.g. 32 hex chars; NOT a plain user id or name, since anyone who guesses it can act as them). Same identity = same participant; the server stores only a hash. Example: 3f9a1c77b2e04d5e8a61f0c9d2b7e415 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds key behavioral context beyond the annotations: same identity overwrites and can rename the row, same name with different identity is a second participant, invalid start keys are rejected, and the updated ranking is returned. These details make the idempotentHint meaningful and prevent misuse.
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?
Three sentences front-load the core action and then layer only high-value caveats. No sentence is wasted; every clause (overwrite, name collision, rejection, return value) contributes to correct invocation.
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 4-required-parameter write action with idempotent semantics, the description plus fully covered schema and annotations is complete. It states the source of valid keys, the overwrite behavior, validation, and return value, so an agent has enough context to call it correctly without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by tying starts to get_event.startOptions and detailing identity-based overwrite/rename semantics. It does not fully describe every parameter, but the schema already covers the rest.
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 a specific verb-resource pair, 'Save (or replace) one person's availability', and immediately defines the scope by identity and start options. It distinguishes the tool from siblings like update_event or decide_time by its focus on a single person's availability rather than event-wide settings or scheduling decisions.
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 gives clear context: the availability must use start keys from get_event.startOptions and invalid keys are rejected, so an agent knows when input is valid. It does not explicitly name alternatives or state when not to use the tool, so it falls just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_eventUpdate eventAIdempotentInspect
Organiser only: change any event settings (same fields and rules as create_event; omitted fields keep their current value; endDate wins over days). Existing picks are kept; those no longer valid starts are just hidden.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of consecutive days from startDate (1-21); alternative to endDate. | |
| slug | Yes | Event slug from the URL, e.g. calm-otter-4821 (sync.day/calm-otter-4821) | |
| title | No | Event name, max 60 chars. e.g. 周末聚餐, Team sync | |
| hourTo | No | End of each day's window, exclusive (1-24), must be > hourFrom. e.g. 22 | |
| endDate | No | Last candidate day, inclusive, YYYY-MM-DD (same as startDate for a single day; at most 21 days). Give this or days; endDate wins when both are set. | |
| adminKey | Yes | Organiser key returned by create_event (the ?key= part of adminUrl). | |
| hourFrom | No | Earliest hour of each day (0-23). e.g. 9 | |
| question | No | Optional prompt shown to participants, max 200 chars. e.g. 哪天晚上有空? | |
| startDate | No | First candidate day, YYYY-MM-DD. e.g. 2026-09-05 | |
| durationMinutes | No | Event length in minutes. One of 30, 60, 90, 120, 180, 240, 480. | |
| startStepMinutes | No | Gap between candidate start times in minutes: 30 or 60 (default 60). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses substantial behavior beyond the annotations: partial-update semantics ('omitted fields keep their current value'), a field precedence rule ('endDate wins over days'), and the side effect on existing data ('picks are kept; those no longer valid starts are just hidden'). For a mutation tool this is exactly the context an agent needs, and it does not contradict idempotentHint=true since repeated identical updates converge to the same state.
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 with zero waste. The most decision-relevant constraint ('Organiser only') is front-loaded, and every remaining clause conveys a distinct behavioral rule: field parity with create_event, patch semantics, precedence, and pick preservation. Nothing is repeated from the schema.
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 description covers the auth prerequisite, patch semantics, precedence rule, and the non-destructive handling of existing picks — the key things an agent needs for a mutation with no output schema. The main gap is that 'same fields and rules as create_event' makes full correctness dependent on the sibling tool's documentation, and error/response behavior is not mentioned, which is a minor omission for a settings-update tool.
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%, so the baseline is 3. The description adds genuine value above the schema: it clarifies that all fields except slug/adminKey are optional patch-style updates, and it resolves the endDate-vs-days ambiguity with an explicit precedence rule that the schema states less authoritatively. The 'same fields and rules as create_event' line also signals cross-tool consistency for parameter interpretation.
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 names a specific action ('change') and a specific resource ('any event settings'), and immediately qualifies it with 'Organiser only'. This cleanly separates it from create_event (creation), get_event (read-only), and vote_time/submit_availability (participant flows). The verb+resource+scope combination leaves no ambiguity about what the tool does.
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?
'Organiser only' is a clear usage gate that excludes participant-facing tools like submit_availability and vote_time, and 'same fields and rules as create_event' anchors the tool to the event-management flow. However, it doesn't explicitly name alternatives or spell out 'use create_event to create a new event', so some routing context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vote_timeApprove start timesAIdempotentInspect
Approval voting: set every start one person accepts (replaces their earlier approvals; an empty list clears them). The voter is the identity used in submit_availability and must have at least one start saved. Only keys listed in get_event.voteOptions are accepted; the error lists the current options otherwise. Rejected once the organiser decided. Example: {slug:'calm-otter-4821', identity:'3f9a1c77b2e04d5e8a61f0c9d2b7e415', starts:['2026-09-05T15:00','2026-09-06T10:00']}. start is shorthand for a single-item starts.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Event slug from the URL, e.g. calm-otter-4821 (sync.day/calm-otter-4821) | |
| start | No | Shorthand for starts: [start] | |
| starts | No | All start keys this person accepts (from get_event.voteOptions); [] clears their approvals | |
| identity | Yes | Random secret for this person that you generate and keep per person, 16-256 chars (e.g. 32 hex chars; NOT a plain user id or name, since anyone who guesses it can act as them). Same identity = same participant; the server stores only a hash. Example: 3f9a1c77b2e04d5e8a61f0c9d2b7e415 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing that earlier approvals are replaced, that an empty list clears approvals, that a valid identity with a saved start is required, and that invalid keys produce an error listing the current options. It also clarifies that the tool is rejected after the organiser decides. These behavioral details add substantial value and do not contradict the annotations; the idempotentHint aligns with the replace/set semantics.
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 dense but every sentence earns its place: it front-loads the core behavior, then adds constraints, error behavior, a rejection condition, and a concrete example. Nothing is redundant or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of an output schema, the description covers all invocation-critical aspects: required identity linkage, accepted key source, clearing behavior, rejection after decision, and the shorthand. An agent has enough context to call the tool correctly without additional lookups.
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%, so the baseline is 3. The description adds extra meaning by explaining that `identity` must be the same one used in submit_availability, that accepted starts come from get_event.voteOptions, and that `start` is shorthand for a single-item `starts`. The included example also clarifies how slug, identity, and starts fit together.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'set every start one person accepts', and frames it as 'approval voting', distinguishing it from the initial availability submission tool. It also references get_event.voteOptions and the organiser's decision, which separates it from decide_time. This is specific enough for an agent to select it correctly among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: the voter must have already saved at least one start via submit_availability, only keys from get_event.voteOptions are valid, and the tool is rejected once the organiser has decided. It also explains the effect of an empty list, which is essential for using the tool correctly. This effectively communicates when to use the tool and when not to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
- First observed
create_event - First observed
decide_time - First observed
get_event - First observed
parse_event_text - First observed
remove_participant - First observed
submit_availability - First observed
update_event - First observed
vote_time
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT- AlicenseNot gradedqualityCmaintenanceEnables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.MIT
- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.11961MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct operation, and the descriptions clearly separate organizer actions from participant actions. The only mild ambiguity is between decide_time and vote_time, but the descriptions resolve it well.
All tool names consistently follow a snake_case verb_noun pattern: create_event, get_event, update_event, decide_time, vote_time, remove_participant, submit_availability, parse_event_text. There is no mixed casing or inconsistent verb style, making the set predictable.
Eight tools is well-scoped for a scheduling and availability poll server. Each tool covers a meaningful action without redundancy, and the count feels neither thin nor bloated.
The core workflow is covered: create, read, update, availability submission, voting, deciding, participant removal, and natural-language parsing. The main gap is the lack of a delete_event or cancel operation, which is a workaround-level omission rather than a blocking one.