Artesa MCP by usefulapi

Read customers, assignments, staff, time entries and absences; create customers in Artesa.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
93%
이름 품질
79%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'artesa_list_assignment_status_types' name length outside 3-30 rangeartesa_list_assignment_status_types에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,443토큰 (도구 정의)
~1.6 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.69%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "artesa": {
      "url": "https://artesa.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://artesa.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (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.

입력 스키마

{
  "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}.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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}.

입력 스키마

{
  "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.

입력 스키마

{
  "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}.

입력 스키마

{
  "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.

입력 스키마

{
  "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}.

입력 스키마

{
  "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.

입력 스키마

{
  "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}.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 18개