Smartplan MCP by usefulapi
Read accounts, staff, shifts, worklogs and absence dates in Smartplan.
Should I use this
Quality & Safety
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": {
"smartplan": {
"url": "https://smartplan.usefulapi.io/mcp"
}
}
}Remote endpoints
https://smartplan.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (14)
🟢smartplan_list_accounts
Shows only the account selected during login, from the authenticated account list. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_get_account
Account settings and timezone for this connection's selected account. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_list_members(limit, offset, is_admin)
One page of members for the selected account; continue with next_offset. Excludes contact details, photos and custom data. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"is_admin": {
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_get_member(id)
One member by ID in the selected account. Excludes contact details, photos and custom data. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_list_locations(limit, offset, is_hidden)
One page of locations for the selected account; continue with next_offset. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"is_hidden": {
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_get_location(id)
One location by ID in the selected account. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_list_jobtypes(limit, offset, alive)
One page of job roles for the selected account; continue with next_offset. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"alive": {
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_get_jobtype(id)
One jobtype by ID in the selected account. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_list_shifts(limit, offset, start_date, end_date, owner, ...)
One page of upcoming shifts for the selected account; continue with next_offset. Date filters use the displayed start date, including shifts crossing midnight. Shift IDs change on archive/bulk edit; worklogs are historical records. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"start_date": {
"type": "string"
},
"end_date": {
"type": "string"
},
"owner": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
},
"location": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
},
"jobtypes": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
}
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_get_shift(id)
One shift by ID in the selected account. Date filters use the displayed start date, including shifts crossing midnight. Shift IDs change on archive/bulk edit; worklogs are historical records. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_list_worklogs(limit, offset, start_date, end_date, owner, ...)
One page of recorded worklogs for the selected account; continue with next_offset. Date filters use the displayed start date, including shifts crossing midnight. Shift IDs change on archive/bulk edit; worklogs are historical records. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"start_date": {
"type": "string"
},
"end_date": {
"type": "string"
},
"owner": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
},
"location": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
},
"jobtypes": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
}
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_get_worklog(id)
One worklog by ID in the selected account. Date filters use the displayed start date, including shifts crossing midnight. Shift IDs change on archive/bulk edit; worklogs are historical records. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_list_absences(limit, offset, start_date, end_date, absentee, ...)
One page of absence dates for the selected account; continue with next_offset. Excludes absence types, reasons and notes. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"start_date": {
"type": "string"
},
"end_date": {
"type": "string"
},
"absentee": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
},
"status": {
"type": "string",
"enum": [
"W",
"A",
"D",
"C",
"DEL",
"A-AUTO"
]
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢smartplan_get_absence(id)
One absence by ID in the selected account. Excludes absence types, reasons and notes. Read-only Smartplan Pro API.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence