Corsizio MCP by usefulapi
Server Details
Read Corsizio events, attendees and registrations, including payment status. Read-only.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 6 tools
Most tools have clearly distinct resource/action targets: account, event, attendee, and list operations. The main overlap is between corsizio_get_event_with_attendees and using corsizio_get_event plus corsizio_list_attendees, but the description explicitly guides when to use the composite tool.
All tools use a consistent corsizio_ prefix followed by a snake_case verb_noun pattern: get_account, get_event, list_events, get_attendee, list_attendees, get_event_with_attendees. The naming is predictable and readable throughout.
Six tools is well within the typical 3-15 range and each tool serves a clear read-oriented purpose: account metadata, individual events, event lists, individual attendees, attendee lists, and combined event rosters. The composite roster tool earns its place as a convenience operation.
The surface covers reading account configuration, events, attendees, and rosters, but it lacks write/lifecycle operations such as creating, updating, or canceling events and attendee registrations. This is a notable gap for a domain that typically includes event and registration management.
Available Tools
6 toolscorsizio_get_accountGet account detailsARead-onlyInspect
Get the Corsizio account behind the API key: name, alias, time zone, currency, site URL, contact, and the configured locations, categories, age groups, genders, levels and price ranges (their ids are the filters for corsizio_list_events). Good first call. API: GET /account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety, and the description adds useful behavioral context: the account is the one behind the API key, and the response includes specific configuration fields and their downstream use. It doesn't discuss rate limits or error behavior, but for a read-only account lookup that is minor.
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 and dense: one main sentence lists the returned information, then two short sentences add usage guidance and the API endpoint. 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?
For a zero-parameter, read-only account lookup with no output schema, the description is complete enough: it lists the fields returned, explains the API key scope, and clarifies how the returned IDs relate to another 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?
There are zero input parameters, so schema coverage is complete and the baseline is 4. The description does not need to explain input semantics beyond that.
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: retrieving the Corsizio account behind the API key. It enumerates the fields returned and ties the configured IDs to corsizio_list_events, making it clearly distinguishable from the attendee/event 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?
It explicitly says "Good first call" and explains that the returned location/category/etc. IDs are the filters for corsizio_list_events, giving clear context for when to use this before listing events. It does not state when not to use it, but the intended workflow is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
corsizio_get_attendeeGet attendee detailsARead-onlyInspect
Get one attendee registration in full: contact data, registration answers, internal remark, status, and with include=payment the amount, fees, taxes, refunds and transactions (card brand and last 4 digits). Returns personal data. The API key needs the attendees permission. API: GET /attendees/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| expand | No | Replace ids with full objects, comma-separated: event, account. | |
| include | No | Extra data, comma-separated: payment, activity, details. | |
| attendee_id | Yes | Attendee id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered; the description adds real value beyond that by flagging that the response contains personal data and by stating the required API key permission scope. It doesn't describe error behavior for a bad or missing id, which keeps it from a 5.
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 the core action and outcome, then tightened with short follow-up sentences for the personal-data warning, the permission requirement, and the endpoint. The opening sentence is long and carries a heavy nested parenthetical, but nearly every clause adds information an agent needs.
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's no output schema, and the description compensates by enumerating the returned fields, including the payment sub-fields. Combined with the PII notice and permission requirement, an agent has everything needed to call this single-record read 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%, so the baseline is 3. The description earns above baseline by explaining what include=payment actually unlocks (amount, fees, taxes, refunds, transactions, card brand and last 4 digits), which the schema's terse enum list does not convey. It says nothing extra about expand, but that's a minor omission.
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 ('Get one attendee registration in full') and enumerates exactly what comes back: contact data, registration answers, remark, status, and payment details. The word 'one' plus a required attendee_id cleanly separates it from the sibling corsizio_list_attendees, so an agent can pick correctly without opening the 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?
Gives a concrete conditional: use include=payment to get amounts, fees, taxes, refunds and transactions. It also names the prerequisite ('The API key needs the attendees permission'). What's missing is an explicit statement of when to prefer this over list_attendees or get_event_with_attendees, so it stops short of a full routing guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
corsizio_get_eventGet event detailsARead-onlyInspect
Get one event in full: dates, location, ticket prices and early-bird prices, descriptions, max spots, contact and instructors. Use include=stats for registration counts. For the attendee list use corsizio_list_attendees with the event id (or corsizio_get_event_with_attendees). API: GET /events/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| expand | No | Replace ids with full objects, comma-separated: filters, instructors, account. | |
| include | No | Extra data, comma-separated: filters, stats. | |
| event_id | Yes | Event id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered; the description adds the concrete return payload (fields returned), the stats opt-in behavior, and the underlying endpoint GET /events/{id}. It does not discuss auth requirements, rate limits, or not-found behavior, which keeps it short of a 5.
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, front-loaded with the primary payload, then the optional flag, then the sibling routing, then the endpoint. Every sentence carries distinct information with no restatement of the name.
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 carries the burden of describing the return value, and it does so effectively by enumerating the fields. It leaves minor gaps around failure modes and whether listings are paginated, but nothing an agent needs in order 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, but the description adds real meaning beyond the schema: the schema only lists 'stats' as a value, whereas the description explains that include=stats yields registration counts. The event id is implicitly framed as the selector for both this and the attendee tools.
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 ('Get one event in full') and immediately enumerates what that record contains: dates, location, ticket prices, early-bird prices, descriptions, max spots, contact, instructors. It also names the sibling tools it is not, so an agent can distinguish it from corsizio_get_event_with_attendees and corsizio_list_attendees 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?
Explicit routing: 'Use include=stats for registration counts' and 'For the attendee list use corsizio_list_attendees with the event id (or corsizio_get_event_with_attendees).' Both the when-to-use and the alternatives are named, 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.
corsizio_get_event_with_attendeesGet event with its attendeesARead-onlyInspect
Get one event together with its attendees (and optionally each attendee's payment) in a single call. Returns personal data of registrants (names, emails, phones, notes); only use it when you need the roster, otherwise prefer corsizio_get_event or corsizio_list_attendees with a limit. API: GET /events/{id}?include=attendees[,payment].
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | Event id. | |
| with_payment | No | Also include each attendee's payment details (default false). | |
| include_stats | No | Also include registration statistics (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnlyHint, yet the description discloses that the payload contains personal data (names, emails, phones, notes) and warns to use it only when the roster is needed, which is real privacy/behavioral context. It also exposes the underlying API shape (GET /events/{id}?include=attendees[,payment]). It does not mention payload size limits or rate considerations, so it stops short of a 5.
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 capability, followed by the caution-and-alternatives. Every sentence carries distinct information with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully characterizes what comes back and the privacy implications, which is the main thing an agent needs to call it responsibly. The only gap is the unaddressed include_stats parameter, a minor omission for a 3-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 coverage is 100%, so all three parameters are already documented. The description reinforces with_payment via "optionally each attendee's payment" and the include= syntax, but says nothing about include_stats, so it adds only marginal value over 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 specific verb and compound resource ("Get one event together with its attendees") plus the optional payment expansion, and explicitly contrasts itself with corsizio_get_event and corsizio_list_attendees. An agent can distinguish it from all siblings 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?
Gives an explicit when-to-use ("only use it when you need the roster") and names the concrete alternatives plus the condition that selects them ("prefer corsizio_get_event or corsizio_list_attendees with a limit"). No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
corsizio_list_attendeesList attendees (registrations)ARead-onlyInspect
List attendee registrations across the account, or for one event (event filter): name, email, phone, status, registration answers and dates. Default status is active. Filter by status (e.g. owing,!canceled), created-date range, event id, coupon code or a search word (name, email, phone). Returns personal data. The API key needs the attendees permission. API: GET /attendees.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Registration (created) date range FROM:TO, YYYY-MM-DD, either side optional (UTC). | |
| page | No | Page number (default 1). The reply's paging.more says whether another page exists. | |
| event | No | Only this event's attendees (event id from corsizio_list_events). | |
| limit | No | Results per page, 1-100 (default 20). | |
| coupon | No | Only attendees who used this coupon (the coupon code, as the vendor docs describe it). | |
| expand | No | Replace ids with full objects, comma-separated: event, account. | |
| search | No | A word in the attendee's name, email or phone, or an exact attendee id. | |
| status | No | Comma-separated statuses (default active): any, active, waiting, archived, deleted, manual, attended, absent, payment, paid, owing, early, deposit, offline, exempt, refunded, canceled. Prefix with ! to exclude, e.g. owing,!canceled. | |
| include | No | Extra data, comma-separated: payment, activity, details. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already declaring the safety profile, the description still adds real value: it warns that the response contains personal data and that the API key requires the attendees permission. That auth/privacy context is not in the annotations. It does not cover pagination behavior, which is left to 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?
Three compact sentences that front-load scope and returned fields, then filters, then the permission note. There is minor redundancy with the schema (default status active, search field list), but nothing wasteful enough to penalize heavily.
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 9-parameter, no-required-parameter read tool with no output schema, the description does the important work: it enumerates returned fields, states the privacy/permission requirement, and points at the backing endpoint. Pagination nuances are left to the schema's page/limit descriptions, which is acceptable.
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 detailed descriptions and regex patterns for every parameter, so the schema already carries the semantics. The description summarizes the same filters (status, date range, event, coupon, search) and adds little beyond the schema beyond a compact overview. 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?
The description gives a clear verb+resource ('List attendee registrations') and states the two scopes: account-wide or a single event. It also enumerates the returned fields, which helps an agent distinguish it from corsizio_get_attendee. It stops short of naming the sibling tools it should be chosen over, so it falls just below the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: default status is active, and the entry points for filtering (status, created-date range, event id, coupon, search word). There is no explicit when-not-to-use guidance or reference to the sibling list/get tools, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
corsizio_list_eventsList eventsARead-onlyInspect
List the account's events (classes, workshops, camps) with dates, location, prices and page URLs, newest start first by default. Only published events unless status says otherwise. Filter by status, date range, price range, category/location/age/gender/level id (from corsizio_get_account) or a name word. API: GET /events.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Age group id (from corsizio_get_account). | |
| date | No | Event start/end date range FROM:TO, YYYY-MM-DD, either side optional, e.g. 2026-06-01:2026-06-30 or :2026-12-31 or just 2026 (UTC). | |
| page | No | Page number (default 1). The reply's paging.more says whether another page exists. | |
| level | No | Level id (from corsizio_get_account). | |
| limit | No | Results per page, 1-100 (default 20). | |
| order | No | Sort order; a leading - is descending (default -startDate). | |
| price | No | Price range FROM:TO, e.g. 50:200, :300 (300 and under) or 1000 (1000 and over). | |
| expand | No | Replace ids with full objects, comma-separated: filters, instructors, account. | |
| gender | No | Gender id (from corsizio_get_account). | |
| search | No | A word in the event name, or an exact event id. | |
| status | No | Event status (default published). | |
| include | No | Extra data, comma-separated: details, filters, stats, config. | |
| category | No | Category id (from corsizio_get_account). | |
| location | No | Location id (from corsizio_get_account). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered; the description adds non-obvious behavior beyond that — the default sort ('newest start first'), the default status filter ('only published unless status says otherwise'), and the shape of what comes back. It does not mention pagination mechanics, though the page parameter's schema covers paging.more.
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 dense sentences, front-loaded with what the tool returns and how it defaults before listing filter axes. No filler, no restatement of the name/title.
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 14 optional parameters and no output schema, the description carries the return-value burden well by naming the fields returned, the default ordering, and the default visibility filter. Minor gap: it says nothing about pagination behavior or the maximum page size, though the schema's page and limit descriptions handle 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 description coverage is 100% — every one of the 14 parameters has a documented description with patterns and examples (date FROM:TO, price ranges, expand/include lists). The description only restates the filter families and the 'from corsizio_get_account' provenance, adding little beyond the schema. 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?
States a specific verb and resource ('List the account's events') and immediately scopes it with examples (classes, workshops, camps) plus the fields returned (dates, location, prices, page URLs). The plural listing verb against siblings named get_event / get_event_with_attendees makes the boundary obvious 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?
Gives concrete when-to-use signals: default is published-only unless status says otherwise, and filters can be by status, date range, price, or category/location/age/gender/level id. It also routes the agent to corsizio_get_account as the source of those ids. It stops short of an explicit 'use corsizio_get_event instead when you have one id', so 4 rather than 5.
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.
6 tool updates
- First observed
corsizio_get_account - First observed
corsizio_get_attendee - First observed
corsizio_get_event - First observed
corsizio_get_event_with_attendees - First observed
corsizio_list_attendees - First observed
corsizio_list_events
Related MCP Connectors
Read your events, sales, orders and attendees from your AI assistant. OAuth sign-in, read only.
Read MoonClerk payment forms, customers (plans with subscriptions) and payments. Read-only.
61Read Qgiv (Bloomerang Fundraising) donations, refunds, recurring gifts, P2P registrations, events.
Read AddEvent calendars, events, RSVPs and subscribers; create and update calendars and events.
Related MCP Servers
- AlicenseAqualityCmaintenanceLets Claude, ChatGPT and other MCP clients read a Bookwhen account's public booking data, including events (classes, courses, workshops), ticket types with availability and cost, locations, class passes, leaders and attachments. It is read-only, so it can never modify data or expose attendee or booking records.9MIT
- AlicenseAqualityAmaintenanceEnables read-only access to B2match event and matchmaking data through tools for events, participants, organisations, opportunities, agenda, sessions, speakers, and authenticated meeting, schedule, conversation, and notification workflows. Supports anonymous public queries and secure local token-based access.222164 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only access to Google Forms structures and responses, including respondent email addresses joined with question titles, useful for CRM matching in events and webinars.MIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only access to Crisp customer support, live chat, CRM, and helpdesk data, including conversations, contacts, knowledge base, campaigns, operators, visitors, and site settings, via the official REST API v1.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.