Skip to main content
Glama

italia-mcp

Servizi italiani essenziali per assistenti vocali, via MCP. Meteo, allerte della Protezione Civile, notizie ANSA, novità editoriali e promemoria — in italiano, con 9 strumenti in tutto.

Italian essentials (weather, Civil Protection alerts, ANSA news, reminders) as a Model Context Protocol server. Tool descriptions and responses are in Italian.

Nato per il chatbot vocale xiaozhi-esp32 (il "panda"), ma è un normale server MCP: funziona con Claude Desktop, Cursor, Cherry Studio e qualsiasi client compatibile.


⬇️ Scarica per Windows

PandaItalia.exe · 19 MB · nessuna installazione

Un file, doppio clic. Python non serve. Incolli l'indirizzo del tuo dispositivo una volta sola: viene salvato e dal secondo avvio il collegamento parte da solo.

  1. Su xiaozhi.meConfigureExtensions: togli la spunta a Weather e premi Save

  2. Sempre lì → MCP Endpoint → icona copia

  3. Avvia il programma → IncollaCollega

Poi chiedi al tuo dispositivo: "Che tempo fa a Gallarate?"

L'eseguibile non è firmato: al primo avvio Windows mostra "Windows ha protetto il PC"Ulteriori informazioniEsegui comunque.

È pensato per la prova rapida. Windows va in sospensione e i riavvii di Windows Update interrompono il collegamento circa una volta al mese: per l'uso continuativo vedi la guida Raspberry.

Su macOS e Linux, e per chi preferisce Python: guida PC · tutte le versioni


Related MCP server: Weather MCP Server

Perché esiste

I server MCP meteo che si trovano in giro sono pensati per assistenti da scrivania, dove il contesto è enorme e nessuno conta i byte. Su un dispositivo vocale basato su ESP32 i vincoli sono un altro mondo:

server MCP meteo tipico

italia-mcp

Numero di strumenti

17

9

Peso dell'elenco strumenti

~29.700 token

~1.000 token

Risposta

JSON grezzo, fino a 25.000 caratteri

sotto 1.024 byte

Lingua

inglese, fuso GMT

italiano, fuso locale

Come indichi il luogo

latitudine e longitudine

nome del comune

Dipendenze

varie

una sola (mcp)

L'elenco degli strumenti viaggia in ogni richiesta al modello: è lì che si vince o si perde. Tutto il resto del progetto discende da questo.

Strumenti

Strumento

Che cosa fa

meteo_adesso(citta)

Tempo attuale: cielo, temperatura, percepita, umidità, vento

meteo_previsioni(citta, giorni)

Previsioni da 1 a 7 giorni con probabilità di pioggia

allerte_protezione_civile(comune)

Allerta gialla/arancione/rossa per temporali, rischio idraulico e idrogeologico

qualita_aria(citta)

Indice europeo, PM10, PM2.5

notizie_italia(argomento)

Ultimi titoli ANSA: principali, cronaca, politica, economia, mondo, tecnologia, sport

novita_futura(sezione)

Ultimi articoli di Elettronica In ed Elettronica In PRO, ultimi prodotti FuturaShop

promemoria_aggiungi(testo)

Aggiunge un promemoria o un articolo alla lista della spesa

promemoria_elenco()

Legge la lista

promemoria_rimuovi(numero_o_testo)

Toglie una voce, o svuota tutto con "tutto"

Installazione

pip install italia-mcp

Oppure, dalla sorgente:

git clone https://github.com/BorisLandoni/italia-mcp.git
cd italia-mcp
python3 -m venv .venv
./.venv/bin/python -m pip install -e .

Provalo subito, senza collegare niente

python prova.py

Chiama tutti gli strumenti uno per uno e misura quanto pesa ogni risposta:

[            ok]  148 byte    448 ms  meteo_adesso
[            ok]  228 byte   1010 ms  allerte_protezione_civile
[            ok]  371 byte    685 ms  novita_futura [rivista]
...
Risposta piu' pesante: 409 byte su un limite di 1024.
Tutti gli strumenti rispondono correttamente.

