Skip to main content
Glama
weeek-mcp

weeek-mcp

by MaxViksna

WEEEK MCP

MCP-сервер для WEEEK Public API v1: задачи, проекты, доски, теги, кастомные поля, тайм-трекинг и CRM.

Сервер строит инструменты из официальной OpenAPI-спецификации WEEEK, поэтому названия и параметры эндпоинтов не переписаны вручную.

Возможности

  • Workspace: информация о рабочем пространстве, участники, теги.

  • Task Manager: portfolios, projects, boards, board columns, tasks, watchers, assignees, timers, time entries, attachments, custom fields.

  • CRM: funnels, statuses, deals, organizations, contacts, currencies, связи между сущностями, custom fields.

  • Генератор npm run update:openapi подтягивает свежую спецификацию из developers.weeek.net.

Related MCP server: kaiten-mcp

Установка

git clone https://github.com/maxwellviksna-stack/weeek-mcp.git
cd weeek-mcp
npm install
npm run build

Создайте токен в настройках workspace WEEEK, раздел API, и передайте его в окружение:

export WEEEK_API_TOKEN="your-token"

WEEEK_TOKEN тоже поддерживается, если такое имя уже используется в вашей конфигурации.

Подключение

Claude Desktop

{
  "mcpServers": {
    "weeek": {
      "command": "node",
      "args": ["/absolute/path/to/weeek-mcp/dist/server.js"],
      "env": {
        "WEEEK_API_TOKEN": "your-token"
      }
    }
  }
}

Локальный запуск

WEEEK_API_TOKEN="your-token" npm start

Для разработки:

WEEEK_API_TOKEN="your-token" npm run dev

Инструменты

Все API-операции публикуются как отдельные MCP tools с префиксом weeek_.

Примеры:

  • weeek_get_workspace_info

  • weeek_get_project_list

  • weeek_create_task

  • weeek_get_tasks

  • weeek_complete_task

  • weeek_get_all_deals

  • weeek_create_a_contact

Есть служебный инструмент:

  • weeek_list_operations — поиск по доступным операциям, тегу или тексту.

Формат аргументов у сгенерированных инструментов одинаковый:

{
  "path": { "id": 123 },
  "query": { "search": "release" },
  "body": { "title": "Prepare release notes" }
}

Для загрузки файлов используется files:

{
  "path": { "task_id": 123 },
  "files": [
    {
      "path": "/absolute/path/to/file.pdf",
      "fieldName": "files[]"
    }
  ]
}

Конфигурация

Переменная

По умолчанию

Описание

WEEEK_API_TOKEN

обязательна

Bearer token из настроек workspace

WEEEK_TOKEN

optional

Алиас для WEEEK_API_TOKEN

WEEEK_BASE_URL

https://api.weeek.net/public/v1

Базовый URL API

WEEEK_TIMEOUT_MS

30000

Таймаут запроса

Обновление API

npm run update:openapi
npm run build

Генератор берет текущий bundle документации WEEEK, находит модуль weeek.yaml-*.js, импортирует OpenAPI-объект и пересобирает src/generated/weeek-openapi.ts.

Проверка перед релизом

npm run update:openapi
npm run check
npm run build
npm pack --dry-run

Для проверки на реальном workspace:

WEEEK_API_TOKEN="your-token" npm run smoke:live

Smoke-тест поднимает MCP-сервер через stdio, проверяет список tools, делает read/write-запросы к Task Manager и CRM, а затем удаляет временные сущности с префиксом mcp-smoke-*.

Available Tools

154 tools
weeek_add_assigneesAdd assigneesD

POST /tm/tasks/{taskId}/assignees. Add assignees. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_add_a_task_to_a_projectAdd a task to a projectC

POST /tm/tasks/{task_id}/locations. Add a task to a project. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_add_watchers_to_a_taskAdd watchers to a taskC

