Fieldwire MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Read Fieldwire projects, tasks, plans, forms, RFIs and submittals; create and update tasks.
22 tools: 1 can delete or cancel things, 2 change things and 19 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads19Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http fieldwire https://fieldwire.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...ive state or update time. Use the id in every other tool. GET /api/v3/projects."
The server marks "fieldwire_list_projects" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "fieldwire_list_projects" says "list": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
22 tools
Deletes or cancels 1Claude Code: deny
fieldwire_update_taskWRITE: changes fields of one task (only the fields you pass; user_ids replaces the whole assignee list; null clears a field that allows it).No findings
Why it is in this group
- The name "fieldwire_update_task" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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}.
Annotations the server declares
- title: Update task
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 2Claude Code: ask
fieldwire_create_taskWRITE: creates a new task in a project.No findings
Why it is in this group
- The name "fieldwire_create_task" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
fieldwire_list_projectsProjects the token's user can access in the region chosen at login: id, name, code, address, time zone, plan and archive state.2 findings
Why it is in this group
- The name "fieldwire_list_projects" says "list": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...ive state or update time. Use the id in every other tool. GET /api/v3/projects."
- Warn
The server marks "fieldwire_list_projects" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "fieldwire_list_projects" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List projects
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Only reads 19Claude Code: allow
fieldwire_get_accountThe Fieldwire account this API token belongs to: id, company name and address, enabled modules (submittals, change orders, RFIs, specs, BIM) and the owner.No findings
Why it is in this group
- The name "fieldwire_get_account" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get account
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_get_formOne form by id (header data only, not the filled-in values).No findings
Why it is in this group
- The name "fieldwire_get_form" says "get": a word for reading.
Description, as the server wrote it One form by id (header data only, not the filled-in values). GET /api/v3/projects/{project_id}/forms/{id}.
Annotations the server declares
- title: Get form
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_get_form_fullA form with its sections, inputs and filled-in values.No findings
Why it is in this group
- The name "fieldwire_get_form_full" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get form with all values
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_get_projectOne project by id: name, code, address, time zone, currency, plan, enabled features and owner email.No findings
Why it is in this group
- The name "fieldwire_get_project" says "get": a word for reading.
Description, as the server wrote it One project by id: name, code, address, time zone, currency, plan, enabled features and owner email. GET /api/v3/projects/{id}.
Annotations the server declares
- title: Get project
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_get_taskOne task by id with all its fields.No findings
Why it is in this group
- The name "fieldwire_get_task" says "get": a word for reading.
Description, as the server wrote it One task by id with all its fields. GET /api/v3/projects/{project_id}/tasks/{id}.
Annotations the server declares
- title: Get task
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_account_usersAll users on the account (and users invited to its projects) with name, company, email, account role and the number of projects each is in.No findings
Why it is in this group
- The name "fieldwire_list_account_users" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List account users
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_attachmentsFiles, photos, videos and 360 photos attached in a project: id, name, kind, size, capture time and file URLs.No findings
Why it is in this group
- The name "fieldwire_list_attachments" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List attachments
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_floorplansPlans (floorplans) of a project: id, name, description, folder and sheet count.No findings
Why it is in this group
- The name "fieldwire_list_floorplans" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List plans
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_form_templatesForm templates of a project: id, name, version, publish state.No findings
Why it is in this group
- The name "fieldwire_list_form_templates" says "list": a word for reading.
Description, as the server wrote it Form templates of a project: id, name, version, publish state. Use the id to filter forms. GET /api/v3/projects/{project_id}/form_templates.
Annotations the server declares
- title: List form templates
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_formsForms (inspections, daily reports, checklists) of a project: id, name, template, status, owner, dates.No findings
Why it is in this group
- The name "fieldwire_list_forms" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List forms
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_locationsLocations of a project (id, name, parent location_id).No findings
Why it is in this group
- The name "fieldwire_list_locations" says "list": a word for reading.
Description, as the server wrote it Locations of a project (id, name, parent location_id). Tasks carry a location_id. GET /api/v3/projects/{project_id}/locations.
Annotations the server declares
- title: List locations
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_project_usersUsers on one project with name, company, job title, email and phone.No findings
Why it is in this group
- The name "fieldwire_list_project_users" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List project users
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_rfisRFIs (requests for information) of a project: number, name, question, answer, status, assignee, due date.No findings
Why it is in this group
- The name "fieldwire_list_rfis" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List RFIs
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_sheetsSheets (plan versions) of a project: id, name, file name, version, floorplan_id and file URLs.No findings
Why it is in this group
- The name "fieldwire_list_sheets" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List sheets
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_submittalsSubmittals of a project: number, name, status, revision, key dates.No findings
Why it is in this group
- The name "fieldwire_list_submittals" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List submittals
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_task_check_itemsChecklist items of all tasks in a project: name, checked flag, state (empty/yes/no/not_applicable) and task_id (match it to the task).No findings
Why it is in this group
- The name "fieldwire_list_task_check_items" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List task checklist items
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_task_statusesThe task statuses of a project (id, name, order, kind open/tracked/verified, default flag).No findings
Why it is in this group
- The name "fieldwire_list_task_statuses" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List task statuses
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_tasksTasks (punch items, issues) in a project: name, status_id, team_id, location_id, floorplan_id, owner and assignee user ids, priority, dates and cost.No findings
Why it is in this group
- The name "fieldwire_list_tasks" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List tasks
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
fieldwire_list_teamsTeams of a project (id, name, handle).No findings
Why it is in this group
- The name "fieldwire_list_teams" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List teams
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http fieldwire https://fieldwire.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__fieldwire__fieldwire_get_account",
"mcp__fieldwire__fieldwire_list_account_users",
"mcp__fieldwire__fieldwire_get_project",
"mcp__fieldwire__fieldwire_list_project_users",
"mcp__fieldwire__fieldwire_list_tasks",
"mcp__fieldwire__fieldwire_get_task",
"mcp__fieldwire__fieldwire_list_task_statuses",
"mcp__fieldwire__fieldwire_list_teams",
"mcp__fieldwire__fieldwire_list_locations",
"mcp__fieldwire__fieldwire_list_task_check_items",
"mcp__fieldwire__fieldwire_list_floorplans",
"mcp__fieldwire__fieldwire_list_sheets",
"mcp__fieldwire__fieldwire_list_attachments",
"mcp__fieldwire__fieldwire_list_forms",
"mcp__fieldwire__fieldwire_get_form",
"mcp__fieldwire__fieldwire_get_form_full",
"mcp__fieldwire__fieldwire_list_form_templates",
"mcp__fieldwire__fieldwire_list_rfis",
"mcp__fieldwire__fieldwire_list_submittals"
],
"ask": [
"mcp__fieldwire__fieldwire_list_projects",
"mcp__fieldwire__fieldwire_create_task"
],
"deny": [
"mcp__fieldwire__fieldwire_update_task"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as fieldwire. Review it before you use it.