Per avviare il server vero:

italia-mcp

Il cursore resta fermo e non compare nulla: è corretto. Il server parla MCP su stdin/stdout e aspetta un client. Se stampasse qualcosa, romperebbe il protocollo.

Guide dettagliate

Uso con Claude Desktop, Cursor e simili

{
  "mcpServers": {
    "italia": { "command": "italia-mcp" }
  }
}

Uso con il panda (xiaozhi)

Il panda non chiama un URL: è il tuo server che deve collegarsi all'endpoint MCP del dispositivo e tenere aperta la connessione. Serve il ponte ufficiale mcp_pipe.py.

  1. Nella console di xiaozhi.me apri Configure → Extensions → MCP Endpoint e copia l'indirizzo wss://api.xiaozhi.me/mcp/?token=... (è un segreto, trattalo come una password).

  2. Togli la spunta all'estensione ufficiale Weather, altrimenti il modello ha due strumenti meteo e sceglie a caso.

  3. Avvia il ponte:

pip install italia-mcp websockets python-dotenv
export MCP_ENDPOINT="wss://api.xiaozhi.me/mcp/?token=..."
python mcp_pipe.py xiaozhi/italia_server.py

Vedi xiaozhi/ per gli script pronti e la guida passo passo.

Vincoli della piattaforma da rispettare

Dalla documentazione ufficiale:

  • la risposta di uno strumento è limitata a circa 1.024 byte;

  • l'elenco degli strumenti ha un tetto misurato in token;

  • ogni endpoint ha un limite di connessioni: usa un solo server MCP, non uno per servizio;

  • mai print() nel codice di uno strumento: stdin/stdout sono il canale di trasporto.

Fonti dei dati

Dato

Fonte

Licenza

Meteo, previsioni, qualità aria

Open-Meteo

CC BY 4.0, gratuito senza chiave

Allerte meteo-idro

Dipartimento della Protezione Civile, in CSV via OpenData Sicilia

CC BY 4.0

Notizie

Feed RSS pubblici ANSA

uso citazionale dei soli titoli

Novità editoriali

Feed RSS di Elettronica In, Elettronica In PRO e FuturaShop

uso citazionale dei soli titoli

Nessuna chiave API richiesta.

Nota importante sulle allerte

Il bollettino della Protezione Civile esce entro le 16:00 e il mirror può avere qualche ora di ritardo. Il codice non si fida del nome del file: legge la finestra di validità dichiarata dentro il bollettino e usa solo quello valido in questo momento. Se nessuno è valido, lo dice invece di rispondere con dati vecchi. Ogni risposta include valido_fino.

Questo software non è un servizio di allerta ufficiale e non sostituisce i canali della Protezione Civile. Per le emergenze fai sempre riferimento alle fonti ufficiali.

Limiti noti

  • Non può svegliare il dispositivo. I promemoria si consultano a voce, non suonano da soli: nel protocollo xiaozhi il server non può iniziare una conversazione.

  • Non riproduce musica. Il canale audio è Opus binario, gli strumenti MCP scambiano solo testo.

  • I promemoria sono salvati in un file locale, senza account: chi ha accesso al server li vede tutti.

Personalizzare le fonti

Le fonti di novita_futura sono ridefinibili con la variabile d'ambiente ITALIA_MCP_FONTI, nel formato chiave=URL|Etichetta;chiave2=URL2|Etichetta2: chi usa il pacchetto può puntarlo ai propri feed.

Licenza

Codice: MIT. I dati restano dei rispettivi titolari, alle licenze indicate sopra.

Crediti

Sviluppato da Boris Landoni con l'assistenza di Claude (Anthropic), per Futura Group Srl — editore di Elettronica In e Elettronica In PRO.

Available Tools

9 tools
allerte_protezione_civileA

Allerta meteo ufficiale della Protezione Civile per un comune italiano (allerta gialla, arancione o rossa per temporali, rischio idraulico e rischio idrogeologico). Usalo quando l'utente chiede se c'e' un'allerta meteo, se e' pericoloso uscire o se ci sono avvisi per il maltempo. Il parametro comune e' il nome esatto del comune, per esempio "Gallarate".

ParametersJSON Schema
NameRequiredDescriptionDefault
comuneYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. It explains the alert levels and risk categories, which adds meaningful context. However, it does not disclose what happens when there is no alert, how current the data is, or whether the tool is read-only, leaving some behavior implicit.

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?

The description is compact and front-loaded: it opens with the core purpose, then states when to use the tool, and ends with parameter guidance. Each sentence earns its place; there is no filler or repetition.

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?

For a single-parameter tool with no output schema, the description covers the essential context: what the tool does, when to call it, and how to fill the parameter. It could add a small note about behavior when no alert exists, but overall it is sufficiently complete for the tool's simplicity.

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

Parameters5/5

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

The schema provides only the parameter name 'comune' with no description, so schema coverage is 0%. The description fully compensates by explaining that comune is 'il nome esatto del comune' and gives a concrete example ('Gallarate'). This is precisely the guidance an agent needs to populate the parameter correctly.

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 resource ('Allerta meteo ufficiale della Protezione Civile') and a clear scope (per un comune italiano) with concrete alert types. It is immediately distinguishable from sibling weather tools like meteo_previsioni and meteo_adesso because it is specifically about official warnings, not forecasts or current conditions.

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 explicitly tells the agent when to use it: when the user asks about a weather alert, whether it is dangerous to go out, or about bad weather warnings. It does not mention alternative tools or exclusions, but for this simple one-parameter tool the usage context is clear enough.

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

meteo_adessoA

Che tempo fa in questo momento in una localita italiana. Usalo quando l'utente chiede il tempo, la temperatura, se piove, se fa freddo o se serve l'ombrello adesso. Il parametro citta e' il nome del comune, per esempio "Milano" o "Arsago Seprio".

ParametersJSON Schema
NameRequiredDescriptionDefault
cittaYes

TDQS

A4.5/5.0
Behavior4/5

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

There are no annotations, so the description must carry the behavioral burden. It clearly scopes the behavior to 'in questo momento' and Italian municipalities, and the read-only nature is evident from the query wording. It does not mention failure modes or output format, but for a simple weather lookup these are not critical.

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?

Three short sentences with no filler. The core function is front-loaded, usage triggers follow, and the only parameter is explained with examples. Every sentence earns its place.

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?

For a single-parameter read-only weather tool, this is nearly complete. Absence of an output schema means the return shape is unspecified, but the description's phrasing ('tempo, temperatura') implies what the answer covers. No further context is essential.

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

Parameters5/5

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

Schema coverage is 0%; the only parameter 'citta' has just a type/title. The description compensates fully by explaining that it is a comune name and giving concrete examples ('Milano', 'Arsago Seprio'). This is exactly the meaning an agent needs.

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 opens with a clear statement of the tool's function: current weather ('Che tempo fa in questo momento') for an Italian location. This directly distinguishes it from sibling meteo_previsioni, which implies future weather, and from notizie/qualita_aria tools.

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?

It gives explicit trigger examples ('cerca il tempo, la temperatura, se piove... adesso') so an agent knows when to select it. It does not explicitly name meteo_previsioni as the alternative for forecasts, but the repeated 'adesso' makes the boundary clear.

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

meteo_previsioniA

Previsioni del tempo per i prossimi giorni in una localita italiana. Usalo quando l'utente chiede il tempo di domani, del fine settimana o dei prossimi giorni. Il parametro giorni va da 1 a 7.

ParametersJSON Schema
NameRequiredDescriptionDefault
cittaYes
giorniNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It discloses the giorni range (1-7) and the Italian locality scope, which is helpful, but it does not describe the response format, data source, or error behavior. Overall, it adds some context but not rich behavioral detail.

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?

