Bill4Time MCP by usefulapi

Read Bill4Time clients, projects, time entries, expenses, invoices, payments, users and contacts.

使うべきか

品質と安全性

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

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

コンテキストコスト

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

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

インストール

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

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

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

リモートエンドポイント

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

できること

ツール一覧

ツール(8)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢bill4time_list_clients(id, top, skip, sort, descending, ...)

List clients (id, name, billing name, email, phone, city, account manager, status, billing rate type, currency). Filter by status, exact client name, id or creation date. Street addresses and tax ids are not returned. GET /clients.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Only the record with this id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "top": {
      "description": "Records to return, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Records to skip (default 0). Pass the previous reply's next_skip to read the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Field to sort by (default: Bill4Time's own order).",
      "type": "string",
      "enum": [
        "id",
        "clientName",
        "creationDate"
      ]
    },
    "descending": {
      "description": "Sort descending (newest or highest first). Default ascending.",
      "type": "boolean"
    },
    "status": {
      "type": "string",
      "enum": [
        "Active",
        "Disabled"
      ]
    },
    "client_name": {
      "description": "Exact client name (case rules are Bill4Time's).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "created_after": {
      "description": "Clients created on or after this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "created_before": {
      "description": "Clients created on or before this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "include_custom_fields": {
      "description": "Also return the custom fields (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bill4time_list_projects(id, top, skip, sort, descending, ...)

List projects (matters): id, name, client, status, billing method, rate overrides, assigned user, created/closed/due dates. Filter by status, billing method, client, id or creation date. GET /projects.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Only the record with this id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "top": {
      "description": "Records to return, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Records to skip (default 0). Pass the previous reply's next_skip to read the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Field to sort by (default: Bill4Time's own order).",
      "type": "string",
      "enum": [
        "id",
        "projectName",
        "createdDate"
      ]
    },
    "descending": {
      "description": "Sort descending (newest or highest first). Default ascending.",
      "type": "boolean"
    },
    "status": {
      "type": "string",
      "enum": [
        "Open",
        "Closed"
      ]
    },
    "billing_method": {
      "type": "string",
      "enum": [
        "Hourly",
        "Flat Fee",
        "Percentage"
      ]
    },
    "client_id": {
      "description": "Only projects of this client.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "created_after": {
      "description": "Projects created on or after this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "created_before": {
      "description": "Projects created on or before this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "include_custom_fields": {
      "description": "Also return the custom fields (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bill4time_list_time_entries(id, top, skip, sort, descending, ...)

List time entries: client, project, user, entry date, billable and labor time, billable amount, rate, activity, ABA litigation code, billing status, invoice id, public description. Filter by client, project, user, invoice, entry date range or billing status. Private notes and contractor pay rates are not returned unless include_private_notes is set. GET /timeEntries.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Only the record with this id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "top": {
      "description": "Records to return, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Records to skip (default 0). Pass the previous reply's next_skip to read the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Field to sort by (default: Bill4Time's own order).",
      "type": "string",
      "enum": [
        "id",
        "entryDate",
        "createdDate"
      ]
    },
    "descending": {
      "description": "Sort descending (newest or highest first). Default ascending.",
      "type": "boolean"
    },
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "invoice_id": {
      "description": "Only entries on this invoice.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "date_from": {
      "description": "Entries dated on or after this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "date_to": {
      "description": "Entries dated on or before this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "billing_status": {
      "type": "string",
      "enum": [
        "Ready For Summary",
        "Ready For Billing",
        "Billing Complete",
        "Pending Project Close"
      ]
    },
    "activity_type": {
      "description": "Exact activity type name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "include_private_notes": {
      "description": "Also return the private/internal notes (default false). Only set it when the user asks for internal notes.",
      "type": "boolean"
    },
    "include_custom_fields": {
      "description": "Also return the custom fields (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bill4time_list_expenses(id, top, skip, sort, descending, ...)

List expenses: client, project, user, expense date, cost and sell price, quantity, type, billing status, invoice id, public description. Filter by client, project, user, invoice, expense date range, billing status or exact expense type. Private notes are not returned unless include_private_notes is set. GET /expenses.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Only the record with this id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "top": {
      "description": "Records to return, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Records to skip (default 0). Pass the previous reply's next_skip to read the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Field to sort by (default: Bill4Time's own order).",
      "type": "string",
      "enum": [
        "id",
        "expenseDate",
        "createdDate"
      ]
    },
    "descending": {
      "description": "Sort descending (newest or highest first). Default ascending.",
      "type": "boolean"
    },
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "project_id": {
      "description": "A project id, or -1 for expenses that belong to no project.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "invoice_id": {
      "description": "Only expenses on this invoice.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "date_from": {
      "description": "Expenses dated on or after this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "date_to": {
      "description": "Expenses dated on or before this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "billing_status": {
      "type": "string",
      "enum": [
        "Ready For Summary",
        "Ready For Billing",
        "Billing Complete",
        "Pending Project Close"
      ]
    },
    "expense_type": {
      "description": "Exact expense type name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "include_private_notes": {
      "description": "Also return the private/internal notes (default false). Only set it when the user asks for internal notes.",
      "type": "boolean"
    },
    "include_custom_fields": {
      "description": "Also return the custom fields (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bill4time_list_invoices(id, top, skip, sort, descending, ...)

List invoices: client, project, invoice date, status (prebill or finalized), paid status, totals (invoice, labor, expense, late fee), terms and notes. Filter by status, paid status, client, project, id or invoice date range. GET /invoices.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Only the record with this id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "top": {
      "description": "Records to return, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Records to skip (default 0). Pass the previous reply's next_skip to read the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Field to sort by (default: Bill4Time's own order).",
      "type": "string",
      "enum": [
        "id",
        "invoiceDate",
        "createdDate"
      ]
    },
    "descending": {
      "description": "Sort descending (newest or highest first). Default ascending.",
      "type": "boolean"
    },
    "status": {
      "type": "string",
      "enum": [
        "prebill",
        "finalized"
      ]
    },
    "paid_status": {
      "type": "string",
      "enum": [
        "Paid",
        "Partially Paid",
        "Unpaid"
      ]
    },
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "date_from": {
      "description": "Invoices dated on or after this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "date_to": {
      "description": "Invoices dated on or before this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "include_custom_fields": {
      "description": "Also return the custom fields (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bill4time_list_payments(id, top, skip, sort, descending, ...)

List payments: client, project, amount, date, type, method, public note. Filter by client, project, id or payment date range. Check numbers are not returned; the private note only with include_private_notes. GET /payments.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Only the record with this id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "top": {
      "description": "Records to return, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Records to skip (default 0). Pass the previous reply's next_skip to read the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Field to sort by (default: Bill4Time's own order).",
      "type": "string",
      "enum": [
        "id",
        "paymentDate",
        "createdDate"
      ]
    },
    "descending": {
      "description": "Sort descending (newest or highest first). Default ascending.",
      "type": "boolean"
    },
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "date_from": {
      "description": "Payments dated on or after this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "date_to": {
      "description": "Payments dated on or before this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "include_private_notes": {
      "description": "Also return the private/internal notes (default false). Only set it when the user asks for internal notes.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bill4time_list_users(id, top, skip, sort, descending, ...)

List the firm's users: name, email, user type, status, department, position, billing and overtime rate. Birth dates, addresses, phone numbers and contractor pay rates are not returned. Filter by status or id. GET /users.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Only the record with this id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "top": {
      "description": "Records to return, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Records to skip (default 0). Pass the previous reply's next_skip to read the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Field to sort by (default: Bill4Time's own order).",
      "type": "string",
      "enum": [
        "id",
        "lname"
      ]
    },
    "descending": {
      "description": "Sort descending (newest or highest first). Default ascending.",
      "type": "boolean"
    },
    "status": {
      "type": "string",
      "enum": [
        "Active",
        "Disabled"
      ]
    },
    "include_custom_fields": {
      "description": "Also return the custom fields (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢bill4time_list_contacts(id, top, skip, sort, descending, ...)

List contacts: name, email, work and mobile phone, city, status, creation date. Filter by status, id or creation date. Street addresses, home phone and notes are not returned. GET /contacts.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Only the record with this id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "top": {
      "description": "Records to return, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Records to skip (default 0). Pass the previous reply's next_skip to read the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Field to sort by (default: Bill4Time's own order).",
      "type": "string",
      "enum": [
        "id",
        "lastName",
        "creationDate"
      ]
    },
    "descending": {
      "description": "Sort descending (newest or highest first). Default ascending.",
      "type": "boolean"
    },
    "status": {
      "type": "string",
      "enum": [
        "Active",
        "Disabled"
      ]
    },
    "created_after": {
      "description": "Contacts created on or after this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "created_before": {
      "description": "Contacts created on or before this date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

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