{"$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-05T15:48:56.568Z","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api","markdownUrl":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api.md","server":{"slug":"com-pearl100-api-pearl-hundred","name":"PearlGraph","registryName":"com.pearl100.api/pearl-hundred","description":"Open, source-backed Uganda tourism data: parks, fees, road routes, trips, lodges, districts.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api","type":"remote","identifier":"https://api.pearl100.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api","version":"0.6.0","transport":null,"scoredAt":"2026-11-05T10:32:39.441Z"},"score":{"total":70,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":70},{"date":"2026-11-04","total":70},{"date":"2026-11-03","total":69},{"date":"2026-11-02","total":69},{"date":"2026-11-01","total":69},{"date":"2026-10-31","total":68},{"date":"2026-10-30","total":67}]},"categories":[{"name":"Endpoint Security","score":80,"verdict":"fail","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 check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","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":55,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 438 tokens (~438/item across 1 items; 1 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":"438","items":"1","tools":"1","tokens":"438","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":20,"verdict":"partial","reasons":["Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"6"}}]},{"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 1 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 1 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":"1"}},{"code":"toolsafety.manipulation_clean","args":{"units":"1","judged":"1"}}]},{"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":"api","type":"remote","identifier":"https://api.pearl100.com/mcp","withdrawn":false,"score":70,"current":true,"url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api","markdownUrl":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api.md"}],"facts":[{"label":"Endpoint","value":"https://api.pearl100.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"0.6.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"pearlgraph","title":"PearlGraph Uganda tourism data","description":"Single entry point to all PearlGraph Uganda tourism data. Pick an `action`: map (audience, month) - unified map, entry rules and source catalogue; attractions (query, region, category) - parks, sites, hours, activities, durations; fees (feeIds) - UWA tariffs, including the low season permit rates for April, May and November; route (from, to, month) - road km and drive time; plan (start, stops | days, month) - build or check an itinerary by drive time, opening hours and activity length; lodges (near, tier, district, type, query) - stays, `near` = attraction id within 90 min drive; districts (query, region); essentials (audience: foreign|local); seasons (region) - seasons and operators; permits (attractionId) - permit capacity per sector and access rules; transport (query) - airstrips, flights, ferries; search (query, kind: attraction|district|stay) - meaning-based search over free text, e.g. 'see apes in rainforest'; graph (query = id or name, depth 1-2, predicate) - knowledge-graph links: inDistrict, inRegion, isA, offers, pricedBy, anchoredAt, roadTo. Ids come from earlier results (e.g. kampala, bwindi-rushaga).","inputs":[{"name":"action","type":"string","required":true,"description":null},{"name":"attractionId","type":"string","required":false,"description":null},{"name":"audience","type":"string","required":false,"description":null},{"name":"category","type":"string","required":false,"description":null},{"name":"days","type":"array","required":false,"description":null},{"name":"depth","type":"integer","required":false,"description":null},{"name":"district","type":"string","required":false,"description":null},{"name":"feeIds","type":"array","required":false,"description":null},{"name":"from","type":"string","required":false,"description":null},{"name":"kind","type":"string","required":false,"description":null},{"name":"month","type":"integer","required":false,"description":null},{"name":"near","type":"string","required":false,"description":null},{"name":"predicate","type":"string","required":false,"description":null},{"name":"query","type":"string","required":false,"description":null},{"name":"region","type":"string","required":false,"description":null},{"name":"start","type":"string","required":false,"description":null},{"name":"stops","type":"array","required":false,"description":null},{"name":"tier","type":"string","required":false,"description":null},{"name":"to","type":"string","required":false,"description":null},{"name":"type","type":"string","required":false,"description":null}],"outputs":[{"name":"airstrips","type":"array","required":false,"description":null},{"name":"attractions","type":"array","required":false,"description":null},{"name":"days","type":"array","required":false,"description":null},{"name":"districts","type":"array","required":false,"description":null},{"name":"essentials","type":"array","required":false,"description":null},{"name":"feasible","type":"boolean","required":false,"description":null},{"name":"fees","type":"array","required":false,"description":null},{"name":"ferries","type":"array","required":false,"description":null},{"name":"flights","type":"array","required":false,"description":null},{"name":"graph","type":null,"required":false,"description":null},{"name":"issues","type":"array","required":false,"description":null},{"name":"journey","type":null,"required":false,"description":null},{"name":"lodges","type":"array","required":false,"description":null},{"name":"map","type":null,"required":false,"description":null},{"name":"operators","type":"array","required":false,"description":null},{"name":"quotas","type":"array","required":false,"description":null},{"name":"results","type":"array","required":false,"description":null},{"name":"route","type":null,"required":false,"description":null},{"name":"rules","type":"array","required":false,"description":null},{"name":"schema","type":"string","required":false,"description":null},{"name":"schemaVersion","type":"string","required":true,"description":null},{"name":"seasons","type":"array","required":false,"description":null},{"name":"sources","type":"array","required":true,"description":null},{"name":"travelRules","type":null,"required":false,"description":null},{"name":"unplaceable","type":"array","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":438}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T10:32:39.000Z","track":"remote","endpoint":"https://api.pearl100.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=api.pearl100.com","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-10-30T11:15:06Z","notAfter":"2027-01-28T12:15:05Z","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":"insecure","label":"Not signed","name":"api.pearl100.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"pearl100.com.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"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-30","recent":[{"id":"chg_01a1a61b-8b66-73f8-b2e8-25dcda2753bb","kind":"score.total_changed","summary":"Trust score (69 → 70)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1a61b-8b66-73f8-b2e8-25dcda2753bb"},{"id":"chg_01a196a2-a3f2-7b86-9a6b-7ad55622bdf7","kind":"score.total_changed","summary":"Trust score (68 → 69)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a196a2-a3f2-7b86-9a6b-7ad55622bdf7"},{"id":"chg_01a1938c-40c7-7380-a5fb-659e79253692","kind":"check.appeared","summary":"First check of Tool coverage (100)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1938c-40c7-7380-a5fb-659e79253692"},{"id":"chg_01a1938c-40ca-793b-95c4-9be5dee1eae1","kind":"tool.output_added","summary":"Tool “pearlgraph” now declares an output schema","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1938c-40ca-793b-95c4-9be5dee1eae1"},{"id":"chg_01a1938c-40cc-799c-971f-288212b96a89","kind":"tool.description_changed","summary":"Tool “pearlgraph” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1938c-40cc-799c-971f-288212b96a89"},{"id":"chg_01a1938c-40d0-793b-9a31-471b5d4d6564","kind":"param.added_optional","summary":"“pearlgraph” added an optional parameter “depth”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1938c-40d0-793b-9a31-471b5d4d6564"},{"id":"chg_01a1938c-40d1-7724-9738-dc0400e239e2","kind":"param.added_optional","summary":"“pearlgraph” added an optional parameter “kind”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1938c-40d1-7724-9738-dc0400e239e2"},{"id":"chg_01a1938c-40d2-7169-a77e-547281bafc74","kind":"param.added_optional","summary":"“pearlgraph” added an optional parameter “predicate”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1938c-40d2-7169-a77e-547281bafc74"},{"id":"chg_01a1938c-40d3-7edb-bd8a-f0b09623df88","kind":"server.version_changed","summary":"Server version (0.3.0 → 0.7.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1938c-40d3-7edb-bd8a-f0b09623df88"},{"id":"chg_01a1938c-40d4-7a84-acbc-037c82d12715","kind":"server.instructions_changed","summary":"The server rewrote its instructions, which are the text every model session reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1938c-40d4-7a84-acbc-037c82d12715"},{"id":"chg_01a1938c-40d5-7802-988b-20aad3283a08","kind":"score.total_changed","summary":"Trust score (67 → 68)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1938c-40d5-7802-988b-20aad3283a08"},{"id":"chg_01a1917b-4c10-750f-ab3a-bbc062a9c5dd","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a1917b-4c10-750f-ab3a-bbc062a9c5dd"},{"id":"chg_01a18d53-9acd-7aee-ad45-e0516361bdff","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api#chg-chg_01a18d53-9acd-7aee-ad45-e0516361bdff"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api","markdown":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api.md","changelogJson":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api/changelog.json","changelogRss":"https://verifymcp.io/servers/com-pearl100-api-pearl-hundred/api.xml","external":[{"label":"Remote endpoint","href":"https://api.pearl100.com/mcp"},{"label":"Website","href":"https://api.pearl100.com/"}]}}