Skip to main content
Glama

Server Details

Sagre, feste e manifestazioni dei comuni italiani, ricavate ogni giorno dagli albi pretori.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a clearly distinct function: search events, list supported municipalities, and fetch event details. There is no meaningful overlap or ambiguity between the three tools.

Naming Consistency3/5

Names are all lowercase snake_case and readable, but they do not follow one pattern: cerca_eventi is verb_noun, while comuni_coperti and dettaglio_evento are noun-based phrases. The mix is understandable but not fully predictable.

Tool Count5/5

Three tools is well-scoped for a focused read-only event lookup service. Each tool has a clear role in the workflow with no redundancy.

Completeness5/5

The toolset covers the complete user flow: identify a covered municipality, search for events, then retrieve full event details. For a read-only public data service, no create, update, or delete operations are needed.

Available Tools

3 tools
cerca_eventiCerca eventi e sagre nei comuni italianiA
Read-onlyIdempotent
Inspect

Cerca sagre, feste patronali, fiere, mercatini, concerti, mostre e manifestazioni nei comuni italiani. I dati sono ricavati ogni giorno dagli atti pubblicati sugli albi pretori dei comuni (ordinanze, delibere, concessioni di suolo pubblico), quindi comprendono anche i paesi piccoli, che non stanno su nessun altro calendario. Ogni evento riporta il link alla propria scheda e alla fonte ufficiale.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoRicerca testuale nel titolo e nella descrizione, minimo 3 caratteri.
alNoData massima di inizio, formato 'YYYY-MM-DD'.
dalNoData minima di inizio, formato 'YYYY-MM-DD'.
comuneNoIdentificativo del comune, in minuscolo e con i trattini (es. 'barolo', 'santo-stefano-belbo'). Usa comuni_coperti per trovarlo.
limiteNoQuanti eventi restituire, massimo 50.
regioneNoNome della regione. Valori: Sicilia, Piemonte, Valle d'Aosta/Vallée d'Aoste, Lombardia, Liguria, Trentino-Alto Adige/Südtirol, Umbria, Veneto, Emilia-Romagna, Toscana, Friuli-Venezia Giulia, Lazio, Marche, Campania, Puglia, Abruzzo, Basilicata, Calabria, Molise, Sardegna
categoriaNoFiltra per tipo di evento.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventiYesLa pagina di risultati, lunga al massimo quanto `limite`.
totaleYesQuanti eventi rispondono ai criteri in tutto, anche oltre quelli riportati qui.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: data is sourced daily from official municipal registers (albi pretori), includes small towns, and each event includes a link to its detail page and official source. This goes beyond the annotations by explaining data provenance and output linkage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and immediately followed by the key differentiator (small towns, official sources). It's efficient and every sentence earns its place, though it could be slightly more compact without losing the provenance detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 optional parameters, a rich output schema, and annotations covering safety, the description is complete enough for an agent to select and invoke it correctly. It explains the data source, coverage, and output links. It doesn't mention pagination or the limite parameter's default, but the schema covers that. The only minor gap is not explicitly routing to dettaglio_evento for single-event details, but the sibling names and schema make that inferable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly, including formats, examples, and constraints. The description adds no parameter-specific semantics beyond what the schema provides. Baseline 3 is appropriate when the schema carries the full burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Cerca') and resource ('eventi e sagre nei comuni italiani'), and immediately distinguishes itself from siblings by noting it covers small towns not on other calendars. The title reinforces the search scope, and the description's mention of official sources and daily updates adds specificity beyond the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 searching for events across Italian municipalities, including small towns, with data sourced from official public registers. It doesn't explicitly name alternatives like dettaglio_evento or comuni_coperti, but the context signals and sibling names make the distinction clear. It lacks explicit 'when not to use' guidance, but the use case is well implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

comuni_copertiComuni coperti, con il loro identificativoA
Read-onlyIdempotent
Inspect

L'elenco dei comuni per cui abbiamo eventi, con il loro identificativo. Serve a trovare l'identificativo giusto prima di chiamare cerca_eventi.

ParametersJSON Schema
NameRequiredDescriptionDefault
regioneNoLimita a una regione.

Output Schema

