{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T02:21:12.023Z","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp","markdownUrl":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp.md","server":{"slug":"giovannafilippini-gazzetta-mcp","name":"io.github.GiovannaFilippini/gazzetta-mcp","registryName":"io.github.GiovannaFilippini/gazzetta-mcp","description":"Free, local MCP server to consult and search the Italian Gazzetta Ufficiale. Unofficial.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"gazzetta-mcp","type":"pypi","identifier":"gazzetta-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp","version":"0.1.0","transport":"stdio","scoredAt":"2026-11-06T02:18:17.507Z"},"score":{"total":86,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-06","total":86},{"date":"2026-11-05","total":86},{"date":"2026-11-04","total":85},{"date":"2026-11-03","total":85},{"date":"2026-11-02","total":84},{"date":"2026-11-01","total":84},{"date":"2026-10-31","total":83},{"date":"2026-10-30","total":83},{"date":"2026-10-29","total":82},{"date":"2026-10-28","total":67},{"date":"2026-10-27","total":66},{"date":"2026-10-26","total":66},{"date":"2026-10-25","total":65},{"date":"2026-10-24","total":65},{"date":"2026-10-23","total":64},{"date":"2026-10-22","total":64},{"date":"2026-10-21","total":64},{"date":"2026-10-20","total":63},{"date":"2026-10-19","total":63},{"date":"2026-10-18","total":62},{"date":"2026-10-17","total":62},{"date":"2026-10-16","total":76}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"partial","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","1 of 23 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"23","unhealthy":"1"}}]},{"name":"Provenance & Transparency","score":100,"verdict":"pass","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to GiovannaFilippini/gazzetta-mcp).","Clear OSI-approved license (MIT).","Actively maintained (last published 7 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"GiovannaFilippini/gazzetta-mcp"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"7"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":58,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 2106 tokens (~351/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"351","items":"6","tools":"6","tokens":"2106","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":70,"verdict":"partial","reasons":["Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"21"}}]},{"name":"Tool Coverage","score":71,"verdict":"fail","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","0% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"0"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"6"}},{"code":"toolsafety.manipulation_clean","args":{"units":"7","judged":"7"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"gazzetta-mcp","type":"pypi","identifier":"gazzetta-mcp","withdrawn":false,"score":86,"current":true,"url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp","markdownUrl":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"gazzetta-mcp"},{"label":"Version","value":"0.1.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"ultime_pubblicazioni","title":"Ultime Pubblicazioni","description":"Elenca le ultime cose uscite in Gazzetta Ufficiale (feed ufficiale).\n\nUsalo quando l'utente chiede le novita': \"cosa e' uscito oggi in Gazzetta\", \"ci sono\nnuovi decreti questa settimana\", \"ultimi concorsi pubblicati\". Non servono date o\ncodici. Ogni voce ha un codice (es. 26A05182) che poi basta passare a leggi_atto.\nCopertura parziale: il feed contiene solo i numeri piu' recenti; per giorni piu'\nlontani usa sommario o cerca.\n\nserie: SG (Serie Generale, la piu' comune), S1 (Corte Costituzionale), S2 (Unione\nEuropea), S3 (Regioni), S4 (Concorsi ed esami), S5 (Contratti pubblici), P2 (Parte II).\ngiorni: quanti giorni indietro includere (1-90).","inputs":[{"name":"giorni","type":"integer","required":false,"description":null},{"name":"serie","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":233},{"name":"sommario","title":"Sommario","description":"Elenco completo degli atti di un numero della Gazzetta Ufficiale di un certo giorno.\n\nUsalo quando l'utente indica un giorno: \"cosa e' uscito il 2 ottobre\", \"sommario della\nGazzetta del 15 settembre\". Se l'utente non indica un giorno usa invece\nultime_pubblicazioni. Restituisce codice, titolo, emettitore e link di ogni atto, piu'\nil link al numero e al PDF.\n\ndata: giorno di pubblicazione, formato AAAA-MM-GG (converti tu le date dette a\nparole). serie: SG (predefinita), S1-S5, P2.","inputs":[{"name":"data","type":"string","required":true,"description":null},{"name":"serie","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":167},{"name":"leggi_atto","title":"Leggi Atto","description":"Legge il testo di un atto della Gazzetta Ufficiale, ripulito per la lettura.\n\nUsalo quando l'utente vuole il testo di un atto: \"dammi il testo del decreto X\",\n\"riassumimi questo decreto\", \"cosa dice l'atto 26A05182\". Il codice (es. 26A05182) lo\ntrovi nei risultati di ultime_pubblicazioni, sommario, cerca o cerca_concorsi: non\nchiederlo all'utente. La data e la serie di solito NON servono: vengono ricordate dai\nrisultati gia' visti o cercate tra le ultime pubblicazioni. Se l'atto non e' recente e\nnon e' mai comparso in un risultato, cercalo prima con cerca o ultime_pubblicazioni.\n\nI testi lunghi sono divisi in pagine: per continuare richiama con offset uguale al\n'prossimo_offset' del risultato precedente. Il testo non e' ufficiale: cita sempre il\nlink nel campo 'link'.","inputs":[{"name":"codice","type":"string","required":true,"description":null},{"name":"data","type":null,"required":false,"description":null},{"name":"offset","type":"integer","required":false,"description":null},{"name":"serie","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":259},{"name":"cerca_concorsi","title":"Cerca Concorsi","description":"Cerca bandi di concorso pubblico (4a Serie Speciale, Concorsi ed esami).\n\nUsalo per richieste come \"concorsi per infermiere in Lombardia\", \"bandi per istruttore\namministrativo\", \"ci sono concorsi per insegnanti in Toscana\". Basta qualche parola\nchiave (profilo, ente, citta') e, se l'utente la nomina, la regione. Non chiedere date\no codici. Al primo uso scarica, con poche richieste distanziate, i sommari dei numeri\ndegli ultimi 30 giorni (tipicamente 8-9) e li tiene in cache. Cerca nel titolo e\nnell'ente di ogni atto, non nel testo del bando: ogni risposta dichiara i numeri\nesaminati, quindi i risultati possono essere parziali; dillo all'utente. La regione e'\nstimata dal nome dell'ente; gli atti di regione non determinata sono contati a parte.\naperti: solo numeri degli ultimi 30 giorni (i bandi sono di norma ancora aperti);\ncon false si aggiungono i numeri piu' vecchi gia' in cache.\nincludi_altri_atti: aggiunge diari delle prove, graduatorie, rettifiche, commissioni.\nlimite: massimo di risultati (fino a 100).\nIl bando completo va letto sul sito ufficiale (link in ogni risultato) o con leggi_atto.","inputs":[{"name":"aperti","type":"boolean","required":false,"description":null},{"name":"includi_altri_atti","type":"boolean","required":false,"description":null},{"name":"limite","type":"integer","required":false,"description":null},{"name":"parole_chiave","type":"string","required":true,"description":null},{"name":"regione","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":367},{"name":"rimando_normattiva","title":"Rimando Normattiva","description":"Costruisce il link a Normattiva (testo vigente) di una legge o di un decreto.\n\nUsalo per richieste come \"link Normattiva della legge 241/1990\", \"dove leggo il testo\naggiornato del DL 144/2026\". Restituisce solo il link: nessun testo viene scaricato.\n\natto: gli estremi in parole, ad esempio 'legge 5 agosto 2026, n. 140', 'DL 144/2026',\n'DPR 26 ottobre 1972 n. 633' oppure un codice di un atto gia' trovato.","inputs":[{"name":"atto","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":150},{"name":"cerca","title":"Cerca","description":"Cerca per parole chiave tra gli atti della Gazzetta Ufficiale, anche a cache vuota.\n\nUsalo quando l'utente descrive un argomento senza codici: \"decreti sul bonus\nedilizia\", \"atti che parlano di semplificazione\", \"qualcosa sulla caccia in Veneto\".\nMette i risultati in ordine di pertinenza; da un risultato prendi il codice per\nleggi_atto. Con aggiorna=true (predefinito) e serie SG, S4 o non indicata, scarica\nprima, con poche richieste distanziate, i sommari dei numeri recenti (SG: ultimi 24,\ncirca 30 giorni; S4: ultimi 9) non ancora in cache. Si cerca nei titoli e negli enti\n(singolare e plurale sono equivalenti; se nessun titolo ha tutte le parole, ripiega su\nquelli che ne hanno almeno una), NON nel testo completo. In piu' interroga l'archivio\ndegli atti normativi su Normattiva (leggi e decreti per titolo; senza dal copre l'ultimo\nanno; con solo_vigenti=true, predefinito, esclude gli atti gia' abrogati): quei\nrisultati hanno origine 'normattiva' e per leggerli con leggi_atto va passata anche\nla data. La risposta dice quali date e quali archivi sono stati usati: la copertura\npuo' restare parziale (avvisi e concorsi vecchi non ci sono), dillo all'utente. Con\nperiodo='anno' la cache locale della Serie Generale viene estesa all'indietro, 24\nnumeri per chiamata, fino a un anno (anche per atti non normativi): la risposta dice\na che punto e', ripeti la ricerca per proseguire. Con aggiorna=false non si fa rete.\n\nFiltri facoltativi: serie (SG, S1-S5, P2), tipo (es. DECRETO, LEGGE, AVVISO),\ndal / al (AAAA-MM-GG), limite (massimo 100).","inputs":[{"name":"aggiorna","type":"boolean","required":false,"description":null},{"name":"al","type":null,"required":false,"description":null},{"name":"dal","type":null,"required":false,"description":null},{"name":"limite","type":"integer","required":false,"description":null},{"name":"periodo","type":null,"required":false,"description":null},{"name":"serie","type":null,"required":false,"description":null},{"name":"solo_vigenti","type":"boolean","required":false,"description":null},{"name":"testo","type":"string","required":true,"description":null},{"name":"tipo","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":527}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T02:18:17.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":23,"partial":false,"deprecated":null,"stale":1,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-16","recent":[{"id":"chg_01a1a97f-fac7-72e0-ba1e-32e6e73b6a0a","kind":"score.total_changed","summary":"Trust score (85 → 86)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a1a97f-fac7-72e0-ba1e-32e6e73b6a0a"},{"id":"chg_01a19f6a-3ad1-713b-98c4-9eb9a65b6785","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a19f6a-3ad1-713b-98c4-9eb9a65b6785"},{"id":"chg_01a19556-8c9a-76a1-832b-819facd9cac7","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a19556-8c9a-76a1-832b-819facd9cac7"},{"id":"chg_01a18b3b-b7d6-766f-b187-ac7e4e3b0c46","kind":"score.total_changed","summary":"Trust score (82 → 83)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a18b3b-b7d6-766f-b187-ac7e4e3b0c46"},{"id":"chg_01a185b5-124a-7db3-889e-5d599f347479","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a185b5-124a-7db3-889e-5d599f347479"},{"id":"chg_01a185b5-124c-76f0-9082-a9a0643ed946","kind":"score.total_changed","summary":"Trust score (67 → 82)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a185b5-124c-76f0-9082-a9a0643ed946"},{"id":"chg_01a180e7-c73e-7527-9bf9-aa01589bded5","kind":"score.total_changed","summary":"Trust score (66 → 67)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a180e7-c73e-7527-9bf9-aa01589bded5"},{"id":"chg_01a176a2-af54-7aea-9b65-058fd9b44dcd","kind":"score.total_changed","summary":"Trust score (65 → 66)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a176a2-af54-7aea-9b65-058fd9b44dcd"},{"id":"chg_01a16c52-e7dc-7d07-b62c-34a7db477aed","kind":"score.total_changed","summary":"Trust score (64 → 65)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a16c52-e7dc-7d07-b62c-34a7db477aed"},{"id":"chg_01a15cdd-bca3-7f2a-b677-1202745b0f47","kind":"score.total_changed","summary":"Trust score (63 → 64)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-21","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a15cdd-bca3-7f2a-b677-1202745b0f47"},{"id":"chg_01a15290-abf7-739c-9b45-786a20de7f37","kind":"score.total_changed","summary":"Trust score (62 → 63)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a15290-abf7-739c-9b45-786a20de7f37"},{"id":"chg_01a14843-3cca-7f29-823b-e9fff83ef731","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a14843-3cca-7f29-823b-e9fff83ef731"},{"id":"chg_01a14843-3ccc-719b-a622-2275538d8e4e","kind":"score.total_changed","summary":"Trust score (76 → 62)","materiality":"functional","direction":"regression","scoreDelta":-14,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a14843-3ccc-719b-a622-2275538d8e4e"},{"id":"chg_01a145ad-1f5b-7847-8f0a-a33364aa6c87","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-16","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a145ad-1f5b-7847-8f0a-a33364aa6c87"},{"id":"chg_01a145a8-e4ac-7241-8d3b-6c6ea2303afe","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-16","url":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp#chg-chg_01a145a8-e4ac-7241-8d3b-6c6ea2303afe"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp","markdown":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp.md","changelogJson":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/giovannafilippini-gazzetta-mcp/gazzetta-mcp.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/gazzetta-mcp/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/gazzetta-mcp"},{"label":"Repository","href":"https://github.com/GiovannaFilippini/gazzetta-mcp"}]}}