{"$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-06T10:39:51.263Z","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed.md","server":{"slug":"io-usefulapi-workfeed","name":"Workfeed MCP by usefulapi","registryName":"io.usefulapi/workfeed","description":"Review staffing, availability and leave; create or update shifts with confirmation.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"workfeed","type":"remote","identifier":"https://workfeed.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed","version":"1.6.3","transport":null,"scoredAt":"2026-11-06T09:29:36.541Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":null,"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":18},{"date":"2026-10-31","total":63}]},"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":"workfeed","type":"remote","identifier":"https://workfeed.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed.md"}],"facts":[{"label":"Endpoint","value":"https://workfeed.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.6.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"workfeed_list_departments","title":"List departments","description":"Department names and IDs. GET /departments. Unpaginated vendor response, bounded to5000rows and2MiB here.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"workfeed_list_roles","title":"List roles","description":"Roles and their department IDs. GET /roles. Unpaginated vendor response, bounded to5000rows and2MiB here.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":37},{"name":"workfeed_list_employees","title":"List scheduling staff","description":"Scheduling/contact fields only; excludes national IDs, banking, tax, emergency contacts, wages, addresses and custom fields. GET /employees. Unpaginated vendor response, bounded to5000rows and2MiB here.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":55},{"name":"workfeed_get_settings","title":"Get scheduling settings","description":"Pay-period and shift-break settings. GET /settings. Unpaginated vendor response, bounded to5000rows and2MiB here.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"workfeed_list_salary_supplements","title":"List salary supplements","description":"Read supplement definitions, not flex-hour supplements. Duration days are inclusive in company timezone. GET /salary-supplements. Unpaginated vendor response, bounded to5000rows and2MiB here.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":54},{"name":"workfeed_get_employee","title":"Get scheduling staff member","description":"Read one selected employee. Staff responses exclude payroll identifiers; leave notes are omitted.","inputs":[{"name":"id","type":"string","required":true,"description":"Opaque Workfeed ID from a preceding read; not a UUID."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":46},{"name":"workfeed_get_shift","title":"Get a shift","description":"Read one selected shift. Staff responses exclude payroll identifiers; leave notes are omitted.","inputs":[{"name":"id","type":"string","required":true,"description":"Opaque Workfeed ID from a preceding read; not a UUID."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":46},{"name":"workfeed_get_leave","title":"Get leave","description":"Read one selected leave. Staff responses exclude payroll identifiers; leave notes are omitted.","inputs":[{"name":"id","type":"string","required":true,"description":"Opaque Workfeed ID from a preceding read; not a UUID."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":46},{"name":"workfeed_get_availability","title":"Get availability","description":"Read one selected availability. Staff responses exclude payroll identifiers; leave notes are omitted.","inputs":[{"name":"id","type":"string","required":true,"description":"Opaque Workfeed ID from a preceding read; not a UUID."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"workfeed_list_shifts","title":"List shifts","description":"Read shifts whose start>=startFrom and start<startTo (not overlap). Maximum93days per request here. Optional role and department must agree. No vendor pagination parameter is invented.","inputs":[{"name":"departmentID","type":"string","required":false,"description":"Opaque Workfeed ID from a preceding read; not a UUID."},{"name":"employeeID","type":"string","required":false,"description":"Opaque Workfeed ID from a preceding read; not a UUID."},{"name":"released","type":"boolean","required":false,"description":null},{"name":"roleID","type":"string","required":false,"description":"Opaque Workfeed ID from a preceding read; not a UUID."},{"name":"startFrom","type":"string","required":true,"description":null},{"name":"startTo","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":134},{"name":"workfeed_list_leaves","title":"List overlapping leave","description":"Read any leave overlapping from/to, including leave beginning before the range. Max93days here. Free-text leave notes omitted. Repeated employeeIDs/typeIDs filters; includeDeleted defaults true upstream.","inputs":[{"name":"employeeIDs","type":"array","required":false,"description":null},{"name":"from","type":"string","required":true,"description":null},{"name":"includeDeleted","type":"boolean","required":false,"description":null},{"name":"to","type":"string","required":true,"description":null},{"name":"typeIDs","type":"array","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":88},{"name":"workfeed_list_availabilities","title":"List availability","description":"Read contained records: start>=from AND end<to, max93days here. End exactly at to is excluded; allow an extra second beyond the last desired end. This differs from leave overlap.","inputs":[{"name":"employeeID","type":"string","required":false,"description":"Opaque Workfeed ID from a preceding read; not a UUID."},{"name":"from","type":"string","required":true,"description":null},{"name":"to","type":"string","required":true,"description":null},{"name":"type","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94},{"name":"workfeed_list_department_days","title":"List stored department days","description":"Read stored daily notes, manual revenue, extra labor and targets; from inclusive/to exclusive company-zone days, max93days here. Array may include null for unstored days. Calculated labor totals use get_department_stats.","inputs":[{"name":"departmentID","type":"string","required":true,"description":"Opaque Workfeed ID from a preceding read; not a UUID."},{"name":"from","type":"string","required":true,"description":null},{"name":"to","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":90},{"name":"workfeed_get_department_day","title":"Get a stored department day","description":"Read one stored daily record; a successful null means no data is stored for that day.","inputs":[{"name":"date","type":"string","required":true,"description":null},{"name":"departmentID","type":"string","required":true,"description":"Opaque Workfeed ID from a preceding read; not a UUID."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":57},{"name":"workfeed_get_department_stats","title":"Get department labor and revenue","description":"Calculated per-day laborCost/revenue, with from/to inclusive company-zone days, at most31days. Prefer laborCost here: shift grossPay is0 for monthly-paid staff. laborPercentage null when revenue0 is not0%.","inputs":[{"name":"departmentID","type":"string","required":true,"description":"Opaque Workfeed ID from a preceding read; not a UUID."},{"name":"from","type":"string","required":true,"description":null},{"name":"to","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":93},{"name":"workfeed_create_shift","title":"Create a confirmed shift","description":"Create one shift after the user approves its exact staff, role and times. confirm:true is mandatory. released:true publishes it and cannot be undone through this connector. employeeID:null creates an unassigned shift. No automatic retry; inspect before retrying an uncertain outcome.","inputs":[{"name":"comment","type":null,"required":true,"description":null},{"name":"confirm","type":"boolean","required":true,"description":null},{"name":"employeeID","type":null,"required":true,"description":null},{"name":"end","type":"string","required":true,"description":null},{"name":"released","type":"boolean","required":true,"description":null},{"name":"roleID","type":"string","required":true,"description":"Opaque Workfeed ID from a preceding read; not a UUID."},{"name":"start","type":"string","required":true,"description":null},{"name":"tagIDs","type":"array","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":131},{"name":"workfeed_update_shift","title":"Update a confirmed shift","description":"Update one shift after user review; confirm:true required. Pre-reads current shift, optionally rejects stale expectedUpdateTime, and never changes either original UTC calendar day. Vendor additionally enforces company-date rules. Published shifts cannot be unpublished. No deletes or automatic write retries; inspect uncertain outcomes.","inputs":[{"name":"comment","type":null,"required":false,"description":null},{"name":"confirm","type":"boolean","required":true,"description":null},{"name":"employeeID","type":null,"required":false,"description":null},{"name":"end","type":"string","required":false,"description":null},{"name":"expectedUpdateTime","type":"string","required":false,"description":null},{"name":"id","type":"string","required":true,"description":"Opaque Workfeed ID from a preceding read; not a UUID."},{"name":"released","type":"boolean","required":false,"description":null},{"name":"roleID","type":"string","required":false,"description":"Opaque Workfeed ID from a preceding read; not a UUID."},{"name":"start","type":"string","required":false,"description":null},{"name":"tagIDs","type":"array","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":165}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T09:29:36.000Z","track":"remote","endpoint":"https://workfeed.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":"workfeed.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-31","recent":[{"id":"chg_01a1b031-3251-787a-84ae-0f1f088aff96","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-workfeed/workfeed#chg-chg_01a1b031-3251-787a-84ae-0f1f088aff96"},{"id":"chg_01a19670-beab-7c6f-8c2b-fb9ccd7c6c30","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed#chg-chg_01a19670-beab-7c6f-8c2b-fb9ccd7c6c30"},{"id":"chg_01a19670-beac-7476-9cf4-0c7ff7e91cff","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed#chg-chg_01a19670-beac-7476-9cf4-0c7ff7e91cff"},{"id":"chg_01a19670-beac-7e04-a5cf-e780cc166734","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed#chg-chg_01a19670-beac-7e04-a5cf-e780cc166734"},{"id":"chg_01a19670-bead-75f1-a0a3-7ea0d9f4959e","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed#chg-chg_01a19670-bead-75f1-a0a3-7ea0d9f4959e"},{"id":"chg_01a19670-bead-7bba-8feb-c7bf03f98501","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed#chg-chg_01a19670-bead-7bba-8feb-c7bf03f98501"},{"id":"chg_01a19670-beae-7208-8c8d-821eccb2a3a1","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed#chg-chg_01a19670-beae-7208-8c8d-821eccb2a3a1"},{"id":"chg_01a19670-beae-78d0-adf9-bbb800858ef5","kind":"score.total_changed","summary":"Trust score (63 → 18)","materiality":"functional","direction":"regression","scoreDelta":-45,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed#chg-chg_01a19670-beae-78d0-adf9-bbb800858ef5"},{"id":"chg_01a193fd-80c1-7350-a9ad-22d33ca59725","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed#chg-chg_01a193fd-80c1-7350-a9ad-22d33ca59725"},{"id":"chg_01a19115-c775-7e9c-a7af-49de8882b570","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed#chg-chg_01a19115-c775-7e9c-a7af-49de8882b570"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed","markdown":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-workfeed/workfeed.xml","external":[{"label":"Remote endpoint","href":"https://workfeed.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/workfeed/"}]}}