FieldPulse MCP by usefulapi

Read FieldPulse customers, jobs, estimates, invoices, assets and projects; create and update jobs.

使うべきか

品質と安全性

A
説明の品質
93%
スキーマの完全性
92%
命名の品質
76%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(8)

  • LOWTool 'fieldpulse_list_customer_contacts' name length outside 3-30 rangefieldpulse_list_customer_contacts 内
  • LOWTool 'fieldpulse_get_customer_contact' name length outside 3-30 rangefieldpulse_get_customer_contact 内
  • LOWTool 'fieldpulse_list_job_status_workflows' name length outside 3-30 rangefieldpulse_list_job_status_workflows 内
  • LOWTool 'fieldpulse_list_job_workflow_statuses' name length outside 3-30 rangefieldpulse_list_job_workflow_statuses 内
  • LOWTool 'fieldpulse_list_asset_categories' name length outside 3-30 rangefieldpulse_list_asset_categories 内
  • LOWTool 'fieldpulse_list_purchase_orders' name length outside 3-30 rangefieldpulse_list_purchase_orders 内
  • LOWTool 'fieldpulse_list_company_profiles' name length outside 3-30 rangefieldpulse_list_company_profiles 内
  • LOWTool 'fieldpulse_list_pipeline_statuses' name length outside 3-30 rangefieldpulse_list_pipeline_statuses 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~9,483トークン数(ツール定義)
~1.8 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 7.41%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "fieldpulse": {
      "url": "https://fieldpulse.usefulapi.io/mcp"
    }
  }
}

リモートエンドポイント

https://fieldpulse.usefulapi.io/mcpstreamable-http

できること

ツール一覧

ツール(43)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢fieldpulse_list_customers(search, sort_by, sort_dir, page, limit)

List or search customers (name, email, phone, address, status, assigned user). GET /customers.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "searchable",
        "email",
        "phone",
        "address_1"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_customer(customer_id)

One customer by id. GET /customers/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse customer id."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_customer_contacts(customer_id, page, limit)

The contacts (people) of one customer. GET /customers/{customerId}/customer-contact.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse customer id."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_customer_contact(customer_id, contact_id)

