Skip to main content
Glama

Teamwork MCP

Todo.md16.9 kB
# Teamwork API V3 Endpoints Todo List ## Activity - 🟨 DELETE /projects/api/v3/activity/{activityLogId} - 🟨 GET /projects/api/v3/latestactivity.json - 🟨 GET /projects/api/v3/projects/{projectId}/latestactivity - 🟨 DELETE /projects/api/v3/projects/{projectId}/activity ## Comments - ✅ POST /{resource}/{resourceId}/comments.json ( Resource options: links, milestones, files, notebooks or tasks ) ## TimeTracking - ✅ GET /projects/api/v3/allocations/{allocationId}/time.json - 🟨 GET /projects/api/v3/companies/time.json - 🟨 GET /projects/api/v3/me/timers.json - 🟨 POST /projects/api/v3/me/timers.json - 🟨 DELETE /projects/api/v3/me/timers/{timerId}.json - 🟨 PUT /projects/api/v3/me/timers/{timerId}.json - 🟨 PUT /projects/api/v3/me/timers/{timerId}/complete.json - 🟨 PUT /projects/api/v3/me/timers/{timerId}/pause.json - 🟨 PUT /projects/api/v3/me/timers/{timerId}/resume.json - 🟨 PUT /projects/api/v3/me/timers/{timerId}/undelete.json - 🟨 GET /projects/api/v3/projects/{projectId}/time.json - 🟨 POST /projects/api/v3/projects/{projectId}/time.json - 🟨 GET /projects/api/v3/projects/{projectId}/time/total.json - 🟨 GET /projects/api/v3/reporting/precanned/companytime.json - 🟨 GET /projects/api/v3/tasklists/{tasklistId}/time/total.json - 🟨 GET /projects/api/v3/tasks/{taskId}/time.json - 🟨 POST /projects/api/v3/tasks/{taskId}/time.json - 🟨 GET /projects/api/v3/tasks/{taskId}/time/total.json - ✅ GET /projects/api/v3/time.json - 🟨 GET /projects/api/v3/time/total.json - 🟨 DELETE /projects/api/v3/time/{timelogId}.json - 🟨 GET /projects/api/v3/time/{timelogId}.json - 🟨 PATCH /projects/api/v3/time/{timelogId}.json - 🟨 GET /projects/api/v3/timers.json - 🟨 GET /projects/api/v3/timers/{timerId}.json ## Budgets - 🟨 DELETE /projects/api/v3/budget/notifications/{notificationId}.json - 🟨 PATCH /projects/api/v3/budget/notifications/{notificationId}.json - 🟨 POST /projects/api/v3/budgets/:id/tasklists/budgets/bulk/add.json - 🟨 PATCH /projects/api/v3/projects/budgets/:budgetId/tasklists/budgets/:tasklistId.json - 🟨 GET /projects/api/v3/projects/budgets/:id/tasklists/budgets.json - 🟨 PUT /projects/api/v3/projects/budgets/:id/tasklists/budgets.json ## CalendarEvents - 🟨 GET /projects/api/v3/calendar/events.csv - 🟨 GET /projects/api/v3/calendar/events.html - 🟨 GET /projects/api/v3/calendar/events.pdf - 🟨 GET /projects/api/v3/calendar/events.xlsx ## Companies - ✅ GET /projects/api/v3/companies.json - ✅ POST /projects/api/v3/companies.json - ✅ DELETE /projects/api/v3/companies/{companyId}.json - ✅ GET /projects/api/v3/companies/{companyId}.json - ✅ PATCH /projects/api/v3/companies/{companyId}.json ## BETA - 🟨 POST /projects/api/v3/companies/:id/domains.json - 🟨 DELETE /projects/api/v3/companies/domains/{id}.json - 🟨 PATCH /projects/api/v3/companies/domains/{id}.json ## CustomFields - 🟨 GET /projects/api/v3/companies/{companyId}/customfields.json - 🟨 POST /projects/api/v3/companies/{companyId}/customfields.json - 🟨 POST /projects/api/v3/companies/{companyId}/customfields/bulk/delete.json - 🟨 POST /projects/api/v3/companies/{companyId}/customfields/bulk/update.json - 🟨 DELETE /projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json - 🟨 GET /projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json - 🟨 PATCH /projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json - 🟨 GET /projects/api/v3/customfields.json - 🟨 POST /projects/api/v3/customfields.json - 🟨 POST /projects/api/v3/customfields/bulk/delete.json - 🟨 DELETE /projects/api/v3/customfields/{customFieldId}.json - 🟨 GET /projects/api/v3/customfields/{customFieldId}.json - 🟨 PATCH /projects/api/v3/customfields/{customFieldId}.json - 🟨 PUT /projects/api/v3/customfields/{customFieldId}.json - 🟨 GET /projects/api/v3/projects/{projectId}/customfields.json - 🟨 POST /projects/api/v3/projects/{projectId}/customfields.json - 🟨 POST /projects/api/v3/projects/{projectId}/customfields/bulk/delete.json - 🟨 POST /projects/api/v3/projects/{projectId}/customfields/bulk/update.json - 🟨 DELETE /projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json - 🟨 GET /projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json - 🟨 PATCH /projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json - 🟨 GET /projects/api/v3/tasks/{taskId}/customfields.json - 🟨 POST /projects/api/v3/tasks/{taskId}/customfields.json - 🟨 POST /projects/api/v3/tasks/{taskId}/customfields/bulk/delete.json - 🟨 POST /projects/api/v3/tasks/{taskId}/customfields/bulk/update.json - 🟨 DELETE /projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json - 🟨 GET /projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json - 🟨 PATCH /projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json ## Dashboards - 🟨 GET /projects/api/v3/dashboards.json ## Features - 🟨 GET /projects/api/v3/features.json ## FileComments - 🟨 GET /projects/api/v3/files/{fileId}/comments.json ## FileVersionComments - 🟨 GET /projects/api/v3/fileversions/{id}/comments.json ## Forms - 🟨 GET /projects/api/v3/forms.json - 🟨 POST /projects/api/v3/forms.json - 🟨 DELETE /projects/api/v3/forms/{formId}.json - 🟨 GET /projects/api/v3/forms/{formId}.json - 🟨 PATCH /projects/api/v3/forms/{formId}.json - 🟨 GET /projects/api/v3/forms/{formId}/draft.json ## FormsPublic - 🟨 GET /projects/api/v3/forms/public/{token}.json - 🟨 POST /projects/api/v3/forms/{formID}/copy.json ## Importers - 🟨 GET /projects/api/v3/importer/stats.json ## Messages - 🟨 GET /projects/api/v3/messages.json - 🟨 GET /projects/api/v3/messages/{messageId}.json - 🟨 PATCH /projects/api/v3/messages/{messageId}.json ## Milestones - 🟨 GET /projects/api/v3/milestones.json - 🟨 GET /projects/api/v3/milestones/metrics/deadlines.json - 🟨 GET /projects/api/v3/milestones/{milestoneId}.json - 🟨 GET /projects/api/v3/projects/{projectId}/milestones.json ## MilestoneComments - 🟨 GET /projects/api/v3/milestones/{milestoneId}/comments.json ## Notebooks - 🟨 GET /projects/api/v3/notebooks.json - 🟨 DELETE /projects/api/v3/notebooks/{notebookId}.json - 🟨 GET /projects/api/v3/notebooks/{notebookId}.json - 🟨 PATCH /projects/api/v3/notebooks/{notebookId}.json - 🟨 GET /projects/api/v3/notebooks/{notebookId}/compare.json - 🟨 PUT /projects/api/v3/notebooks/{notebookId}/lock.json - 🟨 PUT /projects/api/v3/notebooks/{notebookId}/unlock.json - 🟨 DELETE /projects/api/v3/notebooks/{notebookId}/versions.json - 🟨 GET /projects/api/v3/notebooks/{notebookId}/versions.json - 🟨 GET /projects/api/v3/notebooks/{notebookId}/versions/{versionId}.json - 🟨 POST /projects/api/v3/projects/{projectId}/notebooks.json ## NotebookComments - 🟨 GET /projects/api/v3/notebooks/{notebookId}/comments.json ## People - ✅ PUT /people/{personId}.json - ✅ GET /projects/api/v3/people.json - ✅ GET /projects/api/v3/people/{personId}.json - ✅ GET /projects/api/v3/projects/{projectId}/people.json - ✅ POST /projects/api/v3/projects/{projectId}/people.json - ✅ DELETE /projects/api/v3/people/{personId}.json - ✅ GET /projects/api/v3/people/metrics/performance.json - ✅ GET /projects/api/v3/people/utilization.json - ✅ GET /projects/api/v3/projects/{projectId}/people/{personId}.json - ✅ GET /projects/api/v3/reporting/precanned/usertaskcompletion/{userId}.json - ✅ GET /projects/api/v3/reporting/precanned/utilization.csv - ✅ GET /projects/api/v3/reporting/precanned/utilization.html - ✅ GET /projects/api/v3/reporting/precanned/utilization.pdf - ✅ GET /projects/api/v3/reporting/precanned/utilization.xlsx ## Person - ✅ GET /projects/api/v3/people/{personId}.json - ✅ GET /projects/api/v3/projects/{projectId}/people/{personId}.json - ✅ GET /projects/api/v3/reporting/precanned/usertaskcompletion/{userId}.json ## Categories - 🟨 GET /projects/api/v3/projectcategories.json - 🟨 GET /projects/api/v3/projectcategories/{categoryId}.json - 🟨 GET /projects/api/v3/projects/teamwork/categories.json ## Projects - ✅ GET /projects/api/v3/projects.json - 🟨 PUT /projects/api/v3/projects/featureorder.json - 🟨 GET /projects/api/v3/projects/metrics/active.json - 🟨 GET /projects/api/v3/projects/metrics/billable.json - 🟨 GET /projects/api/v3/projects/metrics/healths.json - 🟨 GET /projects/api/v3/projects/metrics/invoice.json - 🟨 GET /projects/api/v3/projects/metrics/owners.json - 🟨 GET /projects/api/v3/projects/metrics/unbilled.json - 🟨 GET /projects/api/v3/projects/starred.json - 🟨 GET /projects/api/v3/projects/teamwork/samples.json - 🟨 GET /projects/api/v3/projects/templates.json - 🟨 PUT /projects/api/v3/projects/tentative/{projectId}/convert.json - ✅ GET /projects/api/v3/projects/{projectId}.json - 🟨 GET /projects/api/v3/projects/{projectId}/featureorder.json - 🟨 PUT /projects/api/v3/projects/{projectId}/featureorder.json - 🟨 GET /projects/api/v3/reporting/precanned/health/projects.csv - 🟨 GET /projects/api/v3/reporting/precanned/health/projects.html - 🟨 GET /projects/api/v3/reporting/precanned/health/projects.pdf - 🟨 GET /projects/api/v3/reporting/precanned/health/projects.xlsx ## ProjectUpdates - 🟨 GET /projects/api/v3/projects/updates.json - 🟨 GET /projects/api/v3/projects/{projectIds}/updates.json ## Risks - 🟨 GET /projects/api/v3/projects/{projectId}/risks - 🟨 PUT /projects/api/v3/projects/{projectId}/risks/copy - 🟨 GET /projects/api/v3/risks.json ## Summary - 🟨 GET /projects/api/v3/projects/{projectId}/summary.json - 🟨 GET /projects/api/v3/summary.json ## TaskLists - ✅ GET /projects/api/v3/projects/{projectId}/tasklists - 🟨 GET /projects/api/v3/projects/{projectId}/tasklists.csv - 🟨 GET /projects/api/v3/projects/{projectId}/tasklists.html - 🟨 GET /projects/api/v3/projects/{projectId}/tasklists.pdf - 🟨 GET /projects/api/v3/projects/{projectId}/tasklists.xlsx - 🟨 GET /projects/api/v3/tasklists - 🟨 GET /projects/api/v3/tasklists/{tasklistId} ## Tasklists - 🟨 DELETE /projects/api/v3/tasklists/{tasklistId}.json ## Tasks - ✅ POST /projects/api/v3/tasklists/{tasklistId}/tasks.json - ✅ GET /projects/api/v3/projects/{projectId}/tasks.json - ✅ GET /projects/api/v3/tasklists/{tasklistId}/tasks.json - ✅ GET /projects/api/v3/tasks.json - ✅ GET /projects/api/v3/tasks/metrics/complete.json - ✅ GET /projects/api/v3/tasks/metrics/late.json - ✅ DELETE /projects/api/v3/tasks/{taskId}.json - ✅ GET /projects/api/v3/tasks/{taskId}.json - ✅ PATCH /projects/api/v3/tasks/{taskId}.json - ✅ GET /projects/api/v3/tasks/{taskId}/subtasks.json - ✅ POST /projects/api/v3/tasks/{taskId}/subtasks.json - 🟨 GET /projects/api/v3/reporting/precanned/plannedvsactual/tasks.csv - 🟨 GET /projects/api/v3/reporting/precanned/plannedvsactual/tasks.html - 🟨 GET /projects/api/v3/reporting/precanned/plannedvsactual/tasks.pdf - 🟨 GET /projects/api/v3/reporting/precanned/plannedvsactual/tasks.xlsx ## TaskComments - ✅ GET /projects/api/v3/tasks/{taskId}/comments.json ## PeopleStatus - 🟨 GET /projects/api/v3/statuses.json - 🟨 GET /projects/api/v3/statuses/timeline.json - 🟨 GET /projects/api/v3/teams/{teamId}/statuses/timeline.json ## Tags - 🟨 GET /projects/api/v3/tags.json - 🟨 POST /projects/api/v3/tags.json - 🟨 POST /projects/api/v3/tags/bulk/delete.json - 🟨 DELETE /projects/api/v3/tags/{tagId}.json - 🟨 GET /projects/api/v3/tags/{tagId}.json - 🟨 PATCH /projects/api/v3/tags/{tagId}.json ## Timesheets - 🟨 GET /projects/api/v3/timesheets.json - 🟨 GET /projects/api/v3/timesheets/totals.json ## TimeZone - ✅ GET /timezones.json ## Workload - 🟨 GET /projects/api/v3/workload/planners.json ## MCP Implementation Issues ### 04/13/2025 - ✅ Implemented Timezone endpoint - Added GET /timezones.json for retrieving all available timezones - Useful for updating user timezones and seeing available options - Added proper error handling and logging - ✅ Implemented Person Update endpoint - Added PUT /people/{personId}.json for updating user information - Added support for updating timezone, name, email, and other user properties - Added proper error handling and validation - ✅ Implemented Company API endpoints - Added GET /projects/api/v3/companies.json for listing all companies - Added GET /projects/api/v3/companies/{companyId}.json for retrieving a specific company - Added POST /projects/api/v3/companies.json for creating new companies - Added PATCH /projects/api/v3/companies/{companyId}.json for updating existing companies - Added DELETE /projects/api/v3/companies/{companyId}.json for deleting companies ### 04/11/2025 - ✅ Updated the license file - ✅ Cleaned up the start up by removing all console logs (now it just logs to a file) ### 04/10/2025 - ✅ Added the Create Comment Endpoint ### 03/27/2025 - ✅ Implemented CreateComment endpoint - Added service implementation for creating comments on resources (tasks, milestones, notebooks, links, fileversions) - Added tool implementation following existing patterns - Updated service and tool indexes to include the new functionality ### 03/26/2025 - ✅ Fix build script in package.json to handle missing .env file gracefully in GitHub Actions ### 03/25/2025 - ✅ Added GitHub Actions workflow for npm publishing - Created npm-publish.yml workflow that triggers on release creation - Configured workflow to build and publish package to npmjs.com - Setup authentication using NPM_TOKEN secret ### 03/14/2025 - ✅ GET /projects/api/v3/time.json - Implemented endpoint to get all time entries - ✅ GET /projects/api/v3/allocations/{allocationId}/time.json ## 03/10/2025 - ✅ Implemented CreateSubTask endpoint - Added service implementation for creating subtasks - Added tool implementation following the same pattern as CreateTask - Updated service and tool indexes to include the new functionality - ✅ Implemented People endpoints - Added service implementations for getPeople, getPersonById, getProjectPeople, addPeopleToProject, and deletePerson - Added tool implementations for all people services - Updated service and tool indexes to include the new functionality - ✅ Implemented TaskComments endpoint - Added service implementation for getting task comments - Added tool implementation following the same pattern as other task-related tools - Updated service and tool indexes to include the new functionality ### Task Creation and Updates - ✅ Fix updateTask functionality - Updated with Swagger-generated schema and improved error handling - 🟨 Implement proper date handling for task creation and updates - Use `dueAt` format "YYYY-MM-DD" instead of full ISO timestamps - 🟨 Add support for task status values - Need to determine valid status values (only "new" and "active" work; "complete", "completed", "done", and "in-progress" all fail). "Late" status causes a 500 server error, suggesting it might be a valid status but can't be set directly. Setting progress to 100% does not automatically change status. - 🟨 Improve error handling for task creation and updates - Add more detailed error messages - ✅ Support for task assignees works with format: `{"assignees": {"userIds": [22717]}}` - 🟨 Document the proper structure for task creation and updates in README.md ### MCP Server Enhancements - ✅ Add command-line arguments for Allow and Deny lists to control which tools are available - ✅ Enhance security by ensuring both tool listing and tool execution respect the allow/deny lists - ✅ Improve debugging and error handling throughout the MCP server - ✅ Added file logging for better troubleshooting - ✅ Enhanced API client with detailed request/response logging - ✅ Added more detailed error handling in tool handlers - ✅ Added test-connection script to verify Teamwork API connectivity - ✅ Fix JSON response validation issues - ✅ Added response validation and sanitization to ensure proper JSON formatting - ✅ Enhanced createTask handler with better error handling and response validation - ✅ Added comprehensive logging of response data for debugging - ✅ Fix MCP protocol communication issues - ✅ Removed all console logging to prevent interference with the MCP JSON protocol - ✅ Ensured all logging is directed to files only - ✅ Fixed startup errors in the inspector - ✅ Fix task creation validation - ✅ Fixed validation to check for the correct 'name' field instead of 'content' - ✅ Updated both the handler and service implementation to use consistent field names - ✅ Aligned validation with the TaskTask model definition

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vizioz/Teamwork-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server