TryBooking MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TryBooking MCP ServerShow me ticket sales for last month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TryBooking MCP Server
An MCP (Model Context Protocol) server that wraps the TryBooking Reporting API, letting AI assistants like Claude query bookings, events, sales reports, attendance scans, and more.
Prerequisites
Node.js 18+
A TryBooking account with API access
API Key and Secret Key from TryBooking Portal (
Integration Tools > API Management)
Related MCP server: Pulumi Events MCP
Installation
Claude Code Plugin (Recommended)
The easiest way to install — use the Claude Code plugin marketplace:
/plugin marketplace add marek-knappe/TryBookingMCP
/plugin install trybooking-mcp@trybooking-marketplace
/reload-pluginsThen configure your API credentials (see Setting Environment Variables below).
Manual Installation
git clone https://github.com/marek-knappe/TryBookingMCP.git
cd TryBookingMCP
npm install
npm run buildConfiguration
The server requires three environment variables:
Variable | Required | Description |
| Yes | Your TryBooking API key |
| Yes | Your TryBooking secret key |
| Yes | Region code: |
Get your API credentials from the TryBooking Portal under Integration Tools > API Management.
Setting Environment Variables
Whether you installed via the plugin marketplace or manually, the MCP server needs your TryBooking credentials as environment variables.
Option 1: Claude Code settings file (Recommended)
Add the env vars to your Claude Code settings at ~/.claude/settings.json:
{
"env": {
"TRYBOOKING_API_KEY": "your-api-key",
"TRYBOOKING_SECRET_KEY": "your-secret-key",
"TRYBOOKING_REGION": "au"
}
}Option 2: Shell environment
Export them in your shell profile (~/.bashrc, ~/.zshrc, ~/.config/fish/config.fish, etc.):
export TRYBOOKING_API_KEY="your-api-key"
export TRYBOOKING_SECRET_KEY="your-secret-key"
export TRYBOOKING_REGION="au"Then restart Claude Code for changes to take effect.
Option 3: Project-level settings
For project-specific configuration, add to .claude/settings.json in your project directory:
{
"env": {
"TRYBOOKING_API_KEY": "your-api-key",
"TRYBOOKING_SECRET_KEY": "your-secret-key",
"TRYBOOKING_REGION": "au"
}
}Note: Don't commit
.claude/settings.jsonif it contains secrets — add it to.gitignore.
After configuring, run /reload-plugins in Claude Code to pick up the changes.
Claude Code (Manual Setup)
If you installed manually (not via the plugin marketplace), add to your Claude Code settings (~/.claude/settings.json or project .claude/settings.json):
{
"mcpServers": {
"trybooking": {
"command": "node",
"args": ["/absolute/path/to/TryBookingMCP/dist/index.js"],
"env": {
"TRYBOOKING_API_KEY": "your-api-key",
"TRYBOOKING_SECRET_KEY": "your-secret-key",
"TRYBOOKING_REGION": "au"
}
}
}
}Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"trybooking": {
"command": "node",
"args": ["/absolute/path/to/TryBookingMCP/dist/index.js"],
"env": {
"TRYBOOKING_API_KEY": "your-api-key",
"TRYBOOKING_SECRET_KEY": "your-secret-key",
"TRYBOOKING_REGION": "au"
}
}
}
}Available Tools
Account
Tool | Description |
| Retrieve account transactions for a date range |
Bookings
Tool | Description |
| Fetch a specific booking by transaction ID |
| Get bookings within a date range |
Events
Tool | Description |
| List all events for the account |
| Get details for a specific event |
| Get event session details by session ID |
| List sections for an event |
| Get seat availability for a session and section |
Fundraising
Tool | Description |
| Retrieve fundraising pages |
Sales Reports
Tool | Description |
| Ticket sales by period (day/week/month/year) |
| Booking sales report (max 180 days) |
| Event sales report (max 180 days) |
| Fundraising sales report |
Attendance Scans
Tool | Description |
| Scan attendance for a session (one scan per ticket) |
| All scan events for a session |
Example Usage
Once configured, you can ask Claude things like:
"List all my TryBooking events"
"Show me bookings from 2025-01-01 to 2025-01-31"
"Get ticket sales for last month grouped by week"
"What's the seat availability for session X, section Y?"
"Show my account transactions for this quarter"
API Reference
This server wraps the TryBooking Reporting API. All endpoints use HTTP Basic Authentication and return JSON responses. The server uses API v1 for most endpoints and v2 for scan endpoints (which use string-based rule IDs).
License
MIT
Available Tools
15 toolsget_account_transactionsA
Retrieve account transactions for a date range
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | End date (yyyy-MM-dd) | |
| startDate | Yes | Start date (yyyy-MM-dd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It only states a read operation ('Retrieve') without addressing idempotency, auth requirements, or rate limits. The date range constraint is noted but adds minimal behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no wasted words. Front-loaded with the key purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter retrieval tool with no output schema, the description covers the essential purpose and scope. However, it omits details like pagination, transaction types, or result format, leaving some gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description merely echoes the date-range concept already present in the schema (startDate/endDate with pattern and description). No additional parameter semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve') and the resource ('account transactions') with the scope ('for a date range'). It distinguishes from sibling tools like get_booking or get_event by specifying 'account transactions', which is a distinct resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for date-range queries but does not provide when-to-use versus alternatives. Siblings like get_ticket_sales or get_booking_sales may handle transaction-like data, but no exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bookingB
Fetch a specific booking by transaction ID
| Name | Required | Description | Default |
|---|---|---|---|
| transactionId | Yes | The booking transaction ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies read-only but does not explicitly state safety, auth requirements, or any behavioral traits beyond a simple fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 5 words, with no wasted information. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single parameter, no output schema, no nested objects), the description is minimally adequate. However, it does not explain return values or expected behavior, which could be helpful.
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% for the single parameter. The tool description adds no new meaning beyond what the schema already 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 clearly states the tool fetches a specific booking by transaction ID. It is specific and distinguishes from siblings like get_bookings_by_date and get_booking_sales, but does not explicitly differentiate.
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?
No guidance on when to use this tool versus alternatives. The description only states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_salesA
Get booking sales report (max 180 days range)
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | End date (yyyy-MM-dd) | |
| startDate | Yes | Start date (yyyy-MM-dd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only states it's a report, implying read-only, but does not explicitly confirm safety, side effects, or response format. A clear read-only assertion is missing.
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, concise sentence that front-loads the purpose and constraint. No unnecessary words, making it efficient for an agent 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 tool is simple with two date parameters and no nested objects or output schema. The description addresses the key constraint, but could mention the return type or aggregation level for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with format descriptions. The description adds a critical constraint (max 180 days range) that is not in the schema, enhancing parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a booking sales report, specifying a maximum date range of 180 days. This differentiates it from sibling tools like get_ticket_sales or get_event_sales by targeting booking-specific sales data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear constraint (max 180 days range) that guides when to use this tool. However, it does not explicitly tell when to avoid it or suggest alternatives, though the sibling list implies context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bookings_by_dateC
Get bookings within a date range
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | End date (yyyy-MM-dd) | |
| startDate | Yes | Start date (yyyy-MM-dd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'Get bookings' without disclosing whether it is read-only, if there are any side effects, or any rate limits. The behavioral transparency is minimal.
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 one sentence of five words, which is very concise. However, it could be slightly more informative without being verbose. It is not overly long, but also not ideally structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema and no output schema or annotations, the description lacks sufficient detail. It does not mention return format, pagination, or behavior for invalid dates, leaving the agent with incomplete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with clear descriptions for both parameters. The description adds no extra meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get bookings') and the scope ('within a date range'). It distinguishes from sibling tools like 'get_booking' which retrieves a single booking, and 'get_booking_sales' which focuses on sales data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of how it differs from 'list_events' or 'get_booking', nor any context about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventC
Get details for a specific event
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | The event ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It does not mention any prerequisites, permissions, or side effects, which is insufficient for a retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently communicates the core purpose without any unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks information about return values or any operational context, which is insufficient for an effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter eventId is defined in the schema with description 'The event ID', and schema coverage is 100%. The description adds no extra meaning, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates the tool retrieves details for one specific event, distinguishing it from list_events which retrieves multiple events. However, it does not specify what 'details' includes, leaving some ambiguity.
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?
No guidance is provided on when to use this tool versus siblings like get_event_session, get_event_sections, etc. The agent has no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_salesA
Get event sales report (max 180 days range)
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | End date (yyyy-MM-dd) | |
| startDate | Yes | Start date (yyyy-MM-dd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions a date range limit. It does not disclose whether the tool is read-only, auth requirements, or what data the report includes. Insufficient behavioral disclosure.
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?
Single sentence, no redundancy, front-loaded with key information. Efficient and to the point.
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?
Minimal description for a tool with 2 parameters and no output schema. Lacks details on return format or behavior, but the constraint is useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions (100% coverage). The description adds value by specifying the 'max 180 days range' constraint, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'event sales report', and the constraint 'max 180 days range'. It distinguishes from sibling tools like get_ticket_sales and get_booking_sales.
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?
No guidance on when to use this tool vs alternatives (e.g., get_ticket_sales, get_booking_sales). The description is purely declarative, lacking context for choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_sectionsB
List sections for an event
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | The event ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose behavioral traits like read-only nature, authentication needs, or output format. Minimal disclosure beyond the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and front-loaded with the key action, but for a simple tool this level of conciseness is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema and single parameter, the description is minimally adequate but lacks completeness for usage context, e.g., what sections represent or typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for eventId with a clear description, so baseline is 3. The description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List sections for an event' uses a specific verb and resource, clearly distinguishing it from sibling tools like 'get_event_session' or 'get_event'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool compared to alternatives such as 'get_event', 'get_event_session', or other list tools. Lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_sessionB
Get event session details by session ID
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Get' (implying read-only) but does not disclose return format, pagination, authentication needs, rate limits, or any side effects. This is insufficient for an agent to understand behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, to the point, with no unnecessary words. It is well front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain what 'details' are returned. For a simple retrieval by ID, it is minimally acceptable but leaves ambiguity. With siblings, it could be more complete by clarifying the scope of 'event session' vs 'event'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for sessionId. The description adds no additional meaning beyond what is in the input schema. With high coverage, baseline 3 is appropriate; no extra value provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'event session details', and the method 'by session ID'. It distinguishes from siblings like get_event (event-level details) and get_event_sections (section-level details), making the tool's purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., get_event_sections or list_events). It does not mention prerequisites, context, or exclusions. The usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fundraisingC
Retrieve fundraising pages
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description should disclose behavioral traits. It does not mention pagination, rate limits, data freshness, or any side effects. The description is insufficient for safe invocation.
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 a single sentence, making it concise, but it lacks necessary detail. It is not overly verbose, but the brevity undermines completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and the existence of related sibling tools, the description is incomplete. It fails to explain what fundraising pages contain or how the results can be used.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema description coverage is effectively 100%. The description adds no parameter info but is not needed. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a verb ('Retrieve') and a resource ('fundraising pages'), but it is vague and does not differentiate from siblings like get_fundraising_sales. It is not a tautology but lacks specificity.
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?
No guidance provided on when to use this tool versus alternatives (e.g., get_fundraising_sales). The description offers no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fundraising_salesC
Get fundraising sales report
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | End date (yyyy-MM-dd) | |
| startDate | Yes | Start date (yyyy-MM-dd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Get', implying a read operation. However, no behavioral details are disclosed, such as whether the report is aggregated, if there are rate limits, or any other constraints. The tool carries the full burden of behavioral disclosure, which is unmet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but it sacrifices necessary information. It fails to explain what the report contains or how it differs from similar tools, making it under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no output schema) and the presence of multiple sibling tools with similar names, the description is incomplete. It does not address output format, scope, or use cases, leaving the agent with insufficient context to select or invoke the tool 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%, with clear descriptions for startDate and endDate including format. The description adds no additional meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get fundraising sales report' clearly indicates a verb and resource, but it does not distinguish itself from sibling tools like 'get_fundraising' or 'get_ticket_sales'. The term 'fundraising sales report' is ambiguous and lacks specificity about what data is included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'get_fundraising' or other sales reports. The description does not mention context, prerequisites, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scan_allC
Get all scan events for a session
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Get', implying a read operation, but provides no details on side effects, permissions, or limitations. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is as concise as possible while conveying the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of sibling tools like get_scan_attendance and no output schema, the description lacks completeness. It does not explain what scan events are, how they differ from similar tools, or what the return value contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter sessionId described as 'The session ID'. The description does not add any extra meaning beyond what the schema already provides, resulting in baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb 'Get' and resource 'scan events' with scope 'for a session', but does not differentiate from sibling tool 'get_scan_attendance' or explain what 'all scan events' entails.
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?
No guidance on when to use this tool versus alternatives like get_scan_attendance or other session-related tools. The agent is left to infer usage without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scan_attendanceB
Get scan attendance for a session (one scan per ticket)
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the detail 'one scan per ticket' but lacks disclosure about what is returned (only scanned tickets or all tickets), authorization needs, or data format. With no annotations, the burden is higher and unmet.
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 a single sentence with no wasted words, but could be slightly expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-param tool with no output schema, the description covers purpose and a key behavioral detail, but missing return type or scope (e.g., all tickets vs. scanned only).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no extra meaning beyond the schema's own description of sessionId. 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 explicitly states the verb 'Get', the resource 'scan attendance', and constrains to a session with the detail 'one scan per ticket', clearly distinguishing from siblings like get_scan_all.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for session-level attendance but provides no explicit when-to-use or when-not-to-use guidance, nor references alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seat_statusC
Get seat status for a session and section
| Name | Required | Description | Default |
|---|---|---|---|
| sectionId | Yes | The section ID | |
| sessionId | Yes | The session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must carry the behavioral disclosure burden. It only states the action and parameters, but does not mention read-only nature, response format, side effects, or any constraints (e.g., rate limits). This is insufficient for an agent to understand behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that is front-loaded with the core action. It is appropriately sized for the low complexity of this tool, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about what 'seat status' entails (e.g., whether it returns availability counts or individual seat details). The current description is too sparse for an agent to fully determine the tool's scope and output.
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%—both parameters have simple descriptions ('The section ID', 'The session ID'). The tool description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves seat status for a given session and section, which distinguishes it from sibling tools like 'get_event_sections' or 'get_booking'. The verb 'get' and resource 'seat status' are specific, though the exact meaning of 'seat status' (e.g., availability, counts) is not elaborated.
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?
No guidance on when to use this tool versus other similar tools like 'get_event_sessions' or 'get_event_sections'. The description lacks context about prerequisites or typical scenarios, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticket_salesC
Get ticket sales report by period. datePeriod: 1=Day, 2=Week, 3=Month, 4=Year
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | End date (yyyy-MM-dd) | |
| startDate | Yes | Start date (yyyy-MM-dd) | |
| datePeriod | Yes | Period grouping: 1=Day, 2=Week, 3=Month, 4=Year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only implies read-only and aggregation but does not explain response format, safety, or requirements. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with a clear subject and immediate enum summary. No wasted words; front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing information about return format, date range usage, and differentiation from many sibling tools. Incomplete for a report tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions. The description adds the enum mapping for datePeriod, which is already in the schema, so it provides little additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'ticket sales report', and specifies grouping by period. However, it does not distinguish from similar sibling tools like get_booking_sales or get_event_sales, which could cause confusion.
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?
No guidance on when to use this tool versus alternatives. With many similar sibling tools, the description should explicitly state use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_eventsA
List all events for the account
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states 'list all events', which is a read operation but lacks details on auth requirements, rate limits, or pagination 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?
The description is a single sentence with no wasted words, front-loading the action and resource effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless list tool, the description is minimally adequate but does not explain return format, ordering, or how it differs from sibling tools like get_event_sales.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description adds no additional parameter meaning, but baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'events for the account', with no ambiguity. It distinguishes from siblings like 'get_event' which retrieves a single event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing all events, but provides no explicit when-not or alternatives despite numerous sibling tools like get_event or get_booking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
All tools have distinct purposes, covering different resources like transactions, bookings, events, sessions, sales, and scanning. Even though many start with 'get', their targets are clearly differentiated by resource type and context.
14 out of 15 tools follow the 'get_{resource}' pattern. The only exception is 'list_events', which uses 'list' instead of 'get'. This minor inconsistency reduces the score.
15 tools is reasonable for a read-only ticketing API. It covers many query aspects without being overwhelming or too sparse, though a few more could be added for completeness.
The tool set is entirely read-only, lacking any write operations such as creating, updating, or deleting bookings, events, or tickets. This is a significant gap for a ticketing system where transaction processing is expected.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
AlicenseBqualityBmaintenanceAn MCP server that exposes the Tickiti helpdesk API to AI assistants, enabling ticket management and helpdesk operations via natural language.11MIT- FlicenseNot gradedqualityBmaintenanceMCP server for managing events on Meetup.com and Luma via AI assistants like Claude.2
- AlicenseAqualityAmaintenanceMCP server for interacting with the ThreatLocker Portal API, enabling querying of computers, applications, policies, audit logs, and more through AI assistants.181GPL 3.0
- AlicenseNot gradedqualityCmaintenanceMCP server that exposes aggregated Shotgun event sales, net revenue, ticket quotas, and audience stats to AI assistants via natural language queries.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marek-knappe/TryBookingMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server