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개