MCP server for Planfix — tasks, contacts, project management (Russia)
Server has 20 tools with consistent naming (verb_noun pattern) and descriptions present for all. However, parameter descriptions are often generic or incomplete. Many parameters lack type constraints (enums for status/priority), and output schemas are not documented. Error handling is minimal. Descriptions average ~80 chars, below the 194-char baseline for A+ tools. No tool annotations (readOnlyHint/destructiveHint). Zod schemas are used internally but not exposed in tool registration for LLM visibility.
Добавить комментарий к задаче.
Создать контакт (или компанию) в Planfix.
Создать новую задачу в Planfix.
Получить комментарии к задаче.
Получить одного контакта по ID.
Получить список контактов из Planfix с пагинацией и фильтрами.
Получить метаданные файла по ID.
Parameter descriptions lack actionable constraints. 'priority' in create_task states 'Допустимые значения не верифицированы против live API' (valid values not verified), and 'status' in update_task lacks enum definition. LLMs cannot infer valid values and will hallucinate.
Output schemas are not documented. Tools return text responses via 'content: [{ type: "text", text: ... }]' but the structure of that text (JSON, CSV, plain) is not specified. LLMs cannot reliably parse responses.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | <=2025-11-25 | v2 |
Получить один проект по ID.
Получить список проектов из Planfix.
Получить одну задачу по ID.
Получить список задач из Planfix с пагинацией и фильтрами.
Получить одного сотрудника по ID.
Получить список кастомных полей для типа объекта (task/contact/project/user/main).
Получить список дата-тегов Planfix.
Получить список справочников Planfix (в т.ч. наборы статусов задач хранятся как справочники).
Получить записи справочника по его ID (например, варианты статусов).
Получить список сотрудников Planfix. Используй для поиска ID исполнителя по имени перед create_task/update_task.
Обновить контакт (имя, email, телефон).
Обновить существующую задачу в Planfix (название, описание, статус, исполнитель).
Загрузить файл в Planfix по прямой ссылке (без multipart).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe read-only tools from destructive ones (create_task, update_task, add_comment, create_contact, update_contact, upload_file_from_url). This increases risk of unintended mutations.
Error handling is absent. No recovery guidance in tool descriptions. If create_task fails due to invalid projectId or assigneeId, the LLM receives only a text error with no hint to call list_projects or list_users first.
Parameter descriptions are generic and under 72 chars on average. E.g., 'filterId' is described as 'ID сохранённого фильтра задач' without explaining how to discover available filters or what happens if the ID is invalid. Descriptions should guide LLM usage.