Desky
Server Details
Find and book coworking spaces, meeting rooms and offices in Latin America from your AI assistant.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 5 tools
Search, detail, and availability tools are clearly distinct, but get_booking_link and quote_booking both return a Desky link with date and headcount prefilled, and the boundary between them (final action vs. re-quote after a change) depends on reading the descriptions carefully. An agent could plausibly reach for either when asked 'give me a link'.
Four of five tools follow a verb_noun snake_case pattern (check_availability, get_booking_link, quote_booking, search_coworks), with cowork_detail as the sole noun-only outlier. The domain nouns (cowork/coworks/booking) also shift slightly, but the set is still highly readable.
Five tools map cleanly onto a search → inspect → check dates → quote → link funnel, with no filler. It is on the lean side, but each tool has a clear role and the scope of the server is narrow by design.
The discovery-to-booking-link lifecycle is fully covered, including pricing, availability, and a handoff URL, so there is no dead end. Minor gaps exist around things like amenity-based filtering or comparing multiple spaces, but these are workarounds an agent can handle via search_coworks plus cowork_detail.
Available Tools
5 toolscheck_availabilityCheck availabilityARead-onlyIdempotentInspect
Returns the free dates of a space (and the free hours of that day, if it is sold by the hour).
Hours are in 24h format and in the VENUE'S LOCAL TIME, never UTC: the IANA time zone is in the timezone field of the response.
Reports availability as dates/hours, without occupancy levels. The final confirmation happens at checkout.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date YYYY-MM-DD. If given, the response focuses on that day and includes the free hours when the space is sold by the hour. | |
| slug | No | Space slug. Alternative to `space_id`. | |
| space_id | No | Space id. | |
| utm_source | No | MCP client that originates the request, for attribution. | |
| people_count | No | Number of people, to warn if there may not be enough room. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| space_id | Yes | Space identifier, for `get_booking_link`. |
| timezone | No | IANA time zone of the venue. `available_hours` is in THIS zone, not UTC. |
| space_name | Yes | |
| booking_url | No | Checkout URL with the requested date already filled in. Only present if that date is free. |
| bookable_hours | No | Start times that can actually be booked for one hour, HH:MM in the venue's local time. Same condition as `available_hours`. Unlike it, never includes the closing time and drops hours that overlap an existing booking. A booking of N hours needs N consecutive entries. |
| requested_date | No | |
| available_dates | Yes | |
| available_hours | No | Free START times, HH:MM in the venue's local time (`timezone`). Only present if the space is sold by the hour and a date was requested. For TODAY it starts at the next hour, not at opening: past hours cannot be booked and are not listed. |
| total_available_dates | Yes | |
| requested_date_available | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the readOnly/idempotent annotations by disclosing that hours are in the venue's local time, never UTC, with the IANA zone in the response, and that no occupancy levels are reported. That is real context an agent would otherwise get wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, well-ordered sentences with the key constraint (local time, not UTC) emphasized. Minor overlap with the schema's date description but no wasted 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 exists, yet the description helpfully explains the timezone field and the limits of the result. The only gap is not stating that a space identifier (slug or space_id) must be 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?
Schema coverage is 100%, so the baseline is 3. The description adds nothing about parameters beyond what the schema already documents (notably it never clarifies that one of slug/space_id must be supplied despite zero required params).
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 (returns free dates/hours of a space) and adds scope detail (hours only when sold by the hour). Clearly distinct from search_coworks and quote_booking, though siblings are never named.
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 closing line about final confirmation at checkout implies this is pre-booking information-gathering, but no explicit when-to-use guidance or alternative (e.g. quote_booking, get_booking_link) is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cowork_detailSpace detailsARead-onlyIdempotentInspect
Full listing of a space: description, coworking and venue, address, capacity, prices per hour/day/week/month, amenities, opening hours, rating and reviews.
Accepts space_id or slug (search_coworks returns both). If you already know the date or the number of people, pass them: the booking link comes prefilled.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date YYYY-MM-DD, to prefill the booking link. | |
| slug | No | Space slug. Alternative to `space_id`. | |
| spots | No | Number of people, to prefill the booking link. | |
| ends_at | No | End time HH:MM. Requires `starts_at` and must be later. | |
| currency | No | Currency of the returned prices (default usd). | |
| space_id | No | Space id. | |
| starts_at | No | Start time HH:MM. Hourly bookings only; requires `ends_at`. | |
| utm_source | No | MCP client that originates the request, for attribution of the booking URL (e.g. 'claude', 'chatgpt'). Default 'mcp_unknown'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Space identifier. Pass it as `space_id` to `check_availability` or `get_booking_link`. |
| city | No | |
| name | Yes | |
| slug | Yes | |
| images | No | |
| prices | Yes | List prices per unit, already converted to `currency`. |
| rating | No | |
| address | No | |
| country | No | |
| capacity | No | |
| currency | No | Currency of all prices. |
| latitude | No | |
| province | No | |
| timezone | No | IANA time zone of the venue. |
| amenities | No | |
| image_url | No | |
| longitude | No | |
| space_type | No | |
| booking_url | Yes | |
| description | No | |
| review_count | No | |
| opening_hours | No | |
| coworking_name | No | |
| instant_booking | No | |
| booking_horizon_months | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description contributes beyond that by disclosing a side effect the annotations cannot convey: optional date/spots input produces a prefilled booking link, which matters for callers deciding whether to supply those fields.
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 scope, then the identifier/parameter guidance. The long field enumeration is somewhat redundant given an output schema exists, but it does communicate breadth of the response in one glance, so the length is defensible.
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 identifiers, optional prefill behavior, and the shape of the response, and an output schema exists so return values need no further explanation. The remaining gap is workflow placement: it does not tell the agent whether to call this before check_availability/quote_booking/get_booking_link or in place of them.
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 every parameter is already documented inline, and the description mostly echoes the schema ('to prefill the booking link' is verbatim from the `date` and `spots` descriptions). It correctly flags space_id vs slug as alternatives, but says nothing about currency, utm_source, or the starts_at/ends_at pairing, so it adds little 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?
States a concrete verb/resource ('Full listing of a space') and enumerates exactly which fields come back: description, venue, address, capacity, pricing tiers, amenities, hours, rating and reviews. It ties itself to search_coworks as the producer of its identifiers, which helps an agent slot it into the workflow, but it never explicitly contrasts with check_availability, quote_booking or get_booking_link.
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 a clear entry path ('space_id` or `slug` (`search_coworks` returns both)') and states the value-add of passing date/spots: the booking link comes prefilled. That is real usage context, but there is no when-not guidance and no statement of how this differs from the availability/quote/link siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_linkGet booking linkARead-onlyIdempotentInspect
Returns the booking link on desky.la for a space, with the date and number of people already filled in.
It does not book or charge: the person sees the final price and confirms on the site. It is the final action of this server, and that is context for you: sharing the link is enough.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date YYYY-MM-DD. | |
| slug | No | Space slug. Alternative to `space_id`. | |
| dates | No | Several dates YYYY-MM-DD. Takes precedence over `date`. | |
| spots | No | Number of people / seats. | |
| ends_at | No | End time HH:MM. Requires `starts_at` and must be later. | |
| space_id | No | Space id (from `search_coworks` or `cowork_detail`). | |
| starts_at | No | Start time HH:MM. Hourly bookings only; requires `ends_at`. | |
| utm_source | No | MCP client that originates the request, for attribution (e.g. 'claude', 'chatgpt'). Default 'mcp_unknown'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| space_id | No | |
| space_name | No | |
| booking_url | Yes | Checkout URL on desky.la. It does not book or charge. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, open-world behavior. The description adds genuinely useful context beyond that: it does not book or charge, the person confirms on the site, and sharing the link is sufficient. It does not cover auth, rate limits, or failure modes, but the key side-effect expectation is clear.
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 what the tool returns and immediately followed by the key no-booking caveat. 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?
With 8 optional parameters, a 100% schema coverage, an output schema, and rich annotations, the description supplies the essential missing behavioral context: no booking, no charge, final action, share the link. It does not explain space identifier selection or multi-date behavior, but those are covered by the 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%, so the schema already documents all 8 parameters, including date, dates, spots, slug, space_id, and times. The description adds only that the date and number of people are embedded in the returned link, without explaining the identifier alternatives or time parameters beyond what the schema provides.
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: it returns the desky.la booking link for a space with date and party size prefilled. It does not explicitly name or differentiate itself from siblings like check_availability or quote_booking, so it misses the top-band sibling-differentiation criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful implied usage context by saying this is 'the final action of this server' and that 'sharing the link is enough.' However, it never states when to use this versus check_availability or quote_booking, nor does it mention prerequisites such as resolving a space first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_bookingQuote a bookingARead-onlyIdempotentInspect
Quotes a specific booking and returns the final total and the checkout link.
The Desky interface uses it when the person changes the date or the number of seats. The total comes from the same calculation as the site's checkout, so it is the final number and not an estimate.
It does not book or charge.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date YYYY-MM-DD. | |
| slug | No | Space slug. Alternative to `space_id`. | |
| dates | No | Several dates YYYY-MM-DD. Takes precedence over `date`. | |
| spots | No | Number of people. | |
| ends_at | No | End time HH:MM. Requires `starts_at`. | |
| currency | No | Currency of the total (default usd). | |
| space_id | No | Space id. | |
| starts_at | No | Start time HH:MM. Hourly bookings only. | |
| utm_source | No | MCP client that originates the request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| prices | Yes | |
| currency | Yes | |
| space_id | Yes | |
| is_instant | Yes | Whether the booking is confirmed automatically for THOSE dates. It is not the space flag: with auto-accept rules it is decided day by day. |
| space_name | No | |
| checkout_url | Yes | Prefilled checkout URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is read-only, idempotent, non-destructive, and open-world. The description adds useful behavioral context beyond that: the returned total is final rather than an estimate, the checkout link is returned, and no booking or charge occurs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and return values, then adds useful context about final pricing and non-booking behavior. It is efficient, though the Desky-interface sentence is contextual rather than essential.
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 rich annotations, a complete input schema, and an output schema, the description provides enough context for correct selection and invocation. It covers purpose, usage context, return meaning, and non-side-effect behavior without duplicating structured fields.
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 parameter semantics are already well documented in the schema. The description only indirectly references date and seat count and adds no syntax, precedence, or format details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: it quotes a booking and returns the final total plus the checkout link. It also distinguishes the operation from booking/charging, but it does not explicitly differentiate itself from siblings like check_availability or get_booking_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: the Desky interface uses it when the person changes the date or number of seats. It also clarifies that it does not book or charge, which helps avoid misuse, though it does not name alternative tools or exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_coworksSearch workspacesARead-onlyIdempotentInspect
Searches workspaces published on Desky by city, neighborhood, type, capacity and price range. For each one it returns its id, name, coworking, location, starting price with its unit (per day for desks and offices, per hour for rooms: see price_from_period), amenities and a ready-made booking URL.
It does not filter by availability: use check_availability for that.
Pass capacity if the person said how many people: it is used to filter AND to prefill the link with that number of seats.
Prices are LIST prices per unit, never a total: the final price is calculated at checkout. That is context for you so you do not present them as a total; there is no need to point it out to the person in every reply.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City (e.g. 'Buenos Aires', 'CDMX'). Accepts free text. | |
| date | No | Tentative date YYYY-MM-DD. It does NOT filter by availability: it is used to prefill the booking link. To know if the space is free, use `check_availability`. | |
| zone | No | Neighborhood within the city (e.g. 'Palermo'). If the neighborhood can be resolved, results are LIMITED to it; otherwise it is combined with `city` as free text and the results may be broader. | |
| limit | No | Number of results (default 10, maximum 20). | |
| capacity | No | Minimum number of people the space must fit. | |
| currency | No | Currency of `price_min`/`price_max` and of the returned prices (default usd). Prices are converted and rounded the same way as on desky.la; the filter compares before rounding, so a result can fall up to one rounding step outside the requested range. | |
| price_max | No | Maximum price, in the `currency` currency. | |
| price_min | No | Minimum price, in the `currency` currency. | |
| space_type | No | Space type. `day_pass` is a desk in a shared area; `private_office` a closed office; `meeting_room` a room booked by the hour. | |
| utm_source | No | MCP client that originates the request, for attribution of the booking URLs (e.g. 'claude', 'chatgpt'). Default 'mcp_unknown'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | What these prices are. |
| count | Yes | Number of spaces returned. |
| results | Yes | |
| currency | Yes | Currency of all prices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description builds well past them: it discloses the non-obvious semantics that prices are list prices per unit, never a total, and that the final price is computed at checkout, plus how `price_from_period` maps to desks/offices/rooms. It also warns that the date parameter does not function as an availability filter.
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-loaded with purpose, then a sharp exclusion, then the two highest-value parameter hints. The closing instruction about not presenting list prices as totals is worth keeping but is slightly chatty with an extra clause telling the assistant not to mention it every time.
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 10-parameter, zero-required search tool with an output schema and full annotation coverage, the description covers scope, return shape, pricing semantics, the availability boundary, and the key parameter behavior. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds genuinely new meaning by explaining that `capacity` both filters results and prefills the booking link with that seat count, and by clarifying the unit basis of prices. Both facts go beyond what the schema text conveys.
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 (searches workspaces published on Desky) and enumerates the filter dimensions (city, neighborhood, type, capacity, price) plus the exact return payload. It also names the sibling it is not (check_availability), so the agent can route without opening either 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?
Explicitly states the tool does not filter by availability and directs the agent to `check_availability` for that. It additionally instructs passing `capacity` when the person stated a headcount. It does not differentiate from `cowork_detail` or `get_booking_link`, which is the only gap.
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.
5 tool updates
- First observed
check_availability - First observed
cowork_detail - First observed
get_booking_link - First observed
quote_booking - First observed
search_coworks
Related MCP Connectors
Coworking, private offices and day passes with published prices: Berlin, Madrid, London + 60 cities
Search and manage Paraguay & LatAm real estate from any AI assistant.
Search, book, and manage coworking spaces and conference rooms across 100+ cities worldwide with Croissant.
Find availability and book across a network of independent venues via your AI assistant.
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-
- AlicenseNot gradedqualityCmaintenanceConnects assistants to a hosted workspace for documents, decks, sheets, boards, forms, app building and deployment, scheduled automations, and AI-generated images, video, and voiceover.1Apache 2.0

Mirlo MCP Serverofficial
FlicenseBqualityBmaintenanceConnects AI assistants to Mirlo workspace for CRM, messaging, and voice operations.21-- AlicenseNot gradedqualityBmaintenanceEnables AI clients to interact with OfficeRnD coworking space management platform via natural language, exposing 130+ tools for CRUD operations and business logic.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.