POST /tm/tasks/{task_id}/watchers. Add watchers to a task. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_archive_projectArchive projectC

POST /tm/projects/{id}/archive. Archive project. Tags: Project. Body: text/plain.

Inputs: path (required), body.

weeek_attach_a_contactAttach a contactC

POST /crm/deals/{dealId}/contacts. Attach a contact. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_attach_a_contact_2Attach a contactD

POST /crm/organizations/{organizationId}/contacts. Attach a contact. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_attach_an_assigneeAttach an assigneeC

POST /crm/deals/{dealId}/assignees. Attach an assignee. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_attach_a_new_taskAttach a new taskC

POST /crm/deals/{id}/tasks. Attach a new task. Tags: Deals.

Inputs: path (required).

weeek_attach_an_organizationAttach an organizationC

POST /crm/deals/{dealId}/organizations. Attach an organization. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_attach_a_tagAttach a tagC

POST /crm/deals/{dealId}/tags. Attach a tag. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_attach_a_tag_2Attach a tagD

POST /crm/organizations/{organizationId}/tags. Attach a tag. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_attach_a_tag_3Attach a tagC

POST /crm/contacts/{contactId}/tags. Attach a tag. Tags: Contacts. Body: application/json.

Inputs: path (required), body.

weeek_change_boardChange boardD

POST /tm/tasks/{id}/board. Change board. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_change_board_columnChange board columnC

POST /tm/tasks/{id}/board-column. Change board column. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_change_task_parentChange task parentC

POST /tm/tasks/{taskId}/parent. Change task parent. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_complete_taskComplete taskC

POST /tm/tasks/{id}/complete. Complete task. Tags: Task. Body: text/plain.

Inputs: path (required), body.

weeek_create_a_contactCreate a contactC

POST /crm/contacts. Create a contact. Tags: Contacts. Body: application/json.

Inputs: body.

weeek_create_a_custom_fieldCreate a custom fieldC

POST /tm/projects/{project_id}/custom-fields. Create a custom field. Tags: Project. Body: application/json.

Inputs: path (required), body.

weeek_create_a_custom_field_2Create a custom fieldC

POST /tm/boards/{board_id}/custom-fields. Create a custom field. Tags: Board. Body: application/json.

Inputs: path (required), body.

weeek_create_a_custom_field_3Create a custom fieldC

POST /crm/funnels/{funnel_id}/custom-fields. Create a custom field. Tags: Funnels. Body: application/json.

Inputs: path (required), body.

weeek_create_a_custom_field_optionCreate a custom field optionC

POST /tm/projects/{project_id}/custom-fields/{custom_field_id}/options. Create a custom field option. Tags: Project. Body: application/json.

Inputs: path (required), body.

weeek_create_a_custom_field_option_2Create a custom field optionC

POST /tm/boards/{board_id}/custom-fields/{custom_field_id}/options. Create a custom field option. Tags: Board. Body: application/json.

Inputs: path (required), body.

weeek_create_a_custom_field_option_3Create a custom field optionC

POST /crm/funnels/{funnel_id}/custom-fields/{custom_field_id}/options. Create a custom field option. Tags: Funnels. Body: application/json.

Inputs: path (required), body.

weeek_create_a_dealCreate a dealC

POST /crm/statuses/{statusId}/deals. Create a deal. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_create_a_funnelCreate a funnelC

POST /crm/funnels. Create a funnel. Tags: Funnels. Body: application/json.

Inputs: body.

weeek_create_a_funnel_statusCreate a funnel statusC

POST /crm/funnels/{funnelId}/statuses. Create a funnel status. Tags: Funnel Statuses. Body: application/json.

Inputs: path (required), body.

weeek_create_an_addressCreate an addressC

POST /crm/organizations/{organizationId}/addresses. Create an address. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_create_an_emailCreate an emailC

POST /crm/organizations/{organizationId}/emails. Create an email. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_create_an_email_2Create an emailC

POST /crm/contacts/{contactId}/emails. Create an email. Tags: Contacts. Body: application/json.

Inputs: path (required), body.

weeek_create_an_organizationCreate an organizationC

POST /crm/organizations. Create an organization. Tags: Organizations. Body: application/json.

Inputs: body.

weeek_create_a_phoneCreate a phoneC

POST /crm/organizations/{organizationId}/phones. Create a phone. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_create_a_phone_2Create a phoneC

POST /crm/contacts/{contactsId}/phones. Create a phone. Tags: Contacts. Body: application/json.

Inputs: path (required), body.

weeek_create_a_time_entryCreate a time entryC

POST /tm/tasks/{task_id}/time-entries. Create a time entry. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_create_boardCreate boardC

POST /tm/boards. Create board. Tags: Board. Body: application/json.

Inputs: body.

weeek_create_board_columnCreate board columnC

POST /tm/board-columns. Create board column. Tags: BoardColumn. Body: application/json.

Inputs: body.

weeek_create_global_custom_fieldCreate global custom fieldC

POST /tm/custom-fields. Create global custom field. Tags: Custom fields. Body: application/json.

Inputs: body.

weeek_create_global_custom_field_optionCreate global custom field optionC

POST /tm/custom-fields/{custom_field_id}/options. Create global custom field option. Tags: Custom fields. Body: application/json.

Inputs: path (required), body.

weeek_create_portfolioCreate portfolioC

POST /tm/portfolios. Create portfolio. Tags: Portfolio. Body: application/json.

Inputs: body.

weeek_create_projectCreate projectC

POST /tm/projects. Create project. Tags: Project. Body: application/json.

Inputs: body.

weeek_create_tagCreate tagD

POST /ws/tags. Create tag. Tags: Tags. Body: application/json.

Inputs: body.

weeek_create_taskCreate taskC

POST /tm/tasks. Create task. Tags: Task. Body: application/json.

Inputs: body.

weeek_delete_a_contactDelete a contactC

DELETE /crm/contacts/{id}. Delete a contact. Tags: Contacts.

Inputs: path (required).

weeek_delete_a_custom_fieldDelete a custom fieldC

DELETE /tm/projects/{project_id}/custom-fields/{id}. Delete a custom field. Tags: Project.

Inputs: path (required).

weeek_delete_a_custom_field_2Delete a custom fieldC

DELETE /tm/boards/{board_id}/custom-fields/{id}. Delete a custom field. Tags: Board.

Inputs: path (required).

weeek_delete_a_custom_field_3Delete a custom fieldC

DELETE /crm/funnels/{funnel_id}/custom-fields/{id}. Delete a custom field. Tags: Funnels.

Inputs: path (required).

weeek_delete_a_custom_field_optionDelete a custom field optionC

DELETE /tm/projects/{project_id}/custom-fields/{custom_field_id}/options/{id}. Delete a custom field option. Tags: Board.

Inputs: path (required).

weeek_delete_a_custom_field_option_2Delete a custom field optionC

DELETE /crm/funnels/{funnel_id}/custom-fields/{custom_field_id}/options/{id}. Delete a custom field option. Tags: Funnels.

Inputs: path (required).

weeek_delete_a_dealDelete a dealC

DELETE /crm/deals/{id}. Delete a deal. Tags: Deals.

Inputs: path (required).

weeek_delete_a_funnelDelete a funnelC

DELETE /crm/funnels/{id}. Delete a funnel. Tags: Funnels.

Inputs: path (required).

weeek_delete_a_funnel_statusDelete a funnel statusC

DELETE /crm/statuses/{id}. Delete a funnel status. Tags: Funnel Statuses.

Inputs: path (required).

weeek_delete_an_organizationDelete an organizationC

DELETE /crm/organizations/{id}. Delete an organization. Tags: Organizations.

Inputs: path (required).

weeek_delete_a_time_entryDelete a time entryC

DELETE /tm/tasks/{task_id}/time-entries/{time_entry_id}. Delete a time entry. Tags: Task.

Inputs: path (required).

weeek_delete_boardDelete boardC

DELETE /tm/boards/{id}. Delete board. Tags: Board.

Inputs: path (required).

weeek_delete_board_columnDelete board columnC

DELETE /tm/board-columns/{id}. Delete board column. Tags: BoardColumn.

Inputs: path (required).

weeek_delete_global_custom_fieldDelete global custom fieldC

DELETE /tm/custom-fields/{id}. Delete global custom field. Tags: Custom fields.

Inputs: path (required).

weeek_delete_global_custom_field_optionDelete global custom field optionC

DELETE /tm/custom-fields/{custom_field_id}/options/{id}. Delete global custom field option. Tags: Custom fields.

Inputs: path (required).

weeek_delete_portfolioDelete portfolioC

DELETE /tm/portfolios/{id}. Delete portfolio. Tags: Portfolio.

Inputs: path (required).

weeek_delete_projectDelete projectC

DELETE /tm/projects/{id}. Delete project. Tags: Project.

Inputs: path (required).

weeek_delete_tagDelete tagC

DELETE /ws/tags/{id}. Delete tag. Tags: Tags.

Inputs: path (required).

weeek_delete_taskDelete taskC

DELETE /tm/tasks/{id}. Delete task. Tags: Task.

Inputs: path (required).

weeek_delete_the_addressDelete the addressC

DELETE /crm/organizations/{organizationId}/addresses/{addressId}. Delete the address. Tags: Organizations.

Inputs: path (required).

weeek_delete_the_emailDelete the emailC

DELETE /crm/organizations/{organizationId}/emails/{emailId}. Delete the email. Tags: Organizations.

Inputs: path (required).

weeek_delete_the_email_2Delete the emailC

DELETE /crm/contacts/{contactId}/emails/{emailId}. Delete the email. Tags: Contacts.

Inputs: path (required).

weeek_delete_the_phoneDelete the phoneC

DELETE /crm/organizations/{organizationId}/phones/{phoneId}. Delete the phone. Tags: Organizations.

Inputs: path (required).

weeek_delete_the_phone_2Delete the phoneC

DELETE /crm/contacts/{contactsId}/phones/{phoneId}. Delete the phone. Tags: Contacts.

Inputs: path (required).

weeek_detach_a_contactDetach a contactC

DELETE /crm/deals/{dealId}/contacts. Detach a contact. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_detach_an_assigneeDetach an assigneeC

DELETE /crm/deals/{dealId}/assignees. Detach an assignee. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_detach_an_organizationDetach an organizationC

DELETE /crm/deals/{dealId}/organizations. Detach an organization. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_detach_a_tagDetach a tagD

DELETE /crm/deals/{dealId}/tags. Detach a tag. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_detach_a_taskDetach a taskC

DELETE /crm/deals/{id}/tasks/{taskId}. Detach a task. Tags: Deals.

Inputs: path (required).

weeek_detach_the_contactDetach the contactC

DELETE /crm/organizations/{organizationId}/contacts. Detach the contact. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_detach_the_tagDetach the tagC

DELETE /crm/organizations/{organizationId}/tags. Detach the tag. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_detach_the_tag_2Detach the tagC

DELETE /crm/contacts/{contactId}/tags. Detach the tag. Tags: Contacts. Body: application/json.

Inputs: path (required), body.

weeek_get_a_contactGet a contactC

GET /crm/contacts/{id}. Get a contact. Tags: Contacts.

Inputs: path (required).

weeek_get_a_dealGet a dealC

GET /crm/deals/{id}. Get a deal. Tags: Deals.

Inputs: path (required).

weeek_get_a_funnelGet a funnelC

GET /crm/funnels/{id}. Get a funnel. Tags: Funnels.

Inputs: path (required).

weeek_get_a_funnel_statusGet a funnel statusC

GET /crm/statuses/{id}. Get a funnel status. Tags: Funnel Statuses.

Inputs: path (required).

weeek_get_all_contactsGet all contactsC

GET /crm/contacts. Get all contacts. Tags: Contacts.

Inputs: query.

weeek_get_all_currenciesGet all currenciesA

GET /crm/currencies. Get all currencies. Tags: Currencies.

Inputs: no named parameters.

weeek_get_all_dealsGet all dealsC

GET /crm/statuses/{statusId}/deals. Get all deals. Tags: Deals.

Inputs: path (required), query.

weeek_get_all_funnelsGet all funnelsA

GET /crm/funnels. Get all funnels. Tags: Funnels.

Inputs: no named parameters.

weeek_get_all_funnel_statusesGet all funnel statusesB

GET /crm/funnels/{funnelId}/statuses. Get all funnel statuses. Tags: Funnel Statuses.

Inputs: path (required).

weeek_get_all_organizationsGet all organizationsC

GET /crm/organizations. Get all organizations. Tags: Organizations.

Inputs: query.

weeek_get_an_attachmentGet an attachmentC

GET /attachments/{attachment_id}. Get an attachment. Tags: Attachments.

Inputs: path (required).

weeek_get_an_organizationGet an organizationC

GET /crm/organizations/{id}. Get an organization. Tags: Organizations.

Inputs: path (required).

weeek_get_board_column_listGet board column listC

GET /tm/board-columns. Get board column list. Tags: BoardColumn.

Inputs: query.

weeek_get_board_listGet board listC

GET /tm/boards. Get board list. Tags: Board.

Inputs: query (required).

weeek_get_global_custom_fieldsGet global custom fieldsC

GET /tm/custom-fields. Get global custom fields. Tags: Custom fields.

Inputs: no named parameters.

weeek_get_one_task_infoGet one task infoC

GET /tm/tasks/{id}. Get one task info. Tags: Task.

Inputs: path (required).

weeek_get_portfolioGet portfolioC

GET /tm/portfolios/{id}. Get portfolio. Tags: Portfolio.

Inputs: path (required).

weeek_get_portfoliosGet portfoliosC

GET /tm/portfolios. Get portfolios. Tags: Portfolio.

Inputs: query.

weeek_get_profileGet profileC

GET /user/me. Get profile. Tags: User.

Inputs: no named parameters.

weeek_get_projectGet projectC

GET /tm/projects/{id}. Get project. Tags: Project.

Inputs: path (required).

weeek_get_project_listGet project listC

GET /tm/projects. Get project list. Tags: Project.

Inputs: no named parameters.

weeek_get_tasksGet tasksD

GET /tm/tasks. Get tasks. Tags: Task.

Inputs: query.

weeek_get_workspace_infoGet workspace infoB

GET /ws. Get workspace info for current token. Tags: Workspace.

Inputs: no named parameters.

weeek_get_workspace_membersGet workspace membersB

GET /ws/members. Get workspace members for current workspace. Tags: Workspace.

Inputs: no named parameters.

weeek_list_operationsList WEEEK operationsC

List generated WEEEK API operations exposed by this MCP server.

Inputs: tag, search.

weeek_move_a_attached_to_the_deal_taskMove a attached to the deal taskC

POST /crm/deals/{id}/tasks/{taskId}/move. Move a attached to the deal task. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_move_a_custom_fieldMove a custom fieldC

POST /crm/funnels/{funnel_id}/custom-fields/{id}/move. Move a custom field. Tags: Funnels. Body: application/json.

Inputs: path (required), body.

weeek_move_a_custom_field_optionMove a custom field optionC

POST /tm/projects/{project_id}/custom-fields/{custom_field_id}/options/{id}/move. Move a custom field option. Tags: Project. Body: application/json.

Inputs: path (required), body.

weeek_move_a_custom_field_option_2Move a custom field optionC

POST /tm/boards/{board_id}/custom-fields/{custom_field_id}/options/{id}/move. Move a custom field option. Tags: Board. Body: application/json.

Inputs: path (required), body.

weeek_move_a_custom_field_option_3Move a custom field optionC

POST /crm/funnels/{funnel_id}/custom-fields/{custom_field_id}/options/{id}/move. Move a custom field option. Tags: Funnels. Body: application/json.

Inputs: path (required), body.

weeek_move_a_dealMove a dealC

POST /crm/deals/{id}/move. Move a deal within the funnel. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_move_boardMove boardD

POST /tm/boards/{id}/move. Move board. Tags: Board. Body: application/json.

Inputs: path (required), body.

weeek_move_board_columnMove board columnD

POST /tm/board-columns/{id}/move. Move board column. Tags: BoardColumn. Body: application/json.

Inputs: path (required), body.

weeek_move_global_custom_field_optionMove global custom field optionC

POST /tm/custom-fields/{custom_field_id}/options/{id}/move. Move global custom field option. Tags: Custom fields. Body: application/json.

Inputs: path (required), body.

weeek_remove_assigneeRemove assigneeC

DELETE /tm/tasks/{taskId}/assignees. Remove assignee. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_remove_a_task_from_a_projectRemove a task from a projectC

DELETE /tm/tasks/{task_id}/locations. Remove a task from a project. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_remove_watchers_from_a_taskRemove watchers from a taskC

DELETE /tm/tasks/{task_id}/watchers. Remove watchers from a task. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_start_task_timerStart task timerC

POST /tm/tasks/{id}/start-timer. Start task timer. Tags: Task.

Inputs: path (required).

weeek_stop_task_timerStop task timerD

POST /tm/tasks/{id}/stop-timer. Stop task timer. Tags: Task.

Inputs: path (required).

weeek_tagTagC

GET /ws/tags/{id}. Tag. Tags: Tags.

Inputs: path (required).

weeek_tag_listTag listC

GET /ws/tags. Tag list. Tags: Tags.

Inputs: no named parameters.

weeek_transfer_custom_field_to_boardTransfer custom field to boardD

POST /tm/projects/{project_id}/custom-fields/{id}/transfer-to-board. Transfer custom field to board. Tags: Project. Body: application/json.

Inputs: path (required), body.

weeek_transfer_custom_field_to_board_2Transfer custom field to boardC

POST /tm/boards/{board_id}/custom-fields/{id}/transfer-to-board. Transfer custom field to board. Tags: Board. Body: application/json.

Inputs: path (required), body.

weeek_transfer_custom_field_to_projectTransfer custom field to projectD

POST /tm/projects/{project_id}/custom-fields/{id}/transfer-to-project. Transfer custom field to project. Tags: Project. Body: application/json.

Inputs: path (required), body.

weeek_transfer_custom_field_to_project_2Transfer custom field to projectC

POST /tm/boards/{board_id}/custom-fields/{id}/transfer-to-project. Transfer custom field to project. Tags: Board. Body: application/json.

Inputs: path (required), body.

weeek_transfer_custom_field_to_task_managerTransfer custom field to task managerC

POST /tm/projects/{project_id}/custom-fields/{id}/transfer-to-task-manager. Transfer custom field to task manager. Tags: Project.

Inputs: path (required).

weeek_transfer_custom_field_to_task_manager_2Transfer custom field to task managerC

POST /tm/boards/{board_id}/custom-fields/{id}/transfer-to-task-manager. Transfer custom field to task manager. Tags: Board.

Inputs: path (required).

weeek_transfer_global_custom_field_to_boardTransfer global custom field to boardC

POST /tm/custom-fields/{id}/transfer-to-board. Transfer global custom field to board. Tags: Custom fields. Body: application/json.

Inputs: path (required), body.

