Protime MCP by usefulapi
Read clockings, absences, assignments, contracts, people and departments in Protime.
Should I use this
Quality & Safety
Findings (1)
- LOWin protime_list_absence_definitions
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"protime": {
"url": "https://protime.usefulapi.io/mcp"
}
}
}Remote endpoints
https://protime.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (12)
🟢protime_list_clockings(from, to, person, kind, continuationToken)
List time clockings (in/out, reasons, activities) for a date range. Deleted clockings have status Deleted. Location data is left out. A date range is required (at most one year). Returns one page: pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-clockings.read.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day, yyyy-mm-dd."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day, yyyy-mm-dd."
},
"person": {
"description": "Internal person IDs. Leave out for all people.",
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"kind": {
"type": "string",
"enum": [
"InOut",
"Reason",
"Activity",
"ActivityEnd"
]
},
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"required": [
"from",
"to"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_absences(from, to, person, continuationToken)
List absence instances (leave, sickness) for a date range. A date range is required (at most one year). Returns one page: pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-absences.read.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day, yyyy-mm-dd."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day, yyyy-mm-dd."
},
"person": {
"description": "Internal person IDs. Leave out for all people.",
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"required": [
"from",
"to"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_assignments(from, to, person, continuationToken)
List work assignments (planned and registered activities) for a date range. A date range is required. Returns one page: pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-assignments.read.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day, yyyy-mm-dd."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day, yyyy-mm-dd."
},
"person": {
"description": "Internal person IDs. Leave out for all people.",
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"required": [
"from",
"to"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_contracts(person, continuationToken)
List employment contracts (percentage, hours, dates). Optional person filter. Returns one page: pass continuationToken for the next. Read only. Needs scope connector-protimeapi-contracts.read.
Input Schema
{
"type": "object",
"properties": {
"person": {
"description": "Internal person IDs. Leave out for all people.",
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_people(person, continuationToken)
List people with name, work email and service dates. Home address, birth date, bank, passport and social security data are never returned. Optional person filter. Pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-people.read.
Input Schema
{
"type": "object",
"properties": {
"person": {
"description": "Internal person IDs. Leave out for all people.",
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_departments(continuationToken)
List all departments configured in the tenant. No filters. Pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-departments.read.
Input Schema
{
"type": "object",
"properties": {
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_jobs(continuationToken)
List all jobs configured in the tenant. No filters. Pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-jobs.read.
Input Schema
{
"type": "object",
"properties": {
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_work_locations(continuationToken)
List all work locations configured in the tenant. No filters. Pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-work-locations.read.
Input Schema
{
"type": "object",
"properties": {
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_shift_definitions(continuationToken)
List all shift definitions (codes and names) configured in the tenant. No filters. Pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-shift-definitions.read.
Input Schema
{
"type": "object",
"properties": {
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_absence_definitions(continuationToken)
List all absence definitions (codes, groups) configured in the tenant. No filters. Pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-absence-definitions.read.
Input Schema
{
"type": "object",
"properties": {
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_list_absence_groups(continuationToken)
List all absence groups configured in the tenant. No filters. Pass continuationToken for the next page. Read only. Needs scope connector-protimeapi-absence-groups.read.
Input Schema
{
"type": "object",
"properties": {
"continuationToken": {
"description": "continuationToken from the previous page (use the same other arguments).",
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢protime_get_person(id)
Get one person by internal ID: name, work email, service dates. Sensitive personal data is never returned. Read only. Needs scope connector-protimeapi-people.read.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence