Craftboxx MCP by usefulapi
Read employees, assignments, timesheets and absences; create customers and projects in Craftboxx.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"craftboxx": {
"url": "https://craftboxx.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://craftboxx.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (16)
🟢craftboxx_get_company
Get the company of the signed-in account (name, address, contact data). Craftboxx API: GET /my/company.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
}Comunidad
Evidencia