weeek_transfer_global_custom_field_to_projectTransfer global custom field to projectC

POST /tm/custom-fields/{id}/transfer-to-project. Transfer global custom field to project. Tags: Custom fields. Body: application/json.

Inputs: path (required), body.

weeek_un_archive_projectUn Archive projectC

POST /tm/projects/{id}/un-archive. Un Archive project. Tags: Project. Body: text/plain.

Inputs: path (required), body.

weeek_un_complete_taskUn complete taskC

POST /tm/tasks/{id}/un-complete. Un complete task. Tags: Task. Body: text/plain.

Inputs: path (required), body.

weeek_update_a_contactUpdate a contactC

PUT /crm/contacts/{id}. Update a contact. Tags: Contacts. Body: application/json.

Inputs: path (required), body.

weeek_update_a_custom_fieldUpdate a custom fieldC

PUT /tm/projects/{project_id}/custom-fields/{id}. Update a custom field. Tags: Project. Body: application/json.

Inputs: path (required), body.

weeek_update_a_custom_field_2Update a custom fieldC

PUT /tm/boards/{board_id}/custom-fields/{id}. Update a custom field. Tags: Board. Body: application/json.

Inputs: path (required), body.

weeek_update_a_custom_field_3Update a custom fieldC

PUT /crm/funnels/{funnel_id}/custom-fields/{id}. Update a custom field. Tags: Funnels. Body: application/json.

Inputs: path (required), body.

weeek_update_a_custom_field_optionUpdate a custom field optionC

PUT /tm/projects/{project_id}/custom-fields/{custom_field_id}/options/{id}. Update a custom field option. Tags: Project. Body: application/json.

Inputs: path (required), body.

weeek_update_a_custom_field_option_2Update a custom field optionC

PUT /tm/boards/{board_id}/custom-fields/{custom_field_id}/options/{id}. Update a custom field option. Tags: Board. Body: application/json.

Inputs: path (required), body.

weeek_update_a_custom_field_option_3Update a custom field optionC

PUT /crm/funnels/{funnel_id}/custom-fields/{custom_field_id}/options/{id}. Update a custom field option. Tags: Funnels. Body: application/json.

Inputs: path (required), body.

weeek_update_a_dealUpdate a dealC

PUT /crm/deals/{id}. Update a deal. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_update_a_deal_fieldsUpdate a deal fieldsC

PATCH /crm/deals/{id}. Update a deal fields. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_update_a_funnelUpdate a funnelC

PUT /crm/funnels/{id}. Update a funnel. Tags: Funnels. Body: application/json.

Inputs: path (required), body.

weeek_update_a_funnel_statusUpdate a funnel statusC

PUT /crm/statuses/{id}. Update a funnel status. Tags: Funnel Statuses. Body: application/json.

Inputs: path (required), body.

weeek_update_an_organizationUpdate an organizationC

PUT /crm/organizations/{id}. Update an organization. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_update_a_taskUpdate a taskC

PUT /tm/tasks/{id}. Update a task. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_update_a_time_entryUpdate a time entryC

PUT /tm/tasks/{task_id}/time-entries/{time_entry_id}. Update a time entry. Tags: Task. Body: application/json.

Inputs: path (required), body.

weeek_update_boardUpdate boardC

PUT /tm/boards/{id}. Update board. Tags: Board. Body: application/json.

Inputs: path (required), body.

weeek_update_board_columnUpdate board columnD

PUT /tm/board-columns/{id}. Update board column. Tags: BoardColumn. Body: application/json.

Inputs: path (required), body.

weeek_update_global_custom_fieldUpdate global custom fieldC

PUT /tm/custom-fields/{id}. Update global custom field. Tags: Custom fields. Body: application/json.

Inputs: path (required), body.

weeek_update_global_custom_field_optionUpdate global custom field optionC

PUT /tm/custom-fields/{custom_field_id}/options/{id}. Update global custom field option. Tags: Custom fields. Body: application/json.

Inputs: path (required), body.

weeek_update_portfolioUpdate portfolioC

PUT /tm/portfolios/{id}. Update portfolio. Tags: Portfolio. Body: application/json.

Inputs: path (required), body.

weeek_update_project_infoUpdate project infoC

PUT /tm/projects/{id}. Update project info. Tags: Project. Body: application/json.

Inputs: path (required), body.

weeek_update_tagUpdate tagD

PUT /ws/tags/{id}. Update tag. Tags: Tags. Body: application/json.

Inputs: path (required), body.

weeek_update_the_addressUpdate the addressC

PUT /crm/organizations/{organizationId}/addresses/{addressId}. Update the address. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_update_the_deal_funnelUpdate the deal funnelC

PUT /crm/deals/{id}/funnel. Update the deal funnel. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_update_the_deal_funnel_statusUpdate the deal funnel statusC

PUT /crm/deals/{id}/status. Update the deal funnel status. Tags: Deals. Body: application/json.

Inputs: path (required), body.

weeek_update_the_emailUpdate the emailC

PUT /crm/organizations/{organizationId}/emails/{emailId}. Update the email. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_update_the_email_2Update the emailC

PUT /crm/contacts/{contactId}/emails/{emailId}. Update the email. Tags: Contacts. Body: application/json.

Inputs: path (required), body.

weeek_update_the_phoneUpdate the phoneC

PUT /crm/organizations/{organizationId}/phones/{phoneId}. Update the phone. Tags: Organizations. Body: application/json.

Inputs: path (required), body.

weeek_update_the_phone_2Update the phoneC

PUT /crm/contacts/{contactsId}/phones/{phoneId}. Update the phone. Tags: Contacts. Body: application/json.

Inputs: path (required), body.

weeek_upload_attachmentsUpload attachmentsC

POST /tm/tasks/{task_id}/attachments. Upload attachments. Tags: Task. Body: multipart/form-data.

Inputs: path (required), files (required), form.

weeek_upload_attachments_2Upload attachmentsC

POST /crm/deals/{deal_id}/attachments. Upload attachments. Tags: Deals. Body: multipart/form-data.

Inputs: path (required), files (required), form.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.1/5.0

    Scored across 154 tools

    Disambiguation2/5

    Many tools have overlapping purposes differentiated only by numeric suffixes (e.g., weeek_attach_a_tag, _2, _3), lacking clear target indication in names. Additionally, similar operations exist for different entities (deals, organizations, contacts) without disambiguation in the tool name, forcing reliance on descriptions.

    Naming Consistency2/5

    Naming follows a general weeek_verb_... pattern but is inconsistent: sometimes uses articles (weeek_get_a_contact) and sometimes not (weeek_get_tasks), and suffixes like _2, _3 are arbitrary. Some tools like weeek_tag and weeek_tag_list break the pattern. Overall, no consistent naming strategy across the set.

    Tool Count1/5

    154 tools is far too many for a single server. While the domain is broad (task management, CRM, etc.), the granularity is excessive; many operations could be combined via parameters. This extreme count overwhelms agents without clear benefit.

    Completeness4/5

    The server provides comprehensive CRUD and lifecycle operations for most entities (tasks, projects, contacts, deals, organizations, funnels, custom fields, etc.), including additional actions like move, attach, and archive. Minor gaps include lack of search endpoints and some missing list operations, but the core domain is well-covered.

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Full-featured MCP server integrating all 71 endpoints of the Weeek API as MCP tools for AI clients, enabling task, project, and workspace management via natural language.
      2
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for interacting with Kaiten project management through its REST API. Enables managing spaces, boards, cards, comments, checklists, tags, and time logs.
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Read-only MCP server for the Weeek Public API. Use it from Cursor or Claude Code to browse projects, search tasks, read attachments, and (with a browser session) load task comments.
      66 npm
      MIT