setline
Server Details
Live festival data for AI agents: lineups, set times, dates, locations and ticket links worldwide.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
7 toolsget_artistGet artist appearancesARead-onlyIdempotentInspect
One artist and where they are playing next: their upcoming festival appearances with dates and locations.
| Name | Required | Description | Default |
|---|---|---|---|
| artist | Yes | Artist name or URL slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| note | No | |
| error | No | |
| query | No | |
| artist | No | |
| source | Yes | |
| didYouMean | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds useful behavioral scope by specifying that only upcoming festival appearances are returned, with dates and locations, which meaningfully narrows the expected response beyond what annotations state.
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 concise sentence that front-loads the key distinction ('One artist') and then clarifies the result. There is slight redundancy between 'where they are playing next' and 'upcoming festival appearances,' but overall it is tight and information-dense.
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 single-parameter read-only lookup with an output schema and clear annotations, the description covers the essential scope well. It does not mention error or not-found behavior, but the low complexity and existing structured metadata make the description sufficient for an agent to 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?
The single parameter is fully documented in the schema with its type and meaning (artist name or URL slug). The description adds essentially no new parameter-level detail beyond calling this the target artist, so the baseline score of 3 for high schema coverage 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 identifies the resource (one artist) and the specific output (upcoming festival appearances with dates and locations), making the tool's purpose obvious and distinct from broader search or festival-level tools. It does not explicitly name a sibling tool, but the singular artist focus is enough to prevent obvious 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?
The description implies when to use this tool: when you need a single artist's next festival appearances. However, it gives no explicit guidance about when not to use it or which sibling tool to prefer instead, such as search_artists for fuzzy lookup or whats_on for broad discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_festivalGet festival detailsARead-onlyIdempotentInspect
Details for one festival: dates, location, venue, genres, description, ticket availability and links. Accepts a festival name, Setline id, or URL slug.
| Name | Required | Description | Default |
|---|---|---|---|
| festival | Yes | Festival name, Setline id, or URL slug (e.g. "rock-am-ring-2026"). |
Output Schema
| Name | Required | Description |
|---|---|---|
| app | No | |
| hint | No | |
| error | No | |
| query | No | |
| source | Yes | |
| festival | No | |
| didYouMean | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds scope ('one festival') and returned content, but does not discuss error behavior or handling of ambiguous names, which is acceptable but not rich.
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 filler; the core purpose and field list are front-loaded, and the accepted input forms are stated compactly. Every sentence contributes necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with annotations and an output schema, the description is largely sufficient. It clearly defines input forms and returned content. Minor gaps remain around when to use search_festivals instead and behavior on ambiguous matches, preventing a 5.
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 the single parameter 100%, including the accepted forms and an example. The description's second sentence repeats this information without adding additional semantic detail, so the baseline of 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 retrieval action for one festival and enumerates the returned fields (dates, location, venue, genres, description, ticket availability, links). The 'one festival' scope distinguishes it from sibling search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: call when you have a festival name, Setline id, or URL slug. However, it does not explicitly mention when to prefer search_festivals or other alternatives, so the guidance is not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lineupGet festival lineupARead-onlyIdempotentInspect
Who is playing a festival: the full act list with headliner billing, genres and origins. Use get_set_times for the day-by-day schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| festival | Yes | Festival name, Setline id, or URL slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
| acts | No | |
| hint | No | |
| dates | No | |
| error | No | |
| links | No | |
| query | No | |
| counts | No | |
| source | Yes | |
| message | No | |
| festival | No | |
| didYouMean | No | |
| headliners | No | |
| lineupAnnounced | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate read-only, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds some context about the returned content (headliner billing, genres, origins), but does not disclose other behavioral traits such as pagination or input ambiguity handling.
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 two concise sentences: the first front-loads the purpose and content, the second gives a targeted alternative. Every sentence adds value and there is no fluff.
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 one-parameter read-only tool with an output schema and clear sibling differentiation, the description is complete. It covers what the tool returns, distinguishes it from the scheduling tool, and relies on annotations and schema for the remaining details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the only parameter, 'festival'. The description does not add much parameter-specific meaning beyond reinforcing that the tool provides lineup information for a festival.
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's purpose: identifying who is playing a festival with the full act list, headliner billing, genres, and origins. It also distinguishes itself from a related sibling by pointing to get_set_times for day-by-day schedules, making the tool's scope easy to understand.
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 explicitly routes the agent to get_set_times when a day-by-day schedule is needed, which provides a clear alternative condition. It does not exhaustively cover all siblings like get_festival, but the core usage 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_set_timesGet set timesARead-onlyIdempotentInspect
The published day-by-day schedule for a festival: stages and set times, optionally filtered to one artist, date or stage. Times are local to the festival.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Only this day, YYYY-MM-DD. | |
| stage | No | Only this stage. | |
| artist | No | Only sets by this artist. | |
| festival | Yes | Festival name, Setline id, or URL slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
| app | No | |
| days | No | |
| hint | No | |
| note | No | |
| error | No | |
| links | No | |
| query | No | |
| source | Yes | |
| message | No | |
| festival | No | |
| timezone | No | |
| didYouMean | No | |
| scheduleDays | No | |
| setTimesHeld | No | |
| lineupAnnounced | No | |
| setTimesPublished | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description only needs to add context. It adds meaningful behavioral detail: the schedule is 'published' and times are local to the festival. This goes beyond the annotations without contradicting them.
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 with no wasted words. It front-loads the core resource and then lists optional filters and an important timezone detail.
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 read-only tool with fully documented parameters, rich annotations, and an output schema, the description covers what the tool returns, its optionality, and a critical local-time caveat. Nothing essential 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 description coverage is 100%, so the input schema already documents all parameters. The description mentions the optional filters and festival context, reinforcing but not adding material 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 clearly identifies a specific resource: the published day-by-day festival schedule with stages and set times. It also distinguishes this from sibling tools by emphasizing schedule/set times rather than artist info or general festival details, and enumerates the optional filters.
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 clear context for when to use the tool: when a published day-by-day festival schedule with stage and set times is needed. It does not explicitly name alternatives or exclusions, but the context is specific enough to guide tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_artistsSearch artistsARead-onlyIdempotentInspect
Search artists who are playing upcoming festivals. Returns each artist with their upcoming festival appearances.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results, 1-25. Default 10. | |
| query | Yes | Artist name or part of it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| source | Yes | |
| artists | Yes | |
| totalMatches | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly, non-destructive, and idempotent behavior. The description adds useful behavioral context by saying results are limited to artists with upcoming festival appearances and that each result includes festival appearances, but it does not describe edge cases such as empty results or match behavior. This meets the baseline but does not go beyond it significantly.
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 two concise sentences: one states the search scope, the other states the output. There is no fluff or repetition, and the most important action is front-loaded.
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, read-only search tool with full schema descriptions, annotations, and an output schema, the description is essentially complete. It lacks only an explicit pointer to sibling tools for different lookup needs, but that gap is minor given the simplicity and clear scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so query and limit are already documented in the schema. The description reinforces that the search is for upcoming-festival artists but adds no additional parameter-level 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 uses a specific verb ('Search') and resource ('artists') and adds a clear scope qualifier: artists playing upcoming festivals. It also states the output shape, distinguishing it from single-entity tools like get_artist and from search_festivals.
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 clearly implies this tool is for searching artists by name, specifically those with upcoming festival appearances. It does not explicitly name alternatives or state when not to use it, but the scope and output make the intended use case understandable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_festivalsSearch festivalsARead-onlyIdempotentInspect
Search music festivals by name, country, genre, month or date range. Returns upcoming festivals by default, with dates, location, genres and links (festival page, tickets).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Latest date, YYYY-MM-DD. | |
| from | No | Earliest date, YYYY-MM-DD. | |
| genre | No | Genre, e.g. "techno", "metal", "country". | |
| limit | No | Max results, 1-25. Default 10. | |
| month | No | Calendar month as YYYY-MM, e.g. "2026-11". | |
| query | No | Festival name or part of it. Omit to browse by filters alone. | |
| country | No | Country name, e.g. "Australia", "United Kingdom", "Scotland". | |
| include_past | No | Include festivals that have already ended. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | Yes | |
| returned | No | |
| festivals | No | |
| totalMatches | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior. The description adds genuine context beyond that: upcoming-by-default filtering and the return payload (dates, location, genres, links). It does not discuss ordering or pagination, but those are non-essential given the annotations and output 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?
Two sentences with no filler. The core search purpose and default behavior are front-loaded, and every clause carries useful information for tool selection.
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 read-only search tool with an output schema, the description covers the purpose, searchable dimensions, default time filter, and returned fields. It could name the sibling difference or explain how to override the upcoming-only default, but those are minor 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 100%, so the parameters are already well documented. The description adds a helpful high-level list of searchable dimensions, but it does not provide extra syntax, edge-case detail, or meaning beyond what the schema already captures.
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 ('search'), resource ('music festivals'), and the search dimensions (name, country, genre, month/date range). It also names the default return fields, which clearly differentiates it from sibling get_festival and search_artists.
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 when to use it — when searching festivals by criteria — and notes the upcoming-by-default behavior. However, it does not explicitly mention sibling tools or when-not to use it, leaving the agent to infer that get_festival is for a known festival and whats_on for nearby events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whats_onWhat's onARead-onlyIdempotentInspect
Festivals happening in a window: this weekend by default, or a calendar month. Filter by country or genre.
| Name | Required | Description | Default |
|---|---|---|---|
| when | No | "this-weekend" (default) or a month as YYYY-MM. | |
| genre | No | Genre. | |
| limit | No | Max results, 1-25. Default 10. | |
| country | No | Country name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | Yes | |
| window | Yes | |
| festivals | Yes | |
| totalMatches | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive behavior. The description adds the default 'this weekend' behavior and the calendar-month option, which are not available in the annotations and affect how an agent invokes the 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 two compact clauses that front-load the core purpose and then give the default and filters. No filler or repetition.
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 read-only listing tool with no required parameters, a 100%-documented schema, and an output schema, the description plus annotations cover what an agent needs: purpose, default window, and filter options. No critical behavior 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 description coverage is 100%, so the schema fully documents all four parameters. The description's mention of country/genre filters adds no meaning beyond those schema descriptions, so 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 clearly identifies the resource (festivals) and the distinguishing time-window scope ('this weekend by default, or a calendar month'), which separates it from the sibling get_* and search_* tools. It lacks a leading imperative verb, but the meaning is 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 conveys when to use it: to see festivals in a time window, with optional country/genre filters. It does not explicitly name alternatives or state when not to use it, so it misses the top tier.
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. Dates show when Glama detected each change.
7 tool updates
- First observed
get_artist - First observed
get_festival - First observed
get_lineup - First observed
get_set_times - First observed
search_artists - First observed
search_festivals - First observed
whats_on
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Discover festivals worldwide by location, date, and genre. Compare options with key details like d…
Live-concert discovery: 44,000+ upcoming concerts worldwide by city, artist, genre or festival.
Live event discovery: concerts, club nights, art, comedy, and festivals across 14 cities.
Travel & commerce intelligence for AI agents: search, book & price-track hotels, events, retail.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides music events, concerts, music festivals, nightclubs and other events information.172MIT
- AlicenseAqualityAmaintenanceLive trend data for your AI. 25+ platforms. One connection.8337MIT
- FlicenseNot gradedqualityCmaintenanceLive-concert discovery MCP server: search concerts, artist tour dates, festivals and shows by city. Gives AI assistants real-time access to Gigora's global live-music data.-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search for and retrieve concert setlists from setlist.fm by artist, city, and date, and to view full setlists with songs, sets, and encores.587MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct resource or query type: artist details, festival details, lineups, set times, and searches. The only potential confusion is between search_festivals and whats_on, since both can find festivals by date, though their descriptions clarify the different default uses.
Most tools follow a clear get_/search_ verb_noun pattern (e.g., get_artist, search_festivals). The outlier is whats_on, which breaks the pattern and uses a phrase without an underscore, but it is still understandable and not disruptive.
Seven tools is well-scoped for a festival and artist information server. Each tool covers a meaningful aspect of the domain without redundancy or bloat.
The surface covers the core domain well: finding artists and festivals, retrieving festival details, lineups, and schedules, plus a what's-on-view. As a read-only information service, create/update/delete operations are not expected, and there are no obvious dead ends.