Teamwork MCP
An MCP server that connects to the Teamwork API, providing a simplified interface for interacting with Teamwork projects and tasks.
Vizioz
README
Teamwork MCP
An MCP server that connects to the Teamwork API, providing a simplified interface for interacting with Teamwork projects and tasks.
Features
- Connect to Teamwork API
- Retrieve projects and tasks
- Create, update, and delete tasks
- RESTful API endpoints
- Error handling and logging
- MCP server for integration with Cursor and other applications
Prerequisites
- Node.js (v14.17 or higher, recommend 18+ or even better latest LTS version)
- npm or yarn
- Teamwork account with API access
Available Teamwork MCP Tools
The following tools are available through the MCP server:
Project Tools
getProjects
- Get all projects from TeamworkgetCurrentProject
- Gets details about the current projectcreateProject
- Create a new project in Teamwork
Task Tools
getTasks
- Get all tasks from TeamworkgetTasksByProjectId
- Get all tasks from a specific project in TeamworkgetTaskListsByProjectId
- Get all task lists from a specific project in TeamworkgetTaskById
- Get a specific task by ID from TeamworkcreateTask
- Create a new task in TeamworkcreateSubTask
- Create a new subtask under a parent task in TeamworkupdateTask
- Update an existing task in TeamworkdeleteTask
- Delete a task from TeamworkgetTasksMetricsComplete
- Get the total count of completed tasks in TeamworkgetTasksMetricsLate
- Get the total count of late tasks in TeamworkgetTaskSubtasks
- Get all subtasks for a specific task in TeamworkgetTaskComments
- Get comments for a specific task from Teamwork
People Tools
getPeople
- Get all people from TeamworkgetPersonById
- Get a specific person by ID from TeamworkgetProjectPeople
- Get all people assigned to a specific project from TeamworkaddPeopleToProject
- Add people to a specific project in TeamworkdeletePerson
- Delete a person from TeamworkgetProjectsPeopleMetricsPerformance
- Get people metrics performancegetProjectsPeopleUtilization
- Get people utilizationgetProjectPerson
- Get a specific person on a project
Reporting Tools
getProjectsReportingUserTaskCompletion
- Get user task completion reportgetProjectsReportingUtilization
- Get utilization report in various formats CSV & HTML
Time Tools
getTime
- Get all time entriesgetProjectsAllocationsTime
- Get project allocations time
Installation
-
Clone the repository:
git clone https://github.com/readingdancer/teamwork-mcp.git cd teamwork-mcp
-
dependencies:
npm install
-
Create a
.env
file based on the.env.example
file:cp .env.example .env
-
Update the
.env
file with your Teamwork credentials.
Configuration
Edit the .env
file to configure the application:
PORT
: The port on which the server will run (default: 3000)NODE_ENV
: The environment (development, production, test)LOG_LEVEL
: Logging level (info, error, debug)TEAMWORK_DOMAIN
: Your Teamwork domain name (e.g., "your-company" for https://your-company.teamwork.com)TEAMWORK_USERNAME
: Your Teamwork username (email)TEAMWORK_PASSWORD
: Your Teamwork password
Setting Credentials
You can provide your Teamwork credentials in three ways:
-
Environment Variables: Set
TEAMWORK_DOMAIN
,TEAMWORK_USERNAME
, andTEAMWORK_PASSWORD
in your environment. -
.env File: Create a
.env
file with the required variables as shown above. -
Command Line Arguments: Pass credentials when running the application:
node build/index.js --teamwork-domain=your-company --teamwork-username=your-email@example.com --teamwork-password=your-password
Or using short form:
node build/index.js --domain=your-company --user=your-email@example.com --pass=your-password
Tool Filtering
You can control which tools are available to the MCP server using the following command-line arguments:
-
Allow List: Only expose specific tools:
node build/index.js --allow-tools=getProjects,getTasks,getTaskById
Or using short form:
node build/index.js --allow=getProjects,getTasks,getTaskById
-
Deny List: Expose all tools except those specified:
node build/index.js --deny-tools=deleteTask,updateTask
Or using short form:
node build/index.js --deny=deleteTask,updateTask
Tool Filtering with Groups
You can now specify groups of tools for filtering, allowing for more flexible control over which tools are available to the MCP server. The available groups are:
- Projects: Includes all project-related tools.
- Tasks: Includes all task-related tools.
- People: Includes all people-related tools.
- Reporting: Includes all reporting-related tools.
- Time: Includes all time-related tools.
Using Groups in Tool Filtering
You can specify these groups in the allow or deny lists to include or exclude all tools within a group. For example:
-
Allow List with Groups: Only expose specific groups of tools:
node build/index.js --allow-tools=Tasks,People
Or using short form:
node build/index.js --allow=Tasks,People
-
Deny List with Groups: Expose all tools except those in specified groups:
node build/index.js --deny-tools=Reporting,Time
Or using short form:
node build/index.js --deny=Reporting,Time
By default, all tools are exposed if neither allow nor deny list is provided. If both are provided, the allow list takes precedence.
The tool filtering is enforced at two levels for enhanced security:
- When listing available tools (tools not in the allow list or in the deny list won't be visible)
- When executing tool calls (attempts to call filtered tools will be rejected with an error)
Setting Up Your Teamwork Project
To associate your current solution with a Teamwork project, you can use the following method:
Using a Configuration File
You can create a .teamwork
file in the root of your project with the following structure:
PROJECT_ID = YourTeamworkProjectID
This simple configuration file associates your solution with a specific Teamwork project, we may use it to store more details in the future.
Once configured, the MCP will be able to find your Teamwork project and associate it with your current solution, reducing the number of API calls needed to get the project and tasks related to the solution you are working on.
Usage
Using NPX (Recommended)
The easiest way to use Teamwork MCP is with npx:
npx teamwork-mcp
You can also pass configuration options:
npx teamwork-mcp --domain=your-company --user=your-email@example.com --pass=your-password
Building the application
Note: This is not needed if you just want to use the MCP, use the NPX instructions above.
Build the application:
npm run build
This will compile the TypeScript code ready to be used as an MCP Server
Running as an MCP Server
To run as an MCP server for integration with Cursor and other applications, if you are using the .env file for your username, password & url, or if you have saved them in environment variables:
NOTE: Don't forget to change the drive and path details based on where you have saved the repository.
node C:/your-full-path/build/index.js
Or you can pass them using line arguments:
node C:/your-full-path/build/index.js --teamwork-domain=your-company --teamwork-username=your-email@example.com --teamwork-password=your-password
You can also use the short form:
node C:/your-full-path/build/index.js --domain=your-company --user=your-email@example.com --pass=your-password
Using the MCP Inspector
To run the MCP inspector for debugging:
npm run inspector
Adding to Cursor (and other MCP Clients)
To add this MCP server to Cursor:
Versions before 0.47
- Open Cursor Settings > Features > MCP
- Click "+ Add New MCP Server"
- Enter a name for the server (e.g., "Teamwork API")
- Select "stdio" as the transport type
- Enter the command to run the server:
npx @vizioz/teamwork-mcp
and add the credentials and domain command line arguments as mentioned above.- You can include tool filtering options:
--allow=getProjects,getTasks
or--deny=deleteTask
- You can include tool filtering options:
- Click "Add"
Versions after 0.47 ( editing the config manually )
"Teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"youruser@yourdomain.com",
"--pass",
"yourPassword"
]
}
If you want to add the allow or deny arguments mentioned above you just add them like this, you can add any of the examples given above, you can also add both groups and individual tools as shown below:
"Teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"youruser@yourdomain.com",
"--pass",
"yourPassword",
"--allow",
"Tasks,Projects",
"--deny",
"getProjectsPeopleMetricsPerformance,getProjectsPeopleUtilization"
]
The Teamwork MCP tools will now be available to the Cursor Agent in Composer.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Disclaimer
This project is not affiliated with, endorsed by, or sponsored by Teamwork.com. The use of the name "Teamwork" in the package name (@vizioz/teamwork-mcp) is solely for descriptive purposes to indicate compatibility with the Teamwork.com API.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.