Artesa MCP by usefulapi
Read customers, assignments, staff, time entries and absences; create customers in Artesa.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen artesa_list_assignment_status_types
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": {
"artesa": {
"url": "https://artesa.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://artesa.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (18)
🟢artesa_list_customers(company_name, number, external_id, page, size)
List customers (private persons or companies that assignments are carried out for). Filter by company name, number or external id. Artesa API: GET /v2/customers.
Esquema de entrada
{
"type": "object",
"properties": {
"company_name": {
"description": "Filter by company name.",
"type": "string"
},
"number": {
"description": "Filter by customer number.",
"type": "string"
},
"external_id": {
"description": "Filter by the external id from your other system.",
"type": "string"
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_get_customer(customer_uuid)
Get one customer with its phones, emails, URLs and billing address. Artesa API: GET /v2/customers/{customerUuid}.
Esquema de entrada
{
"type": "object",
"properties": {
"customer_uuid": {
"type": "string",
"minLength": 1,
"description": "The customer uuid (from the matching list tool)."
}
},
"required": [
"customer_uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴artesa_create_customer(company_name, first_name, surname, external_id, emails, ...)
Create a new customer record (company or private person). Not safe to retry: a retry creates a second customer. Artesa API: POST /v2/customers.
Esquema de entrada
{
"type": "object",
"properties": {
"company_name": {
"description": "Company name (leave empty for a private person).",
"type": "string"
},
"first_name": {
"description": "First name.",
"type": "string"
},
"surname": {
"description": "Surname.",
"type": "string"
},
"external_id": {
"description": "Id from your other system.",
"type": "string"
},
"emails": {
"description": "Email addresses.",
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "e.g. main"
},
"emailAddress": {
"type": "string",
"description": "Email address."
}
},
"required": [
"label",
"emailAddress"
]
}
},
"telephones": {
"description": "Phone numbers.",
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "e.g. mobile"
},
"telephoneNumber": {
"type": "string",
"description": "Phone number."
}
},
"required": [
"label",
"telephoneNumber"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_assignments(customer_uuid, project_uuid, type_uuid, responsible_user_uuid, status_uuid, ...)
List assignments (orders/jobs) with their customer, project, type, responsible user and status. Artesa API: GET /v2/assignments.
Esquema de entrada
{
"type": "object",
"properties": {
"customer_uuid": {
"description": "Only assignments of this customer uuid.",
"type": "string"
},
"project_uuid": {
"description": "Only assignments in this project uuid.",
"type": "string"
},
"type_uuid": {
"description": "Only assignments of this assignment type uuid.",
"type": "string"
},
"responsible_user_uuid": {
"description": "Only assignments for this responsible user uuid.",
"type": "string"
},
"status_uuid": {
"description": "Only assignments with this status uuid.",
"type": "string"
},
"name": {
"description": "Filter by assignment name.",
"type": "string"
},
"number": {
"description": "Filter by assignment number.",
"type": "string"
},
"external_id": {
"description": "Filter by external id.",
"type": "string"
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_get_assignment(assignment_uuid)
Get one assignment with its details. Artesa API: GET /v2/assignments/{assignmentUuid}.
Esquema de entrada
{
"type": "object",
"properties": {
"assignment_uuid": {
"type": "string",
"minLength": 1,
"description": "The assignment uuid (from the matching list tool)."
}
},
"required": [
"assignment_uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_assignment_events(assignment_uuid, type_uuid, group_uuid, name, starts_from, ...)
List work steps (appointments and events) of assignments, optionally in a time window. Artesa API: GET /v2/assignment-events.
Esquema de entrada
{
"type": "object",
"properties": {
"assignment_uuid": {
"description": "Only events of this assignment uuid.",
"type": "string"
},
"type_uuid": {
"description": "Only events of this assignment event type uuid.",
"type": "string"
},
"group_uuid": {
"description": "Only events in this assignment event group uuid.",
"type": "string"
},
"name": {
"description": "Filter by event name.",
"type": "string"
},
"starts_from": {
"description": "Events starting at or after this time, ISO 8601 (e.g. 2026-03-01T00:00:00Z).",
"type": "string",
"minLength": 1
},
"starts_to": {
"description": "Events starting at or before this time, ISO 8601 (e.g. 2026-03-01T00:00:00Z).",
"type": "string",
"minLength": 1
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_get_assignment_event(assignment_event_uuid)
Get one assignment event (work step). Artesa API: GET /v2/assignment-events/{assignmentEventUuid}.
Esquema de entrada
{
"type": "object",
"properties": {
"assignment_event_uuid": {
"type": "string",
"minLength": 1,
"description": "The assignment event uuid (from the matching list tool)."
}
},
"required": [
"assignment_event_uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_projects(number, external_id, page, size)
List projects that group assignments. Artesa API: GET /v2/projects.
Esquema de entrada
{
"type": "object",
"properties": {
"number": {
"description": "Filter by project number.",
"type": "string"
},
"external_id": {
"description": "Filter by external id.",
"type": "string"
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_get_project(project_uuid)
Get one project. Artesa API: GET /v2/projects/{projectUuid}.
Esquema de entrada
{
"type": "object",
"properties": {
"project_uuid": {
"type": "string",
"minLength": 1,
"description": "The project uuid (from the matching list tool)."
}
},
"required": [
"project_uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_users(role_uuid, full_name, email, short_name, staff_number, ...)
List users (staff members) with their role. Filter by name, email or role. Artesa API: GET /v2/users.
Esquema de entrada
{
"type": "object",
"properties": {
"role_uuid": {
"description": "Only users with this role uuid.",
"type": "string"
},
"full_name": {
"description": "Filter by full name.",
"type": "string"
},
"email": {
"description": "Filter by email address.",
"type": "string"
},
"short_name": {
"description": "Filter by short name.",
"type": "string"
},
"staff_number": {
"description": "Filter by staff number.",
"type": "string"
},
"external_id": {
"description": "Filter by external id.",
"type": "string"
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_get_user(user_uuid)
Get one user (staff member). Artesa API: GET /v2/users/{userUuid}.
Esquema de entrada
{
"type": "object",
"properties": {
"user_uuid": {
"type": "string",
"minLength": 1,
"description": "The user uuid (from the matching list tool)."
}
},
"required": [
"user_uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_time_entries(user_uuid, assignment_uuid, event_uuid, type_uuid, day_status, ...)
List recorded time entries (work time) per user, assignment or event, optionally in a time window. Artesa API: GET /v2/time-entries.
Esquema de entrada
{
"type": "object",
"properties": {
"user_uuid": {
"description": "Only entries of this user uuid.",
"type": "string"
},
"assignment_uuid": {
"description": "Only entries on this assignment uuid.",
"type": "string"
},
"event_uuid": {
"description": "Only entries on this assignment event uuid.",
"type": "string"
},
"type_uuid": {
"description": "Only entries of this time entry type uuid.",
"type": "string"
},
"day_status": {
"description": "Filter by the day status of the time sheet.",
"type": "string"
},
"starts_from": {
"description": "Entries starting at or after this time, ISO 8601 (e.g. 2026-03-01T00:00:00Z).",
"type": "string",
"minLength": 1
},
"starts_to": {
"description": "Entries starting at or before this time, ISO 8601 (e.g. 2026-03-01T00:00:00Z).",
"type": "string",
"minLength": 1
},
"external_id": {
"description": "Filter by external id.",
"type": "string"
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_user_absences(user_uuid, type_uuid, status, starts_from, starts_to, ...)
List absences (holidays, sick days and similar) of users in a time window. Artesa API: GET /v2/user-absences.
Esquema de entrada
{
"type": "object",
"properties": {
"user_uuid": {
"description": "Only absences of this user uuid.",
"type": "string"
},
"type_uuid": {
"description": "Only absences of this user absence type uuid.",
"type": "string"
},
"status": {
"description": "Filter by absence status.",
"type": "string"
},
"starts_from": {
"description": "Absences starting at or after this time, ISO 8601 (e.g. 2026-03-01T00:00:00Z).",
"type": "string",
"minLength": 1
},
"starts_to": {
"description": "Absences starting at or before this time, ISO 8601 (e.g. 2026-03-01T00:00:00Z).",
"type": "string",
"minLength": 1
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_time_sheet_weeks(user_uuid, week_start, status, page, size)
List weekly time sheets per user, with their status. Artesa API: GET /v2/time-sheet-weeks.
Esquema de entrada
{
"type": "object",
"properties": {
"user_uuid": {
"description": "Only time sheets of this user uuid.",
"type": "string"
},
"week_start": {
"description": "Week start date (yyyy-mm-dd).",
"type": "string"
},
"status": {
"description": "Filter by time sheet status.",
"type": "string"
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_assignment_status_types(name, category, page, size)
List the assignment status types (Auftragsstatus) your company uses. Artesa API: GET /v2/assignment-status-types.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"description": "Filter by status name.",
"type": "string"
},
"category": {
"description": "Filter by status category.",
"type": "string"
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_assignment_types(page, size)
List the assignment types (Auftragstypen) your company uses. Artesa API: GET /v2/assignment-types.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_gangs(name, external_id, page, size)
List gangs (work crews or teams) of your company. Artesa API: GET /v2/gangs.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"description": "Filter by gang name.",
"type": "string"
},
"external_id": {
"description": "Filter by external id.",
"type": "string"
},
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢artesa_list_roles(page, size)
List the user roles (Benutzerrollen) of your company. Artesa API: GET /v2/roles.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Zero-based page index (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Items per page, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia