Bill4Time MCP by usefulapi

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

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
86%
命名品質
80%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,518Token(工具定義)
~4.0 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.75%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `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 個工具