Craftboxx MCP by usefulapi
Read employees, assignments, timesheets and absences; create customers and projects in Craftboxx.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"craftboxx": {
"url": "https://craftboxx.usefulapi.io/mcp"
}
}
}遠端端點
https://craftboxx.usefulapi.io/mcpstreamable-http它能做什麼
工具清單
工具(16)
🟢craftboxx_get_company
Get the company of the signed-in account (name, address, contact data). Craftboxx API: GET /my/company.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_list_employees(q, email, last_name, group_id, page, ...)
List employees (name, email, phone, group, skills, inactive flag). Craftboxx API: GET /employees.
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"description": "Free-text search across the relevant fields.",
"type": "string"
},
"email": {
"description": "Filter by exact email.",
"type": "string"
},
"last_name": {
"description": "Filter by exact last name.",
"type": "string"
},
"group_id": {
"description": "Only employees of this group.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_get_employee(employee_id)
Get one employee by id. Craftboxx API: GET /employees/{id}.
輸入結構描述
{
"type": "object",
"properties": {
"employee_id": {
"description": "The employee id.",
"type": [
"string",
"number"
]
}
},
"required": [
"employee_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_list_customers(q, name, customer_number, page, per_page)
List customers (name, customer number, info). Craftboxx API: GET /customers.
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"description": "Free-text search across the relevant fields.",
"type": "string"
},
"name": {
"description": "Filter by exact name.",
"type": "string"
},
"customer_number": {
"description": "Filter by customer number.",
"type": "string"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_get_customer(customer_id)
Get one customer by id. Craftboxx API: GET /customers/{id}.
輸入結構描述
{
"type": "object",
"properties": {
"customer_id": {
"description": "The customer id.",
"type": [
"string",
"number"
]
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_list_projects(q, customer_id, title, project_nr, show_archived, ...)
List projects (title, project number, customer, sales volume). Craftboxx API: GET /projects.
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"description": "Free-text search across the relevant fields.",
"type": "string"
},
"customer_id": {
"description": "Only projects of this customer.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"title": {
"description": "Filter by exact title.",
"type": "string"
},
"project_nr": {
"description": "Filter by project number.",
"type": "string"
},
"show_archived": {
"description": "true = include archived items (hidden by default).",
"type": "boolean"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_get_project(project_id)
Get one project by id. Craftboxx API: GET /projects/{id}.
輸入結構描述
{
"type": "object",
"properties": {
"project_id": {
"description": "The project id.",
"type": [
"string",
"number"
]
}
},
"required": [
"project_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_list_assignments(q, start, end, employees, show_archived, ...)
List assignments (planned jobs/appointments: title, project, start, end, state, planned time). Filter by date range or employee. Craftboxx API: GET /assignments.
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"description": "Free-text search across the relevant fields.",
"type": "string"
},
"start": {
"description": "Filter by start date-time (ISO 8601, e.g. 2026-11-01T00:00:00+01:00).",
"type": "string"
},
"end": {
"description": "Filter by end date-time (ISO 8601).",
"type": "string"
},
"employees": {
"description": "Only assignments of these employee ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"show_archived": {
"description": "true = include archived items (hidden by default).",
"type": "boolean"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_get_assignment(assignment_id)
Get one assignment by id. Craftboxx API: GET /assignments/{id}.
輸入結構描述
{
"type": "object",
"properties": {
"assignment_id": {
"description": "The assignment id.",
"type": [
"string",
"number"
]
}
},
"required": [
"assignment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_list_timesheets(employee_id, start, end, page, per_page)
List timesheets (employee, start, end, working time, break time). Craftboxx API: GET /timesheets.
輸入結構描述
{
"type": "object",
"properties": {
"employee_id": {
"description": "Only timesheets of this employee.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"start": {
"description": "Filter by start date-time (ISO 8601).",
"type": "string"
},
"end": {
"description": "Filter by end date-time (ISO 8601).",
"type": "string"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_list_absences(employees, type_id, start, end, page, ...)
List absences such as holiday or sick leave (employee, type, start, end). Craftboxx API: GET /absences.
輸入結構描述
{
"type": "object",
"properties": {
"employees": {
"description": "Only absences of these employee ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"type_id": {
"description": "Only this absence type id (see craftboxx_list_absence_types).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"start": {
"description": "Filter by start date-time (ISO 8601).",
"type": "string"
},
"end": {
"description": "Filter by end date-time (ISO 8601).",
"type": "string"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_list_absence_types(page, per_page)
List absence reasons (holiday, sick, ...). Craftboxx API: GET /absences/types.
輸入結構描述
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_list_articles(q, manufacturer, page, per_page)
List articles in the material catalog (name, manufacturer, unit price, VAT rate). Craftboxx API: GET /articles.
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"description": "Free-text search across the relevant fields.",
"type": "string"
},
"manufacturer": {
"description": "Filter by exact manufacturer.",
"type": "string"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢craftboxx_list_documentations(q, assignment_id, author_id, page, per_page)
List job documentations (reports written on assignments: title, state, type, author). Craftboxx API: GET /documentations.
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"description": "Free-text search across the relevant fields.",
"type": "string"
},
"assignment_id": {
"description": "Only documentations of this assignment.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"author_id": {
"description": "Only documentations written by this employee.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴craftboxx_create_customer(name, name_addon, customer_number, info)
WRITE: create a new customer. Each call creates a new record (not idempotent). Craftboxx API: POST /customers.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Customer name (required)."
},
"name_addon": {
"description": "Name addition, such as a second line.",
"type": "string"
},
"customer_number": {
"description": "Your own customer number.",
"type": "string"
},
"info": {
"description": "Free-text note.",
"type": "string"
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴craftboxx_create_project(title, customer_id, project_nr)
WRITE: create a new project for an existing customer. Each call creates a new record (not idempotent). Craftboxx API: POST /projects.
輸入結構描述
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Project title (required)."
},
"customer_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Id of the customer (required, see craftboxx_list_customers)."
},
"project_nr": {
"description": "Your own project number.",
"type": "string"
}
},
"required": [
"title",
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社群
證據