Skip to content

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.

Deletes · 1Changes · 2

22 tools: 1 can delete or cancel things, 2 change things and 19 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The description contains "every other tool", wording about other tools or servers.

    Matched text

    description: "...ive state or update time. Use the id in every other tool. GET /api/v3/projects."

    What this check looks for
  • The server marks "fieldwire_list_projects" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "fieldwire_list_projects" says "list": a word for reading.

    What this check looks for

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.

      Matched text

      description: "...ive state or update time. Use the id in every other tool. GET /api/v3/projects."

      What this check looks for
    • Warn

      The server marks "fieldwire_list_projects" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "fieldwire_list_projects" says "list": a word for reading.

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.