OiAir activities
Server Details
Find children's activities in Florianópolis, read published conditions and get request-form links.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a largely distinct role: search_activities searches globally, list_offerings lists by organization, get_offering fetches a single group by ID, get_organization reads the org profile, and get_booking_link prepares a form link. The main ambiguity is between get_offering and list_offerings, which both operate on published groups and could be confused, but the ID-vs-organization distinction is clear enough.
All five tools follow a consistent snake_case verb_noun pattern (get_booking_link, get_offering, get_organization, list_offerings, search_activities). The verb prefixes get_/list_/search_ map cleanly to their respective operations.
Five tools is a reasonable, well-scoped set for a read-oriented activity discovery and booking-link surface, with each tool earning its place. It is slightly lean, but not thin enough to be a mismatch for the domain.
The read lifecycle is well covered: search, list by org, fetch org, fetch single offering, plus a booking-link generator. There is no submit/reserve tool, but the descriptions explicitly frame request submission as a separate external action, so this is an intentional boundary rather than a gap.
Available Tools
5 toolsget_booking_linkARead-onlyIdempotentInspect
Prepare a canonical PT-BR OiAir form link for one exact organization, publication and expected version. Trial requires that the selected group offers a trial. Opening the link and submitting a request are separate actions; this tool neither submits a request nor reserves or confirms a place.
| Name | Required | Description | Default |
|---|---|---|---|
| visit | No | ||
| publicationId | Yes | ||
| organizationId | Yes | ||
| expectedVersion | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| visit | Yes | |
| source | Yes | |
| version | Yes | |
| checkedAt | Yes | |
| offeringId | Yes | |
| validUntil | Yes | |
| publicationId | Yes | |
| organizationId | Yes | |
| bookingSemantics | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, and the description usefully adds what the tool does NOT do: it neither submits a request nor reserves or confirms a place. That side-effect clarification is real value beyond the 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 sentences, the purpose front-loaded before the caveats, no filler. Slightly dense phrasing ('one exact organization, publication and expected version') costs a bit of readability but 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?
Annotations cover the safety profile and an output schema exists, so return values need not be described. The remaining gap is parameter meaning: with 0% schema coverage, an agent gets no explanation of why expectedVersion matters or how the visit enum behaves.
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 4 parameters, so the description must carry the burden. It loosely echoes three required params ('one exact organization, publication and expected version') but never explains expectedVersion's concurrency role, and the 'visit' trial/regular enum is only obliquely referenced via the trial sentence.
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 ('Prepare a canonical PT-BR OiAir form link') plus the exact scoping dimensions (organization, publication, expected version), which clearly separates it from generic siblings like get_offering or search_activities. It stops short of naming an alternative sibling, so it misses the top mark.
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 concrete precondition ('Trial requires that the selected group offers a trial') and explicitly scopes the action out ('opening the link and submitting a request are separate actions'). No alternatives are named, but the when-to-use context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_offeringARead-onlyIdempotentInspect
Read one exact, current published group by publication ID. Optionally require its expected version. Withdrawn, expired, changed-address or stale-version groups fail rather than falling back to another group. Published availability remains unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | ||
| publicationId | Yes | ||
| expectedVersion | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| item | Yes | |
| revision | Yes | |
| syncedAt | Yes | |
| generation | Yes | |
| bookingSemantics | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so safety is covered. The description adds substantive behavior beyond that: withdrawn, expired, changed-address or stale-version records fail hard rather than falling back to a different record, and published availability may be unknown. It does not say what error or payload the caller gets on failure.
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 short sentences, front-loaded with the core action and then the failure semantics. Every sentence carries information, though the trailing 'Published availability remains unknown' is ambiguous and costs 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?
An output schema exists, so return values need no explanation, and the failure/fallback behavior is well covered. The gaps are the undocumented locale parameter and the unclear meaning of 'published availability remains unknown' for a caller deciding whether to trust the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It explains publicationId (the exact identifier) and expectedVersion (optional exact-version assertion) and that a mismatched version fails, but says nothing about the locale enum or how locale affects resolution.
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 scope: read ONE exact, current published item by publication ID, which implicitly separates it from list_offerings and search_activities. The term 'group' is used instead of 'offering', a slight terminology mismatch that could make an agent wonder whether it retrieves the same resource, so it stops short of a 5.
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 (fetch a known publication by ID) rather than stated, and no sibling is named. It does add a real selection rule — pass expectedVersion to require an exact version — but there is no explicit when-to-use versus list_offerings or search_activities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_organizationBRead-onlyIdempotentInspect
Read the current public organization profile and its address-scoped published groups, prices and source timestamps. This exposes published facts only and does not provide staff, parent or participant data.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | ||
| organizationId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| item | Yes | |
| revision | Yes | |
| syncedAt | Yes | |
| generation | Yes | |
| bookingSemantics | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context by specifying that only published facts are exposed and that staff, parent, and participant data are excluded. It does not cover auth, rate limits, or response behavior, but the output schema likely handles returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The key scope and exclusions are front-loaded, making the description 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 output schema exists, so return values need not be explained, and annotations cover the safety profile. However, the description omits usage guidance and parameter semantics, and with 0% schema description coverage the locale parameter remains unexplained. It is minimally adequate but has clear gaps.
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 there are two parameters. The description never names or explains organizationId or locale, nor does it clarify the effect of the locale enum. It therefore fails to compensate for the missing schema documentation.
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 gives a specific verb and resource: reads the current public organization profile, including address-scoped published groups, prices, and source timestamps. It is clear what the tool does, but it does not distinguish itself from siblings such as get_offering or list_offerings.
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 states data exclusions ('does not provide staff, parent or participant data') but gives no guidance on when to use this tool instead of alternatives. It implies the tool is for public organization facts, but no explicit when/when-not or alternative selection guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_offeringsBRead-onlyIdempotentInspect
List all current published groups belonging to one public organization at its current address. Each group retains its exact publication ID, version, schedule, prices and confirmation timestamps; an empty list does not authorize substituting another group.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | ||
| organizationId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| revision | Yes | |
| syncedAt | Yes | |
| generation | Yes | |
| organizationId | Yes | |
| bookingSemantics | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, open-world behavior, so the bar is lower. The description adds genuine value beyond that by enumerating what each returned group retains (publication ID, version, schedule, prices, confirmation timestamps) and by warning that an empty result does not authorize substitution.
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 core action and resource. The second sentence is dense and awkwardly worded ("does not authorize substituting another group"), but 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?
Safety behavior is covered by annotations and return content largely by the output schema, so the description doesn't need to carry those. However, with two undocumented parameters and a non-obvious locale filter, the definition leaves an agent without enough to call it precisely.
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 compensate, yet it never names or explains the organizationId (required, UUID) or locale (enum) parameters. "One public organization at its current address" is an oblique nod to organizationId but adds no format or constraint detail.
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 ("List") and resource ("current published groups belonging to one public organization"), which clearly contrasts with the singular get_offering sibling. The terminology ("groups", "at its current address") is idiosyncratic and not tied to the tool name's vocabulary ("offerings"), leaving a slight gap, but the intent is legible.
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 (list offerings for a given organization) but no sibling is named and no explicit when-to-use/when-not guidance is given. The closing caveat about an empty list is a constraint, not selection guidance, so an agent must infer the choice against get_offering or search_activities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_activitiesARead-onlyIdempotentInspect
Search OiAir public activities using its current search API, ranking and filters. Age is inclusive; weekdays use Sunday=0 through Saturday=6, and any selected day may match. Age, day and time must match the same published group. Keep unresolved constraints and unknown availability; results do not confirm a place.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| cursor | No | ||
| locale | No | ||
| filters | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| nextCursor | Yes | |
| queryStatus | Yes | |
| appliedFilters | Yes | |
| bookingSemantics | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuine behavioral context beyond that: 'Keep unresolved constraints and unknown availability; results do not confirm a place' warns the agent not to over-trust results, which is exactly the kind of insight structured fields cannot carry.
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?
Compact and front-loaded, with the core verb-resource stated first and constraints following. Sentences are dense and slightly cryptic in places, but 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?
An output schema exists, so return values need no explanation, and annotations cover the safety profile. The one gap is that cursor/limit pagination behavior is never mentioned despite the cursor param existing.
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 compensate. It does explain age inclusivity and the Sunday=0..Saturday=6 mapping for days, plus the cross-field grouping rule, but it is silent on query, limit, cursor, locale, price, bounds, period and categories.
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: 'Search OiAir public activities'. An agent knows what the tool does, but it never distinguishes itself from the sibling list_offerings, which could plausibly be used for a similar browsing goal.
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 explicit when-to-use or when-not guidance, and no sibling is named. The semantic notes (age/day matching) describe result interpretation rather than helping the agent choose this tool over the alternatives.
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
get_booking_link - First observed
get_offering - First observed
get_organization - First observed
list_offerings - First observed
search_activities
Related MCP Connectors
Prefeitura SC Florianópolis: Clearance Certificate (Debts), official-source lookup. Platform-hosted,
Portal de reservas: consulta datas, solicita reserva e retorna link de pagamento.
Extract local businesses from Google Maps in Brazil with phone, email, website and CNPJ.
Search Brazilian government tenders and public procurement (PNCP): find notices and auctions by keyw
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search current public children's activities in Florianópolis, Brazil, read organization profiles and their published groups with schedules and prices, and obtain a canonical link for requesting a visit. All five tools are read-only, publicly accessible over Streamable HTTP with no API key, and never submit a request or confirm a booking.MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to query the official tax clearance certificate (Certidão Negativa de Débitos) from the Florianópolis city government. It is a read-only tool that facilitates verification of a taxpayer's debt status through natural language.MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying the official MPT SC (Brazilian Labor Prosecution Office of Santa Catarina) negative case certificate (Certidão Negativa de Feitos) database through a read-only, pay-per-query MCP tool.MIT
- AlicenseNot gradedqualityCmaintenanceEnables consulting the Negative Debt Certificate (Certidão Negativa de Débitos) from the city of Caxias do Sul, RS, Brazil, using official sources. Offers a single read-only tool for checking debt status.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.