ParametersJSON Schema
NameRequiredDescription
comuniYesAl massimo 500 comuni: senza il filtro regione la lista nazionale sarebbe di migliaia di righe.
totaleYesQuanti comuni hanno eventi in tutto, anche oltre quelli elencati qui.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful scope information: the list contains only municipalities we have events for and includes identifiers. It does not over-explain, but it also does not add much behavioral depth beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler. The first states what the tool returns, and the second explains why it mattersaren't used, each earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple read-only list with one optional filter, and an output schema exists. The description gives enough context for an agent to know when and why to call it, and nothing important is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents the single optional parameter `regione` with 100% coverage. The description provides no additional meaning beyond what the schema already states, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the list of municipalities that have events, along with their identifierschers. It explicitly frames the purpose as a lookup step before calling cerca_eventi, which distinguishes it from the sibling event-oriented tools even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says this tool is meant to be used before calling cerca_eventi, to find the correct identifier. This gives a clear contextual trigger, though it does not state explicit conditions for when not to use it. Given the tool's simple role, the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dettaglio_eventoScheda completa di un eventoA
Read-onlyIdempotent
Inspect

Tutti i dati di un evento a partire dal suo identificativo, compresi descrizione, informazioni pratiche, organizzatore, se l'ingresso e' libero o a pagamento e il link alla fonte ufficiale.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdentificativo dell'evento, come restituito da cerca_eventi.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventoYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral detail about what the response contains (description, practical info, organizer, free/paid status, official source link), which helps an agent know what to expect 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-structured sentence conveys the purpose and the range of returned data without redundancy. The content enumeration is informative, and there is no filler or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple single-parameter read-only lookup with a rich output schema and complete annotations. The description names the main data categories, the schema documents the required id and its provenance, and the annotations cover idempotency and non-destructiveness. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the parameter description already explains that id is the event identifier returned by cerca_eventi. The description only paraphrases this ('a partire dal suo identificativo'), adding no new semantic 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource ('un evento') and the scope ('tutti i dati'), including concrete content categories, but it lacks an explicit verb such as 'recupera' or 'restituisce'. It is clearly distinct from siblings by emphasizing full detail from an identifier, though it does not explicitly name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'a partire dal suo identificativo' plus the schema note 'come restituito da cerca_eventi' gives clear context: this tool should be used after search to fetch complete details for a known event ID. It does not spell out when to prefer cerca_eventi or comuni_coperti, but the ID provenance is an effective usage cue.

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.

  1. 3 tool updates
    • Changedcerca_eventi1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "eventi": {
        +      "description": "La pagina di risultati, lunga al massimo quanto `limite`.",
        +      "items": {
        +        "properties": {
        +          "biglietteria_url": {
        +            "description": "Dove si comprano i biglietti, solo se l'atto lo riportava.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "categoria": {
        +            "description": "Uno dei valori ammessi per il filtro categoria.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "comune": {
        +            "description": "Identificativo del comune, quello che vuole il filtro comune.",
        +            "type": "string"
        +          },
        +          "comune_nome": {
        +            "description": "Nome del comune per esteso.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "created_at": {
        +            "description": "ISO 8601 UTC.",
        +            "type": "string"
        +          },
        +          "data_fine": {
        +            "description": "Formato 'YYYY-MM-DD'. Uguale a data_inizio se l'evento dura un giorno.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "data_inizio": {
        +            "description": "Formato 'YYYY-MM-DD'.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "date_occorrenze": {
        +            "description": "Le singole date quando l'evento non occupa un intervallo pieno, per esempio tre domeniche di fila.",
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": [
        +              "array",
        +              "null"
        +            ]
        +          },
        +          "descrizione": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "fonte_permanente_url": {
        +            "description": "La nostra copia permanente dell'atto, che non scade.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "fonte_url": {
        +            "description": "L'atto sul portale del comune. Puo' sparire quando l'albo ruota.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "id": {
        +            "description": "Identificativo da passare a dettaglio_evento.",
        +            "type": "string"
        +          },
        +          "info_utili": {
        +            "description": "Note pratiche: orari, come arrivare, prenotazioni.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "ingresso": {
        +            "description": "Nullo quando l'atto non lo dichiara, ed e' il caso di gran lunga piu' frequente. Nullo NON vuol dire gratis: se manca, dillo, non dedurlo.",
        +            "enum": [
        +              "libero",
        +              "pagamento",
        +              null
        +            ],
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "lat": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "locandina_url": {
        +            "description": "La locandina, quando il comune ne ha pubblicata una.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "lon": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "luogo": {
        +            "description": "Indirizzo o luogo preciso, quando l'atto lo dice.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "maps_url": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "organizzatore_ente": {
        +            "description": "Chi organizza, quando e' un ente e non una persona.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "provincia": {
        +            "description": "Sigla della provincia.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "regione": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "stato_temporale": {
        +            "description": "Se e' in corso, in arrivo o concluso.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "titolo": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "updated_at": {
        +            "description": "ISO 8601 UTC.",
        +            "type": "string"
        +          },
        +          "url": {
        +            "description": "La pagina dell'evento sul nostro sito: e' questo il link da citare.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "comune",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "totale": {
        +      "description": "Quanti eventi rispondono ai criteri in tutto, anche oltre quelli riportati qui.",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "totale",
        +    "eventi"
        +  ],
        +  "type": "object"
        +}
    • Changedcomuni_coperti1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "comuni": {
        +      "description": "Al massimo 500 comuni: senza il filtro regione la lista nazionale sarebbe di migliaia di righe.",
        +      "items": {
        +        "properties": {
        +          "comune": {
        +            "description": "Identificativo da passare al filtro comune.",
        +            "type": "string"
        +          },
        +          "comune_nome": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "eventi": {
        +            "description": "Quanti eventi ha in catalogo.",
        +            "type": "integer"
        +          },
        +          "provincia": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "regione": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "comune",
        +          "eventi"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "totale": {
        +      "description": "Quanti comuni hanno eventi in tutto, anche oltre quelli elencati qui.",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "totale",
        +    "comuni"
        +  ],
        +  "type": "object"
        +}
    • Changeddettaglio_evento1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "evento": {
        +      "properties": {
        +        "biglietteria_url": {
        +          "description": "Dove si comprano i biglietti, solo se l'atto lo riportava.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "categoria": {
        +          "description": "Uno dei valori ammessi per il filtro categoria.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "comune": {
        +          "description": "Identificativo del comune, quello che vuole il filtro comune.",
        +          "type": "string"
        +        },
        +        "comune_nome": {
        +          "description": "Nome del comune per esteso.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "created_at": {
        +          "description": "ISO 8601 UTC.",
        +          "type": "string"
        +        },
        +        "data_fine": {
        +          "description": "Formato 'YYYY-MM-DD'. Uguale a data_inizio se l'evento dura un giorno.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "data_inizio": {
        +          "description": "Formato 'YYYY-MM-DD'.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "date_occorrenze": {
        +          "description": "Le singole date quando l'evento non occupa un intervallo pieno, per esempio tre domeniche di fila.",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        },
        +        "descrizione": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "fonte_permanente_url": {
        +          "description": "La nostra copia permanente dell'atto, che non scade.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "fonte_url": {
        +          "description": "L'atto sul portale del comune. Puo' sparire quando l'albo ruota.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "id": {
        +          "description": "Identificativo da passare a dettaglio_evento.",
        +          "type": "string"
        +        },
        +        "info_utili": {
        +          "description": "Note pratiche: orari, come arrivare, prenotazioni.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "ingresso": {
        +          "description": "Nullo quando l'atto non lo dichiara, ed e' il caso di gran lunga piu' frequente. Nullo NON vuol dire gratis: se manca, dillo, non dedurlo.",
        +          "enum": [
        +            "libero",
        +            "pagamento",
        +            null
        +          ],
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "lat": {
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "locandina_url": {
        +          "description": "La locandina, quando il comune ne ha pubblicata una.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "lon": {
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "luogo": {
        +          "description": "Indirizzo o luogo preciso, quando l'atto lo dice.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "maps_url": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "organizzatore_ente": {
        +          "description": "Chi organizza, quando e' un ente e non una persona.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "provincia": {
        +          "description": "Sigla della provincia.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "regione": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "stato_temporale": {
        +          "description": "Se e' in corso, in arrivo o concluso.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "titolo": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "updated_at": {
        +          "description": "ISO 8601 UTC.",
        +          "type": "string"
        +        },
        +        "url": {
        +          "description": "La pagina dell'evento sul nostro sito: e' questo il link da citare.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "comune",
        +        "url"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "evento"
        +  ],
        +  "type": "object"
        +}
  2. 3 tool updates
    • First observedcerca_eventi
    • First observedcomuni_coperti
    • First observeddettaglio_evento

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources