DC Member API
Server Details
Read and act on your own Dynamite Circle membership data via the public DC Member API.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
78 toolsannouncementsAInspect
GET /announcements — List recent announcements
Returns the most recent announcements from DC's broadcast channels — official updates from the DC team and chapter staff (DC, DCBKK, DCMEX, DC BLACK, etc.). Same content you see in the app's announcements channels, in a flat newest-first feed.
Visibility mirrors the app: DC members see DC-scope announcements; DC BLACK members and staff additionally see DC BLACK announcements. There is no posting, replying, or per-channel filtering — announcements are intentionally one-way and minimal.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max announcements to return (1-50) | |
| cursor | No | Opaque cursor from a previous response's `nextCursor` |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature (GET, one-way), visibility scoping by user role, and flat feed format. With no annotations, the description carries the full burden and effectively covers key behaviors. Could mention rate limits or response structure but covers essential traits.
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 HTTP method and purpose, then add details and constraints. No wasted words; every sentence adds value. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the main behavioral aspects (read-only, visibility, content scope, ordering). Missing is explicit mention of pagination details (e.g., nextCursor field), but overall complete for a simple list 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?
Input schema has 100% coverage with descriptions for both parameters (limit, cursor). The description adds context about ordering ('newest-first') but does not elaborate on parameter usage beyond schema. Baseline score of 3 is appropriate as schema already does heavy lifting.
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?
Clearly states it lists recent announcements from DC's broadcast channels. Distinguishes from sibling 'announcements_latest' only implicitly by describing the full feed rather than the latest one. Could be more explicit about the difference.
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?
Describes what the tool cannot do (no posting, replying, per-channel filtering), implying when not to use it. Lacks explicit guidance on when to use this versus the sibling 'announcements_latest' or other tools. Usage context is inferred rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
announcements_latestAInspect
GET /announcements/latest — Latest announcement per channel (quick overview)
Returns the single most recent announcement from each visible channel — a one-shot overview rather than a paged feed. Useful as a "what's new across DC?" quick check before drilling into the full feed via GET /announcements.
Visibility rules are identical to /announcements: DC members see DC-scope channels; DC BLACK members and staff additionally see DC BLACK channels. No pagination — the result size equals the number of dispatch channels you can see (currently ~4).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully covers behavioral aspects: it indicates this is a GET request (read-only), explains no pagination, states the result size equals the number of visible channels (~4), and details visibility rules for DC members vs. DC BLACK. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two short paragraphs. The first line is a clear summary with endpoint, verb, and overview. Every sentence adds value: purpose, usage, visibility, pagination, alternatives. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with zero parameters, no output schema, and simple functionality, the description is complete. It covers what the tool returns, visibility rules, pagination behavior, and even suggests the alternative. All necessary information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, no additional parameter documentation is needed. The description adds no param info, but none is required. Baseline of 4 is appropriate as the schema already fully describes the parameter structure (empty).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the latest announcement per channel via 'GET /announcements/latest' and explicitly differentiates it from the full feed tool 'GET /announcements'. The verb 'returns' with 'single most recent announcement' specifies the action and resource precisely.
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 advises using this tool as a 'quick check before drilling into the full feed' and names the alternative 'GET /announcements'. It also clarifies visibility rules identical to that sibling, giving clear context for when to use this vs. the full feed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendarAInspect
GET /calendar — Get your iCalendar feed URL + settings
Returns your iCalendar feed URLs and the toggles that control which event categories the feed includes.
Three URLs are returned:
httpsURL— paste into any calendar app that accepts an HTTPS subscriptionwebcalURL— same URL with thewebcal://scheme; macOS / iOS Calendar opens it directlygoogleURL— one-click Google Calendar subscribe link
The feed includes events you have tickets to, virtual calls, your trips, chapter events, and flagship events — exactly what each include* toggle below controls. Tokens are deterministic, so the URLs never change for a given member.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently explains the output (three URLs, toggles) and notes deterministic tokens. Without annotations, it covers behavior adequately, though authentication requirements are not explicitly stated.
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 well-organized with bullet points and clear sections, front-loading the purpose and then detailing the URLs. No unnecessary sentences.
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 no output schema, the description thoroughly covers the return values. It could mention if the URLs require authentication, but overall it provides sufficient context for a simple retrieval 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?
With zero parameters and 100% schema coverage, the description adds value by detailing the response structure and the meaning of each URL, beyond the empty input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the iCalendar feed URL and settings. It distinguishes itself from siblings like 'calendar_update' by focusing on read-only retrieval of the feed configuration.
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 explains what the tool returns and includes details about the three URLs and toggles. It implicitly indicates this is for retrieving settings, but could be more explicit about when to use versus modifying tools like calendar_update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_updateAInspect
PATCH /calendar — Update calendar feed settings
Update any subset of your calendar feed toggles. Send only the toggles you want to change — omitted fields are left untouched. Returns { updated: true } on success; re-fetch GET /calendar if you need the full toggle set + feed URLs (the URLs themselves are stable and don't change when toggles update).
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| includeMyTrips | No | Boolean | |
| includeMyTickets | No | Boolean | |
| includeEventAgenda | No | Boolean | |
| includeVirtualCalls | No | Boolean | |
| includeDCBlackEvents | No | Boolean | |
| includeFlagshipEvents | No | Boolean | |
| includeHomeChapterEvents | No | Boolean | |
| includeOtherChapterEvents | No | Boolean | |
| includeFollowedChapterEvents | No | Boolean |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses that this is a WRITE operation mutating account data, returns { updated: true }, and that feed URLs are stable. This is sufficient for the tool's simplicity.
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?
Every sentence adds value, uses bullet points and an emoji for the warning. It is concise and well-structured with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers return value, re-fetching for full data, and partial update behavior. Lacks error handling details but is adequate for a simple 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?
Although schema coverage is 100%, each parameter only says 'Boolean'. The description adds meaning by calling them 'calendar feed toggles' and explaining partial update semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates calendar feed settings, specifies it is a PATCH operation, and distinguishes itself from the sibling 'calendar' tool which likely retrieves data.
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 instructs to send only toggles to change and to re-fetch GET /calendar for full data, providing clear usage context. However, it does not explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chapterAInspect
GET /chapters/:cityID — Get a single chapter
Get full details for a single chapter, including up to 100 home-chapter members and the list of DCers currently visiting via active trips.
members— DCers whose home chapter is this city (up to 100).currentVisitors— DCers with an active trip to this city (startDate <= now <= endDate). Each entry carries a miniprofileblock, the visitor'stripID, and trip start/end dates. Use this to answer "who is in right now?" — both locals (viamembers) and visitors (here).
Hidden + guest profiles are filtered from both lists.
| Name | Required | Description | Default |
|---|---|---|---|
| cityID | Yes | Chapter ID (same as Google Place ID) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description transparently explains the returned data: members and visitors, with filtering of hidden/guest profiles and limit of 100 members. It lacks details on authentication, rate limits, or potential errors, but covers the essential behavior well.
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 concise with a clear header and bullet points. No extraneous words; every sentence adds value. It is well-structured for quick comprehension.
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 lack of output schema, the description explains the main return fields (members, visitors) and their structures. It does not mention other chapter details or error cases, but for a simple tool with one parameter, it is sufficiently complete for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes cityID as 'Chapter ID (same as Google Place ID)' with 100% coverage. The description adds no additional parameter semantics beyond the URL notation, so it meets the baseline but does not exceed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with 'GET /chapters/:cityID — Get a single chapter' and elaborates on the specific data returned (members and visitors). It distinguishes from the sibling 'chapters' tool by specifying 'single chapter' and the details included.
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 a specific use case ('who is in <city> right now?') but does not explicitly mention when to use alternatives like 'chapters' for listing all chapters or 'search_chapters' for searching. Guidance is present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chaptersAInspect
GET /chapters — List chapters
List all DC chapters (city-based community hubs), sorted by member count. Each chapter has a Google Place ID — pass it to POST /trips to create a trip to that chapter's city.
See also: For a chapter by city or country name (q='Lisbon', q='Thailand'), POST /search/chapters searches city + country names directly — faster than paginating this member-count-sorted list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max chapters to return (1-100). | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses sorting by member count, pagination via cursor, and that each chapter has a Google Place ID. It does not mention auth or rate limits, but as a GET list endpoint, the description is fairly transparent.
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 concise sentences with clear structure: endpoint introduction, output usage with cross-reference, and see also for sibling. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality and distinguishes from sibling. However, without an output schema, it does not describe the full return format (e.g., fields of a chapter), which could be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with param descriptions. The description adds context about member count sorting and cursor pagination, but does not add new meaning beyond the schema for the parameters themselves, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all DC chapters sorted by member count, and distinguishes from the sibling tool search_chapters for searching by city/country name, providing a specific verb+resource+sorting.
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?
Explicitly states when to use this tool (list all chapters) and when to use the alternative search_chapters (for specific city/country search), and mentions how to use the output for creating trips via POST /trips.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eventAInspect
GET /events/:eventID — Get event details
Returns full details for a specific event, including your ticket status.
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | The event ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description indicates a read operation ('GET') and mentions return of ticket status, but lacks details on authentication, side effects, or rate limits. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the HTTP method and purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool, the description covers the essential outcome (full details, ticket status). Lacks response structure but acceptable given no 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 description coverage is 100% and already defines 'eventID' as 'The event ID'. The description reinforces that eventID identifies the event without adding new semantics. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb ('GET', 'get'), resource ('event'), and scope ('full details including your ticket status'). Distinguishes from sibling tools like 'events' (list) and 'event_agenda' (specific subset).
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?
Implicitly clear that this tool is for retrieving full event details including ticket status. No explicit when-not-to-use or alternatives, but purpose is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_agendaAInspect
GET /events/:eventID/agenda — Get your personal agenda for an event
Returns the sessions and meetups YOU have on your personal agenda for an event:
Sessions you bookmarked from the schedule.
Meetups you RSVPd to.
Access: caller must hold a valid ticket to the event.
Use POST /events/:eventID/schedule/:sessionID/bookmark and POST /events/:eventID/meetups/:meetupID/rsvp to manage entries.
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | Event ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It correctly implies a read-only GET operation and specifies an access requirement (valid ticket). It does not mention other behavioral aspects like rate limits, but the operation is simple and non-destructive.
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 well-structured: a header with the endpoint, a concise explanation, bullet points listing the agenda contents, and a separate access and management note. It is efficient without being overly long.
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 absence of an output schema, the description sufficiently explains what the tool returns (sessions and meetups). It also covers the access prerequisite. For a simple read operation, the description is complete enough.
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 sole parameter `eventID` has a schema description 'Event ID', and schema coverage is 100%. The description adds no additional context about the parameter beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to GET the user's personal agenda for an event. It specifies what constitutes the agenda (bookmarked sessions and RSVPed meetups). However, it does not explicitly differentiate from sibling tools like `event_agenda_get` and `event_agendas`, leaving ambiguity about their specific roles.
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 a key usage condition: the caller must hold a valid ticket. It also suggests related endpoints for managing agenda entries. However, it does not guide when to use this tool versus similar siblings (e.g., `event_agendas`), which would improve decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_agenda_getAInspect
GET /events/:eventID/agenda/:userID — Get another attendee's agenda for an event
Returns another attendee's personal agenda for an event — the sessions they bookmarked + meetups they RSVPd to. Use this so an AI agent can plan together with another DCer (find a coffee window, suggest sessions to overlap, propose a meetup).
Access: open to any active DCer who can see the event. The target must hold a valid ticket — otherwise there is no agenda to return (404).
| Name | Required | Description | Default |
|---|---|---|---|
| userID | Yes | Target attendee userID | |
| eventID | Yes | Event ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the return content (bookmarked sessions + meetup RSVPs) and error condition (404 if no ticket). It does not mention permissions, rate limits, or side effects, but for a read-only GET, this is sufficient and transparent.
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 concise with two focused paragraphs. The first explains the action and use case, the second covers access conditions. Every sentence contributes meaningfully with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description is complete: it explains what is returned, the use case, access rules, and error case. No missing aspects like pagination or format are needed.
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%, baseline 3. The description adds value by clarifying 'userID' is the target attendee and 'eventID' is the event, and contextualizes them within the use case of viewing another's agenda. This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets another attendee's personal agenda (bookmarked sessions + meetup RSVPs) for an event, using a specific verb 'Get' and resource 'another attendee's agenda'. It distinguishes from siblings like event_agenda (probably own agenda) by specifying 'another attendee' and provides a concrete use case for planning together.
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 explicitly guides when to use the tool ('plan together with another DCer') and gives access conditions (open to active DCers who can see the event, target must have a valid ticket). It does not explicitly list alternatives or when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_agendasAInspect
GET /events/:eventID/agendas — Get multiple attendees' agendas in one call
Returns the agendas (bookmarked sessions + meetup RSVPs) for multiple attendees in a single call. Use when an AI agent needs to plan around several DCers at once — comparing schedules, finding shared sessions, building a meetup invite list.
Query: userIDs=A,B,C — comma-separated. Max 20 IDs per call.
Behavior: silently drops IDs that don't hold a valid ticket (so the AI doesn't need to pre-filter). Returns only the agendas for confirmed attendees, in the order requested.
Access: open to any active DCer who can see the event (non-attendee target IDs are silently dropped).
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | Event ID | |
| userIDs | Yes | Required. Comma-separated userIDs (max 20). Non-attendees are silently dropped. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral disclosure burden. It clearly states that non-attendee IDs are silently dropped, and that results are returned in the order requested. Access is described as open to active DCers who can see the event. This is fairly comprehensive, though it could mention if the response is paginated or has a size limit.
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 well-structured with a one-line summary, a usage paragraph, and labeled sections (Query, Behavior, Access). Every sentence adds value without redundancy, making it easy to parse.
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 purpose, parameters, behavior, and access. It mentions the return content (bookmarked sessions + meetup RSVPs) but lacks details on response structure, especially since no output schema is provided. Overall, it provides sufficient context for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides detailed descriptions for both parameters (eventID and userIDs), including the comma-separated format and max 20 IDs. The description reinforces this but does not add new semantic information beyond the schema, warranting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: retrieving agendas for multiple attendees in a single call. The verb (GET) and resource ('agendas for multiple attendees') are clear, and the multi-attendee focus distinguishes it from sibling tools like event_agenda.
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 explicit usage scenarios: planning around several DCers, comparing schedules, finding shared sessions, building invite lists. It also notes access constraints and silent dropping of non-attendees, giving clear guidance on when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_attendeesAInspect
GET /events/:eventID/attendees — List event attendees
List the confirmed attendees of an event — DCers holding a valid paid ticket OR a valid/maybe RSVP status. Refunded/canceled tickets are excluded. Hidden and guest profiles are filtered out.
Profiles returned use the same shape as the rest of the API (GET /profile-match, GET /trips/:tripID/discovery, etc.) — full public-other-person view including businessName, socials, expertise, plus privacy-gated annualRevenue + teamSize where shared.
Access: any active DCer can view event attendees, matching the in-app attendee tab.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-100). | |
| eventID | Yes | The event ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Details filtering logic, profile shape, and accessibility, providing clear behavioral expectations.
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?
Well-structured with clear sections: header, logic, output shape, access. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains output profile shape and privacy-gated fields despite no output schema. Covers all necessary context for a 2-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 has 100% coverage for both parameters. Description adds endpoint path and context about filtering but not additional parameter details beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List event attendees' with specific criteria (valid paid ticket or valid/maybe RSVP). Distinguishes from sibling `event_meetup_attendees` implicitly by focusing on events.
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?
Specifies access ('any active DCer') and what is excluded (refunded/canceled tickets, hidden/guest profiles). Does not explicitly mention alternatives, but context is sufficient for a list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_free_slots_createAInspect
POST /events/:eventID/free-slots — Find shared free time slots across attendees
Computes shared free slots across a set of event attendees — the time windows where they're NOT in a bookmarked session or meetup. Use to find a coffee window with one DCer, or a junto-style lunch slot for a group.
Body: userIDs[] (1-20), minDurationMinutes (default 30, min 15, max 480), optional eventDayDate: YYYY-MM-DD to scope to a single event day.
Slot grid: derived from the event's session schedule, partitioned into minDurationMinutes windows. For each window we subtract each user's bookmarked sessions + meetup RSVPs.
Sort: slots ranked by len(freeFor) desc — fully-shared windows first, then partial overlaps.
Auth: caller must hold a valid ticket. Non-attendee IDs are silently dropped.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | Event ID | |
| userIDs | Yes | Attendee userIDs to compare (1-20). Non-attendees silently dropped. | |
| eventDayDate | No | Optional. Scope to a single event day (YYYY-MM-DD venue-local). Omit for the full event range. | |
| minDurationMinutes | No | Minimum slot duration in minutes (default 30, range 15-480) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains WRITE operation, slot grid computation, sorting, and auth requirements. Discloses that non-attendee IDs are silently dropped.
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?
Well-structured with clear sections, precise language, and no unnecessary sentences. Efficiently conveys all needed information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers return value (slots ranked by freeFor), auth, edge cases (non-attendees), and constraints (minDuration, etc.). Complete despite no 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?
All parameters are described in schema (100% coverage), but description adds practical context like defaults, ranges, and purpose, exceeding schema alone.
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?
Clearly states it finds shared free time slots across attendees, specifies endpoint, and distinguishes from siblings. No sibling has similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete use cases (coffee window, lunch slot) and mentions auth requirement and silent dropping of non-attendees. Does not explicitly say when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_meetup_attendeesAInspect
GET /events/:eventID/meetups/:meetupID/attendees — List meetup attendees
Returns the list of attendees who have RSVPd to a specific meetup. Same profile shape as /events/:eventID/attendees.
Access: any active DCer who can see the event.
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | Event ID | |
| meetupID | Yes | Meetup ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description indicates read-only GET and access requirement but omits details on pagination, ordering, or rate limits.
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 plus access line; endpoint pattern front-loaded; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
References output shape via another endpoint, but lacks pagination info and error handling; adequate for a list tool without 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 covers both parameters with basic descriptions; description adds context that meetupID is for a specific meetup within an event, but adds little beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List meetup attendees' with specific resource and verb. Distinguishes from siblings like event_attendees and event_meetup_rsvp.
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?
Specifies access (any active DCer who can see event) and references output shape via another endpoint, but lacks explicit when-not-to-use or alternative selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_meetup_rsvpAInspect
POST /events/:eventID/meetups/:meetupID/rsvp — RSVP to / leave a meetup
Join or leave a meetup. Requires a valid ticket for the event. The meetup's rsvpCount is updated atomically and idempotently.
When the meetup has a linked chat channel, this mirrors the DC app side effects too: joining subscribes you to the meetup chat and leaving removes you from it.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| joined | Yes | `true` to join, `false` to leave | |
| eventID | Yes | Event ID | |
| meetupID | Yes | Meetup ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavioral traits: declares it a write operation, mentions atomic and idempotent update of rsvpCount, and details side effects on linked chat channels.
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?
Concise at 5 sentences. Uses clear structure: HTTP method and path, then action, then prerequisites, then side effects, then warning. No fluff.
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?
Lacks output schema description, but the tool's effect and side effects are well explained. Could mention response structure or error conditions, but not essential for a simple RSVP operation.
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 no extra parameter meaning beyond what the schema already provides for 'joined', 'eventID', and 'meetupID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('join or leave a meetup') and the resource ('meetup'). It distinguishes from siblings like 'event_rsvp' (for events) and 'event_meetup_attendees' (likely read-only).
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?
Describes when to use (to RSVP/join/leave a meetup) and prerequisites ('requires a valid ticket'). Mentions side effects (chat subscription) but doesn't explicitly state when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_meetupsAInspect
GET /events/:eventID/meetups — List event meetups
Returns the approved member-organized meetups for an event, sorted chronologically. Only approved meetups are returned.
Access: any active DCer who can see the event can view approved meetup listings + attendee lists. Only RSVPing to a meetup (and the resulting chat-channel access) requires a valid ticket.
Time-zone handling: meetups use explicit wall-clock fields (date = YYYY-MM-DD, startTime / endTime = HH:mm) plus the event's timezone (IANA). Pair them when localizing.
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | Event ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that only approved meetups are returned, sorted chronologically, and explains time-zone handling with explicit wall-clock fields and IANA timezone. Access rules are clearly stated, and no contradictions exist.
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 well-structured with clear sections (introduction, access, time-zone handling). Every sentence adds value without redundancy. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains returned data (approved meetups, sorted chronologically) and includes access and time-zone handling. It covers essential aspects for the tool's purpose, though exact fields of meetup objects are not specified.
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?
Only one parameter (eventID) with schema description 'Event ID'. The description does not add significant semantic details beyond the schema, but the endpoint path and context indicate its use. Since schema coverage is 100%, baseline 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 explicitly states 'GET /events/:eventID/meetups — List event meetups' and explains it returns approved member-organized meetups sorted chronologically. It clearly distinguishes from siblings like event_meetup_attendees and event_meetup_rsvp that deal with individual meetup actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: to list approved meetups for an event. It details access requirements (any active DCer who can see the event) and necessary conditions for further actions (RSVP requires ticket). However, it does not explicitly state alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_rsvpAInspect
POST /events/:eventID/rsvp — RSVP to a free event
RSVP to an event that uses free RSVP (not ticketed). Only works for events with rsvpEnabled: true.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | RSVP status | |
| eventID | Yes | The event ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description warns that this is a WRITE operation that mutates account data, which is critical behavioral context. Since no annotations are provided, the description carries the full transparency burden. It does not detail return format or error handling, but the note about mutation is sufficient for a simple write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with only a few sentences that front-load the endpoint and primary action. No redundant information, and the structure is clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description explains the key constraints (rsvpEnabled) and mutation nature. It lacks details about overwriting existing RSVPs or return values, but the information provided is sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters described in the schema. The description adds context about the 'free RSVP' constraint, which indirectly relates to the 'status' enum, but does not add significant detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'POST /events/:eventID/rsvp — RSVP to a free event'. It specifies the verb (RSVP) and resource (event), and distinguishes from ticketed events and sibling tools like event_meetup_rsvp and virtual_event_rsvp by noting 'free RSVP (not ticketed)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage conditions: 'Only works for events with rsvpEnabled: true' and 'RSVP to a free event (not ticketed)'. However, it does not explicitly state when to use alternatives like event_meetup_rsvp, although sibling tool names imply those are for meetup/virtual events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eventsAInspect
GET /events — List upcoming events
Returns upcoming DC events, sorted by date. Add ?past=true to include past events.
See also: For events by name or topic (q='productivity', q='DCBKK 2026'), POST /search/events searches title + description directly — faster than paginating this date-sorted list. Combine with ?cityID, ?country, ?since, ?until filters for narrower scopes.
| Name | Required | Description | Default |
|---|---|---|---|
| past | No | Include past events. | |
| limit | No | Max results (1-50). | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It describes returning upcoming DC events sorted by date and pagination via cursor, but suggests additional query parameters (cityID, country, since, until) not present in the input schema, which could mislead the agent.
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 plus a 'See also' section, front-loaded with the core purpose, no wasted words, uses markdown for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a list endpoint but lacks details on the response structure (e.g., fields of each event) and does not address rate limits or authentication needs, given no annotations or 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% with descriptions for all three parameters. The description adds context for 'past' and cursor pagination, but introduces four unsupported parameters (cityID, country, since, until) that are not in the schema, causing inconsistency and potential confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List upcoming events' with a specific verb and resource, distinguishes from sibling 'search_events' by noting different use cases (date-sorted vs search by name/topic).
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?
Explicitly suggests using 'search_events' for name/topic queries and mentions combining filters like cityID, country, since, until for narrower scopes, though it doesn't explicitly state when to avoid this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_scheduleAInspect
GET /events/:eventID/schedule — Get event schedule
Returns the full schedule (sessions) for an event, sorted chronologically.
Access: any active DCer who can see the event can view its public schedule. Personal agenda actions still require a valid ticket.
Time-zone handling: session startAt / endAt are returned as ISO 8601 strings whose digits represent the venue-local wall-clock time (e.g. a 9 AM Mexico City session returns 2026-05-08T09:00:00.000Z, NOT 15:00:00Z). The session's timezone field carries the IANA zone (e.g. America/Mexico_City) — pair them when localizing. This matches the convention used by the DC ICS feed.
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | Event ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description provides thorough behavioral details: time-zone handling (ISO 8601 strings in venue-local wall-clock time, timezone field), access rules, and sorted output. No contradictions.
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?
Concise, front-loaded with main action. Three short paragraphs: endpoint & function, access, timezone handling. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers return structure (full schedule, sorted, with timezone info). No output schema, but description compensates. Could mention if pagination exists, but likely not needed for full schedule.
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%, baseline 3. Description does not add extra meaning about the eventID parameter beyond what schema provides (just 'Event ID'). Adequate but not improved.
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?
Description clearly states it returns the full schedule (sessions) for an event, sorted chronologically. It includes the endpoint path and verb (GET /events/:eventID/schedule), and distinguishes from sibling tools like event_agenda.
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?
Describes access conditions: any active DCer who can see the event can view public schedule, but personal agenda actions require ticket. No explicit when-not-to-use or comparisons with siblings, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_schedule_attendeesAInspect
GET /events/:eventID/schedule/:sessionID/attendees — List session attendees (people who bookmarked it)
Returns the list of attendees who have bookmarked a specific session into their agenda. Same profile shape as /events/:eventID/attendees.
Access: any active DCer who can see the event.
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | Event ID | |
| sessionID | Yes | Session ID |
Tool Definition Quality
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 explains the bookmarking behavior and implies it is read-only via the GET method in the path. However, it does not explicitly state idempotency or side effects.
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 concise and front-loaded with the endpoint path and purpose. Every sentence is necessary and adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description covers the key aspects: purpose, access, and relation to event_attendees. It could mention pagination or response structure, but the reference to event_attendees helps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters (eventID, sessionID) with descriptions, achieving 100% coverage. The description adds no additional meaning beyond the schema, such as format or constraints, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists session attendees who have bookmarked the session, using the verb 'List' and specifying the resource as session attendees. It distinguishes from siblings like event_attendees by focusing on bookmarkers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions access requirements ('any active DCer who can see the event') but does not explicitly guide when to use this tool versus alternatives like event_attendees or event_schedule_bookmark. The hint about same profile shape is helpful but not directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_schedule_bookmarkAInspect
POST /events/:eventID/schedule/:sessionID/bookmark — Bookmark / unbookmark a session
Add or remove a session from your personal agenda — this is the API equivalent of the bookmark/star icon on a session card in the DC app.
Requires a valid ticket for the event. Counter rsvpCount on the session doc is updated atomically and idempotently: repeating the same desired state does not increment or decrement the counter again.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | Event ID | |
| sessionID | Yes | Session ID | |
| bookmarked | Yes | `true` to add to agenda, `false` to remove |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes atomic and idempotent update of rsvpCount, and warns it's a write operation mutating account data. No annotations provided, so description carries full burden; it covers key behaviors well.
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?
Concise with a clear header, brief paragraphs, and a warning emoji. Front-loaded with purpose. Could be slightly shorter but structure is effective.
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?
Covers prerequisites, idempotency, atomic update, and write nature. No output schema, so return values not required. Missing error details but overall adequate for complexity.
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%, and description adds no extra meaning beyond the schema. Baseline of 3 applies; the description aligns with schema but doesn't enrich it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool bookmarks/unbookmarks a session, equating it to the bookmark/star icon. It distinguishes from sibling tools like event_rsvp by specifying it modifies the personal agenda.
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 mentions prerequisite (valid ticket) and that it's a write operation. It doesn't explicitly exclude alternatives but implies use case is toggling bookmark state. Clear context for when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_sponsorsAInspect
GET /events/:eventID/sponsors — List event sponsors
Returns the sponsors for an event, ordered by tier (primary → supporting) then display order. Deleted sponsors are filtered out.
Access: any active DCer who can see the event — sponsors are public.
| Name | Required | Description | Default |
|---|---|---|---|
| eventID | Yes | Event ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It transparently discloses ordering, filtering of deleted sponsors, and access restrictions. It does not explicitly confirm idempotency, but the HTTP GET method implies it. The behavior is clearly described without contradiction.
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 highly concise with three focused sentences. It front-loads the endpoint and purpose, then adds ordering, filtering, and access details with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no nested objects, no output schema), the description covers purpose, behavior, and access adequately. However, it lacks details on the output structure (fields of each sponsor), which would be helpful since no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the single parameter 'eventID' with 100% coverage. The description adds no additional semantic detail beyond the schema, meeting the baseline of 3 for high coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves event sponsors for a given event, specifying the HTTP method and path. It explicitly mentions ordering by tier and display order and filtering of deleted sponsors, making its purpose distinct from sibling tools like event_attendees or event_rsvp.
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 access restrictions (any active DCer who can see the event), which guides when the tool can be used. However, it does not explicitly contrast with alternative tools or provide conditions for when not to use it. For a simple list tool, this is sufficient but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follows_chapter_createAInspect
POST /follows/chapters/:cityID — Follow a chapter
Follow a DC chapter (city hub). Idempotent. Target must exist in the chapters list (discover via GET /chapters). Cap 50 — hitting it returns 409 follow_limit_reached.
This list also drives the /locator/digest favoritePeople and favoriteCities sections — surface trip + event activity from DCers and cities you care about without scrolling everywhere.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| cityID | Yes | Chapter ID (Google Place ID). Get from `GET /chapters` (each entry has `cityID`) or `GET /places/search` (`type === "city"`). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description explicitly states 'WRITE operation: this mutates your DC account data.' It also discloses idempotency and the 409 error on hitting the cap, providing full behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains extraneous information about the digest sections (favoritePeople, favoriteCities) which is not directly relevant to the tool's action. The core description could be more concise without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and no output schema, the description covers all necessary aspects: the action, preconditions, idempotency, cap, and side effects. It is complete for the agent to understand when and how to invoke it.
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 describes cityID as 'Chapter ID (Google Place ID).' The description adds significant value by specifying how to obtain the cityID: from 'GET /chapters (each entry has cityID)' or 'GET /places/search (type === "city").' This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'POST /follows/chapters/:cityID — Follow a chapter' and 'Follow a DC chapter (city hub).' The verb 'follow' and resource 'chapter' are explicit. It distinguishes from siblings like 'follows_chapters' (list) and 'follows_chapter_delete' (unfollow) by focusing on creation.
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 preconditions: 'Target must exist in the chapters list (discover via GET /chapters).' It also mentions the cap of 50 and the resulting error code. However, it does not explicitly state when not to use (e.g., if already following), though idempotency implies it is safe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follows_chapter_deleteAInspect
DELETE /follows/chapters/:cityID — Unfollow a chapter
Unfollow a DC chapter. Idempotent — unfollowing a chapter you weren't following is a no-op.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| cityID | Yes | Chapter ID to unfollow. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Clearly states it's a WRITE operation (mutation) and idempotent. Adds useful behavioral context beyond the minimal purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: three short lines including endpoint, action, and warning. No wasted words; information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete tool, description covers purpose, behavior, and idempotency. Lacks return value details, but no output schema exists. Adequate for context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema describes cityID as 'Chapter ID to unfollow' with 100% coverage. Description adds no additional meaning beyond the schema, meeting baseline.
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?
Description clearly states the verb (unfollow), resource (chapter), and action. It explicitly says 'Unfollow a chapter' and gives the HTTP method and endpoint. Distinguishes from sibling tools like follows_chapter_create.
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?
States idempotency (safe to retry), and marks as WRITE operation. Provides context for when to use (unfollowing). Lacks explicit comparison to alternatives, but the purpose is specific enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follows_chaptersAInspect
GET /follows/chapters — List followed chapters
List the DC chapters (city hubs) you are currently following. Each entry is a mini-chapter with the chapter's Google Place ID — useful for creating trips or surfacing activity in that city. Cap: 50 follows.
This list also drives the /locator/digest favoritePeople and favoriteCities sections — surface trip + event activity from DCers and cities you care about without scrolling everywhere.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It states the tool lists followed chapters, has a cap of 50, and its role in locator_digest. It implies a read-only operation and requires authentication (as it references 'your' follows). No contradictions.
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 three sentences, each providing essential info: the endpoint and basic action, details about entries and cap, and integration with locator_digest. No wasteful text; front-loaded with the primary purpose.
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 explains the return structure and cap, which is adequate for a 0-parameter tool without output schema. It also gives a use-case. However, it doesn't mention pagination or whether the list is ordered, but the cap implies a fixed set. Slightly incomplete but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description need not add parameter meaning. It instead adds value by describing the return content (Google Place ID, cap), which is beneficial given no output schema. This exceeds the baseline expectation.
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 starts with 'List followed chapters', clearly specifying the action and resource. It explains that chapters are city hubs and that each entry includes a Google Place ID, making the tool's purpose very clear. It also differentiates from sibling tools like follows_chapter_create and follows_chapter_delete by focusing solely on listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for reading followed chapters, and the sibling tools for creating/deleting are separate. It mentions a cap of 50 follows, indicating limitations. However, it does not explicitly state when to use this over alternatives like follows_profiles, 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.
follows_profilesAInspect
GET /follows/profiles — List followed DCers
List the DCers you are currently following. Returns the same mini-profile shape used by every other list endpoint, so each entry roundtrips cleanly with GET /profile/:userID or POST /follows/profiles/:userID. Cap: 150 follows; the response cap echoes that so a client can warn the user as they approach the limit.
This list also drives the /locator/digest favoritePeople and favoriteCities sections — surface trip + event activity from DCers and cities you care about without scrolling everywhere.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
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 cap of 150 follows, the echoed cap field, and connection to locator/digest features. Authentication or mutation safety is not mentioned, but for a list endpoint this is acceptable.
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 concise with two short paragraphs. The first sentence states the purpose, followed by useful details. Some extra context about locator/digest could be moved, but overall it's well-structured and not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description provides sufficient context: what it does, the response shape, a practical limit (150), and downstream integrations. It is complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema coverage is 100%. The description adds value by explaining the response structure and the cap, which are not in the schema. With no parameters, a baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List the DCers you are currently following,' using a specific verb and resource. It distinguishes itself from sibling tools like follows_profiles_by_id_create (add a follow) and follows_profiles_by_id_delete (remove a follow) by focusing on listing.
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 explains that it returns a list of followed profiles with a cap of 150 and that the same mini-profile shape is used elsewhere, implying it's for read-only access. However, it does not explicitly state when to use this tool over alternatives (e.g., for mutations), though the sibling names provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follows_profiles_by_id_createAInspect
POST /follows/profiles/:userID — Follow a DCer
Follow a DCer. Idempotent — calling it twice with the same userID is safe (no-op the second time). Target must exist and be publicly visible (hidden + guest profiles are refused with 404). You cannot follow yourself.
When the cap of 150 is reached, returns 409 follow_limit_reached with a hint to unfollow someone first. The response includes the new profile mini-card and updated count so the caller can render the change without re-fetching.
This list also drives the /locator/digest favoritePeople and favoriteCities sections — surface trip + event activity from DCers and cities you care about without scrolling everywhere.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| userID | Yes | userID of the DCer to follow. Discover via `GET /profile-match` or `GET /chapters/:cityID` members lists. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description fully discloses behavioral traits: WRITE operation, idempotency, error codes (404, 409), and response structure (mini-card and count). This goes beyond minimal expectations.
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 efficient (~120 words) with a clear structure: HTTP method, action, idempotency, conditions, error handling, response, and a note on downstream usage. The locator digest mention is slightly tangential but 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 follow tool with one parameter and no output schema, the description covers usage, constraints, and error scenarios. It lacks details on authentication or userID format specifics, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the userID parameter (100% coverage), including where to discover it. The description adds no new parameter-level details, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Follow a DCer', specifying the exact action and resource. It distinguishes itself from sibling tools like follows_chapter_create (follow a chapter) and follows_profiles_by_id_delete (unfollow) by focusing on following a profile.
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 conditions for use: idempotent, target must be public, cannot follow self, cap of 150. However, it does not explicitly contrast with alternative tools or say when not to use, though the sibling names imply differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follows_profiles_by_id_deleteAInspect
DELETE /follows/profiles/:userID — Unfollow a DCer
Unfollow a DCer. Idempotent — unfollowing someone you weren't following is a no-op (still returns 200 with the updated count). Use it whenever you want to stop seeing a DCer in your /locator/digest favoritePeople section.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| userID | Yes | userID of the DCer to unfollow. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses idempotency, success behavior (returns 200 even when not following), and marks it as a WRITE operation. It doesn't mention auth needs or side effects beyond mutation, but covers key points adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two short sentences plus a heading, front-loaded with the endpoint. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature (one param, no output schema), the description is complete: explains purpose, use case, idempotency, and behavior. Could optionally mention response format, but not necessary.
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% and the description adds no new meaning beyond the schema's description of 'userID of the DCer to unfollow.' Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for unfollowing a DCer, with specific verb ('Unfollow') and resource ('DCer'). It distinguishes from sibling tools like follows_profiles_by_id_create by indicating the opposite action.
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 explicitly says when to use: 'whenever you want to stop seeing a DCer in your /locator/digest favoritePeople section.' It implies not to use it for following, but could be more explicit about alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inbox_unreadAInspect
GET /inbox/unread — Get unread counts
Returns your total unread message count and per-room breakdown. Only includes rooms you are subscribed to or are a member of.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rooms to return (1-100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates a GET operation (read-only), returns specific data (total and per-room unread counts), and clarifies the scope. However, authentication requirements or rate limits are not mentioned, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences—no unnecessary words. The first sentence acts as a title, and the second adds key details. While efficient, it could be slightly more structured to front-load the most critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions the type of returned data (total count and per-room breakdown) but lacks detail on the exact structure (e.g., keys, nesting). For a tool with a single parameter and a clear purpose, this is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage and includes a description for the 'limit' parameter. The tool description does not add additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves unread message counts (total and per-room breakdown) and specifies scope (rooms the user is subscribed to or a member). This is a specific verb-resource combination that distinguishes it from sibling tools like 'rooms_inbox' which lists inbox messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking unread counts but does not explicitly state when to use it versus alternatives like 'rooms_messages' or 'notifications'. No when-not-to-use guidance is provided, though the scope limitation is noted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invitesAInspect
GET /invites — List your invites
List the referral invites credited to you. Two source types appear:
manual— invites you sent viaPOST /invites(the explicit email-an-invitee flow).permaCode— applicants who signed up through your shareable permacode link (GET /invites/permacode).
Each record tracks where the prospective member is in the funnel (new → invited → started → submitted → approved/rejected/expired), the invite type, the invitee's name + email, and timestamps. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-100). | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Declares read-only operation, explains the funnel states and data fields (type, name, email, timestamps). With no annotations, description adequately discloses behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise, uses bullet points for source types and entity attributes. Front-loaded with endpoint and purpose. No extraneous sentences.
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?
Explains response fields and funnel tracking. Without an output schema, the description provides sufficient detail about the returned data and pagination via cursor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for limit and cursor. Description does not add new semantics for parameters beyond the schema, which is acceptable due to high schema coverage.
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?
Clearly states 'List your invites' and distinguishes between manual and permaCode sources. Differentiates from sibling tools invites_create and invites_permacode.
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?
Describes when to use (to list referral invites credited to you). Does not explicitly state when not to use, but provides context with source types and sibling tool names for reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invites_createAInspect
POST /invites — Send an invite
Send a referral invite to someone. The server queues a templated email (delivered via a background task) that points the invitee at the apply flow with you pre-credited as the referrer. The created invite shows up in GET /invites immediately at status new.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Invitee email address. Where the invite email is sent. | ||
| whyDC | No | Optional. Short note about why they would be a good fit for DC — surfaces in the admin review queue if the application reaches it. | |
| fullName | Yes | Invitee full name. Used in the email greeting + matched against existing applications for dedup. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses WRITE operation mutation, async email delivery, and immediate visibility. No annotations provided, so description fully covers behavioral traits.
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?
Short and well-structured: endpoint, action, process, immediate result, mutation warning. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing return value/response description and error scenarios (e.g., duplicate invite). Adequate for a simple mutation but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, but description adds context like whyDC surfaces in admin review and fullName used for dedup, adding value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Send an invite' with resource 'invite' and context 'referral'. Distinguishes from siblings like `invites` (GET) and `invites_permacode`.
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?
Provides clear context for when to use (send referral invite) and describes effect, but does not explicitly mention when not to use or list alternatives like `invites_permacode`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invites_permacodeAInspect
GET /invites/permacode — Get your permacode
Returns your permanent referral code. Share this link to let people apply with your referral.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the return value (permanent referral code) and purpose (sharing for referrals). For a read-only GET with no parameters, this is adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the HTTP method and purpose, no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, this description fully explains what the tool does and how to use 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?
No parameters, so baseline is 4. The description adds meaning beyond the empty schema by explaining the returned code's usage.
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 specific verbs ('GET', 'get') and resource ('permacode', 'permanent referral code'), clearly distinguishing from sibling tools like 'invites' (listing) and 'invites_create' (creating).
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 states when to use: to retrieve and share your permanent referral code. No explicit when-not or alternatives, but context is clear for this simple fetch operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limitsAInspect
GET /limits — Get your effective rate limits + current usage
Returns the effective per-minute and per-day rate limits for your API key, plus current usage (how many calls you have already made in the current minute and day windows, when each window resets, and how many calls you have left). Limits derive from your membership tier (DC member: 10/min, 300/day; DC BLACK member and staff: 60/min, 3000/day) unless an admin has set per-key overrides — overrides win when present.
The same usage data is also exposed on every API response via the X-RateLimit-Remaining, X-RateLimit-Reset, X-RateLimit-Daily-Remaining, and X-RateLimit-Daily-Reset headers. Use this endpoint when you want a JSON snapshot, or the headers when you want to read it on every call.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully covers behavior: explains what data is returned (limits, usage, reset windows, calls left), how limits are derived (membership tier vs overrides). No contradictions.
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?
Well-structured with line breaks and bullet-like clarity. Front-loaded purpose. Slightly verbose but each sentence adds necessary detail; could trim minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description fully explains return values (limits, usage, reset times, calls left). No prerequisites or side effects to mention. Complete for a read-only 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?
No parameters exist (schema coverage 100% empty). Description adds value beyond schema by detailing the response contents. Baseline 4 is appropriate for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns effective rate limits and current usage. It uses specific verb+resource ('GET /limits') and distinguishes from other tools by being the only one providing rate limit info.
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?
Explicitly provides when-to-use guidance: 'Use this endpoint when you want a JSON snapshot, or the headers when you want to read it on every call.' No alternatives among siblings for rate limits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
locator_digestAInspect
GET /locator/digest — Get locator digest
Returns your weekly locator digest — the same data that powers the Friday locator email. Use this to surface trip/event activity around the people and cities a member already follows.
The response is composed of four independent sections; pass ?sections=<csv> to skip any you don't need.
Each section is described in full below.
homeCity— Activity in the city you have set as your home chapter. Null if you have no home city, or if you don't belong to any chapter yet.favoriteCities— Per-city digest for cities you have favorited (besides your home city). Each entry lists upcoming trips/events into that city + new ones added since last week.favoritePeople— Recent activity from members you follow: their new trips, upcoming trips, recently purchased tickets, and events they've RSVPd to.myTrips— For each of your own upcoming trips, the people you're likely to overlap with (chapter leads, local members, and other DCers visiting the same city in the same window).
Pass a comma-separated subset to ?sections=... to omit sections you don't use — useful for narrow integrations and faster responses.
| Name | Required | Description | Default |
|---|---|---|---|
| sections | No | Comma-separated list of sections to include. Defaults to all four sections when omitted. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the response structure (four sections) and conditional behaviors (e.g., null homeCity). It doesn't mention auth or rate limits but sufficiently discloses behavior for a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a bullet list for sections, front-loaded purpose statement, and no redundant text. Every sentence adds value.
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 no output schema, the description fully explains the return structure (four sections with detailed behavior). The tool is simple (1 optional param) and the description covers all needed context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema: it explains how to use the `sections` parameter, lists the four possible values with their full meanings, and provides default behavior. Schema coverage is 100%, but the description enriches understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the weekly locator digest and differentiates it from siblings by specifying its purpose (the same data that powers Friday email). It uses specific verbs and resources.
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 explicitly states when to use the tool ('surface trip/event activity around people and cities a member follows') but does not provide when-not-to-use or alternatives. It does offer guidance on omitting sections for narrow integrations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
locator_settingsAInspect
GET /locator/settings — Get your Friday locator email settings
Returns the four toggles that control the Friday locator email digest. The digest is a weekly outbound email surfacing new events, tickets, and trips relevant to you.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavior. It indicates a safe GET operation and explains the digest, but omits details like authentication requirements, rate limits, or that the call is idempotent.
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 concise (two sentences), front-loads the HTTP method and path, and every sentence adds meaningful information. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description adequately explains what the tool returns and the context of the digest. It is complete enough for an agent to understand the tool, though it could mention example toggle names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, schema coverage is 100%. The description adds value by explaining the return content (four toggles, digest purpose), which goes beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving the Friday locator email settings. It specifies the HTTP method (GET), resource, and what it returns (four toggles controlling the digest). Among sibling tools, it distinguishes from locator_digest and locator_settings_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading settings, but does not explicitly state when to use this tool versus alternatives like locator_settings_update for writing. No context on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
locator_settings_updateAInspect
PATCH /locator/settings — Update your Friday locator email settings
Update any subset of the Friday locator email toggles. Send only the fields you want to change.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| trips | No | Include new trips to your area | |
| events | No | Include new events in your area | |
| enabled | No | Master toggle for the Friday digest | |
| tickets | No | Include DCers you follow getting event tickets |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly warns 'WRITE operation: this mutates your DC account data', providing essential behavioral information since annotations are absent.
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, no wasted words. Front-loaded with endpoint and action.
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?
Simple tool with no output schema; description adequately covers purpose, usage, and behavioral warning, making it fully self-contained.
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 covers all parameters with descriptions. Description adds 'toggles' framing but adds little beyond schema; baseline 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?
Clearly states it updates Friday locator email settings via PATCH. Distinguishes from sibling tools like locator_settings (likely GET) by specifying 'WRITE operation' and 'update'.
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?
Explicitly says to send only fields to change (partial update). Clear context for usage, though no explicit when-not-to-use or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
membershipAInspect
GET /membership — Get your membership state
Returns your full membership state: role, lifecycle dates, trial status, billing/subscription details, and a link to the Stripe Customer Portal where you can manage your subscription, payment methods, and download invoices.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It accurately describes a read-only GET returning state details, but does not mention authentication requirements, error conditions, or any side effects. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the HTTP method and purpose, with no extraneous content. Every sentence adds value.
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 zero-parameter tool with no output schema, the description provides sufficient context about what is returned. It lacks mention of authentication or error scenarios, but remains largely complete for a simple GET endpoint.
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?
No parameters exist, and schema coverage is 100%, so baseline is 3. The description does not add parameter information beyond the schema, which is acceptable given there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the user's full membership state, listing specific fields (role, dates, trial, billing, Stripe link). It distinguishes itself from sibling 'membership_invoices' which handles invoices specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving membership info but does not provide explicit when-to-use or alternatives. No exclusion criteria or context about when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
membership_invoicesAInspect
GET /membership/invoices — List your Stripe invoices
Returns your Stripe invoices, newest first. Each entry includes a hosted-invoice URL and a PDF link, both safe to share — perfect for self-serve receipts. Returns an empty array for legacy paypal/chargify members or members with no Stripe customer.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-100) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: GET endpoint, newest-first ordering, safe-to-share URLs, and edge cases. It adequately covers the tool's read-only nature and result characteristics.
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 three concise sentences, front-loaded with the endpoint and purpose, with no unnecessary words. Every sentence adds value.
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 single optional parameter and no output schema, the description fully covers the tool's functionality, output format, ordering, and edge cases. It is complete for this simple list 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 description does not mention the 'limit' parameter. Since the schema already provides full coverage (100%) with a description for the parameter, the description adds no additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Stripe invoices, newest first, with the verb 'Returns' and specific details about the output format. It is distinct from sibling tools, none of which are invoice-related.
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?
Provides clear context on when the tool returns empty results (for legacy payment methods or no Stripe customer), but does not explicitly contrast with alternatives since no alternatives exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notificationsAInspect
GET /notifications — Get your notification preferences
Returns your push + email preferences per notification category. Defaults are applied for any preference you have never explicitly set. Email is null for reaction / myReaction because email is not supported for those categories.
For the Friday locator email digest, see GET /locator/settings — that's a separate concern (outbound digest, not per-event push/email).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: it returns push and email preferences per category, applies defaults for unset preferences, and notes that email is null for reaction/myReaction categories.
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 three focused sentences with no redundant content; it front-loads the endpoint and purpose, then adds essential details.
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 fully covers the tool's behavior, response structure, and edge cases (null email for certain categories), with a clear distinction from a related sibling, despite no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters to explain, and the description adds valuable context about the response structure and defaults, exceeding the baseline expectation for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves notification preferences via GET /notifications, and explicitly distinguishes from the Friday locator email digest via locator_settings, ensuring no confusion with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (to get notification preferences) and when not to (for the locator digest), including an alternative tool reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notifications_updateAInspect
PATCH /notifications — Update your notification preferences
Update any subset of your notification preferences. Send only the categories/channels you want to change — the rest stay as-is. Email is rejected for reaction / myReaction (not supported).
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| categories | Yes | Per-category push/email toggles. Pass only the categories + channels you want to change. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries burden. It clearly states it's a WRITE operation mutating data and mentions a specific behavioral constraint (email rejection for reaction/myReaction). Could add more on idempotency or auth needs, but sufficient for a simple mutation.
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 plus a warning. Front-loaded with 'PATCH /notifications — Update your notification preferences'. No wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, partial update, mutation warning, and a specific constraint. No output schema, so description could mention return value (e.g., updated preferences or success). Missing this minor detail, but otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage but parameter is an object without explicit properties. Description adds critical usage guidance: pass only changed fields, stay-as-is behavior, and email rejection. This adds significant value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates notification preferences, with 'PATCH' indicating partial update, and the name implies it's distinct from the 'notifications' sibling (likely a GET). The verb 'Update' and resource 'notification preferences' are specific.
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?
Explicitly says to send only changed categories/channels and that email is rejected for certain categories. Implicitly distinguishes from read tool 'notifications', but does not explicitly mention when not to use or alternative tools for reading preferences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
placeAInspect
GET /places/:placeID — Get place details
Fetch full details for one Google Place ID. Useful for verifying a placeID before sending it to POST /trips (which only accepts type: "city" placeIDs and rejects venues with a 400). Same shape as a single entry from GET /places/search.
| Name | Required | Description | Default |
|---|---|---|---|
| placeID | Yes | Google Place ID. Get one from `GET /places/search` or from a previous response (e.g. `event.city.placeID`). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation (GET), but does not explicitly state no side effects. However, given no annotations, it provides sufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, focused sentences with front-loaded endpoint info. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch with one parameter, the description explains output shape, use case, and limitations of a related endpoint. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description enhances the schema by specifying where to obtain a placeID (from GET /places/search or previous responses) and explains its role in verification, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches full details for a Google Place ID, distinguishing it from sibling tools like places_search and trips_create by specifying its role in verification.
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?
Explicitly says it is useful for verifying a placeID before sending to POST /trips, and notes that POST /trips only accepts 'type: city' and rejects venues, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
places_searchAInspect
GET /places/search — Search Google Places
Search for places by name. Use this to look up a Google Place ID before creating a trip or referencing a venue.
Results include a type field that classifies each match as city (a chapter-level locality usable for trips) or venue (a specific establishment, address, or country/region match — usable for events/meetups but rejected by POST /trips). Filter on type === "city" if you're building a trip-creation flow; pass either type to event/meetup APIs.
Every result also includes the full enriched location (description, lat, lon, region, regionCode, utcOffsetMins) so the same payload can be passed straight to POST /trips without a follow-up GET /places/:placeID lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query (city name, country, address, etc.) | |
| limit | No | Max results (1-20) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the response structure (type field classification and enriched location) and explains that venue types are rejected by trips. However, it does not mention rate limits, authentication, or explicit read-only nature, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the HTTP method and resource. It then provides purpose, details on type field, and usage hints. One could argue the first line is slightly redundant, but overall it's well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the response shape (type, enriched location) and how to use results. It covers essential use cases for trip creation and events. Missing elements like pagination or error handling, but it is sufficiently complete for a search 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 schema already documents both parameters. The description adds marginal value by linking q to 'name' but mostly repeats schema info. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (search), the resource (Google Places), and the purpose (look up place ID for trips/venues). It distinguishes from siblings like 'place' and 'search' by specifying its role in obtaining place IDs and enriching locations.
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 explicitly states when to use the tool (before creating a trip or referencing a venue), provides filtering guidance based on type (city for trips, venue for events), and notes that venue type is rejected by POST/trips. This offers clear context for selection and downstream usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profileAInspect
GET /profile — Get your own profile
Returns your own full profile — every field the in-app profile editor surfaces to you, plus tier-derived state. Same shape regardless of tier (DC and DC BLACK members get identical own-profile payloads). Use PATCH /profile to update editable fields.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses that it returns full profile and tier-derived state, but omits authentication requirements or safety implications. The GET method implies idempotence, yet explicitly stating read-only nature would improve clarity.
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 clear front-loading of purpose. No wasted words, each sentence adds value.
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 no output schema, the description adequately explains the tool's behavior and output shape. Could mention authentication or confirm it's a read operation, but overall complete for a simple profile retrieval 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?
Zero parameters and 100% schema coverage mean the description doesn't need to add parameter details. The baseline of 4 applies, and the description adds no redundant param info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get your own profile' and distinguishes it from siblings like profile_update by mentioning the PATCH endpoint for updates.
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?
Clearly indicates when to use this tool (to view own profile) and contrasts with profile_update. Could be more explicit about not using for other profiles, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profile_match_createAInspect
POST /profile-match — Match DCers from a description (or recommend if omitted)
AI-powered profile matchmaker. Match DCers against a natural-language description, or — when query is omitted — recommend DCers based on your own profile (chapter, industry, expertise, goals).
Returns ranked results from a profile-vector search (Gemini embeddings + reranking under the hood). The caller's LLM synthesizes any narrative on top. Stricter rate limits than the standard CRUD endpoints because of the embedding/rerank cost.
Two modes:
With
query: free-form description ("DCers in Lisbon who run SaaS").Without
query: AI builds an implicit query from your profile and returns "DCers you should meet". Useful for cold-start "who should I message this week?" prompts.
Optional structured filters (combine with either mode, all AND-ed):
locationChapterPlaceID— narrow to DCers whose home / base location matches this Google Place ID. Use for "based in X" queries. Resolve viaGET /places/search.locationCurrentPlaceID— narrow to DCers currently in this place (auto-derived from their last GPS / active trip). Use for "currently in X" / "visiting X" queries.eventID— narrow to DCers holding a valid ticket to this event ("DCers attending DCMEX who run logistics"). Refunded / canceled tickets are excluded.isDCB— whentrue, narrow to DC BLACK members only.businessIndustry— exact match on the DCer's primary business industry.minTeamSize— "at least this size" filter on team headcount (only matches DCers whose team-size visibility is shared with all DCers).minAnnualRevenue— "at least this revenue" filter on annual revenue (only matches DCers whose revenue visibility is shared with all DCers).gender— exact match on the DCer's self-reported gender. Note: Gender is sparsely populated — most DCers leave it blank. Use this as a "narrow if set" hint rather than a hard requirement; combine withqueryfor best results.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| isDCB | No | Optional. When `true`, narrows results to DC BLACK members only. | |
| limit | No | Max results (1-50, default 50). Hard cap at 50 — match is expensive; narrow with filters instead of paginating. | |
| query | No | Free-form description of the DCers you want to find. Omit to get recommendations based on your own profile. | |
| gender | No | Optional. Exact-match filter on the DCer's self-reported gender. Allowed values: `Man`, `Woman`, `Non-binary`, `Prefer not to say`. **Note: Gender is sparsely populated — most DCers leave it blank** — combine with `query` rather than relying on this alone. | |
| eventID | No | Optional. DC event ID — narrows results to DCers with a valid ticket (RSVP yes/maybe or paid). Pair with `query` for "DCers attending X who do Y". | |
| minTeamSize | No | Optional. "At least this team size" filter — matches DCers whose team-size bucket is >= this value, ordered as `None < 1-2 < 3-5 < 6-9 < 10-14 < 15-19 < 20-34 < 35-49 < 50-74 < 75-99 < 100+`. `Prefer not to say` also exists in the bucket vocabulary but is treated as "unknown" and always filtered out. Only DCers who set their team-size visibility to "all DCers" are matched; the rest are excluded silently. | |
| skipReranking | No | Optional. When `true`, skip the keyword reranker and return results in raw vector-similarity order. Useful when the query is fuzzy/semantic (where exact keyword overlap would add noise) or when comparing reranked vs raw ordering. | |
| businessIndustry | No | Optional. Exact-match filter on the DCer's primary business industry. Allowed values: `SaaS & Tech`, `Marketing Agency`, `Productized Services`, `Ecommerce & Amazon`, `Courses and Info Products`, `Affiliate, Content Creation, or Ad Revenue`, `Professional Services & Industry Specific Consulting`, `Real Estate and Investing`, `Coaching`, `Other`. | |
| minAnnualRevenue | No | Optional. "At least this revenue" filter on annual revenue. Pass any revenue label (e.g. `$1M+`, `$250K+`, `$100K+`); the filter parses to a number and matches DCers at-or-above. Only DCers who set their revenue visibility to "all DCers" are matched; the rest are excluded silently. | |
| locationChapterPlaceID | No | Optional. Google Place ID — narrows results to DCers based here ("based in X"). Resolve via `GET /places/search`. | |
| locationCurrentPlaceID | No | Optional. Google Place ID — narrows results to DCers currently here, whether they live there or are visiting. **Sparsely populated** — `currentLocation` is self-reported and most DCers leave it null, so this filter under-recalls. For "who is in <city> right now?" prefer creating a trip via `POST /trips` and reading `GET /trips/:tripID` — the `discovery.fullPool` block lists locals AND visitors during the trip window. Resolve placeIDs via `GET /places/search`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses it's a write operation, has stricter rate limits, uses Gemini embeddings and reranking, returns ranked results, and the caller synthesizes narrative. Good transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with sections, bullet points, and clear heading. Information is front-loaded with summary then detailed. Could be slightly more concise, but every sentence adds value.
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 11 parameters, no required fields, and no output schema, the description covers all aspects well, including caveats, alternatives, and behavioral notes. Complete enough for an AI agent to use effectively.
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%, but description adds significant meaning: explains two modes, how filters combine (AND), notes on sparseness (gender, currentLocation), alternatives to filters (e.g., trip_discovery), and details on minTeamSize and minAnnualRevenue filtering logic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it matches DCers from a description or recommends based on profile. It uses a specific verb ('match') and resource ('DCers'), and distinguishes from siblings by being AI-powered and having two modes.
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 explains two modes (with/without query) and when to use each. It provides explicit alternatives for locationCurrentPlaceID (use trips instead). Could be more explicit about when not to use, but provides good context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profile_updateAInspect
PATCH /profile — Update profile fields
Update allowed profile fields. Only the fields you include will be changed. Location, photo, and gender cannot be updated via API.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| diet | No | Dietary restrictions — used when DC plans event meals. | |
| github | No | GitHub username only (no URL prefix). 1-39 chars per GitHub's rules: letters, digits, `-`. Required to be granted access to the public DC client repo — set this to opt in. | |
| hobbies | No | Your non-business hobbies — games, camping, art, sports, anything (up to 1600 chars). | |
| No | Twitter/X username only (no URL prefix). 1-15 chars: letters, digits, `_`. | ||
| No | Facebook username only (no URL prefix). 5-50 chars: letters, digits, `.`. | ||
| headline | No | One-sentence elevator pitch shown at the top of your DC profile (max 64 chars). | |
| No | LinkedIn username only (no URL prefix). 1-50 chars: letters, digits, `.`, `_`, `-`. | ||
| nickname | No | Display name override — what other DCers see in addition to your real name (max 256 chars). | |
| teamSize | No | Number of full-time and part-time team members in your primary business. Predefined bracket. | |
| No | WhatsApp phone number in international format — `+` followed by 5-16 digits, no dashes or spaces. Required if you want to be added to the DC WhatsApp community. Always private — only visible to DC staff. | ||
| expertise | No | Areas you might consider yourself an expert in — skills you can use to help other members (up to 1600 chars). | |
| focusmate | No | Focusmate username only (no URL prefix). 3-50 chars: letters, digits, `_`, `-`. | |
| No | Instagram username only (no URL prefix). 1-30 chars: letters, digits, `.`, `_`. | ||
| shirtSize | No | T-shirt size — used when DC sends event swag. | |
| spouseName | No | Name of your spouse or partner — used only for the DCBKK partner pass. Always private (DC staff only). | |
| businessName | No | Name of the main business you run or are primarily focused on right now (max 256 chars). You can list other businesses in `otherBusinesses`. | |
| annualRevenue | No | Approximate annual revenue (in U.S. dollars) of your primary business over the last 12 months. Predefined bracket. | |
| businessWebsite | No | Public website for your primary business — single URL only (max 256 chars). | |
| otherBusinesses | No | Other businesses you currently operate. Feel free to share URL, short description, and year started for each (up to 1600 chars). | |
| yearsInBusiness | No | How long you have been on the entrepreneurial path. Used for matching with other members. Predefined bracket. | |
| businessIndustry | No | Category your primary business fits into. Must be one of the predefined industries. | |
| currentChallenge | No | Your current business challenge or goal. Used internally to match you with other members who can help (up to 1600 chars). | |
| peopleOfInterest | No | What kinds of community members you would like to connect with. Used to send recommendations of relevant DCers (up to 1600 chars). Set `peopleOfInterestIsPrivate: true` to keep this visible only to DC staff. | |
| relevantLocations | No | Cities or regions you frequently visit. Helps surface trip overlaps with other members (up to 1600 chars). | |
| teamSizeIsPrivate | No | Visibility of your team size. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers. | |
| previousBusinesses | No | Previous business exits and entrepreneurial experience worth listing (up to 1600 chars). | |
| askMeAnythingTopics | No | Topics other members can ask you about, in your field of expertise (up to 1600 chars). | |
| businessDescription | No | Description of your primary business. Plain text or HTML, up to 1600 chars. | |
| annualRevenueIsPrivate | No | Visibility of your revenue. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers. | |
| peopleOfInterestIsPrivate | No | Visibility of your "who I want to meet" answer. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explicitly labels the tool as a WRITE operation that mutates DC account data and notes non-updatable fields. This is good disclosure, but could mention idempotency, auth requirements, or side effects.
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 three sentences, front-loaded with the HTTP method and purpose. It is concise with no unnecessary words or repetition. Every sentence provides useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for an update operation but lacks mention of return values (no output schema). It does not summarize the grouping of fields (e.g., personal vs professional). Given 30 parameters, a bit more context on what the update accomplishes could be useful. Still, the schema descriptions are thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a detailed description in the input schema. The tool description adds only a general statement about updating allowed fields and non-updatable fields. It does not enhance understanding beyond the schema, so baseline 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 starts with 'PATCH /profile — Update profile fields', clearly stating the HTTP method and resource. It specifies only included fields are changed and lists non-updatable fields (location, photo, gender). This distinguishes it from other tools like 'profile' (likely read-only) and other update tools.
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 indicates when to use: to update allowed profile fields. It warns that some fields cannot be updated via API. However, it does not explicitly state when not to use or compare to alternatives like 'profile' (GET) or other update tools. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_issue_createAInspect
POST /report-issue — Report an issue or feedback
Submit a bug report, feedback, or question to the DC team. Optionally include a base64-encoded screenshot (PNG, JPEG, or WebP, up to 4 MB raw).
Privacy note: Screenshots and report text are sent unredacted to the DC team. Don't include passwords, payment details, or other secrets.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | A short description of the issue or feedback (1–4000 chars). | |
| context | No | Optional structured debug context — anything useful for triage (last error, request payload, endpoint, etc.). Up to 32 keys. | |
| severity | No | Severity: bug | feedback | question. Defaults to "bug". | |
| screenshot | No | Optional base64-encoded screenshot. Accepts raw base64 OR a data URL (e.g. `data:image/png;base64,...`). PNG, JPEG, or WebP only. Max 4 MB raw, clamped to 4096×4096; re-encoded server-side to strip EXIF. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Explicitly states it's a WRITE operation mutating account data. Privacy note warns about unredacted data. Fully transparent.
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?
Concise, front-loaded with endpoint and purpose. Each sentence adds necessary information (options, privacy, mutation warning). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Completely covers all parameters and behavioral aspects (mutation, privacy, format constraints). No output schema needed for a report tool. Sufficient for agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). Description adds value beyond schema: details on screenshot format, size limits, EXIF stripping, text length, severity defaults, and context key limits.
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?
Clearly states the tool is for reporting issues/feedback to the DC team, using a specific verb and resource (POST /report-issue). It distinguishes itself from sibling tools as the only one for this purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly defines when to use (bug report, feedback, question) and what to include. Privacy note adds caution. Lacks explicit alternatives or when-not-to-use, but context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roomsAInspect
GET /rooms — List your subscribed rooms
Returns every room you are subscribed to (DMs, group DMs, channels you follow, discussions, activities, event rooms), sorted by lastActivityAt descending. Cursor-paginated.
To filter by type use GET /rooms/inbox/:type (e.g. /rooms/inbox/dm for DMs only).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-100) | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It states the HTTP method (GET), the returned data (subscribed rooms), sorting by `lastActivityAt`, and pagination (cursor-based). It does not mention authentication or rate limits, but for a read-only endpoint this is acceptable.
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 three sentences: first defines the endpoint and purpose, second details the results, third gives an alternative. Every sentence adds value, and it is front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain what is returned. It lists the types of rooms and mentions sorting and pagination. However, it does not describe the fields in each room object. Given that the tool is a list endpoint, the missing details might be inferred, but a more complete description would be ideal.
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 adds context by mentioning 'Cursor-paginated', which reinforces the purpose of the `cursor` parameter. It also implies the `limit` parameter by stating 'Max results (1-100)', though the schema already provides that. Overall, it adds some value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'your subscribed rooms', and specifies the types of rooms included (DMs, group DMs, channels, etc.). It distinguishes itself from sibling tools like `rooms_inbox` by noting that the latter filters by type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool: to list all subscribed rooms. It also provides an alternative: use `GET /rooms/inbox/:type` for filtering by type, giving clear guidance on when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_archive_createAInspect
POST /rooms/:roomID/archive — Archive a room
Archive a room — hides it from the inbox sidebar without unsubscribing. Use unarchive to bring it back. Access: the caller must be a member/subscriber. Idempotent.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the burden of behavioral disclosure. It clearly states that this is a WRITE operation that mutates data, is idempotent, and requires membership. This is comprehensive.
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 efficiently structured: one line for HTTP method/path, then purpose, effect, alternative, access, idempotency, and write warning. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple archive operation with one required parameter, the description covers all essential aspects: what it does, its effect, access conditions, idempotency, and that it is a mutation. No missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the only parameter roomID is described). The description does not add additional meaning beyond the schema's 'Room ID' line. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Archive' and resource 'room', and distinguishes from the sibling tool 'unarchive' by explicitly mentioning it. The effect 'hides it from the inbox sidebar without unsubscribing' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides an alternative ('Use `unarchive` to bring it back') and states access requirements ('the caller must be a member/subscriber'). It does not explicitly say when not to use it, but the mention of the alternative provides sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_browseAInspect
GET /rooms/browse/:type — Browse public channels by type
Browse publicly-joinable rooms of a given type that you are NOT yet subscribed to. The same surface the in-app Browse Channels modal shows. DC BLACK rooms are filtered out for DC tier members.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Room type to browse. Allowed: `channel`, `discussion`, `quick-question`. | |
| limit | No | Max results (1-100) | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully informs behavior: HTTP GET, read-only operation, filtering of DC BLACK rooms for DC tier members. It also implies pagination via cursor parameter. No mention of authentication, but GET is generic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences plus the HTTP method line. No wasted words, front-loaded with the core purpose and HTTP verb.
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 3 parameters, full schema coverage, and no output schema, the description provides adequate context: explains the source of data (in-app modal), filtering rule, and the general browse behavior. It could mention pagination more explicitly, but the cursor parameter covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description adds context about the tool's origin (same as in-app Browse Channels modal) and filtering rules, which complements the schema descriptions without repeating them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses public rooms of a given type that the user is not subscribed to. It specifies the HTTP method and resource path, and distinguishes from sibling tools like rooms (subscribed rooms) and search_rooms (search all).
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 tells when to use it: to browse publicly-joinable rooms not yet subscribed to. It mentions a restriction (DC BLACK filtered out for DC tier members). It does not explicitly list alternatives among siblings but the use case is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_by_idAInspect
GET /rooms/:roomID — Get a single room
Get a single room's metadata + its latest daily AND weekly AI summaries (when they exist). Access: members and subscribers of the room, plus any DCer for browsable public channels/discussions/quick-questions. Private rooms, DMs, group DMs, and event/city rooms you are not a member of return 403. Reading this endpoint does not mark the room as read or modify any unread state.
AI summaries: the latest daily digest is embedded under aiSummaryDaily, the latest weekly digest under aiSummaryWeekly. Rooms that don't have a given type yet return null for that slot. For history (older summaries), call GET /rooms/:roomID/summaries/daily or /weekly.
See also: For specific content (did anyone mention X?), POST /search/messages with q= and roomID= is faster than paginating /rooms/:roomID/messages or reading summaries. The AI summaries cover broad activity per window; search is the tool for targeted lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavioral traits: it notes that reading does not mark as read or modify unread state, explains access controls, and details that summaries return null if not available.
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 well-structured with clear sections, uses bullet-like formatting, and every sentence provides unique value. No wasted words, appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is complete. It covers what the endpoint returns, what it does not do (mark read), and provides alternatives for related tasks.
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% (roomID described), but the description adds value by linking the parameter to access semantics (members/subscribers get 403 for unauthorized rooms). This enriches understanding beyond the schema's 'Room ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'GET /rooms/:roomID — Get a single room' and specifies it returns metadata plus AI summaries. It distinguishes itself from siblings like 'rooms' (list), 'rooms_summaries' (history), and 'search_messages' (targeted lookup).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use (get single room metadata + summaries) and when-not-to-use (for history, use other endpoints; for targeted content, use search). It also explains access restrictions (403 for private rooms without membership) and offers see-also references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_inboxAInspect
GET /rooms/inbox/:type — List your rooms by type
Returns your subscribed rooms filtered to a single type. Same shape as GET /rooms but scoped — e.g. /rooms/inbox/dm returns DMs only, /rooms/inbox/group returns group DMs.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Room type filter. Allowed: `channel`, `dm`, `group`, `discussion`, `quick-question`, `event`. | |
| limit | No | Max results (1-100) | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the sole source. It states the tool returns subscribed rooms filtered by type and mentions the output shape is same as 'GET /rooms'. However, it does not detail authentication, rate limits, or pagination behavior beyond the schema's cursor parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise, front-loaded sentences with no extraneous information. Every part adds value: a summary and contextual examples.
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 no output schema, the description compensates by referencing the shape of 'GET /rooms' and specifying it filters subscribed rooms. It provides context for nested sibling tools like 'rooms'. Could be more explicit about pagination ordering or that cursor is from a previous response, but overall sufficient.
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 minimal value beyond the schema, only providing examples for the 'type' parameter. The schema already adequately describes each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists rooms by type, using a specific verb ('List') and resource ('rooms by type'). It distinguishes itself from the sibling 'rooms' tool by noting it is 'scoped' and providing examples like '/rooms/inbox/dm' for DMs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through scoping and examples but does not explicitly state when to use this tool versus alternatives like 'rooms' or other filtered tools. No when-not or explicit alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_messagesAInspect
GET /rooms/:roomID/messages — List messages in a room
List messages in a room you are a member of. Read-only — no write side effects, no unread-state mutation, no reactions/posts/edits. Cursor-paginated newest-first.
Access: strict — the caller must be a subscribed member of the room (same seen doc check used by the web inbox). For browsable public channels, any DCer can read. Private rooms, DMs (dm), group DMs (group), event rooms, and city/country/mastermind rooms hard-block non-members with 403. Hidden/deleted/sunk messages are excluded.
Pagination: pass ?before=<nextCursor> from a previous response to fetch the next (older) page. Default page size 50, max 100.
See also: For specific content in this room (did anyone mention X?), POST /search/messages with q= and roomID= searches body text directly — far faster than paginating with ?before. This endpoint is the right call when you want a chronological window (last N messages, conversation reconstruction); search is the right call when you want a topic.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-100) | |
| before | No | Cursor from a previous response's `nextCursor` (encodes the previous page's oldest message timestamp). Pass to fetch the next older page. | |
| roomID | Yes | Room ID. Discover from `GET /rooms` (your subscribed list), `GET /inbox/unread`, `trip.roomID` on `GET /trips/:tripID`, or event chat-room IDs on `GET /events/:eventID`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature, no side effects, cursor pagination, member-only access with specific room type rules, and exclusion of hidden/deleted/sunk messages.
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?
Well-organized with bold headers, no fluff, each section adds value and is front-loaded with the core action.
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?
Covers purpose, access, pagination, and sibling differentiation; lacks description of the return format (message fields), but that is often implicit for list endpoints.
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 already covers all parameters; description adds value by explaining cursor encoding (timestamp) and default/max limits beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists messages in a room, specifies it is read-only, and differentiates from search_messages by explaining chronological vs topic use cases.
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?
Explicitly states when to use this tool (chronological window) vs search_messages (topic-based), and provides access rules and pagination details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_mute_createAInspect
POST /rooms/:roomID/mute — Mute a room
Mute notifications for a room. Sets mutedUntilAt to a far-future timestamp (no expiry) — the room stays muted until explicitly unmuted. The room still appears in the inbox; only notifications are suppressed.
Access: the caller must be a member/subscriber of the room.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states it is a WRITE operation that mutates data, explains the specific field affected (mutedUntilAt set to far-future), notes no expiry, and clarifies that the room remains in the inbox. With no annotations provided, this description fully discloses behavioral traits.
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 concise and well-structured: a short verb-resource line, followed by behavior details, access note, and a warning. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers behavioral effect, access requirement, and mutation nature completely. No gaps remain given the context signals.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (roomID) described as 'Room ID'. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool mutes a room for notifications. It specifies the action (mute), the resource (room), and the effect (suppresses notifications), distinguishing it from inverse operations like rooms_unmute_create.
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 indicates the tool is used to mute notifications and specifies an access requirement (caller must be a member/subscriber). However, it does not explicitly contrast with the sibling tool rooms_unmute_create or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_pin_createAInspect
POST /rooms/:roomID/pin — Pin a room
Pin a room to the top of the inbox. For subscription-type rooms the caller is auto-subscribed if not already (mirrors the in-app behavior — you can't pin what you don't follow). Access: the caller must already have an interaction history with the room (DMs and group DMs require having received at least one message). Idempotent.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the write nature ('mutates your DC account data'), auto-subscription behavior, and access constraints. This provides sufficient transparency for the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured, and front-loaded with the purpose. Every sentence adds value: header line, behavioral details, access requirements, and idempotency note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description covers all necessary aspects: operation type, side effects, prerequisites, and idempotency. It is complete for an agent to make an informed decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage for the single parameter (roomID described as 'Room ID'), the description adds no extra meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool pins a room to the top of the inbox ('POST /rooms/:roomID/pin — Pin a room'). It distinguishes the core action from siblings like rooms_unpin_create, but does not explicitly name the sibling for unpinning.
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: auto-subscription for subscription-type rooms, access prerequisites (interaction history for DMs/group DMs), and idempotency. It implies when to use but doesn't explicitly mention when not to use or directly compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_subscribe_createAInspect
POST /rooms/:roomID/subscribe — Subscribe to a room
Subscribe to a public channel, discussion, quick-question room, or event room. The caller is added to the room's seen subcollection with flags.isSubscribed: true and starts receiving its updates in their inbox.
Access: the room must be enabled, non-archived, non-private, non-hidden, and of a subscribable type (channel, discussion, quick-question, event). Event rooms additionally require a valid ticket to the linked event — call /events/:eventID first to verify ticket status. DMs and group DMs cannot be subscribed/unsubscribed via the API; they are managed in-app only.
Idempotent: subscribing when already subscribed is a no-op (returns 200 with the current state).
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It states this is a WRITE operation that mutates account data, is idempotent, and adds user to the seen subcollection. Missing details like rate limits or authentication, but covers key traits.
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 well-structured with sections for access, idempotency, and warning. It is slightly lengthy but each sentence adds value. Could be marginally tighter but remains clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and no output schema, the description is comprehensive: covers access conditions, idempotency, mutability, and what happens upon subscription. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with only one parameter (roomID) described as 'Room ID'. The description does not add additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool subscribes to a room, specifying the room types (channel, discussion, quick-question, event) and distinguishes from siblings like rooms_unsubscribe_create. It uses a specific verb 'Subscribe' and identifies the resource '/rooms/:roomID/subscribe'.
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?
Provides explicit when-to-use (subscribable public rooms) and when-not (DMs, group DMs, archived/private/hidden rooms). Also specifies prerequisites for event rooms (valid ticket). Gives clear context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_summariesAInspect
GET /rooms/:roomID/summaries/:type — List past daily or weekly summaries
List past summaries of a given type for a room, newest first. Cursor-paginated — pass cursor from the previous response to fetch the next (older) page.
Each summary covers a non-overlapping window (one per day for daily, one per week for weekly). Use this for catch-up workflows ("show me the last 7 daily summaries before I rejoin the conversation"). Same access gate as GET /rooms/:roomID.
See also: Summaries cover broad activity per window. For specific content (did anyone mention X?), POST /search/messages with q= and roomID= is faster than reading multiple summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Summary type — `daily` or `weekly`. | |
| limit | No | Max results (1-50) | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next (older) page. | |
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses cursor-based pagination, ordering (newest first), non-overlapping windows per summary, and same access gate as another endpoint. No annotations exist, so description carries full burden and handles it well.
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?
Description is a single paragraph with logical flow: endpoint, what it does, pagination, use case, alternative. No redundant words; 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?
No output schema, but description mentions cursor field in response. Could detail summary fields, but provides enough for basic usage. Given complexity, it's near complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters are described in the schema (100% coverage), but the description adds context: explains cursor usage ('pass from previous response'), type values ('daily or weekly'), and limit default. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the endpoint and action: 'List past daily or weekly summaries' for a specific room and type. It clearly distinguishes from siblings like 'rooms_summary' and other related tools.
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?
Provides explicit use case: 'Use this for catch-up workflows' and an alternative tool: 'POST /search/messages with q= and roomID= is faster than reading multiple summaries.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_summaryAInspect
GET /rooms/:roomID/summary/:type — Get the latest daily or weekly summary
Get the latest single summary of a given type for a room.
Type is required — daily and weekly summaries cover different windows and live in separate slots. Pass the type you want as a path segment.
For history (multiple past summaries) use GET /rooms/:roomID/summaries/:type. Same access gate as GET /rooms/:roomID.
See also: AI summaries cover broad activity per window. For specific content (did anyone mention X?), POST /search/messages with q= and roomID= is faster than reading summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Summary type — `daily` or `weekly`. | |
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the operation as a read (GET) and mentions access gates, but does not disclose behavior when no summary exists, error codes, or authorization requirements. Some transparency but gaps remain.
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 concise with three short paragraphs, front-loaded with the endpoint and purpose. Every sentence adds value, including comparisons to related endpoints. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description is mostly complete. It explains the tool's scope, required parameter, and relationship to siblings. Lacks details on response format or error cases, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters with descriptions, and the description adds meaning by explaining that daily and weekly summaries cover different windows and live in separate slots. This clarifies the type parameter beyond the schema's simple enum-like 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 the tool retrieves the latest daily or weekly summary for a room, using a specific endpoint. It clearly distinguishes from the sibling tool `rooms_summaries` which is for history, providing a precise verb-resource combination.
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 explicitly states the type is required, explains the difference between daily and weekly summaries, and advises when to use the history endpoint or search_messages instead. It gives clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_unarchive_createAInspect
POST /rooms/:roomID/unarchive — Unarchive a room
Unarchive a previously-archived room. Restores it to the inbox sidebar. Access: the caller must be a member/subscriber. Idempotent.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses write operation, idempotency, access requirement, and effect. With no annotations, the description carries full burden and does so adequately. Could mention potential side effects or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two sentences plus a warning. Front-loaded with the main action (unarchive). Every sentence adds value with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: purpose, effect, access, idempotency, and write operation. Missing details on error handling or return values, but with no output schema and simple input, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'roomID' described as 'Room ID'. Description does not add additional meaning or constraints beyond the schema, so baseline 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?
Clearly states the action 'Unarchive a previously-archived room' with a specific verb and resource. Distinguishes from siblings like rooms_archive_create. Also describes the effect: 'Restores it to the inbox sidebar.'
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?
Describes when to use (unarchive a previously-archived room) and access requirement (member/subscriber). Lacks explicit guidance on when not to use (e.g., if room is already unarchived) or comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_unmute_createAInspect
POST /rooms/:roomID/unmute — Unmute a room
Unmute a previously-muted room. Clears mutedUntilAt. Access: the caller must be a member/subscriber of the room. Idempotent.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description effectively discloses that this is a WRITE operation, mutates account data, and is idempotent. Access requirements are also stated, providing good transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the endpoint. It uses clear formatting with warnings and is efficient without unnecessary fluff. Could be slightly more compact, but it's well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no output schema, the description covers essential aspects: purpose, side effect, idempotency, and access. It leaves no major gaps given the tool's complexity.
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?
There is only one parameter (`roomID`) and the schema already provides a description ('Room ID'). The description adds no further semantic detail, so it meets the baseline for high schema coverage but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool unmutes a room and specifies the HTTP method and path. It mentions the side effect of clearing `mutedUntilAt`. However, it does not explicitly differentiate from its sibling `rooms_mute_create`, though the inverse relationship is implied.
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?
Indicates the tool is for unmuting a previously muted room and notes access requirements (member/subscriber) and idempotency. Could be improved by explicitly stating when not to use or naming alternatives, 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.
rooms_unpin_createAInspect
POST /rooms/:roomID/unpin — Unpin a room
Unpin a previously-pinned room. Returns it to its normal place in the inbox sort order. Access: the caller must be a member/subscriber. Idempotent.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description fully discloses that this is a write/mutation operation, idempotent, and requires membership. No contradictions.
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 plus access note, no redundancy, front-loaded with key action.
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 low complexity (1 param, no output schema), description fully informs agent about purpose, behavior, and constraints.
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% and describes roomID as 'Room ID'. Description adds no extra parameter meaning beyond schema, so baseline 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?
Description clearly starts with HTTP method and endpoint, uses specific verb 'Unpin a room', explains effect on inbox sort order, and is distinct from sibling rooms_pin_create.
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?
States access requirement (member/subscriber) and idempotency, implying it's for unpinning rooms. However, lacks explicit when-not or alternative sibling guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rooms_unsubscribe_createAInspect
POST /rooms/:roomID/unsubscribe — Unsubscribe from a room
Unsubscribe from a public channel, discussion, quick-question, or event room. The caller's seen doc is updated to flags.isSubscribed: false, the badge count is cleared, and the room drops out of the inbox sidebar.
Access: the caller must already be a subscriber. DMs and group DMs cannot be unsubscribed via the API.
Idempotent: unsubscribing when already unsubscribed is a no-op.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | Yes | Room ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses it's a WRITE operation, mutates data, updates flags, clears badge, drops from inbox, and is idempotent. Sufficiently transparent.
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?
Well-structured: HTTP method in first line, then clear explanation, bullet points for access and idempotency. Every sentence adds value, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-param tool with no output schema, description covers all necessary aspects: action, effects, access restrictions, idempotency, and caveats. Complete and self-contained.
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 100% with description for roomID. Description adds context about room types, but value beyond schema is marginal. Baseline 3 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?
Clearly states the tool unsubscribes from a room, specifies room types (public channel, discussion, quick-question, event), and distinguishes from siblings like rooms_subscribe_create.
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?
Provides context: caller must be subscriber, DMs/group DMs excluded, idempotent. Lacks explicit guidance on when to use vs alternatives (e.g., mute vs unsubscribe), but still clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchAInspect
GET /search — Cross-resource omni-search
Cross-resource search across profiles, rooms, messages (incl. private DMs + group DMs you're in), events, and chapters in one round trip. Returns the top-N matches per resource, grouped by resource.
Use this when you don't yet know which resource carries the answer — agents typically call this first, then drill into a specific GET /search/<resource> for more depth on a single bucket. There's no page param: when you hit the per-resource limit and want more, switch to the per-resource endpoint for that one.
The events slice has a baked-in forward-looking default (events ending in the last 30 days or later, and currently enabled) — this matches the in-app "Search across DC" surface. Use GET /search/events directly to look further back in time.
Query syntax (q=): plain words match with prefix + typo tolerance. Wrap a phrase in double quotes to require an exact ordered match — e.g. q="remote work". AND/OR/NOT/parentheses are NOT parsed in q= — use the structured filter params below for boolean composition.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search text (1-500 chars). Required. | |
| limit | No | Per-resource hits cap (1-25). The same cap applies to each resource — so `limit=5` returns up to 5 profiles + 5 rooms + 5 messages + 5 events + 5 chapters. | |
| userID | No | Scope each resource to this DCer's content — their profile, messages they authored, rooms they created, events they host, chapters they belong to. The @-mention pattern from the in-app search. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavioral traits: no pagination, per-resource limit, default event time range, and query syntax details (prefix matching, typo tolerance, exact phrase, no boolean parsing). No contradictions.
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 well-structured: starts with endpoint and high-level purpose, followed by usage guidance, behavioral details, and query syntax. Every sentence is informative with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple resources, parameters, query syntax), the description covers nearly all aspects. It could mention the response format explicitly, but 'grouped by resource' and 'top-N matches' adequately convey the structure. No output schema, but the description compensates well.
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 adds value by explaining how 'limit' applies equally to each resource, how 'userID' scopes content across all resources, and the detailed query syntax beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a cross-resource omni-search across profiles, rooms, messages, events, and chapters. It distinguishes itself from sibling per-resource search tools (e.g., search_profiles) by explicitly stating it returns results from multiple resources in one round trip.
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 explicit guidance on when to use this tool ('when you don't know which resource carries the answer'), when to switch to per-resource endpoints ('when you hit the per-resource limit'), and explains the default behavior of events slice ('forward-looking'). This helps the agent decide between this and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_chaptersAInspect
GET /search/chapters — Search chapters
Search DC chapters by city or country name.
Query syntax (q=): plain words match with prefix + typo tolerance. Wrap a phrase in double quotes to require an exact ordered match — e.g. q="remote work". AND/OR/NOT/parentheses are NOT parsed in q= — use the structured filter params below for boolean composition.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search text. Required. | |
| page | No | 1-indexed page number. | |
| limit | No | Max hits per page (1-100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Provides detailed behavior of query parsing (prefix matching, typo tolerance, exact phrase), and clarifies what is not supported (boolean operators), compensating for lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, well-structured paragraphs with no extraneous words; first sentence states purpose, second details syntax.
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?
Covers search behavior and query syntax well, but lacks information about return format or pagination details; adequate for a simple search 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 covers all parameters with descriptions; description adds value by detailing q parameter semantics (prefix, typo, exact match) beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool searches DC chapters by city or country name, with specific verb and resource, and distinguishes from sibling search tools.
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?
Explains query syntax and supported operations, but does not explicitly state when to use this tool versus other search tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_eventsAInspect
GET /search/events — Search events
Search enabled DC events by name, description, host, and venue. No default time filter — pass ?since= or ?until= (ISO 8601 dates) to constrain. They compose: pass both for an explicit window.
Query syntax (q=): plain words match with prefix + typo tolerance. Wrap a phrase in double quotes to require an exact ordered match — e.g. q="remote work". AND/OR/NOT/parentheses are NOT parsed in q= — use the structured filter params below for boolean composition.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search text. Required. | |
| page | No | 1-indexed page number. | |
| limit | No | Max hits per page (1-100). | |
| since | No | Events ending on or after this date (ISO 8601). | |
| until | No | Events starting on or before this date (ISO 8601). | |
| cityID | No | Events whose chapter city is this Google Place ID. | |
| userID | No | Scope to events hosted by this DCer. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. `TH`, `MX`). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses query behavior (prefix/typo tolerance, exact phrase requirement) and parameter composition. It does not explicitly state read-only status, but that is implied for a search tool. No contradictions.
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 concise with two clear paragraphs. It uses bullet points for query syntax and embeds code-like examples (e.g., `?since=`, `q="remote work"`). Every sentence adds value with no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters and no output schema, the description adequately covers input semantics and query behavior. It doesn't describe return format, but for a search tool that is partially handled by the tool name. Lacks explicit mention of return fields or pagination details, but is sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value beyond schema: it explains query syntax, date composition (since and until compose), and that structured filters are for boolean logic. This provides meaningful context not present in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search events' and specifies that it searches enabled DC events by name, description, host, and venue. This verb+resource purpose is specific and distinct from sibling tools like search_chapters or search_profiles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use guidance: notes no default time filter and shows how to use since/until with ISO 8601. Explains query syntax (prefix/typo tolerance, exact phrase matching) and clarifies that AND/OR/NOT are not parsed in q=, directing users to structured filter params for boolean composition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_messagesAInspect
GET /search/messages — Search messages (incl. your private DMs)
Search message bodies across every room you can access. This is the key surface for "catch me up on what was said about X" — your private DMs, group DMs, and any room you're a member of are all searchable. Messages from rooms you don't belong to are filtered out before any results return.
Scope to one room with ?roomID= (the room is double-gated against your membership — passing a roomID you're not in returns 403, not silently-empty results). Scope to one author with ?userID=. The two compose: ?roomID=<id>&userID=<id> returns just messages by that author in that one room.
Query syntax (q=): plain words match with prefix + typo tolerance. Wrap a phrase in double quotes to require an exact ordered match — e.g. q="remote work". AND/OR/NOT/parentheses are NOT parsed in q= — use the structured filter params below for boolean composition.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search text. Required. | |
| page | No | 1-indexed page number. | |
| limit | No | Max hits per page (1-100). | |
| roomID | No | Scope to a single room. Must be a room you are a member of — otherwise returns 403. Discover roomIDs via `GET /rooms`, `GET /inbox/unread`, or `trip.roomID` on `GET /trips/:tripID`. | |
| userID | No | Scope to messages authored by this DCer. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: messages from inaccessible rooms are filtered, roomID out-of-membership returns 403, and query syntax details (prefix, typo tolerance, exact match, no boolean operators). This is comprehensive.
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 longer but well-structured with sections. Every sentence adds value, though it could be slightly more concise. It is front-loaded with the core purpose.
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 no output schema, the description does not detail return format, but it covers parameter behavior, error codes, and query syntax thoroughly. It is sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value beyond the schema: explains double-gating on roomID, composition of roomID and userID, and syntactical details for the q parameter (phrase matching, lack of boolean parsing).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search messages (incl. your private DMs)' and specifies that it covers message bodies across every room the user can access. This distinguishes it from sibling search tools like search_chapters or search_events.
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 explicitly recommends this tool for catching up on topics ('catch me up on what was said about X') and explains scoping to one room or author. It does not explicitly state when not to use it, but the context is clear and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_profilesAInspect
GET /search/profiles — Search profiles
Full-text search across DCer profiles — headlines, bios, business descriptions, expertise, hobbies, etc. Returns matching profile records with privacy gates applied (hidden + guest profiles filtered out).
For structured/AI-driven matchmaking ("DCers in Lisbon who run SaaS"), prefer POST /profile-match — it has a richer ranking pipeline and filters. This endpoint is the plain full-text fallback.
Query syntax (q=): plain words match with prefix + typo tolerance. Wrap a phrase in double quotes to require an exact ordered match — e.g. q="remote work". AND/OR/NOT/parentheses are NOT parsed in q= — use the structured filter params below for boolean composition.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search text. Required. | |
| page | No | 1-indexed page number. | |
| limit | No | Max hits per page (1-100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses privacy gate behavior (hidden/guest profiles filtered), query syntax details (prefix, typo tolerance, exact phrase), and that boolean operators are not supported. While no annotations exist, it adds meaningful behavioral context, though it stops short of mentioning response structure or error handling.
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?
Efficiently structured: a brief one-line summary, then a paragraph on usage/alternative, then a clear syntax section. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main functionality, usage guidance, query syntax, and privacy filtering. However, without an output schema, the description could have clarified the return format (e.g., profile fields, pagination info) for full completeness.
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 already describes all 3 parameters (100% coverage), but the description compensates by explaining the query string syntax in detail (prefix matching, typo tolerance, double quotes, no boolean parsing) and confirming pagination defaults, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs full-text search across DCer profiles with privacy gates, and distinguishes itself from the structured matchmaking tool 'profile_match_create', making the tool's specific role clear.
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?
Explicitly advises when to use this tool ('plain full-text fallback') versus the alternative 'POST /profile-match' for structured queries. Also explains query syntax limitations (no AND/OR/NOT parsing) and provides formatting guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_roomsAInspect
GET /search/rooms — Search rooms
Search rooms by name, description, and topic. Returns rooms that match the query AND that you have access to (subscribed-or-browsable; private rooms / DMs / group DMs you're NOT a member of are filtered out).
Query syntax (q=): plain words match with prefix + typo tolerance. Wrap a phrase in double quotes to require an exact ordered match — e.g. q="remote work". AND/OR/NOT/parentheses are NOT parsed in q= — use the structured filter params below for boolean composition.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search text. Required. | |
| page | No | 1-indexed page number. | |
| type | No | Room type filter. Allowed: `channel`, `dm`, `group`, `discussion`, `quick-question`, `event`. | |
| limit | No | Max hits per page (1-100). | |
| userID | No | Scope to rooms created by this DCer. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
In the absence of annotations, the description discloses important behaviors: it returns only accessible rooms and explains query syntax limitations. This adds value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with clear sections, and uses bullet points effectively. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema or annotations, the description provides sufficient context: query syntax, access scope, and filter usage. It could include an example response but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaningful context for the 'q' parameter by explaining query syntax (prefix + typo tolerance, exact phrases). Other parameters are adequately described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search rooms by name, description, and topic.' It distinguishes itself from sibling search tools (e.g., search_chapters, search_events) by focusing specifically on rooms.
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 explains when to use (searching rooms) and provides details on query syntax and filters. It does not explicitly compare to similar tools like 'search', but the scope is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticketsAInspect
GET /tickets — List your tickets
Returns your tickets across events, newest first. Defaults to the tickets you're holding (valid plus maybe) — "what am I attending". Pass ?status=valid, ?status=maybe, or ?status=refunded to narrow to one.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-100). | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next page. | |
| status | No | Filter by a single ticket status. With no value, returns the tickets you're holding (`valid` and `maybe`). `refunded` is available on request. | valid,maybe |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses GET method, default filtering, order (newest first), and pagination via cursor. No annotations, but description covers key behavioral aspects. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-loaded with endpoint and purpose. No unnecessary words. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides essential context for a list tool: scope (across events), ordering, default filter. No output schema but pagination cursor is explained. Adequate for typical usage.
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 covers all parameters with descriptions (100% coverage). Description adds clarity on status default and usage, but does not add significant meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists your tickets across events, with newest first, and defaults to tickets you're holding. It distinguishes from sibling tools like event_attendees or event_rsvp which are per-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?
Provides clear default behavior (tickets you're holding) and filtering options. Does not explicitly exclude alternatives or state when not to use, but context implies it's the primary ticket listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tripAInspect
GET /trips/:tripID — Get a single trip
Single-trip read with the full payload. This is the canonical endpoint for "who should I meet on this trip?" — the response embeds a complete discovery block (ranked top-10 picks with AI summaries, the full pool of locals + visitors, events in town, and date-overlapping trips). If you only want the discovery block without the trip body, use GET /trips/:tripID/discovery.
Key discovery fields agents almost always want:
discovery.people— ranked top-10 DCers to meet on this trip, each carryingscore(higher = better match), miniprofile(userID, userName, displayName, photo, headline),reason(local/visiting/event-attendee),overlapDays,detail. Sourced from a vector-search + business-context ranking, not just date overlap.discovery.whyToMeet— AI-written "why you should meet them" paragraph for each of the top-10, keyed by userID, each{ text, generatedAt }. The most useful AI signal in the whole trip product — agents should surface this verbatim when introducing a match.discovery.fullPool— every visible DCer travelling or local during the trip window (typically 5–10× larger than/trips/overlaps, which only returns date-window matches). Same row shape aspeoplebut noscore.discovery.overlappingTrips— other DCers travelling at the same time/place, each with mini profile attached so no second fetch is needed. This is the same data that/trips/overlapsreturns, embedded here for convenience.discovery.events— events in the destination city during the trip window.discovery.generatedAt— when the discovery cache was last refreshed.
Also included: points — up to 20 venue/idea notes with optional Google Place data, plus a linked roomID for the auto-created trip coordination room.
Hidden + guest profiles are filtered out from all discovery lists. The discovery block is null for newly-created trips until the background sync task runs (~seconds — call POST /trips/:tripID/refresh to force-recompute). Open to any authenticated DCer (you can read other DCers' trips too).
| Name | Required | Description | Default |
|---|---|---|---|
| tripID | Yes | The trip ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses the tool's read-only nature, the nullable discovery block for new trips until background sync, that it's open to any authenticated DCer, and that hidden/guest profiles are filtered. It also explains the refresh mechanism.
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 somewhat long but well-structured with bullet points and bold key terms. It front-loads the endpoint and purpose, then systematically explains each discovery field. Minor redundancy but generally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description thoroughly documents the return payload, especially the discovery block with fields like people, whyToMeet, fullPool, overlappingTrips, and events. It also covers points, roomID, and when discovery is null. No critical missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter tripID, so baseline is 3. The description adds minimal extra meaning beyond the schema, only implying that the tripID identifies a specific trip. No further parameter details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'GET /trips/:tripID — Get a single trip' and elaborates on the full payload including the discovery block. It distinguishes itself from siblings like trip_discovery and trips_overlaps by noting which scenarios each serves.
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 explicitly identifies the canonical use case ('who should I meet on this trip?') and provides clear alternatives: 'If you only want the discovery block without the trip body, use GET /trips/:tripID/discovery'. It also notes that hidden/guest profiles are filtered out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trip_deleteAInspect
DELETE /trips/:tripID — Delete a trip
Permanently delete one of your trips. Removes the trip doc and its linked chat room (trip.roomID). The destination chapter's upcoming-trip count is recomputed in the background. Owner-only — you can only delete trips you created. The action is irreversible; deleted trips don't go to a trash collection.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| tripID | Yes | The trip ID to delete |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers behavioral traits: it permanently deletes the trip and linked chat room, recomputes a chapter count, is owner-only, irreversible, and explicitly marks it as a WRITE operation. This leaves no ambiguity about the action's consequences.
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 structured into three short paragraphs plus a warning, making it readable. While it includes some redundancy (e.g., 'Delete a trip' and 'Permanently delete'), it is still efficient and front-loads the core purpose.
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 all relevant aspects of the operation: what is deleted, side effects (chat room removal, count recomputation), ownership restriction, irreversibility, and the HTTP method. No output schema is needed for a delete operation, and the description is self-contained.
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 single parameter tripID is described in the schema with a basic description. The tool description does not add meaningful extra information about the parameter beyond what the schema already provides. Given 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool deletes a trip permanently, specifies the HTTP method and endpoint, and distinguishes it from sibling tools like trip_update and trips_create. The verb and resource are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states that only the owner can delete a trip, implying when to use (for own trips) and when not (for others' trips). However, it does not mention alternatives or explicitly state when to consider other tools, but the ownership constraint provides sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trip_discoveryAInspect
GET /trips/:tripID/discovery — Get the discovery block for a trip
Discovery-only read for a trip. Returns the same discovery block as GET /trips/:tripID (people, fullPool, whyToMeet, events, overlappingTrips) without the trip body. Useful for callers that just want "who should I meet on this trip?" — the AI agent gets the ranked top-10 + their whyToMeet paragraphs in a single request.
Use ?include= to subset the response — comma-separated from people,fullPool,whyToMeet,events,overlappingTrips. Default is all. Common patterns:
?include=people,whyToMeet— top-10 picks + their AI-written "why you should meet them" paragraphs (keyed by userID, each carrying{ text, generatedAt })?include=fullPool— every visible DCer travelling/local during the trip window?include=events— just events in the destination city during the trip window
Open to any authenticated DCer; hidden + guest profiles are filtered out.
| Name | Required | Description | Default |
|---|---|---|---|
| tripID | Yes | The trip ID | |
| include | No | Optional. Comma-separated subset of `people,fullPool,whyToMeet,events,overlappingTrips`. Default = all five. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description fully discloses behavior: read-only operation, response structure, auth requirements, and hidden/guest profile filtering. Details on include parameter and output format are provided.
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?
Well-structured with front-loaded endpoint and purpose, followed by details. Efficient but could be slightly more concise.
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?
Comprehensive given no output schema: explains what is returned, all include options, authentication, and filtering. No gaps for a read operation.
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%, but description adds value by explaining include parameter values and common patterns, enhancing the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns the discovery block for a trip, distinguishing it from GET /trips/:tripID by specifying it omits the trip body. Provides specific use case: 'who should I meet on this trip?'
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?
Explicitly states it's a discovery-only read and gives common include patterns. It does not explicitly list when not to use it, but the context makes the distinction clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trip_refresh_createAInspect
POST /trips/:tripID/refresh — Trigger a trip refresh
Owner-only sync trigger. Enqueues a deduped background job that recomputes the trip's discovery (overlapping people, events, AI blurbs). Spammy reloads coalesce. Returns 202 Accepted immediately; the cached discovery block on the trip doc updates when the job completes.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| tripID | Yes | The trip ID to refresh |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description thoroughly explains the behavior: it enqueues a deduped background job, returns 202 immediately, and updates discovery later. It explicitly states it is a WRITE operation that mutates data, with no annotations to rely on.
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 concise, front-loaded with the endpoint and purpose, and every sentence adds value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description covers return value (202), side effects (discovery update), and authorization (owner-only). It is complete for an agent to understand and use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter is already well-documented. The description adds only incidental context (the endpoint path) beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool triggers a trip refresh, recomputing discovery. It specifies the endpoint, explains the background job and deduplication, and distinguishes from sibling tools like trip_discovery by focusing on triggering rather than reading.
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 indicates it is an owner-only operation and warns against spammy reloads. It does not explicitly list when not to use it or compare vs. all siblings, but the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tripsAInspect
GET /trips — List your trips
Returns your upcoming trips by default. Add ?past=true to include past trips.
For "who should I meet on this trip?" fetch GET /trips/:tripID (or the discovery-only GET /trips/:tripID/discovery) — both return the ranked top-10 DCers + AI-written summaries + the full pool of locals and visitors in town during the trip window. The list response below does NOT include the discovery block (lazy by design — discovery is a much heavier payload).
| Name | Required | Description | Default |
|---|---|---|---|
| past | No | Include past trips. | |
| limit | No | Max results (1-100). | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the list response does not include the discovery block (lazy by design) and that discovery is a heavier payload. No annotations provided, so description carries the burden; it covers key behavioral aspects but could mention authorization or rate limits.
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 concise paragraphs, front-loaded with the HTTP method and main purpose, then additional usage details and cross-references. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description explains what the response includes (upcoming trips) and excludes (discovery block), and points to complementary endpoints for richer data. Complete for the tool's purpose.
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% and schemas are descriptive. The description adds context for the 'past' parameter but does not elaborate on 'limit' or 'cursor' beyond what is in the schema. Adequate but not exceptional.
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?
Clearly states 'List your trips' with GET /trips, distinguishes from trip, trip_discovery, and other sibling tools by specifying that discovery-related results are in other endpoints.
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?
Explicitly says 'Returns your upcoming trips by default. Add ?past=true to include past trips.' Also provides guidance on when to use other endpoints (for 'who should I meet on this trip?').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trips_createAInspect
POST /trips — Create a trip
Create a new trip. Provide exactly one of placeID or eventID — the server resolves the location (city, country, country code) automatically. Use GET /places/search to find a placeID by city/country name first, or pass an eventID from /events to create a trip to that event's city.
Trip points (optional points array, up to 20 per trip): each item is { note: string (max 280 chars), noteHTML?: string, placeID?: string }. The optional placeID is resolved against Google Places at write time and the full Place object (city, country, lat/lon, name, etc.) is stored on the trip — so reads don't do any lookups. noteHTML preserves the same rich text field the web trip editor stores for formatted notes, links, and mentions; note remains the required plain-text fallback. Notes without a placeID are valid ("remember to book a coworking space"). Pass an unknown / expired Google placeID → 400 with a clear error.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Trip note | |
| points | No | Optional. Up to 20 trip points (venues / ideas / notes). Each item: `{ note: string (max 280 chars), noteHTML?: string, placeID?: string }`. The optional `placeID` is resolved against Google Places at write time. Notes without a place are valid. | |
| endDate | Yes | End date (ISO 8601) | |
| eventID | No | DC event ID. Server uses the event's city placeID. **Pass exactly one of `placeID` or `eventID`** — sending both rejects with 400. | |
| placeID | No | Google Place ID for the destination. Look one up via `GET /places/search`. **Pass exactly one of `placeID` or `eventID`** — sending both rejects with 400. | |
| startDate | Yes | Start date (ISO 8601) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses the write operation, lists possible errors (400 for unknown placeID or providing both IDs), explains automatic resolution of location, and details the points behavior. No contradictions.
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 well-structured with sections, uses bullet points, and is concise yet comprehensive. Every sentence adds value without repetition.
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 no output schema and 6 parameters (2 required), the description covers all necessary context: usage rules, parameter relationships, error handling, and the write nature of the operation. It is complete for a create 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 input schema already describes all parameters (100% coverage), but the description adds significant context: the mutual exclusivity of placeID and eventID, the validation at write time, the Google Places resolution, and the structure of points with noteHTML. This goes well beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a trip, distinguishes between using placeID or eventID, and explains how to find placeID via GET /places/search. It differentiates from sibling tools like trip_update and trips.
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 explicit guidance on when to use placeID vs eventID, mentions the required startDate and endDate, and warns about the write operation. It could be improved by explicitly stating when not to use this tool (e.g., for updates, use trip_update).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trips_overlapsAInspect
GET /trips/overlaps — Find overlapping trips
Find other members whose trips overlap with yours by city + date range. This is a narrow date-window match, NOT the AI-ranked discovery pool. For the full set of DCers you could meet on a trip — including locals in town and AI-written "why you should meet them" summaries — fetch GET /trips/:tripID/discovery (or GET /trips/:tripID, which embeds the same discovery block). The discovery pool is typically 5–10× larger than /trips/overlaps because it includes locals and event attendees in addition to date-overlap visitors, and it carries ranked top-10 picks with AI summaries that this endpoint does not.
Use /trips/overlaps for the simple "who is travelling here at the same time as me" question. Use /trips/:tripID/discovery for "who should I meet on this trip?".
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max trips to check (1-20) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description should cover behavioral traits. It mentions the narrow scope but doesn't explicitly state it's read-only or discuss permissions/rate limits. Adequate but not thorough.
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?
Well-structured: purpose in first line (bold), then explanation, contrast, usage summary. Every sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and no output schema, the description sufficiently explains what it returns and when to use it. Could mention pagination or multiple trips note, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter (limit) is fully documented in schema (100% coverage). Description does not add extra meaning beyond the schema-provided default and range.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds overlapping trips by city and date range, distinguishes it from the AI-ranked discovery pool (trip_discovery), and contrasts it with related endpoints.
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?
Explicitly tells when to use this tool ('simple who is travelling question') and when to use alternatives (discovery for ranked suggestions), with sibling tool names mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trip_updateAInspect
PATCH /trips/:tripID — Update a trip
Update one or more fields on an existing trip. Only include the fields you want to change. To change destination, provide either placeID or eventID and the full location will be re-resolved.
Trip points: passing points replaces the entire array (it's not a patch within the array). Up to 20 items, same shape as POST /trips: { note: string (max 280 chars), noteHTML?: string, placeID?: string }. To clear all points, pass points: [].
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Updated note | |
| points | No | Optional. Replace the entire `points` array (not a patch within). Up to 20 items, same shape as `POST /trips`. Pass `[]` to clear all points. | |
| tripID | Yes | The trip ID to update | |
| endDate | No | New end date (ISO 8601) | |
| eventID | No | New destination — DC event ID (uses event's city). Pass `null` to unlink without changing the location. | |
| placeID | No | New destination — Google Place ID | |
| startDate | No | New start date (ISO 8601) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It explicitly states 'WRITE operation: this mutates your DC account data' and explains field-specific behaviors like points replacement and destination re-resolution. However, it does not mention error handling or response format.
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 concise and well-structured, with a front-loaded HTTP method and purpose. It uses bullet points for key behaviors and a warning. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description covers core behaviors, constraints, and mutation warning. It lacks information about the return value or error scenarios, but for a CRUD update, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds extra meaning beyond schema descriptions, such as points array replacement details, max 20 items, and the effect of providing placeID/eventID or null for eventID. This enriches the parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a trip' and 'Update one or more fields on an existing trip,' specifying the verb and resource. It distinguishes from sibling tools like trip_delete (delete) and trips_create (create) by focusing on updating an existing trip.
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, such as 'Only include the fields you want to change' and specific guidance for destination and points. It implicitly tells when to use this tool (for updating an existing trip) but does not explicitly exclude alternatives like trip or trip_delete, leaving some room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
virtual_eventAInspect
GET /virtual-events/:sessionID — Get virtual event details
Returns the same payload shape as one entry from GET /virtual-events for a single online session — sessionID, name, description, kind (which audience tier the session is open to), scheduledAt / scheduledEndAt (ISO 8601), duration in minutes, attendeeCount, isLive, meetUrl (the video-call join link, returned regardless of your RSVP state), myRsvp (your current yes/no/maybe or null), and status.
DC BLACK callers also see DC BLACK-only sessions; DC tier callers get tier_restricted (403) on those.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionID | Yes | The virtual session ID. Find IDs via `GET /virtual-events`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return shape similar to list endpoint, meetUrl regardless of RSVP, and DC tier restrictions (403). No annotations, so description covers read-only nature via HTTP method, but omits auth or rate limits.
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, first is repetitive (HTTP method path), second packs much detail. Efficient but could be slightly more concise.
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?
Single parameter with full schema coverage and sufficient description details about return shape and edge cases (tier restrictions). No output schema needed given thorough field listing.
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 fully covers sessionID with description; the description adds value by directing to find IDs via list endpoint, aiding parameter preparation.
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?
Clearly specifies verb 'Get', resource 'virtual event details', and scope 'single online session'. Distinguishes from sibling 'virtual_events' by stating it returns one entry from that list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for a single sessionID, but no explicit when-not or alternatives among siblings. Mentions DC tier restrictions but lacks guiding agent to choose over other event tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
virtual_event_rsvpAInspect
POST /virtual-events/:sessionID/rsvp — RSVP to virtual event
RSVP to a virtual (online) event. The user is added to the matching attendance list on the session doc (participantIDs for yes, maybeIDs for maybe, notIDs for no) and removed from the others.
Three statuses:
yes— you intend to attend; you'll show up inattendeeCount.maybe— soft attendance signal.no— you're declining. Use this to back out after a prioryesormaybe.
Note: the meetUrl (join link) on GET /virtual-events/:sessionID is not gated on your RSVP — it's returned whenever the host has set one, regardless of attendance state. RSVPing is purely an attendance signal.
Idempotent — re-RSVPing with the same status is a no-op.
⚠️ WRITE operation: this mutates your DC account data.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Your RSVP status for this session. | |
| sessionID | Yes | The virtual session ID. Find IDs via `GET /virtual-events`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the burden of behavioral disclosure. It explicitly states it is a WRITE operation that mutates data, explains idempotency, details the effect on attendance lists, and clarifies that the meetUrl is not gated on RSVP.
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 well-structured with an overview, bullet points for statuses, a note about meetUrl, and a warning. Every sentence adds value; no fluff. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description is complete. It explains the effect, side effects, idempotency, and clarifies a common misconception about meetUrl. No critical gaps remain.
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?
While schema coverage is 100%, the description adds significant context beyond the schema: it explains how to find sessionID via GET /virtual-events and describes the three statuses and their consequences on attendeeCount. This enriches parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'RSVP to virtual event' and explains the effect on attendance lists. It specifies it's for virtual events, distinguishing it from siblings like event_rsvp (for physical events) and event_meetup_rsvp (for meetups). The inclusion of the HTTP method and path adds clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for virtual events but does not explicitly state when to use it versus alternatives like event_rsvp or event_meetup_rsvp. No 'when-not' or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
virtual_eventsAInspect
GET /virtual-events — List virtual events
Returns upcoming virtual events (online sessions like Connect Calls, Happy Hour, Welcome Call, plus DC BLACK-only events). Add ?past=true to include past events.
| Name | Required | Description | Default |
|---|---|---|---|
| past | No | Include past events. | |
| limit | No | Max results (1-100). | |
| cursor | No | Cursor from a previous response's `nextCursor`. Pass to fetch the next page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It only states the tool returns upcoming events and mentions the past parameter. It does not disclose any behavioral traits like authentication, rate limits, or whether it is read-only (though GET implies it). Minimal behavioral info.
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 concise, front-loaded sentences. No wasted words. Efficiently communicates the tool's purpose and a key parameter.
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 no output schema, the description does not explain return values. It covers purpose and one parameter, but lacks details on pagination (cursor, limit) and error conditions. Adequate but could be more complete for a list endpoint.
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 all parameters are documented. The description reinforces the 'past' parameter usage but adds no new meaning for 'limit' or 'cursor'. With high coverage, baseline is 3; the description's added value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List virtual events' and specifies the resource (virtual events) with a verb. It distinguishes from sibling tools like 'event' and 'events' by providing the URL path and listing event types (Connect Calls, Happy Hour, etc.).
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 tells when to use (to list upcoming virtual events) and how to include past events via the 'past' parameter. It could be improved by explicitly stating when not to use it or suggesting alternative tools for filtering, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
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
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!