CANOPY Coworking
Server Details
CANOPY's official assistant: Bay Area coworking locations, prices, tour booking and sales questions.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Most tools have crisply distinct purposes (list vs. get location, get slots vs. book, capabilities vs. matching). The main risk is the trio of contact-generating tools — book_tour, request_tour and ask_sales_question — which share the same two-step confirm_token pattern and could be confused, though the descriptions do spell out when each applies.
Every tool follows a consistent snake_case verb_noun pattern: list_locations, get_location, get_membership_options, get_tour_slots, match_canopy_workspace, book_tour, request_tour, ask_sales_question.
Nine tools is well-scoped: discovery (list/get/match), knowledge (memberships, capabilities), booking (slots/book/request) and a sales fallback, with no redundant or filler tools.
The surface covers the full lifecycle for a location-information and tour-lead domain: browse locations, inspect one, compare memberships, check facts, find slots, book or request a tour, and escalate anything unknown to sales. There are no dead ends — every gap routes to ask_sales_question or request_tour.
Available Tools
9 toolsask_sales_questionAsk CANOPY's sales team a question (two steps)AInspect
Sends a question to a CANOPY sales manager, who replies by email within one business day: for anything the other tools don't answer, such as a specific price, a move-in date or a custom space. Step 1, without confirm_token: returns a preview and a confirm_token (valid 10 minutes); nothing is saved. Step 2, with the same details and the confirm_token: sends the question. Only call step 2 after the person agrees.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| Yes | |||
| phone | No | ||
| company | No | ||
| question | Yes | ||
| team_size | No | ||
| leave_empty | No | ||
| location_id | No | ||
| confirm_token | No | ||
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: an email reply arrives within one business day, step 1 saves nothing, the token expires in 10 minutes, and step 2 requires identical details. The annotations only flag non-read-only/open-world; the description supplies the actual side-effect model.
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 tight sentences. Purpose and scope come first, then the two-step mechanics in call order — exactly the sequence an agent needs, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be described, and the two-step contract is fully covered. The remaining shortfall is the undocumented optional parameters (notably leave_empty and conversation_id), which an agent may misuse or omit incorrectly.
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 0%, so the description must carry the load. It explains confirm_token thoroughly (purpose, 10-minute validity, matching details) but leaves leave_empty, conversation_id, location_id, team_size, company and phone completely unexplained, which is a real gap for a 10-parameter tool.
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?
States a specific verb and resource ("Sends a question to a CANOPY sales manager") and explicitly scopes it as "for anything the other tools don't answer, such as a specific price, a move-in date or a custom space," which cleanly separates it from the booking/location 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?
Gives an explicit two-step protocol: step 1 without confirm_token returns a preview, step 2 with confirm_token sends. It also states the gating condition plainly — "Only call step 2 after the person agrees" — leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_tourBook a CANOPY tour (two steps)AInspect
Books a tour time from get_tour_slots. Step 1, without confirm_token: returns a preview of the details and a confirm_token (valid 10 minutes); nothing is saved. Show the preview to the person. Step 2, with the same details and the confirm_token: returns a Calendly link with the details filled in, which the person opens to confirm the booking, and passes the details to CANOPY's sales team. Only call step 2 after the person agrees.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| Yes | |||
| notes | No | ||
| phone | No | ||
| company | Yes | ||
| team_size | Yes | ||
| tour_type | No | in_person | |
| slot_start | Yes | ||
| leave_empty | No | ||
| location_id | Yes | ||
| confirm_token | No | ||
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavior beyond annotations: step 1 saves nothing, returns a preview and a confirm_token valid for 10 minutes, and step 2 returns a Calendly link and passes details to CANOPY's sales team. These details clarify side effects and the human-confirmation workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and then efficiently explains the two steps in order. Every sentence contributes to correct invocation, with no redundant or filler text.
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 complex two-step booking tool, the description fully explains the workflow, token lifetime, human confirmation requirement, and sales-team handoff. An output schema exists and covers return values, but the description still leaves most parameter semantics undocumented.
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 0% across 12 parameters, so the description must carry parameter meaning. It explains only confirm_token and vaguely refers to "same details"; it leaves key fields such as location_id, slot_start, tour_type, leave_empty, and conversation_id unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Books a tour time from get_tour_slots." It also clarifies that the tool implements a two-step booking flow, making the core action unambiguous to an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear step-by-step usage guidance: call step 1 without confirm_token to preview, show the preview to the person, and only call step 2 with the same details and token after the person agrees. It does not explicitly compare against sibling alternatives such as request_tour, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_canopy_capabilitiesCan CANOPY do this? (capabilities)ARead-onlyIdempotentInspect
Checks one capability against CANOPY's published facts, overall or at one location: e.g. 24/7 access, private VLAN, wired internet, parking, boardroom, event space, phone booths, dogs, showers, team size. Answers yes, no, location_dependent or ask_team (CANOPY doesn't publish it: CANOPY's team confirms; never assume yes), with each location's answer and the page it comes from. No contact details needed.
| Name | Required | Description | Default |
|---|---|---|---|
| capability | Yes | ||
| location_id | No | ||
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only, idempotent operation. The description adds substantive behavior: answer taxonomy yes/no/location_dependent/ask_team, the rule to never assume yes, per-location answers, and source-page citations.
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?
Purpose and scope are front-loaded, followed by concrete examples and result states. The description is dense but every sentence adds useful routing or behavioral 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 output schema and annotations already cover return shape and safety characteristics, while the description adds the important answer semantics and citation behavior. The remaining gap is the unexplained optional conversation_id parameter.
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 0%, so the description must carry parameter meaning. It gives useful capability examples and implies location_id via 'overall or at one location,' but it does not explain conversation_id or clarify expected formats.
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?
States a specific verb and resource: 'Checks one capability against CANOPY's published facts,' with scope 'overall or at one location.' The examples and answer states make it clearly distinguishable from generic sales or location lookup 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 clear usage context with capability examples and explains that unpublished facts return ask_team rather than assuming yes. 'No contact details needed' helps distinguish it from sales contact, but it does not explicitly name or compare against sibling tools such as ask_sales_question.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_locationGet one CANOPY locationARead-onlyIdempotentInspect
Everything published about one location: address, transit, amenities, photos, memberships and that location's own starting prices, the meeting-room booking link, and how tours are booked. Use a location_id from list_locations.
| Name | Required | Description | Default |
|---|---|---|---|
| location_id | Yes | ||
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description adds one real behavioral nuance: the data returned is 'published' only, implying drafts/unpublished content are excluded. It says nothing about behavior for an unknown or stale location_id, or about response size/pagination.
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, front-loaded with the resource and its payload, followed by the sourcing instruction for the required parameter. The enumeration of fields is dense but every item maps to something an agent might need to answer a question, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return shape needn't be described, and the field enumeration is enough for an agent to decide relevance. Minor gap: no statement of what happens on a missing/invalid location_id, and conversation_id is left unexplained for a tool that accepts 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?
Schema description coverage is 0%, so the description has to carry parameter meaning. It does add value by identifying where location_id comes from (list_locations), but gives no format/validity expectations, and the optional conversation_id parameter is completely unaddressed in both schema and 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?
States the resource precisely ('Everything published about one location') and enumerates the concrete contents — address, transit, amenities, photos, memberships, starting prices, booking link, tour booking. This makes it clearly distinct from list_locations (which enumerates locations) without needing the schema opened.
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?
'Use a location_id from list_locations' gives the agent an explicit prerequisite and the correct upstream sibling. However, no exclusions are stated — e.g. it never says to use get_membership_options instead when the user only wants plan details, or get_tour_slots for availability, despite those siblings being adjacent in scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_membership_optionsCANOPY membership optionsARead-onlyIdempotentInspect
CANOPY's memberships (Private Office, Personal Desk, Community Table, Hybrid, Nomad, Virtual Office, Team Suites): what each includes, its starting price and where it is offered. Without a location_id the price is the lowest across locations; with one, it is that location's price.
| Name | Required | Description | Default |
|---|---|---|---|
| location_id | No | ||
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the description only needs to add context. It does: the price-resolution semantics (fallback to lowest across locations vs location-specific) are behavior an agent could not infer from annotations or schema, which is genuinely useful. It does not disclose whether all locations are searched or how offerings vary per tier.
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?
A single compact sentence, front-loaded with the resource and followed by what it returns and the price-resolution rule. The parenthetical tier list is informative content rather than padding, and nothing is repeated from structured fields.
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?
An output schema exists, so return shape need not be explained; the description covers resource identity, contents, and price logic, which is sufficient to invoke correctly. The only gap is the unmentioned conversation_id, which slightly lowers completeness for a tool with zero schema coverage.
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 0%, so the description must carry the burden, and it does for location_id by explaining exactly how price changes with and without it. However, conversation_id is never mentioned, leaving one of two parameters entirely undocumented across both schema and 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 names the resource precisely (CANOPY's membership tiers) and enumerates the content returned: inclusions, starting price, and availability by location. This is clearly distinguishable from sibling tools that deal with locations, tours, or sales questions.
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?
Usage is implied rather than stated: an agent can infer this answers 'what memberships exist and what do they cost,' but no explicit when-to-use/when-not or alternative routing is given. The location_id conditional ('without... lowest across locations; with one... that location's price') is the closest thing to guidance, but it is scoping behavior rather than a use-case rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tour_slotsOpen tour times at a CANOPY locationARead-onlyIdempotentInspect
Open tour times at one location from CANOPY's live tour calendar, in Pacific time. tour_type is in_person (default), virtual or test_drive. Dates are YYYY-MM-DD; the default is the next 7 days, at most 21. If no times are open, the answer lists the alternatives in order: that location's virtual tour, request_tour, and the nearest other location's times (marked as a different location). No contact details needed.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No | ||
| tour_type | No | in_person | |
| location_id | Yes | ||
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-open-world), and the description still adds real behavior: results are in Pacific time, the window defaults to 7 days and is capped at 21, and the empty-result response has a defined ordering of alternatives. Missing only latency/caching or data-freshness notes.
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?
Four tight sentences, each earning its place: what it returns, the enum, the date constraints, and the fallback chain. Front-loaded with the purpose and scope before the edge-case behavior.
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?
An output schema exists, so return formatting needn't be explained, and the description covers constraints and the empty case well. The one real gap is provenance of the required location_id, which an agent must resolve before it can call the tool at all.
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 0%, so the description carries the whole load. It does well on three parameters (tour_type enumerates in_person/virtual/test_drive with the default, date_from/date_to specify YYYY-MM-DD and the 7/21-day window), but location_id is required and there is no hint that it comes from list_locations/get_location, and conversation_id is never mentioned.
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?
States a specific verb+resource (open tour times from a live calendar at one location), and the fallback sentence distinguishes it from book_tour and request_tour by making clear this is the availability lookup, not the booking. An agent can tell it apart from every sibling without opening a schema.
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?
Usage context is clear: check live availability for a single location, no contact details required (so it's a safe pre-booking probe), and if nothing is open the answer routes to the virtual tour, request_tour, or the nearest other location. No explicit statement of when NOT to use it (e.g. once a slot is chosen, use book_tour), so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_locationsList CANOPY locationsBRead-onlyIdempotentInspect
All CANOPY locations: name, neighborhood, address, whether it is open or opening soon, the memberships offered there with starting prices, and how tours are booked. No contact details needed.
| Name | Required | Description | Default |
|---|---|---|---|
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world behavior, so only content scope needs covering, and the description does list the data categories returned. It does not clarify whether all locations are guaranteed to be returned or how the conversation_id affects 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?
One front-loaded sentence that spends its words on the returned content. The closing 'No contact details needed' is slightly cryptic but does not bloat the text.
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?
An output schema and rich annotations mean the description needn't explain return values or safety, and it plausibly covers content scope. However, the unexplained conversation_id and lack of routing guidance leave gaps for an agent choosing among six siblings.
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 0% and the single parameter (conversation_id) is never mentioned in the description, so an agent gets no meaning for it from either source. With no compensation for the coverage gap, this falls below 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 names the resource (CANOPY locations) and enumerates the attributes returned (name, neighborhood, address, hours, memberships, tour booking), making clear this is the all-locations listing. It implicitly contrasts with the singular get_location sibling but never states that contrast explicitly.
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?
There is no guidance on when to use this versus get_location, get_membership_options, or ask_sales_question. The trailing 'No contact details needed' is ambiguous and reads more like a note than a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
match_canopy_workspaceMatch a team to a CANOPY locationARead-onlyIdempotentInspect
Which CANOPY locations fit a need, from what's published: team size, area or landmark (e.g. 'near the Ferry Building', 'Montgomery', 'Pac Heights'), workspace type, monthly budget and must-haves. Returns each location's fit (strong, possible or poor) with reasons, the membership that fits and its starting price or 'contact sales', what CANOPY's team should confirm, and the next step. Never picks or reserves a specific office. No contact details needed.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| notes | No | ||
| team_size | No | ||
| must_haves | No | ||
| start_date | No | ||
| workspace_type | No | ||
| conversation_id | No | ||
| budget_per_month | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description usefully layers on what the output contains (fit level with reasons, matching membership, price or "contact sales", confirmations needed, next step) and a hard scoping constraint. It does not mention that all eight inputs are optional, which would help an agent call it with minimal data.
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 dense sentences, front-loaded with the core question and followed by the return shape and constraints; almost every clause carries information. The enumeration of return fields is slightly long but earns its place given no parameter docs exist.
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 an output schema present, the description does not need to detail return values, and annotations cover the safety profile; what it does add — fit semantics, price handling, 'contact sales' fallback, no-booking guarantee — is the right material. The gap is behavioral edge cases (all-params-optional, behavior when nothing fits).
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 0%, so the description must carry parameter meaning. It covers five of eight inputs well — team size, area/landmark with concrete examples ('near the Ferry Building', 'Montgomery', 'Pac Heights'), workspace type, monthly budget, must-haves — but leaves notes, start_date and conversation_id entirely unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: matching CANOPY locations to a team's need, based on published inventory, returning fit ratings plus membership and price. It implicitly separates itself from listing/single-location tools and from booking tools ("Never picks or reserves a specific office"), though it never names a sibling explicitly.
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 shows the conditions under which this tool applies (team size, area/landmark, workspace type, budget, must-haves) and gives a clear boundary — it does not book or reserve. It stops short of stating explicit alternatives (e.g. "for raw inventory use list_locations", "to actually book use book_tour").
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_tourAsk for a CANOPY tour (two steps)AInspect
Asks CANOPY's sales team to arrange a tour at a location, for times that suit the person: for locations booked by request, locations not yet open, or when no listed time works. Step 1, without confirm_token: returns a preview and a confirm_token (valid 10 minutes); nothing is saved. Step 2, with the same details and the confirm_token: sends the request. A CANOPY sales manager follows up within one business day. Only call step 2 after the person agrees.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| Yes | |||
| notes | No | ||
| phone | No | ||
| company | Yes | ||
| team_size | Yes | ||
| leave_empty | No | ||
| location_id | Yes | ||
| confirm_token | No | ||
| conversation_id | No | ||
| preferred_times | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations: it discloses that step 1 persists nothing, that the confirm_token expires in 10 minutes, that step 2 actually sends the request to a human, and that follow-up occurs within one business day. That is exactly the write-path consequence an agent needs before a non-idempotent, open-world 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?
Front-loads the purpose, then walks the two steps in order, then the SLA and the safety gate. Dense but every clause carries operational meaning; only the 'for times that suit the person' preamble is slightly redundant with the conditions that follow.
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?
An output schema exists, so return values need not be described, and annotations already cover read-only/open-world semantics. For an 11-parameter two-step mutation, the description supplies the confirmation flow, persistence behavior, token TTL, and human follow-up timing.
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 0%, so the description must carry the load; it does explain confirm_token's role and lifetime and that step 2 needs 'the same details'. But 6 required parameters (location_id, preferred_times format, team_size, name/email/company) and the odd leave_empty field remain undocumented anywhere.
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?
States a specific verb and resource ('Asks CANOPY's sales team to arrange a tour at a location') and scopes the eligible situations (booked-by-request, not yet open, no listed time works). It implies but never names the closest sibling book_tour, so the agent must infer the boundary between requesting a tour and booking a listed slot.
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?
Gives clear eligibility conditions for when this is the right call and a strong gating rule for the second step ('Only call step 2 after the person agrees'). What is missing is the explicit contrast case: use book_tour instead when a listed slot works, which get_tour_slots can enumerate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Added
get_canopy_capabilities - Added
match_canopy_workspace
7 tool updates
- First observed
ask_sales_question - First observed
book_tour - First observed
get_location - First observed
get_membership_options - First observed
get_tour_slots - First observed
list_locations - First observed
request_tour
Related MCP Connectors
Find and book coworking spaces, meeting rooms and offices in Latin America from your AI assistant.
Run your restaurant group's events, leads, invoices and marketing drafts from your AI assistant.
1Public Cannon Studio MCP for product, pricing, workflow, model, and API answers.
Coworking, private offices and day passes with published prices: Berlin, Madrid, London + 60 cities
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables natural language booking and management of rooms in Nexudus coworking spaces, including listing rooms, checking availability, booking, viewing/cancelling bookings, and schedules.6-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to check tour availability, book tours via HubSpot Scheduler, and log call sessions to Supabase.-
- AlicenseNot gradedqualityAmaintenanceManage MagicInterview projects, conversations and reusable sources, including Notion page imports and optional meeting sync, from a compact assistant workspace. Live audio capture and voice practice run in the full MagicInterview app.MIT
- AlicenseAqualityDmaintenanceAI-powered scheduling assistant that checks calendars, finds mutual availability, and books meetings via natural language commands.343 PyPI1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.