One contact of a customer. GET /customers/{customerId}/customer-contact/{contactId}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse customer id."
    },
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Customer contact id."
    }
  },
  "required": [
    "customer_id",
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_jobs(search, sort_by, sort_dir, created_from, created_to, ...)

List or search jobs (type, status, customer, schedule, assignments), optionally within a created-at range or by custom status ids. GET /jobs.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "created_at",
        "updated_at"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "created_from": {
      "description": "Only jobs created at or after this time (yyyy-mm-dd or ISO 8601 with a timezone).",
      "type": "string"
    },
    "created_to": {
      "description": "Only jobs created at or before this time.",
      "type": "string"
    },
    "status_ids": {
      "description": "Only jobs in these custom status ids (see fieldpulse_list_job_workflow_statuses).",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "with_custom_fields": {
      "description": "Include each job's custom field values (customfields_with_related_data).",
      "type": "boolean"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_job(job_id, with_custom_fields)

One job by id, optionally with its custom field values. GET /jobs/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse job id."
    },
    "with_custom_fields": {
      "description": "Include custom field values.",
      "type": "boolean"
    }
  },
  "required": [
    "job_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_job_status_workflows(limit)

The job status workflows (use their ids with fieldpulse_list_job_workflow_statuses and when setting a custom job status). GET /jobs/status-workflows.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_job_workflow_statuses(limit)

The custom job statuses of all workflows, with their ids (for filtering jobs or setting a status). GET /jobs/status-workflow-statuses.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_estimates(search, sort_by, sort_dir, page, limit)

List or search estimates (customer, status, totals, line items). GET /estimates.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "description": "An attribute of the record, e.g. created_at.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,49}$"
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_estimate(estimate_id)

One estimate by id. GET /estimates/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "estimate_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse estimate id."
    }
  },
  "required": [
    "estimate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_invoices(search, sort_by, sort_dir, page, limit)

List or search invoices (customer, status, totals, due dates). GET /invoices.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "description": "An attribute of the record, e.g. created_at.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,49}$"
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_invoice(invoice_id)

One invoice by id. GET /invoices/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse invoice id."
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_payments(search, sort_by, sort_dir, page, limit)

List or search payments (amount, method, date, invoice). GET /payments.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "cuid",
        "method",
        "amount",
        "payment_date"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_payment(payment_id)

One payment by id. GET /payments/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "payment_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse payment id."
    }
  },
  "required": [
    "payment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_assets(search, status, page, limit)

List or search customer assets (equipment) by install status. GET /assets.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "string",
      "enum": [
        "uninstalled",
        "installed",
        "retired"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_asset(asset_id)

One asset by id. GET /assets/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "asset_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse asset id."
    }
  },
  "required": [
    "asset_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_asset_categories(search, page, limit)

List asset categories. GET /assets-category.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_locations(object_type, object_id, page, limit)

List locations (service addresses) of a customer or a job. GET /locations.

入力スキーマ

{
  "type": "object",
  "properties": {
    "object_type": {
      "type": "string",
      "enum": [
        "customer",
        "job"
      ]
    },
    "object_id": {
      "description": "Id of the customer or job (needs object_type).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_location(location_id)

One location by id. GET /locations/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse location id."
    }
  },
  "required": [
    "location_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_projects(search, sort_by, sort_dir, page, limit)

List or search projects (status, completion). GET /projects.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "cuid",
        "name",
        "status_id",
        "completion_percentage"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_project(project_id)

One project by id. GET /projects/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse project id."
    }
  },
  "required": [
    "project_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_contracts(limit)

List contracts (maintenance agreements). GET /contracts.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_contract(contract_id)

One contract by id. GET /contracts/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "contract_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse contract id."
    }
  },
  "required": [
    "contract_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_items(page, limit)

List the invoice item catalog (products and services with prices). GET /items.

入力スキーマ

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_item(item_id)

One invoice item by id. GET /items/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "item_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse item id."
    }
  },
  "required": [
    "item_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_purchase_orders(page, limit)

List purchase orders. GET /purchase-orders.

入力スキーマ

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_purchase_order(purchase_order_id)

One purchase order by id. GET /purchase-orders/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "purchase_order_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse purchase order id."
    }
  },
  "required": [
    "purchase_order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_vendors(search, limit)

List vendors (suppliers). GET /vendors.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_vendor(vendor_id)

One vendor by id. GET /vendors/{id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "vendor_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse vendor id."
    }
  },
  "required": [
    "vendor_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_company_profiles(search, page, limit)

The company profile(s) of this FieldPulse account (name, address, contact details, settings). GET /company-profile.

入力スキーマ

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_users(limit)

List the account's users (team members) with ids for assignments. GET /users.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_teams(page, limit)

List the account's teams. GET /teams.

入力スキーマ

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_tags(object_type, page, limit)

List tags for customers or jobs. GET /tags.

入力スキーマ

{
  "type": "object",
  "properties": {
    "object_type": {
      "type": "string",
      "enum": [
        "customer",
        "job"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_lead_sources(page, limit)

List customer lead sources. GET /lead-source.

入力スキーマ

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_pipeline_statuses(page, limit)

List customer pipeline statuses. GET /pipeline-status.

入力スキーマ

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_custom_fields(object_type, page, limit)

List custom field definitions, optionally for one object type. GET /custom-fields.

入力スキーマ

{
  "type": "object",
  "properties": {
    "object_type": {
      "type": "string",
      "enum": [
        "customer",
        "job",
        "invoice",
        "item",
        "maintenance_agreement",
        "project",
        "asset",
        "material_list"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_comments(object_type, object_id, page, limit)

List comments on a record (customer, job, project, subtasks, invoice). GET /comments.

入力スキーマ

{
  "type": "object",
  "properties": {
    "object_type": {
      "type": "string",
      "enum": [
        "customer",
        "job",
        "project",
        "subtasks",
        "invoice"
      ]
    },
    "object_id": {
      "description": "Id of the record (needs object_type).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_subtasks(status, assigned_user_id, sort_by, sort_dir, page, ...)

List subtasks (job checklist items) by status or assigned user. GET /subtasks.

入力スキーマ

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "open",
        "close"
      ]
    },
    "assigned_user_id": {
      "description": "Only subtasks assigned to this user id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "due_date",
        "status",
        "title"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_timesheets(user_id, in_time, out_time, type, limit)

List timesheet entries (clock in/out), optionally for one user or a time window. GET /timesheets.

入力スキーマ

{
  "type": "object",
  "properties": {
    "user_id": {
      "description": "Only this user's entries.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "in_time": {
      "description": "Clock-in time filter (yyyy-mm-dd or ISO 8601 with a timezone).",
      "type": "string"
    },
    "out_time": {
      "description": "Clock-out time filter.",
      "type": "string"
    },
    "type": {
      "description": "Entry type, e.g. job.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fieldpulse_create_customer(first_name, last_name, display_name, company_name, account_type, ...)

WRITE: create a customer (lead or account). Give first_name and/or last_name, or a unique display_name. Creates a new record every call; check fieldpulse_list_customers first to avoid duplicates. POST /customers.

入力スキーマ

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "display_name": {
      "description": "Required by FieldPulse when first and last name are empty; must be unique.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "company_name": {
      "type": "string",
      "maxLength": 255
    },
    "account_type": {
      "type": "string",
      "enum": [
        "individual",
        "company"
      ]
    },
    "email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "alt_email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "secondary_email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "A valid phone number.",
      "type": "string",
      "maxLength": 255
    },
    "secondary_phone": {
      "description": "A valid phone number.",
      "type": "string",
      "maxLength": 255
    },
    "status": {
      "type": "string",
      "enum": [
        "lead",
        "opportunity",
        "current customer",
        "lost",
        "other",
        "inactive"
      ]
    },
    "notes": {
      "type": "string",
      "maxLength": 7500
    },
    "job_notes": {
      "type": "string",
      "maxLength": 4000
    },
    "assigned_to": {
      "description": "User id the customer is assigned to (see fieldpulse_list_users); null clears it.",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "lead_source_id": {
      "description": "See fieldpulse_list_lead_sources.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "pipeline_status_id": {
      "description": "See fieldpulse_list_pipeline_statuses.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "tags": {
      "description": "Existing customer tag ids (see fieldpulse_list_tags).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "has_different_billing_address": {
      "type": "boolean"
    },
    "billing_address_1": {
      "type": "string",
      "maxLength": 1000
    },
    "billing_address_2": {
      "type": "string",
      "maxLength": 1000
    },
    "billing_city": {
      "type": "string",
      "maxLength": 255
    },
    "billing_state": {
      "type": "string",
      "maxLength": 255
    },
    "billing_zip_code": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_1": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_2": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_city": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_state": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_zip_code": {
      "type": "string",
      "maxLength": 255
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fieldpulse_update_customer(customer_id, first_name, last_name, display_name, company_name, ...)

WRITE: change fields of one customer (only the fields you pass). If FieldPulse asks for a name, include first_name/last_name or display_name. PUT /customers/{customerId}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse customer id."
    },
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "display_name": {
      "description": "Required by FieldPulse when first and last name are empty; must be unique.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "company_name": {
      "type": "string",
      "maxLength": 255
    },
    "account_type": {
      "type": "string",
      "enum": [
        "individual",
        "company"
      ]
    },
    "email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "alt_email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "secondary_email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "A valid phone number.",
      "type": "string",
      "maxLength": 255
    },
    "secondary_phone": {
      "description": "A valid phone number.",
      "type": "string",
      "maxLength": 255
    },
    "status": {
      "type": "string",
      "enum": [
        "lead",
        "opportunity",
        "current customer",
        "lost",
        "other",
        "inactive"
      ]
    },
    "notes": {
      "type": "string",
      "maxLength": 7500
    },
    "job_notes": {
      "type": "string",
      "maxLength": 4000
    },
    "assigned_to": {
      "description": "User id the customer is assigned to (see fieldpulse_list_users); null clears it.",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "lead_source_id": {
      "description": "See fieldpulse_list_lead_sources.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "pipeline_status_id": {
      "description": "See fieldpulse_list_pipeline_statuses.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "tags": {
      "description": "Existing customer tag ids (see fieldpulse_list_tags).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "has_different_billing_address": {
      "type": "boolean"
    },
    "billing_address_1": {
      "type": "string",
      "maxLength": 1000
    },
    "billing_address_2": {
      "type": "string",
      "maxLength": 1000
    },
    "billing_city": {
      "type": "string",
      "maxLength": 255
    },
    "billing_state": {
      "type": "string",
      "maxLength": 255
    },
    "billing_zip_code": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_1": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_2": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_city": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_state": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_zip_code": {
      "type": "string",
      "maxLength": 255
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fieldpulse_create_job(customer_id, job_type, billing, subtitle, notes, ...)

WRITE: create a job for an existing customer. Needs customer_id, job_type and the numeric billing value FieldPulse requires; set a status (1-6) or a custom status_id + status_workflow_id. Creates a new job every call. POST /jobs.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Existing customer id."
    },
    "job_type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 150,
      "description": "Job type label, e.g. the service name."
    },
    "billing": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "The integer billing value FieldPulse requires for a job."
    },
    "subtitle": {
      "type": "string",
      "maxLength": 150
    },
    "notes": {
      "type": "string",
      "maxLength": 7500
    },
    "field_notes": {
      "type": "string",
      "maxLength": 5000
    },
    "status": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6,
      "description": "1 = new, 2 = in progress, 3 = pending, 4 = completed, 5 = canceled, 6 = on the way."
    },
    "status_id": {
      "description": "A custom status id (see fieldpulse_list_job_workflow_statuses); needs status_workflow_id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "status_workflow_id": {
      "description": "The status workflow of status_id (see fieldpulse_list_job_status_workflows).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "start_time": {
      "description": "Start, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "end_time": {
      "description": "End, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "due_date": {
      "description": "Due date, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "location_id": {
      "description": "A location of the customer (see fieldpulse_list_locations).",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "customer_contact_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "assignments": {
      "description": "Who the job is assigned to.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "team_id": {
            "description": "Team id (see fieldpulse_list_teams).",
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "assigned_members": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "description": "User ids (see fieldpulse_list_users)."
          }
        },
        "required": [
          "assigned_members"
        ]
      }
    },
    "tags": {
      "description": "Existing job tag ids (see fieldpulse_list_tags).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    }
  },
  "required": [
    "customer_id",
    "job_type",
    "billing"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fieldpulse_update_job(job_id, customer_id, job_type, billing, subtitle, ...)

WRITE: change a job: status, schedule, notes, assignments, location. FieldPulse requires customer_id, job_type and billing on every update, so this reads the job first and keeps those (and its current status) unless you pass new values. The read and the write are two requests; FieldPulse offers no version check. PUT /jobs/{jobId}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse job id."
    },
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "job_type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 150
    },
    "billing": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "subtitle": {
      "type": "string",
      "maxLength": 150
    },
    "notes": {
      "type": "string",
      "maxLength": 7500
    },
    "field_notes": {
      "type": "string",
      "maxLength": 5000
    },
    "status": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6,
      "description": "1 = new, 2 = in progress, 3 = pending, 4 = completed, 5 = canceled, 6 = on the way."
    },
    "status_id": {
      "description": "A custom status id (see fieldpulse_list_job_workflow_statuses); needs status_workflow_id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "status_workflow_id": {
      "description": "The status workflow of status_id (see fieldpulse_list_job_status_workflows).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "start_time": {
      "description": "Start, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "end_time": {
      "description": "End, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "due_date": {
      "description": "Due date, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "location_id": {
      "description": "A location of the customer (see fieldpulse_list_locations).",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "customer_contact_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "assignments": {
      "description": "Who the job is assigned to.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "team_id": {
            "description": "Team id (see fieldpulse_list_teams).",
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "assigned_members": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "description": "User ids (see fieldpulse_list_users)."
          }
        },
        "required": [
          "assigned_members"
        ]
      }
    },
    "tags": {
      "description": "Existing job tag ids (see fieldpulse_list_tags).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    }
  },
  "required": [
    "job_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 43 件