Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Fieldwire MCP by usefulapi

REMOTE · FIELDWIRE.USEFULAPI.IO

Read Fieldwire projects, tasks, plans, forms, RFIs and submittals; create and update tasks.

64 Trust /100

Last scanned (2 hours ago)

Scores higher than 46% of remote servers

Reachable. Last reached 17 Oct 2026.

Category Project Management

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security78
Transport & Reachability0
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4338 tokens (~197/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
  • Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 17 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Oct 26 +3
    • The server rewrote its instructions, which are the text every model session reads security
    • The server now declares the “prompts” capability functional
    • First check of Schema quality: 100 functional
    • New prompt “getting_started” functional
    • Server version: 1.0.0 → 1.1.0 functional
  • 13 Oct 26 0
    • Stability: unverified → 0.03 ▲ functional
  • 12 Oct 26 59

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 17 Oct 2026 · Probed https://fieldwire.usefulapi.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=usefulapi.io CN=WE1,O=Google Trust Services,C=US 13 Sept 2026 12 Dec 2026 ECDSA 256 ECDSA-SHA256 d9be3287b0fde9630e825ba1f79bff3f
SANs: usefulapi.io, *.usefulapi.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of fieldwire.usefulapi.io. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
usefulapi.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 302

WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://fieldwire.usefulapi.io/.well-known/oauth-protected-resource/mcp"

Bearer realm="OAuth", resource_metadata="https://fieldwire.usefulapi.io/.well-known/oauth-protected-resource/mcp"

Protected resource metadata

Document https://fieldwire.usefulapi.io/.well-known/oauth-protected-resource/mcp
Retrieved Yes
Resource https://fieldwire.usefulapi.io/mcp
Authorisation server https://fieldwire.usefulapi.io

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://fieldwire.usefulapi.io/mcp Redirected 302 https://usefulapi.io/fieldwire/
http (plaintext) http://fieldwire.usefulapi.io/mcp Inconclusive 302 http://fieldwire.usefulapi.io/mcp
MCP tools · 22 exposed · ~4,132 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
fieldwire_create_task ~384

WRITE: creates a new task in a project. It is sent once and never retried; if the reply is an error, check fieldwire_list_tasks before creating it again, or you may get a duplicate. owner_user_id and priority are required; creator_user_id defaults to the owner. Find user ids with fieldwire_list_project_users. POST /api/v3/projects/{project_id}/tasks.

NameTypeReqDescription
cost_valuenumber–Cost of the task.
creator_user_idinteger–User id recorded as creator (default: the owner).
due_datestring–Due date, yyyy-mm-dd.
end_atstring–End, ISO 8601 date-time with a timezone.
floorplan_idstring–Plan (floorplan) id the task belongs to - see fieldwire_list_floorplans.
location_idstring–Location id - see fieldwire_list_locations.
man_power_valuenumber–Estimated man-power (hours, days or months as set in the project).
namestring–Task name.
owner_user_idintegeryesUser id of the task owner (required) - see fieldwire_list_project_users.
priorityintegeryesPriority 1, 2 or 3 (Fieldwire's own values; required).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
start_atstring–Start, ISO 8601 date-time with a timezone.
status_idstring–Status id - see fieldwire_list_task_statuses.
team_idstring–Team (category) id - see fieldwire_list_teams.
user_idsarray–User ids of the assignees. On an update this REPLACES the whole assignee list.

No output schema declared.

No examples provided.

fieldwire_get_account ~56

The Fieldwire account this API token belongs to: id, company name and address, enabled modules (submittals, change orders, RFIs, specs, BIM) and the owner. GET /account on the account host.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

fieldwire_get_form ~72

One form by id (header data only, not the filled-in values). GET /api/v3/projects/{project_id}/forms/{id}.

NameTypeReqDescription
form_idstringyesForm id (UUID).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.

No output schema declared.

No examples provided.

fieldwire_get_form_full ~131

A form with its sections, inputs and filled-in values. Two steps: call without jid to start the job (Fieldwire answers with a jid); then call again with that jid until the form comes back (answer 'pending' means not ready, retry). GET /api/v3/projects/{project_id}/forms/{id}/full.

NameTypeReqDescription
form_idstringyesForm id (UUID).
jidstring–The jid returned by the first call; leave out to start.
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.

No output schema declared.

No examples provided.

fieldwire_get_project ~64

One project by id: name, code, address, time zone, currency, plan, enabled features and owner email. GET /api/v3/projects/{id}.

NameTypeReqDescription
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.

No output schema declared.

No examples provided.

fieldwire_get_task ~66

One task by id with all its fields. GET /api/v3/projects/{project_id}/tasks/{id}.

NameTypeReqDescription
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
task_idstringyesTask id (UUID).

No output schema declared.

No examples provided.

fieldwire_list_account_users ~64

All users on the account (and users invited to its projects) with name, company, email, account role and the number of projects each is in. User ids are what tasks use for owner and assignees. GET /account/users on the account host.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

fieldwire_list_attachments ~167

Files, photos, videos and 360 photos attached in a project: id, name, kind, size, capture time and file URLs. Filter by kind. GET /api/v3/projects/{project_id}/attachments.

NameTypeReqDescription
kindarray–Only these kinds.
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.

No output schema declared.

No examples provided.

fieldwire_list_floorplans ~231

Plans (floorplans) of a project: id, name, description, folder and sheet count. Filter by name, tag or dates. Set with_current_sheet to include each plan's current sheet. GET /api/v3/projects/{project_id}/floorplans.

NameTypeReqDescription
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
name_containsstring–Only plans whose name contains this text.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.
tagstring–Only plans with exactly this tag.
updated_afterstring–Only plans updated at or after this ISO 8601 date-time.
with_current_sheetboolean–Include the current sheet of each plan.

No output schema declared.

No examples provided.

fieldwire_list_form_templates ~163

Form templates of a project: id, name, version, publish state. Use the id to filter forms. GET /api/v3/projects/{project_id}/form_templates.

NameTypeReqDescription
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
name_containsstring–Only templates whose name contains this text.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.

No output schema declared.

No examples provided.

fieldwire_list_forms ~281

Forms (inspections, daily reports, checklists) of a project: id, name, template, status, owner, dates. Forms need a Business plan. Use fieldwire_get_form_full for the filled-in values. GET /api/v3/projects/{project_id}/forms.

NameTypeReqDescription
due_afterstring–Only forms due on or after this date or date-time.
due_beforestring–Only forms due on or before this date or date-time.
form_template_idstring–Only forms made from this template (see fieldwire_list_form_templates).
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
name_containsstring–Only forms whose name contains this text.
owner_user_idinteger–Only forms owned by this user id.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.
updated_afterstring–Only forms updated at or after this ISO 8601 date-time.

No output schema declared.

No examples provided.

fieldwire_list_locations ~143

Locations of a project (id, name, parent location_id). Tasks carry a location_id. GET /api/v3/projects/{project_id}/locations.

NameTypeReqDescription
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.

No output schema declared.

No examples provided.

fieldwire_list_project_users ~125

Users on one project with name, company, job title, email and phone. The integer id is what tasks use for owner_user_id and user_ids. Filter by email, name or company. GET /api/v3/account/projects/{project_id}/users.

NameTypeReqDescription
company_containsstring––
email_containsstring–Only users whose email contains this text.
first_name_containsstring––
last_name_containsstring––
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.

No output schema declared.

No examples provided.

fieldwire_list_projects ~239

Projects the token's user can access in the region chosen at login: id, name, code, address, time zone, plan and archive state. Filter by name, code, archive state or update time. Use the id in every other tool. GET /api/v3/projects.

NameTypeReqDescription
archivedboolean–true = only archived projects, false = only unarchived.
codestring–Only the project with this exact project code.
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
name_containsstring–Only projects whose name contains this text.
per_pageinteger–Results per page, 1-200 (default 25).
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.
updated_afterstring–Only projects updated at or after this ISO 8601 date-time.
updated_beforestring–Only projects updated at or before this ISO 8601 date-time.

No output schema declared.

No examples provided.

fieldwire_list_rfis ~248

RFIs (requests for information) of a project: number, name, question, answer, status, assignee, due date. Needs the RFI module. Filter by status, assignee, text, overdue or dates. GET /api/v3/projects/{project_id}/rfis.

NameTypeReqDescription
assignee_user_idinteger–Only RFIs assigned to this user id.
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
overdueboolean–true = only overdue RFIs.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.
statusstring–Only RFIs with this status.
textstring–Free-text search.
updated_afterstring–Only RFIs updated at or after this ISO 8601 date-time.

No output schema declared.

No examples provided.

fieldwire_list_sheets ~224

Sheets (plan versions) of a project: id, name, file name, version, floorplan_id and file URLs. Filter by plan, folder, name or dates. GET /api/v3/projects/{project_id}/sheets.

NameTypeReqDescription
floorplan_idstring–Only sheets of this plan.
folder_idstring–Only sheets in this folder.
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
name_containsstring–Only sheets whose name contains this text.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.
updated_afterstring–Only sheets updated at or after this ISO 8601 date-time.

No output schema declared.

No examples provided.

fieldwire_list_submittals ~246

Submittals of a project: number, name, status, revision, key dates. Needs the submittals module. Filter by status, assignee, text, overdue or dates. GET /api/v3/projects/{project_id}/submittals.

NameTypeReqDescription
assignee_user_idinteger–Only submittals assigned to this user id.
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
overdueboolean–true = only overdue submittals.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.
statusstring–Only submittals with this status.
textstring–Free-text search.
updated_afterstring–Only submittals updated at or after this ISO 8601 date-time.

No output schema declared.

No examples provided.

fieldwire_list_task_check_items ~162

Checklist items of all tasks in a project: name, checked flag, state (empty/yes/no/not_applicable) and task_id (match it to the task). GET /api/v3/projects/{project_id}/task_check_items.

NameTypeReqDescription
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.

No output schema declared.

No examples provided.

fieldwire_list_task_statuses ~77

The task statuses of a project (id, name, order, kind open/tracked/verified, default flag). Use the id as status_id on tasks. GET /api/v3/projects/{project_id}/statuses.

NameTypeReqDescription
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.

No output schema declared.

No examples provided.

fieldwire_list_tasks ~467

Tasks (punch items, issues) in a project: name, status_id, team_id, location_id, floorplan_id, owner and assignee user ids, priority, dates and cost. Filter by status, team, location, plan, owner, name, tag and dates. Resolve ids with fieldwire_list_task_statuses, _list_teams, _list_locations and _list_project_users. GET /api/v3/projects/{project_id}/tasks.

NameTypeReqDescription
created_afterstring–Only tasks created at or after this ISO 8601 date-time.
created_beforestring–Only tasks created at or before this ISO 8601 date-time.
creator_user_idinteger–Only tasks created by this user id.
due_afterstring–Only tasks due on or after this date (yyyy-mm-dd) or date-time.
due_beforestring–Only tasks due on or before this date (yyyy-mm-dd) or date-time.
floorplan_idstring–Only tasks pinned on this plan (floorplan).
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
location_idstring–Only tasks at this location.
name_containsstring–Only tasks whose name contains this text.
owner_user_idinteger–Only tasks owned by this user id.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.
status_idstring–Only tasks with this status id.
tagstring–Only tasks with exactly this tag.
team_idstring–Only tasks of this team (shown as 'category' in the Fieldwire app).
updated_afterstring–Only tasks updated at or after this ISO 8601 date-time.
updated_beforestring–Only tasks updated at or before this ISO 8601 date-time.

No output schema declared.

No examples provided.

fieldwire_list_teams ~154

Teams of a project (id, name, handle). The Fieldwire app calls them 'categories' on tasks; tasks carry a team_id. GET /api/v3/projects/{project_id}/teams.

NameTypeReqDescription
last_synced_atstring–Cursor for the next page: the previous reply's next_last_synced_at, unchanged. Leave out for the first page.
per_pageinteger–Results per page, 1-200 (default 25).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
statestring–Only active records (the usual) or only deleted ones. Sent as the Fieldwire-Filter header.

No output schema declared.

No examples provided.

fieldwire_update_task ~368

WRITE: changes fields of one task (only the fields you pass; user_ids replaces the whole assignee list; null clears a field that allows it). Use it to set the status, owner, assignees, priority or dates. It does not delete the task. Sent once, never retried. PATCH /api/v3/projects/{project_id}/tasks/{id}.

NameTypeReqDescription
cost_value––Cost of the task; null removes it.
due_datestring|null–Due date, yyyy-mm-dd; null removes the due date.
end_atstring|null–End, ISO 8601 date-time with a timezone; null removes it.
floorplan_id––Plan (floorplan) id; null removes the plan.
location_id––Location id; null removes the location.
man_power_value––Estimated man-power; null removes it.
name––Task name; null removes it.
owner_user_idinteger–User id of the task owner - see fieldwire_list_project_users.
priorityinteger–Priority 1, 2 or 3 (Fieldwire's own values).
project_idstringyesFieldwire project id (UUID) - see fieldwire_list_projects.
start_atstring|null–Start, ISO 8601 date-time with a timezone; null removes it.
status_id––Status id - see fieldwire_list_task_statuses; null removes the status.
task_idstringyesTask id (UUID).
team_id––Team (category) id; null removes the team.
user_ids––User ids of the assignees. REPLACES the whole assignee list; null removes all assignees.

No output schema declared.

No examples provided.

Install

How do I install the Fieldwire MCP by usefulapi server?

Fieldwire MCP by usefulapi is a hosted endpoint at https://fieldwire.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · fieldwire.usefulapi.io

# add to Claude Code
claude mcp add --transport http io-usefulapi-fieldwire 'https://fieldwire.usefulapi.io/mcp'
Common questions

What is the Fieldwire MCP by usefulapi server?

Fieldwire MCP by usefulapi is listed in the public MCP registry as io.usefulapi/fieldwire. Read Fieldwire projects, tasks, plans, forms, RFIs and submittals; create and update tasks. This page covers its hosted endpoint (https://fieldwire.usefulapi.io/mcp).

Is the Fieldwire MCP by usefulapi server safe to use?

Fieldwire MCP by usefulapi scores 64 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Fieldwire MCP by usefulapi server expose?

Fieldwire MCP by usefulapi exposes 22 tools: fieldwire_get_account, fieldwire_list_account_users, fieldwire_list_projects, fieldwire_get_project, fieldwire_list_project_users, and 17 more. Their descriptions and schemas cost roughly 4,132 tokens of context every time the server is loaded.

Does the Fieldwire MCP by usefulapi server require authentication?

Yes. Fieldwire MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Fieldwire MCP by usefulapi server still maintained?

Fieldwire MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.