{"$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-07T17:10:09.323Z","url":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire.md","server":{"slug":"io-usefulapi-forms-on-fire","name":"Forms On Fire / Appenate MCP by usefulapi","registryName":"io.usefulapi/forms-on-fire","description":"Read mobile forms, entries, users and tasks; create confirmed draft or sent tasks for field workers.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"forms-on-fire","type":"remote","identifier":"https://forms-on-fire.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire","version":"1.8.3","transport":null,"scoredAt":"2026-11-07T11:00:15.982Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":-46,"history":[{"date":"2026-11-07","total":18},{"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":64}]},"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":"forms-on-fire","type":"remote","identifier":"https://forms-on-fire.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire.md"}],"facts":[{"label":"Endpoint","value":"https://forms-on-fire.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.8.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"formsonfire_list_forms","title":"List forms","description":"List the forms (screens) in the organization with id, name, version and status. Use a form id with formsonfire_get_form or formsonfire_search_entries. GET /screen/form/search.","inputs":[{"name":"page_no","type":"integer","required":false,"description":"Page number, starting at 0 (default 0). Pass the previous reply's next_page_no."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-250 (default 50)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":100},{"name":"formsonfire_get_form","title":"Get form definition","description":"One form's definition: name, version, status and its fields (names and types, which are the names to use for prefilled answers). Give the form's id (GUID) or its external id. GET /screen/form.","inputs":[{"name":"external_id","type":"string","required":false,"description":"Form external id."},{"name":"id","type":"string","required":false,"description":"Form id (GUID)."},{"name":"status","type":"string","required":false,"description":"Form status (default: Published)."},{"name":"version","type":"integer","required":false,"description":"Form version (default: the latest published)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"formsonfire_search_entries","title":"Search form entries","description":"Search submitted form entries (the completed forms your team sent in): who filled them, when, where (GPS) and every answer. Filter by form id or external id, version and a date range (by received time, or complete time via order_by). Returns the page of Entries with TotalRows. GET /formentry/search.","inputs":[{"name":"answer_format","type":"string","required":false,"description":"How form answers are shaped: Flat (one value per field, easiest to read), Rich (typed values) or Raw (as stored). Default: the vendor's default."},{"name":"date_order","type":"string","required":false,"description":"Sort direction (default Ascending, oldest first)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (works with answer_format Flat)."},{"name":"form_external_id","type":"string","required":false,"description":"Only entries of the form with this external id."},{"name":"form_id","type":"string","required":false,"description":"Only entries of this form (id, GUID)."},{"name":"form_version","type":"integer","required":false,"description":"Form version; 0 or omitted = the latest published version, -1 = all versions."},{"name":"from_date","type":"string","required":false,"description":"ISO 8601 UTC date (2026-10-01) or date-time (2026-10-01T08:00:00Z)."},{"name":"media_as_url","type":"boolean","required":false,"description":"Return photos/signatures as URLs instead of embedded data."},{"name":"order_by","type":"string","required":false,"description":"Sort and date-filter by ReceivedTime (default) or CompleteTime (when the form was completed on the device)."},{"name":"page_no","type":"integer","required":false,"description":"Page number, starting at 0 (default 0). Pass the previous reply's next_page_no."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-250 (default 50)."},{"name":"to_date","type":"string","required":false,"description":"ISO 8601 UTC date (2026-10-01) or date-time (2026-10-01T08:00:00Z)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":394},{"name":"formsonfire_search_tasks","title":"Search tasks","description":"Search tasks (jobs assigned to field workers, each with one or more activities such as filling out a form): status, assignee, due time, activities and history. Filter by assignee, status, name, task template and date range. Returns the page of Tasks with TotalRows. GET /task/search.","inputs":[{"name":"answer_format","type":"string","required":false,"description":"How form answers are shaped: Flat (one value per field, easiest to read), Rich (typed values) or Raw (as stored). Default: the vendor's default."},{"name":"from_date","type":"string","required":false,"description":"ISO 8601 UTC date (2026-10-01) or date-time (2026-10-01T08:00:00Z)."},{"name":"name","type":"string","required":false,"description":"Task name."},{"name":"page_no","type":"integer","required":false,"description":"Page number, starting at 0 (default 0). Pass the previous reply's next_page_no."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-250 (default 50)."},{"name":"retrieve_entries","type":"boolean","required":false,"description":"Also return the form entries completed by the task's activities."},{"name":"status","type":"string","required":false,"description":"Only tasks in this status."},{"name":"template_id","type":"string","required":false,"description":"Only tasks created from this task template id."},{"name":"to_date","type":"string","required":false,"description":"ISO 8601 UTC date (2026-10-01) or date-time (2026-10-01T08:00:00Z)."},{"name":"user_email","type":"string","required":false,"description":"Only tasks of the user with this email."},{"name":"user_external_id","type":"string","required":false,"description":"Only tasks of the user with this external id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":332},{"name":"formsonfire_get_task","title":"Get task","description":"One task by its id (GUID), with activities and history. GET /task.","inputs":[{"name":"answer_format","type":"string","required":false,"description":"How form answers are shaped: Flat (one value per field, easiest to read), Rich (typed values) or Raw (as stored). Default: the vendor's default."},{"name":"id","type":"string","required":true,"description":"Task id (GUID)."},{"name":"retrieve_entries","type":"boolean","required":false,"description":"Also return the form entries completed by the task's activities."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":100},{"name":"formsonfire_create_task","title":"Create task","description":"WRITE: create a task for a field worker with one form to fill out, optionally with prefilled answers. By default it remains a draft; send_immediate=true sends it and notifies the worker. Identify the worker by email, user id or external id (list_users). The form is identified by its external id (formsonfire_get_form shows field names for the prefilled answers). Requires confirm=true and a due time. Not idempotent: calling twice creates two tasks. POST /task.","inputs":[{"name":"additional_info","type":"string","required":false,"description":"Free-text instructions shown with the task."},{"name":"answers","type":"array","required":false,"description":"Prefilled answers: field data name and value."},{"name":"complete_by","type":"string","required":true,"description":"Due time (ISO 8601 UTC)."},{"name":"confirm","type":"boolean","required":true,"description":"Set true only after the user approved creating the task and any requested notification."},{"name":"form_external_id","type":"string","required":true,"description":"External id of the form the worker has to fill out."},{"name":"icon","type":"string","required":false,"description":"Task icon name (vendor icon list), e.g. Clock."},{"name":"instruction","type":"string","required":false,"description":"Instruction shown for this form activity."},{"name":"name","type":"string","required":false,"description":"Task name shown on the device, e.g. 'Site inspection - Acme'."},{"name":"send_immediate","type":"boolean","required":false,"description":"Notify the worker right away (vendor default applies when omitted)."},{"name":"start_by","type":"string","required":false,"description":"When the task should be started (ISO 8601 UTC)."},{"name":"user_email","type":"string","required":false,"description":"Email of the worker (user) the task is assigned to."},{"name":"user_external_id","type":"string","required":false,"description":"External id of the worker the task is assigned to."},{"name":"user_id","type":"string","required":false,"description":"Id (GUID) of the worker the task is assigned to."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":355},{"name":"formsonfire_list_users","title":"List users","description":"List the organization's users (field workers and admins): name, email, status, groups, website role and last activity. Passwords and keys are never returned. GET /user/search.","inputs":[{"name":"page_no","type":"integer","required":false,"description":"Page number, starting at 0 (default 0). Pass the previous reply's next_page_no."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-250 (default 50)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":96},{"name":"formsonfire_get_user","title":"Get user","description":"One user by id (GUID): name, status, groups, folders, role and registered devices. GET /user.","inputs":[{"name":"id","type":"string","required":true,"description":"User id (GUID)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":46},{"name":"formsonfire_list_groups","title":"List user groups","description":"List user groups with their id, name and member user ids. Filter by name or external id. Returns UserGroups with TotalRows. GET /usergroup/search.","inputs":[{"name":"external_id","type":"string","required":false,"description":"Group external id."},{"name":"name","type":"string","required":false,"description":"Group name."},{"name":"page_no","type":"integer","required":false,"description":"Page number, starting at 0 (default 0). Pass the previous reply's next_page_no."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-250 (default 50)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":112},{"name":"formsonfire_list_data_sources","title":"List data sources","description":"List the data sources (lookup tables that feed dropdowns and prefill in forms, such as customers, sites or products): id, external id, name and row count. Use formsonfire_get_data_source for the rows. GET /datasource/search.","inputs":[{"name":"name","type":"string","required":false,"description":"Data source name."},{"name":"page_no","type":"integer","required":false,"description":"Page number, starting at 0 (default 0). Pass the previous reply's next_page_no."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-250 (default 50)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":122},{"name":"formsonfire_get_data_source","title":"Get data source","description":"One data source by id (GUID) or external id: its column headers, TotalRows and (with return_rows) a page of rows. Rows are only returned when return_rows is true; page through them with page_no. GET /datasource.","inputs":[{"name":"external_id","type":"string","required":false,"description":"Data source external id."},{"name":"id","type":"string","required":false,"description":"Data source id (GUID)."},{"name":"page_no","type":"integer","required":false,"description":"Page number, starting at 0 (default 0). Pass the previous reply's next_page_no."},{"name":"page_size","type":"integer","required":false,"description":"Rows per page, 1-1250 (default 50)."},{"name":"return_rows","type":"boolean","required":false,"description":"Also return the rows (default false: headers and total only)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":156}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-07T11:00:15.000Z","track":"remote","endpoint":"https://forms-on-fire.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":"forms-on-fire.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_01a1b050-9a2b-70fa-a9fb-bef19dabf9ce","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-forms-on-fire/forms-on-fire#chg-chg_01a1b050-9a2b-70fa-a9fb-bef19dabf9ce"},{"id":"chg_01a19691-588c-70e4-89ff-3f277b13faf7","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-forms-on-fire/forms-on-fire#chg-chg_01a19691-588c-70e4-89ff-3f277b13faf7"},{"id":"chg_01a19691-588d-7a75-8db2-4747a452b1a5","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire#chg-chg_01a19691-588d-7a75-8db2-4747a452b1a5"},{"id":"chg_01a19691-588e-7374-aab4-20ed51094b90","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-forms-on-fire/forms-on-fire#chg-chg_01a19691-588e-7374-aab4-20ed51094b90"},{"id":"chg_01a19691-588e-7dc2-9f4e-d46800947f3a","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire#chg-chg_01a19691-588e-7dc2-9f4e-d46800947f3a"},{"id":"chg_01a19691-588f-769d-b457-c5f755a55352","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-forms-on-fire/forms-on-fire#chg-chg_01a19691-588f-769d-b457-c5f755a55352"},{"id":"chg_01a19691-588f-7c65-8517-8cbabc9fef54","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-forms-on-fire/forms-on-fire#chg-chg_01a19691-588f-7c65-8517-8cbabc9fef54"},{"id":"chg_01a19691-5890-721b-851c-e9c3cce7d455","kind":"score.total_changed","summary":"Trust score (64 → 18)","materiality":"functional","direction":"regression","scoreDelta":-46,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire#chg-chg_01a19691-5890-721b-851c-e9c3cce7d455"},{"id":"chg_01a193fa-4f74-7edf-ac1c-c04a2ce82556","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-forms-on-fire/forms-on-fire#chg-chg_01a193fa-4f74-7edf-ac1c-c04a2ce82556"},{"id":"chg_01a190c4-8abf-7876-8a71-5d7ee840bbd4","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-forms-on-fire/forms-on-fire#chg-chg_01a190c4-8abf-7876-8a71-5d7ee840bbd4"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire","markdown":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-forms-on-fire/forms-on-fire.xml","external":[{"label":"Remote endpoint","href":"https://forms-on-fire.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/forms-on-fire/"}]}}