{"$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-06T18:46:20.929Z","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-famly/famly.md","server":{"slug":"io-usefulapi-famly","name":"Famly MCP by usefulapi","registryName":"io.usefulapi/famly","description":"Review Famly sites, staff, invoices and payments through its public API.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"famly","type":"remote","identifier":"https://famly.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-famly/famly","version":"1.6.4","transport":null,"scoredAt":"2026-11-06T13:07:41.547Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":-41,"history":[{"date":"2026-11-06","total":18},{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":62},{"date":"2026-10-31","total":62},{"date":"2026-10-30","total":59}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"famly","type":"remote","identifier":"https://famly.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-famly/famly","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-famly/famly.md"}],"facts":[{"label":"Endpoint","value":"https://famly.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.6.4"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"famly_list_sites","title":"List sites","description":"Site IDs and titles accessible to this API token. Sites are currently not paginated by Famly. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"organizationId","type":"string","required":false,"description":null},{"name":"siteIds","type":"array","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":59},{"name":"famly_list_groups","title":"List groups","description":"Room/group IDs, titles, institution IDs and staffing ratios for the requested site sets. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"siteSetIds","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":49},{"name":"famly_list_employees","title":"List employees","description":"Staff directory and employment dates. No home address, birth date, gender, telephone or photographs. Continue using next, including after an empty page. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"employeeIds","type":"array","required":false,"description":null},{"name":"includeFuture","type":"boolean","required":false,"description":null},{"name":"includePast","type":"boolean","required":false,"description":null},{"name":"next","type":"string","required":false,"description":"Opaque next cursor from the previous page. Omit for the first page."},{"name":"pageSize","type":"integer","required":false,"description":null},{"name":"siteIds","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":115},{"name":"famly_list_invoices","title":"List invoices","description":"Invoice IDs, numbers, totals and dates, excluding line descriptions, child records and PDF links. One page per call. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"createdDateRange","type":"object","required":false,"description":null},{"name":"invoiceDateRange","type":"object","required":false,"description":null},{"name":"nextToken","type":"string","required":false,"description":"Opaque next cursor from the previous page. Omit for the first page."},{"name":"siteIds","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"famly_get_invoices","title":"Get invoices by ID","description":"Invoice summaries for known invoice IDs: numbers, totals, dates and bill payer IDs. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"invoiceIds","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":49},{"name":"famly_list_payments","title":"List payments","description":"Payment amounts, dates, method, currency and transaction status. Excludes notes, bank details, child records and payment metadata. One page per call. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"createdDateRange","type":"object","required":false,"description":null},{"name":"includeDeleted","type":"boolean","required":false,"description":null},{"name":"nextToken","type":"string","required":false,"description":"Opaque next cursor from the previous page. Omit for the first page."},{"name":"pageSize","type":"integer","required":false,"description":null},{"name":"paymentDateRange","type":"object","required":false,"description":null},{"name":"siteIds","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":119},{"name":"famly_list_purchases","title":"List purchases","description":"Ad-hoc purchase IDs, status, totals and invoice IDs, excluding child records and booking details. With a date range request one site at a time. One page per call. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"nextToken","type":"string","required":false,"description":"Opaque next cursor from the previous page. Omit for the first page."},{"name":"pageSize","type":"integer","required":false,"description":null},{"name":"purchaseDateRange","type":"object","required":false,"description":null},{"name":"siteIds","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"famly_list_account_codes","title":"List account codes","description":"Accounting code IDs, titles and references for the requested sites. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"includeDeleted","type":"boolean","required":false,"description":null},{"name":"siteIds","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":52},{"name":"famly_list_bill_payers","title":"List bill payers","description":"Billing identities, names, balances and billing references. Excludes bank accounts, social security numbers, contact details, notes and child records. One page per call. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"includeDeleted","type":"boolean","required":false,"description":null},{"name":"nextToken","type":"string","required":false,"description":"Opaque next cursor from the previous page. Omit for the first page."},{"name":"siteIds","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":96},{"name":"famly_list_work_tags","title":"List work tags","description":"Staff work-tag IDs, names, colour and payroll codes for a site set. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"siteSetId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":49},{"name":"famly_get_staff_hours_totals","title":"Get staff hours totals","description":"Staff contracted, attended, scheduled and break minutes plus differences. Excludes leave categories, health information and notes. Date range maximum 365 days; one page per call. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"dateRange","type":"object","required":true,"description":null},{"name":"employeeIds","type":"array","required":false,"description":null},{"name":"groupIds","type":"array","required":false,"description":null},{"name":"next","type":"string","required":false,"description":"Opaque next cursor from the previous page. Omit for the first page."},{"name":"pageSize","type":"integer","required":false,"description":null},{"name":"siteSetId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":123},{"name":"famly_list_employee_checkins","title":"List employee check-ins","description":"Staff check-in/out timestamps and work-tag IDs. Excludes manager notes and all child check-ins. Famly may return the full date range when nextToken is omitted: narrow the range. If next is returned, pass it as nextToken. Uses the Famly Public API; results depend on token permissions.","inputs":[{"name":"SiteSetId","type":"string","required":true,"description":null},{"name":"nextToken","type":"string","required":false,"description":"Opaque next cursor from the previous page. Omit for the first page."},{"name":"range","type":"object","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":113}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T13:07:41.000Z","track":"remote","endpoint":"https://famly.usefulapi.io/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=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","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":"famly.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-30","recent":[{"id":"chg_01a1af24-e9f8-7d76-a54e-713ac355f7a3","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a1af24-e9f8-7d76-a54e-713ac355f7a3"},{"id":"chg_01a19a7e-94ff-7173-9425-dd823681f351","kind":"check.unverifiable","summary":"Stability (0.07 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a19a7e-94ff-7173-9425-dd823681f351"},{"id":"chg_01a19a7e-94ff-7de1-a42b-a9d5a05bbe11","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a19a7e-94ff-7de1-a42b-a9d5a05bbe11"},{"id":"chg_01a19a7e-9500-738f-b396-cc42e83110b1","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a19a7e-9500-738f-b396-cc42e83110b1"},{"id":"chg_01a19a7e-9500-78fc-ac2b-8b798939a998","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a19a7e-9500-78fc-ac2b-8b798939a998"},{"id":"chg_01a19a7e-9500-7db6-bae4-bd93132e8b34","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a19a7e-9500-7db6-bae4-bd93132e8b34"},{"id":"chg_01a19a7e-9501-729f-8199-879583cb4183","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a19a7e-9501-729f-8199-879583cb4183"},{"id":"chg_01a19a7e-9501-7773-ad4a-8777bab7eb36","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a19a7e-9501-7773-ad4a-8777bab7eb36"},{"id":"chg_01a19a7e-9501-7d22-ab6a-b9649a083632","kind":"score.total_changed","summary":"Trust score (62 → 18)","materiality":"functional","direction":"regression","scoreDelta":-44,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a19a7e-9501-7d22-ab6a-b9649a083632"},{"id":"chg_01a193fc-f5e5-7411-a4be-165cac5decf4","kind":"check.verdict","summary":"Authorization (partial → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e5-7411-a4be-165cac5decf4"},{"id":"chg_01a193fc-f5e6-76ec-811e-7efc7cd1458c","kind":"check.verdict","summary":"MCP protocol (fail → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e6-76ec-811e-7efc7cd1458c"},{"id":"chg_01a193fc-f5e7-705c-a0ac-04fa35dd00e1","kind":"prompt.added","summary":"New prompt “compare_staff_hours”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e7-705c-a0ac-04fa35dd00e1"},{"id":"chg_01a193fc-f5e7-76f4-b543-98dc1196c36d","kind":"prompt.added","summary":"New prompt “inspect_staff_check_in_records”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e7-76f4-b543-98dc1196c36d"},{"id":"chg_01a193fc-f5e7-7e6d-b483-2029bad50585","kind":"prompt.added","summary":"New prompt “review_invoice_totals_and_due_dates”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e7-7e6d-b483-2029bad50585"},{"id":"chg_01a193fc-f5e8-7494-81c3-b7ae4d3ec37b","kind":"prompt.added","summary":"New prompt “review_payment_activity”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e8-7494-81c3-b7ae4d3ec37b"},{"id":"chg_01a193fc-f5e8-7b12-bc40-6a39d205b89c","kind":"prompt.added","summary":"New prompt “review_room_staffing_ratios”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e8-7b12-bc40-6a39d205b89c"},{"id":"chg_01a193fc-f5e9-713b-88f4-e38cc2d5110f","kind":"server.version_changed","summary":"Server version (1.2.0 → 1.4.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e9-713b-88f4-e38cc2d5110f"},{"id":"chg_01a193fc-f5e9-770c-be54-36c3a94c8df0","kind":"protocol.version_changed","summary":"MCP protocol version (2025-06-18 → 2025-11-25)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e9-770c-be54-36c3a94c8df0"},{"id":"chg_01a193fc-f5e9-7cbc-a843-238f64db4a69","kind":"score.total_changed","summary":"Trust score (59 → 62)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a193fc-f5e9-7cbc-a843-238f64db4a69"},{"id":"chg_01a19320-9384-74e3-86b9-fd6ea5adff05","kind":"server.version_changed","summary":"Server version (1.1.0 → 1.2.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-famly/famly#chg-chg_01a19320-9384-74e3-86b9-fd6ea5adff05"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-famly/famly/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-famly/famly","markdown":"https://verifymcp.io/servers/io-usefulapi-famly/famly.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-famly/famly/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-famly/famly.xml","external":[{"label":"Remote endpoint","href":"https://famly.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/famly/"}]}}