The description is three short sentences with no filler. The purpose is front-loaded, the usage guidance follows, and the key parameter constraint is stated clearly. Every sentence earns its place.

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?

For a simple two-parameter weather forecast tool with no output schema and no annotations, this description is largely complete. It covers what the tool does, when to use it, and the main parameter constraint. It could mention the response format, but that is a minor omission for this use case.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning to citta as an Italian locality and constrains giorni to a 1-7 range, going beyond the bare schema type definitions. The default of 3 is left to the schema, which is acceptable.

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 states that the tool provides weather forecasts for upcoming days in an Italian locality, which distinguishes it from the sibling tool meteo_adesso (current weather). It lacks an explicit verb like 'fornisce' or 'ottiene', but the resource and scope are unmistakable.

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 explicitly says to use the tool when the user asks about tomorrow, the weekend, or upcoming days. It does not explicitly name the alternative for current weather, but the sibling context and timeframe distinction make the usage boundary clear.

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

notizie_italiaA

Ultimi titoli delle notizie italiane dall'agenzia ANSA. Usalo quando l'utente chiede le notizie, che cosa succede o le ultime novita'. Gli argomenti disponibili sono: principali, cronaca, politica, economia, mondo, tecnologia, sport.

ParametersJSON Schema
NameRequiredDescriptionDefault
argomentoNoprincipali

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it discloses the news source (ANSA), the headline-only scope, and the supported topics. However, it doesn't describe output structure, pagination, freshness, or whether any authentication is needed, so behavioral transparency is partial.

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?

The description consists of three concise, front-loaded sentences: the core purpose, the usage condition, and the argument options. Every sentence adds value with no redundancy.

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?

For a tool with one optional parameter and no output schema, the description covers what it does, when to use it, and the valid values. It could add a bit more about the output nature (e.g., a list of headline strings) or the read-only nature, but the current information is largely sufficient for correct invocation.

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

Parameters5/5

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

The input schema has zero description coverage and no enums, leaving 'argomento' as an opaque string. The description fully compensates by listing all available values: 'principali, cronaca, politica, economia, mondo, tecnologia, sport', which is essential for valid invocation.

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 states the tool returns 'Ultimi titoli delle notizie italiane dall'agenzia ANSA' (latest Italian news headlines from ANSA), identifying the resource and differentiating it from weather, alert, and reminder siblings. However, it lacks an explicit verb like 'gets' or 'lists', relying on the noun phrase and the subsequent usage instruction.

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 explicitly says 'Usalo quando l'utente chiede le notizie, che cosa succede o le ultime novita'' (use it when the user asks for news, what's happening, or latest updates), providing clear trigger conditions. It doesn't mention alternatives or exclusions, but the sibling tools are obviously different domains.

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

novita_futuraA

Ultimi articoli pubblicati dalla rivista Elettronica In, da Elettronica In PRO, oppure ultimi prodotti messi in vendita da FuturaShop (Futura Elettronica). Usalo quando l'utente chiede le ultime novita', gli ultimi articoli, cosa e' uscito di nuovo sulla rivista o quali sono i prodotti appena arrivati. Il parametro sezione accetta: "elettronica-in" per gli articoli della rivista, "elettronica-in-pro" per quelli professionali, "prodotti" per il negozio.

ParametersJSON Schema
NameRequiredDescriptionDefault
sezioneNoelettronica-in

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the responsibility of explaining behavior. It does so by describing what is returned for each sezione value and clarifying the three distinct content categories. It doesn't explicitly discuss read-only guarantees, auth, or rate limits, but the operation is clearly a non-mutating retrieval, so this is a minor gap.

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?

The description is compact and well-structured: purpose first, then usage guidance, then parameter mapping. Every sentence adds necessary information with no filler.

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?

For a simple tool with one optional parameter, no required inputs, and no output schema, this description is complete enough for an agent to select and invoke it correctly. It covers the content, the user-intent triggers, and all parameter options.

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

Parameters5/5

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

The schema provides only a parameter name and default, with zero description coverage. The tool description fully compensates by listing every accepted value for sezione and explaining exactly what each returns, making invocation unambiguous.

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 identifies the tool's function: retrieving the latest articles from Elettronica In, Elettronica In PRO, or products from FuturaShop. It names the specific resource and distinguishes it from siblings like notizie_italia and meteo tools by focusing on this specific publication/shop domain.

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 gives explicit usage triggers: use it when the user asks for the latest news, articles, new magazine issues, or newly arrived products. It does not mention alternatives or exclusions, but the context is clear enough for an agent to know when this tool, rather than a general news or weather sibling, is appropriate.

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

promemoria_aggiungiA

Aggiunge una cosa da ricordare o un articolo alla lista della spesa. Usalo quando l'utente dice di ricordargli qualcosa, di segnarsi una cosa o di aggiungere un prodotto alla spesa.

ParametersJSON Schema
NameRequiredDescriptionDefault
testoYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing that this is a write operation, and it does state that it adds content. It does not describe side effects, persistence, or return behavior, but for a simple add tool the core mutation is clear.

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?

The description is two short sentences with the action and intended user triggers front-loaded. Every clause earns its place; there is no redundant restating of the tool name.

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?

For a one-parameter add tool, the description adequately covers what it does and when to invoke it. It does not describe the expected response or any limitations, but there is no output schema and the operation is simple enough that this is a minor omission.

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

Parameters4/5

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

Schema coverage is 0% but there is only one required string parameter, 'testo'. The description maps it to the semantic content: the thing to remember or the shopping product. Although it does not name the parameter, the role is unambiguous from the tool's own sentence.

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 uses a specific verb ('Aggiunge') and identifies the two resources: a thing to remember and a shopping-list item. This clearly distinguishes it from sibling tools promemoria_elenco and promemoria_rimuovi, which handle listing and removal.

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?

It gives explicit trigger conditions: use it when the user asks to remember something, jot something down, or add a product to the shopping list. It does not explicitly state exclusions or name alternatives, but the sibling names make the contrast obvious.

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

promemoria_elencoA

Legge tutte le cose da ricordare e la lista della spesa. Usalo quando l'utente chiede cosa deve fare, cosa aveva segnato o cosa c'e' nella lista della spesa.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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 clearly states this is a read operation ('Legge'), implying no side effects, and it names all data sources involved. It does not describe output format or ordering, but this is minor for a simple read tool.

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?

The description is two compact sentences with no wasted words. The first sentence states the operation and resource; the second gives concrete usage triggers. The action is front-loaded.

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?

For a zero-parameter, read-only list tool with no output schema, the description gives enough operational and usage context. It could mention the return format, but that is not essential for selecting and invoking such a simple tool.

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

Parameters4/5

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

The tool has zero parameters and the input schema fully documents that, so the baseline of 4 applies. No parameter explanation is needed in the description.

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 uses a specific action verb ('Legge' / reads) and identifies the exact resources: all things to remember and the shopping list. This clearly differentiates it from the add/remove reminder sibling tools.

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?

It explicitly states when to use the tool: when the user asks what to do, what they had noted down, or what is on the shopping list. It does not explicitly mention exclusions, but the trigger conditions are concrete and sufficient.

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

promemoria_rimuoviA

Toglie una voce dalla lista dei promemoria o della spesa. Accetta il numero della voce oppure una parola contenuta nella voce. Usa la parola "tutto" per svuotare completamente la lista.

ParametersJSON Schema
NameRequiredDescriptionDefault
numero_o_testoYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It explicitly states that the tool removes an item, accepts a number or matching word, and that 'tutto' empties the entire list, which is an important destructive behavior. It does not discuss irreversibility or errors, but the core destructive semantics are transparent.

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?

The description is three short sentences with no filler. The main action is front-loaded, and the parameter behavior is explained immediately, making it easy for an agent to parse quickly.

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?

For a single-parameter removal tool, the description covers the action, acceptable input forms, and the special 'tutto' command. The main gap is the absence of any return-value or error behavior, which matters somewhat because there is no output schema, but the agent still has enough to invoke the tool correctly.

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

Parameters4/5

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

The input schema has 0% description coverage, so the description must define the parameter. It explains that 'numero_o_testo' can be a list number, a word contained in the item, or the special sentinel 'tutto'. This adds significant meaning beyond the schema, though it could be even more precise about formats or edge cases.

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 uses a specific verb ('Toglie') and names the affected resource ('lista dei promemoria o della spesa'), clearly identifying it as a removal operation. It also differentiates from the sibling tools by describing the remove action rather than add or list behavior.

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 makes the use case clear: when you need to remove an item from a reminders or shopping list. It does not explicitly point to alternatives like promemoria_aggiungi or promemoria_elenco, but the context and sibling names are obvious enough that an agent can route correctly.

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

qualita_ariaA

Qualita dell'aria in una localita italiana, con indice europeo, polveri sottili PM10 e PM2.5. Usalo quando l'utente chiede com'e' l'aria, se c'e' smog o se puo' andare a correre.

ParametersJSON Schema
NameRequiredDescriptionDefault
cittaYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden and does disclose useful behavioral facts: only Italian locations are covered and the output contains an air-quality index with PM10/PM2.5. It does not mention update frequency, units, or behavior for unknown cities, so transparency is only partial.

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 tight sentences: the first states output and scope, the second states when to use it. No filler.

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?

For a one-parameter read tool with no output schema, the description covers purpose, output content, scope, and usage triggers. Minor gaps like units and error handling do not prevent correct invocation.

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 coverage is 0%, and the description only indirectly explains 'citta' by saying 'in una localita italiana'. That adds the key semantic constraint, but no format, examples, or explicit mapping from description to parameter.

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 the resource ('Qualita dell'aria in una localita italiana') and the specific data included (European index, PM10, PM2.5). It is clearly distinct from weather, news, alerts, and reminder siblings.

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?

It gives explicit usage triggers: user asks about air quality, smog, or whether they can go running. It does not explicitly name alternatives or state when not to use it, though those can be inferred from sibling names.

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. 9 tool updatesv0.1.0
    • First observedallerte_protezione_civile
    • First observedmeteo_adesso
    • First observedmeteo_previsioni
    • First observednotizie_italia
    • First observednovita_futura
    • First observedpromemoria_aggiungi
    • First observedpromemoria_elenco
    • First observedpromemoria_rimuovi
    • First observedqualita_aria

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation4/5

The weather, alert, air quality, news, electronics news, and reminder tools each cover distinct resources, and the descriptions clarify the differences. The main possible confusion is between notizie_italia and novita_futura since both can be described as 'latest news', but their source and scope are clearly separated.

Naming Consistency4/5

All tool names are lowercase Italian snake_case, which gives the set a coherent feel. The main tools are noun phrases (meteo_previsioni, qualita_aria) while the reminder tools use an object_verb pattern (promemoria_aggiungi, promemoria_rimuovi), creating a minor but readable inconsistency.

Tool Count5/5

Nine tools is a well-scoped size for this server. Each tool covers a meaningful slice of the Italian information domain plus a small reminder subsystem, with no redundant or unnecessary tools.

Completeness4/5

The weather, alerts, air quality, news, and reminder workflows are largely covered: current conditions, forecasts, official warnings, pollution, headlines, and add/list/remove for reminders. Minor gaps exist such as no news article detail retrieval and no reminder update operation, but agents can accomplish the main requested tasks.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables users to get weather alerts and forecasts through natural language interactions. Provides real-time weather information and alert notifications via MCP tools.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides weather data from OpenWeatherMap API through MCP tools and a REST API with OpenAPI support. Enables LLM agents to retrieve current weather, forecasts, and temperature ranges by city or coordinates.
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides weather data including current conditions, forecasts, and summaries via Open-Meteo with no API key required, enabling natural language queries through an MCP interface.
    MIT