{"$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-05T16:53:53.326Z","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov","markdownUrl":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov.md","server":{"slug":"cyanheads-grantsgov-mcp-server","name":"io.github.cyanheads/grantsgov-mcp-server","registryName":"io.github.cyanheads/grantsgov-mcp-server","description":"Search Grants.gov funding opportunities and read full records: eligibility, awards, deadlines.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"grantsgov","type":"remote","identifier":"https://grantsgov.caseyjhand.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov","version":"0.2.0","transport":null,"scoredAt":"2026-11-05T02:27:52.439Z"},"score":{"total":87,"tier":"high trust","status":"scored","weekDelta":4,"history":[{"date":"2026-11-05","total":87},{"date":"2026-11-04","total":86},{"date":"2026-11-03","total":86},{"date":"2026-11-02","total":85},{"date":"2026-11-01","total":85},{"date":"2026-10-31","total":84},{"date":"2026-10-30","total":84},{"date":"2026-10-29","total":83},{"date":"2026-10-28","total":83},{"date":"2026-10-27","total":82},{"date":"2026-10-26","total":82},{"date":"2026-10-25","total":79},{"date":"2026-10-24","total":78},{"date":"2026-10-23","total":78},{"date":"2026-10-22","total":77},{"date":"2026-10-21","total":77},{"date":"2026-10-20","total":77},{"date":"2026-10-19","total":76},{"date":"2026-10-18","total":76},{"date":"2026-10-17","total":76},{"date":"2026-10-16","total":75},{"date":"2026-10-15","total":75},{"date":"2026-10-14","total":74},{"date":"2026-10-13","total":74},{"date":"2026-10-12","total":73},{"date":"2026-10-10","total":72},{"date":"2026-10-09","total":72}]},"categories":[{"name":"Endpoint Security","score":83,"verdict":"partial","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.","HTTPS is enforced; there's no plaintext access path.","The HSTS (Strict-Transport-Security) header is present.","DNSSEC is configured correctly; the domain's records validate against the full chain to the root."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.validated","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":71,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1847 tokens (~461/item across 4 items; 3 tools + 1 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"461","items":"4","tools":"3","tokens":"1847","resources":"1"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":90,"verdict":"partial","reasons":["Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"27"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% 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":"100"}},{"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 3 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 5 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":"3"}},{"code":"toolsafety.manipulation_clean","args":{"units":"5","judged":"5"}}]},{"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":"grantsgov","type":"remote","identifier":"https://grantsgov.caseyjhand.com/mcp","withdrawn":false,"score":87,"current":true,"url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov","markdownUrl":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov.md"},{"slug":"cyanheads-grantsgov-mcp-server","type":"npm","identifier":"@cyanheads/grantsgov-mcp-server","withdrawn":false,"score":39,"current":false,"url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/cyanheads-grantsgov-mcp-server","markdownUrl":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/cyanheads-grantsgov-mcp-server.md"}],"facts":[{"label":"Endpoint","value":"https://grantsgov.caseyjhand.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"0.2.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"grantsgov_search_opportunities","title":"Search Grants.gov Opportunities","description":"Search federal funding opportunities on Grants.gov by keyword, agency, applicant eligibility, funding category, funding instrument, assistance listing, opportunity number, posting window (posted_within_days), or closing window (closing_within_days). Returns forecasted and posted opportunities unless statuses says otherwise, each row led by its close date and days remaining, plus facet counts for narrowing. Bare keyword terms are all required; join alternatives with OR, in parentheses when other terms stay required. Rows carry no award amounts or eligibility detail; read those with grantsgov_get_opportunity. Filter codes come from grantsgov_list_reference.","inputs":[{"name":"agencies","type":null,"required":false,"description":"Agency codes from grantsgov_list_reference topic agencies (e.g. HHS, HHS-NIH11, NSF). One whole string or an array, up to 10 nonblank entries. A code includes its sub-agencies. Case-insensitive. Any…"},{"name":"assistance_listing","type":"string","required":false,"description":"One assistance listing number (ALN, formerly CFDA), e.g. 93.866 or 93866, in any case. Only one value is supported."},{"name":"closing_within_days","type":"integer","required":false,"description":"Only posted opportunities closing between today and N days from today, US Eastern (0-365; 0 = closing today). Searches posted opportunities in close-date order, so statuses may only be posted and sor…"},{"name":"eligibilities","type":null,"required":false,"description":"Two-digit applicant-type codes from grantsgov_list_reference topic eligibilities (e.g. 12 = nonprofits with 501(c)(3) status, 07 = federally recognized tribal governments). One whole string or an arr…"},{"name":"funding_categories","type":null,"required":false,"description":"Funding category codes from grantsgov_list_reference topic funding_categories (e.g. HL = Health, ED = Education). One whole string or an array, up to 28 nonblank entries. Case-insensitive. Any listed…"},{"name":"funding_instruments","type":null,"required":false,"description":"Funding instruments: G (grant), CA (cooperative agreement), PC (procurement contract), O (other). One whole string or an array, up to 4 nonblank entries. Any listed instrument matches."},{"name":"include_facets","type":"boolean","required":false,"description":"Include facet counts per filter value. Set false when paging to save space."},{"name":"include_unrestricted","type":"boolean","required":false,"description":"When eligibilities is set, also match opportunities open to any applicant type (code 99), which the specific codes do not cover. Set false to see only opportunities targeted at the listed types."},{"name":"keyword","type":"string","required":false,"description":"Full-text search over title, description, opportunity number, and agency. Bare terms are all required (rural broadband = rural AND broadband); join alternatives with OR, quote phrases (\"mental health…"},{"name":"limit","type":"integer","required":false,"description":"Requested rows per page (1-1,000; default 25). Values above 100 return 100 rows with a notice."},{"name":"offset","type":"integer","required":false,"description":"Zero-based row offset for paging; use next_offset from the previous page."},{"name":"opportunity_number","type":"string","required":false,"description":"Exact agency-assigned opportunity number (e.g. HRSA-27-005), matched case-insensitively; one pair of surrounding double quotes is removed. Numbers are not unique across agencies, so several rows can…"},{"name":"posted_within_days","type":"integer","required":false,"description":"Only opportunities posted in the last N days (1-3650). Works only with the forecasted and posted statuses."},{"name":"sort","type":"string","required":false,"description":"Result order: relevance (best keyword match; needs keyword, otherwise the order is arbitrary), open_date_desc/open_date_asc (posting date), close_date_asc/close_date_desc (close date; no close date s…"},{"name":"statuses","type":null,"required":false,"description":"Lifecycle statuses to include: forecasted, posted, closed, archived. One whole string or an array, up to 4 nonblank entries. Default: forecasted and posted."}],"outputs":[{"name":"applied_filters","type":"object","required":false,"description":"Filters as the server applied them, including defaults and expansions."},{"name":"cap","type":"number","required":false,"description":"The limit applied."},{"name":"effective_keyword","type":"string","required":false,"description":"The keyword as compiled and sent upstream."},{"name":"error","type":"object","required":false,"description":"Present when the call failed. Absent on success."},{"name":"facets","type":"object","required":false,"description":"Counts per filter value for the current filters. Omitted when include_facets is false."},{"name":"next_offset","type":"number","required":false,"description":"Offset for the next reachable page of scanned matches; absent when none remain, even if the closing-window scan is incomplete."},{"name":"notice","type":"string","required":false,"description":"Zero-hit or window guidance naming the next call."},{"name":"opportunities","type":"array","required":false,"description":"Matching opportunities, deadline first."},{"name":"reference_cache","type":"object","required":false,"description":"Degraded reference-cache provenance when a filter uses stale vocabulary."},{"name":"shown","type":"number","required":false,"description":"Rows returned on this page."},{"name":"totalCount","type":"number","required":false,"description":"Matching opportunities counted. In closing_within_days mode, total_count_kind says whether this is exact or a lower bound."},{"name":"total_count_kind","type":"string","required":false,"description":"Closing-window count precision: exact after exhaustion or an observed boundary; lower_bound when unscanned rows may still qualify. Omitted in other modes."},{"name":"truncated","type":"boolean","required":false,"description":"True when more scanned matches remain after this page or a closing-window scan is incomplete, including on an empty page."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":977},{"name":"grantsgov_get_opportunity","title":"Get Grants.gov Opportunity","description":"Read the Grants.gov record for up to 5 opportunities, given numeric opportunity ids or opportunity numbers: deadline, funding, eligibility, description, assistance listings, contact, attachments, packages, and latest revision metadata. Lists and narratives are bounded independent pages; follow each record pages continuation to retrieve the remaining section. An opportunity number is resolved across all statuses. A miss or an ambiguous number comes back as an unresolved entry with guidance, not an error.","inputs":[{"name":"application_package_offset","type":"integer","required":false,"description":"Zero-based open package offset; defaults to 0. Page size 10."},{"name":"attachment_offset","type":"integer","required":false,"description":"Zero-based attachment offset; defaults to 0. Page size 30."},{"name":"description_offset","type":"integer","required":false,"description":"Zero-based normalized description character offset; defaults to 0. Page size 12,000."},{"name":"eligibility_offset","type":"integer","required":false,"description":"Zero-based normalized eligibility character offset; defaults to 0. Page size 6,000."},{"name":"funding_category_explanation_offset","type":"integer","required":false,"description":"Zero-based normalized category explanation character offset; defaults to 0. Page size 2,000."},{"name":"opportunity_ids","type":null,"required":false,"description":"Numeric Grants.gov ids (e.g. 363423, or \"363423\" as search rows emit them), from grantsgov_search_opportunities opportunity_id. Accepts one whole string or an array, with at most 50 nonblank entries…"},{"name":"opportunity_numbers","type":null,"required":false,"description":"Agency-assigned opportunity numbers (e.g. HRSA-27-005), matched exactly and case-insensitively across all statuses; one pair of surrounding double quotes is removed. Accepts one whole string or an ar…"},{"name":"related_opportunity_offset","type":"integer","required":false,"description":"Zero-based related opportunity offset; defaults to 0. Page size 10."}],"outputs":[{"name":"continuation","type":"object","required":false,"description":"Next identifier batch, omitted when the queue is exhausted."},{"name":"deferred_ids","type":"array","required":false,"description":"Unprocessed ids, omitted when none remain."},{"name":"deferred_numbers","type":"array","required":false,"description":"Unprocessed numbers, omitted when none remain."},{"name":"error","type":"object","required":false,"description":"Present when the call failed. Absent on success."},{"name":"notice","type":"string","required":false,"description":"Summary of unresolved inputs and what to call next."},{"name":"opportunities","type":"array","required":false,"description":"Records found, in input order."},{"name":"unresolved","type":"array","required":false,"description":"Inputs that did not resolve to exactly one record. Empty when all resolved."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":437},{"name":"grantsgov_list_reference","title":"List Grants.gov Reference Codes","description":"List the codes Grants.gov search filters accept, with labels and live opportunity counts: agencies (top level, or one agency's sub-agencies via parent_code, or matched by name via name_contains), applicant eligibility types, funding categories, funding instruments, statuses, sort options, and keyword syntax. Use the codes as grantsgov_search_opportunities inputs.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Entries per page; defaults to 50. Requests above the processing cap of 100 are clamped with a notice."},{"name":"name_contains","type":"string","required":false,"description":"Keep only entries whose label or code contains every word given, ignoring case, accents, and punctuation (e.g. \"national science\", \"nih\"). For agencies this searches every code, top-level and sub-age…"},{"name":"offset","type":"integer","required":false,"description":"Zero-based offset into the complete filtered list; use continuation for the next page."},{"name":"parent_code","type":"string","required":false,"description":"Agencies only: list every code under this agency at any depth (e.g. HHS, DOD-DARPA). Case-insensitive. Omit for the top-level list."},{"name":"topic","type":"string","required":true,"description":"Which list to return: agencies (agency codes), eligibilities (two-digit applicant-type codes), funding_categories, funding_instruments, statuses, sort_options, or keyword_syntax."}],"outputs":[{"name":"cap","type":"number","required":false,"description":"Effective page size, at most 100."},{"name":"continuation","type":"object","required":false,"description":"Complete arguments for the next grantsgov_list_reference call; absent when no entries remain."},{"name":"entries","type":"array","required":false,"description":"Reference entries."},{"name":"error","type":"object","required":false,"description":"Present when the call failed. Absent on success."},{"name":"notice","type":"string","required":false,"description":"Guidance when name_contains matched nothing, or when parent_code has no sub-agencies."},{"name":"reference_cache","type":"object","required":false,"description":"Degraded reference-cache provenance; absent after a healthy refresh."},{"name":"shown","type":"number","required":false,"description":"Entries returned on this page."},{"name":"snapshot_date","type":"string","required":false,"description":"When the live vocabulary was fetched (ISO timestamp); absent for fully static topics."},{"name":"topic","type":"string","required":false,"description":"The topic listed."},{"name":"totalCount","type":"number","required":false,"description":"Total entries matching the filters before paging."},{"name":"truncated","type":"boolean","required":false,"description":"True when matching entries remain after this page."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":284}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T02:27:52.000Z","track":"remote","endpoint":"https://grantsgov.caseyjhand.com/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=caseyjhand.com","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-11-02T21:39:32Z","notAfter":"2027-01-31T22:39:21Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"secure","label":"Secure","name":"grantsgov.caseyjhand.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"caseyjhand.com.","outcome":"verified","label":"Verified"},{"zone":"grantsgov.caseyjhand.com.","outcome":"verified","label":"Verified"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":301},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-09","recent":[{"id":"chg_01a1a988-ba0f-719a-8081-59a8dba63991","kind":"score.total_changed","summary":"Trust score (86 → 87)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a1a988-ba0f-719a-8081-59a8dba63991"},{"id":"chg_01a19f40-2016-76df-a2e3-bd1ce1c3522d","kind":"score.total_changed","summary":"Trust score (85 → 86)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a19f40-2016-76df-a2e3-bd1ce1c3522d"},{"id":"chg_01a194f3-2789-7ef5-b0cb-35007275add0","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a194f3-2789-7ef5-b0cb-35007275add0"},{"id":"chg_01a18aa5-5fcc-7359-a69a-f853fd5256cc","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a18aa5-5fcc-7359-a69a-f853fd5256cc"},{"id":"chg_01a18056-506f-7154-a3e1-6a2e7635950a","kind":"score.total_changed","summary":"Trust score (82 → 83)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a18056-506f-7154-a3e1-6a2e7635950a"},{"id":"chg_01a179cc-fafa-75d9-92ab-6b14cfab1a54","kind":"resource.added","summary":"New resource “grantsgov-guide”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a179cc-fafa-75d9-92ab-6b14cfab1a54"},{"id":"chg_01a179cc-fafd-7093-9ffc-54ae79b2e508","kind":"server.version_changed","summary":"Server version (0.1.3 → 0.2.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a179cc-fafd-7093-9ffc-54ae79b2e508"},{"id":"chg_01a179cc-fafd-78b9-85a4-5b5a298ccdbb","kind":"score.total_changed","summary":"Trust score (79 → 82)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a179cc-fafd-78b9-85a4-5b5a298ccdbb"},{"id":"chg_01a179cc-faf5-73d0-a574-d9d937570517","kind":"check.measure","summary":"Schema quality (581 → 461)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a179cc-faf5-73d0-a574-d9d937570517"},{"id":"chg_01a179cc-faf6-72b7-949b-a34e5b9df685","kind":"check.appeared","summary":"First check of Schema quality (100)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a179cc-faf6-72b7-949b-a34e5b9df685"},{"id":"chg_01a179cc-faf6-7c07-befc-3d911ad73ff9","kind":"check.measure","summary":"Schema quality (excellent → good)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a179cc-faf6-7c07-befc-3d911ad73ff9"},{"id":"chg_01a179cc-faf7-7d6a-9a54-a41710d83975","kind":"param.added_optional","summary":"“grantsgov_list_reference” added an optional parameter “limit”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a179cc-faf7-7d6a-9a54-a41710d83975"},{"id":"chg_01a179cc-faf9-77f1-a5ba-9300ed3d82c9","kind":"param.added_optional","summary":"“grantsgov_list_reference” added an optional parameter “offset”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a179cc-faf9-77f1-a5ba-9300ed3d82c9"},{"id":"chg_01a170e3-0ff0-72b5-a5f5-794573b3d0d3","kind":"score.total_changed","summary":"Trust score (78 → 79)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a170e3-0ff0-72b5-a5f5-794573b3d0d3"},{"id":"chg_01a16694-aa99-7bec-82d6-0f9da85f8ca7","kind":"score.total_changed","summary":"Trust score (77 → 78)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a16694-aa99-7bec-82d6-0f9da85f8ca7"},{"id":"chg_01a15721-43ac-734d-9b33-21f64b2223fb","kind":"score.total_changed","summary":"Trust score (76 → 77)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a15721-43ac-734d-9b33-21f64b2223fb"},{"id":"chg_01a15192-07c4-7397-be7e-497211a64089","kind":"check.measure","summary":"Schema quality (481 → 581)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a15192-07c4-7397-be7e-497211a64089"},{"id":"chg_01a15192-07c5-77eb-84ac-e0390de37585","kind":"tool.description_changed","summary":"Tool “grantsgov_get_opportunity” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a15192-07c5-77eb-84ac-e0390de37585"},{"id":"chg_01a15192-07c6-7ba7-8719-6fa9203e12c7","kind":"param.description_changed","summary":"“grantsgov_get_opportunity” reworded the description of “opportunity_ids”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a15192-07c6-7ba7-8719-6fa9203e12c7"},{"id":"chg_01a15192-07c7-7563-ad26-3ddbf0493280","kind":"param.description_changed","summary":"“grantsgov_get_opportunity” reworded the description of “opportunity_numbers”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov#chg-chg_01a15192-07c7-7563-ad26-3ddbf0493280"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov/changelog.json"},"links":{"html":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov","markdown":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov.md","changelogJson":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov/changelog.json","changelogRss":"https://verifymcp.io/servers/cyanheads-grantsgov-mcp-server/grantsgov.xml","external":[{"label":"Remote endpoint","href":"https://grantsgov.caseyjhand.com/mcp"},{"label":"Repository","href":"https://github.com/cyanheads/grantsgov-mcp-server"}]}}