Tamigo MCP by usefulapi
Read Tamigo departments, employees, shifts, absences and opening hours; register attendance.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"tamigo": {
"url": "https://tamigo.usefulapi.io/mcp"
}
}
}远程端点
https://tamigo.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(8)
🟢tamigo_list_departments(include_parents, offset, limit)
List all departments (shops, restaurants, units) of the company: DepartmentId (a GUID, used by other tools), DepartmentKey (the POS key set in Tamigo), Name, IsDefault and ParentDepartmentId. GET /departments/application/.
输入模式
{
"type": "object",
"properties": {
"include_parents": {
"description": "Also return the parent (grouping) departments, not only the leaf units. Default false.",
"type": "boolean"
},
"offset": {
"description": "Skip this many items (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Items to return, 1-1000 (default 200). The reply's next_offset says where to continue.",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢tamigo_list_employees(offset, limit)
List all employees of the company (basic): EmployeeId, Name, Email, IsPlanner, PosKey (the employee key used by the attendance tool) and DepartmentRoles. For contract, wage and absence-balance details use tamigo_list_employee_details. GET /employees/.
输入模式
{
"type": "object",
"properties": {
"offset": {
"description": "Skip this many items (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Items to return, 1-1000 (default 200). The reply's next_offset says where to continue.",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢tamigo_list_employee_details(page, include_deleted, offset, limit)
Detailed employee records, 500 per page in alphabetical order: contact data, roles per department, home department, contract hours, wage type and history, absence balances, competencies, custom columns, notes and availability. Bank details and ID numbers are never returned. Large pages are returned in slices: pass the reply's next_page and next_offset to continue. GET /employees/getemployeedetails/.
输入模式
{
"type": "object",
"properties": {
"page": {
"description": "Page number, from 0 (default 0). Pass the previous reply's next_page.",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"include_deleted": {
"description": "Also include deleted employees. Default false.",
"type": "boolean"
},
"offset": {
"description": "Skip this many employees within the page (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Items to return, 1-500 (default 50). The reply's next_offset says where to continue.",
"type": "integer",
"minimum": 1,
"maximum": 500
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢tamigo_list_shifts(start_date, end_date, department_id, offset, limit)
Per employee and day, the original rota, the planned (current) rota and the worked (timesheet) hours for a date range, with department, employee POS key, email and wage number. Use it for payroll checks, hours worked vs planned and who worked when. Shift values are hours. GET /shifts/all/{start}/{end}/.
输入模式
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "First day, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Last day, yyyy-mm-dd."
},
"department_id": {
"description": "Department id from tamigo_list_departments. Omit for all departments.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z0-9-]+$"
},
"offset": {
"description": "Skip this many items (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Items to return, 1-1000 (default 200). The reply's next_offset says where to continue.",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢tamigo_list_absences(start_date, end_date, offset, limit)
All absences (holiday, sickness, leave) that overlap a date range: employee, department, absence type, start and end, and whether it is approved or rejected. GET /LeaveRequests/All/.
输入模式
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "First day, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Last day, yyyy-mm-dd."
},
"offset": {
"description": "Skip this many items (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Items to return, 1-1000 (default 200). The reply's next_offset says where to continue.",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢tamigo_get_opening_hours(start_date, end_date, offset, limit)
Normal and special opening hours per department for a date range. GET /OpeningHours/{start}/{end}/.
输入模式
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "First day, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Last day, yyyy-mm-dd."
},
"offset": {
"description": "Skip this many items (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Items to return, 1-1000 (default 200). The reply's next_offset says where to continue.",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴tamigo_register_attendance(entries)
WRITE: register check-in and check-out times in the Tamigo timesheet, for one or many employees (the same call a POS system makes). Each entry names a department key and an employee key (the POS keys set in Tamigo under Configuration -> Departments / POS Keys; they are shown by tamigo_list_departments and tamigo_list_employees) and EITHER a check_in_time OR a check_out_time, in chronological order per employee. A break is registered by giving the same activity_name (for example Lunch, SmallBreak) on its check-in and its check-out. Tamigo may round the times by the company's rules, and the reply echoes the times actually registered. This changes worked hours and wages: it is not undone by repeating it, so confirm the entries first.
输入模式
{
"type": "object",
"properties": {
"entries": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"department_key": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001f]+$",
"description": "Department key (POS key) from Tamigo."
},
"employee_key": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001f]+$",
"description": "Employee key (POS key) from Tamigo."
},
"check_in_time": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})$",
"description": "Local date-time without a timezone, yyyy-MM-ddTHH:mm:ss (the workplace's local time)."
},
"check_out_time": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})$",
"description": "Local date-time without a timezone, yyyy-MM-ddTHH:mm:ss (the workplace's local time)."
},
"activity_name": {
"description": "Optional break/activity name, e.g. Lunch or SmallBreak.",
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"department_key",
"employee_key"
]
},
"description": "1-50 entries, in chronological order."
}
},
"required": [
"entries"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴tamigo_upload_daily_revenue(rows)
WRITE: import daily revenue per department into Tamigo (the same call a cash-register system makes), used for revenue-based planning and KPIs. Each row is a department key (the POS key set in Tamigo), a date and a revenue amount (a plain number with a dot as decimal separator). A date that already has revenue for that department may be overwritten by Tamigo, so confirm the rows first. POST /Revenues/.
输入模式
{
"type": "object",
"properties": {
"rows": {
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"department_key": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"allOf": [
{
"pattern": "^[^\\u0000-\\u001f]+$"
},
{
"pattern": "^[^,;]+$"
}
],
"description": "Department key (POS key) from Tamigo."
},
"date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"revenue": {
"type": "number",
"minimum": -1000000000000,
"maximum": 1000000000000,
"description": "Revenue for the day, e.g. 12450.5."
}
},
"required": [
"department_key",
"date",
"revenue"
]
},
"description": "1-200 rows."
}
},
"required": [
"rows"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据