add-new-teamwork-mcp-endpoint — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited add-new-teamwork-mcp-endpoint (Rules) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP server that connects to the Teamwork API, providing a simplified interface for interacting with Teamwork projects and tasks.
This repository operates under MAOS v1 (Modular Automation Operating System) governance framework, which establishes:
For complete governance documentation, see:
docs/charter-standard.md - Charter principles and delivery frameworkdocs/governance.md - Roles, decision records, CI, and security practicesdocs/tao-multi-agent-codex.md - Multi-agent orchestrationdocs/orchestration.md - Orchestration patternsdocs/conversation-review.md - Conversation Review standarddocs/operational-execution-charter.md - Operational Execution & AccountabilityCONTRIBUTING.md - Contribution guidelines and review processCODE_OF_CONDUCT.md - Code of conductSECURITY.md - Security policies and vulnerability reportingThis MCP server contains automation workflows with elevated privileges that require special governance:
All high-risk operations are:
docs/competitive-intelligence-engine.md)The following tools are available through the MCP server:
getProjects - Get all projects from TeamworkgetCurrentProject - Gets details about the current projectcreateProject - Create a new project in TeamworkgetTasks - Get all tasks from TeamworkgetTasksByProjectId - Get all tasks from a specific project in TeamworkgetTaskListsByProjectId - Get all task lists from a specific project in TeamworkgetTasksByTaskListId - Gets all tasks from a specific task list ID from 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 TeamworkcreateComment - Create a comment related to a task/message/notebookgetCompanies - Get all companies from Teamwork with optional filteringgetCompanyById - Get a specific company by IDcreateCompany - Create a new company in TeamworkupdateCompany - Update an existing company's informationdeleteCompany - Delete a company from TeamworkgetPeople - 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 TeamworkupdatePerson - Update a person's information (timezone, name, email, etc.)getProjectsPeopleMetricsPerformance - Get people metrics performancegetProjectsPeopleUtilization - Get people utilizationgetProjectPerson - Get a specific person on a projectgetProjectsReportingUserTaskCompletion - Get user task completion reportgetProjectsReportingUtilization - Get utilization report in various formats CSV & HTMLgetTime - Get all time entriesgetProjectsAllocationsTime - Get project allocations timegetTimezones - Get all available timezones in Teamwork (useful when updating user timezones)ingestCompetitorDelta - Record a competitor delta, generate a charter brief, trigger Reflex handoffs, and emit Teamwork tasks according to the Competitor Definition MapThe easiest way to use Teamwork MCP is with npx. This method doesn't require cloning the repository or building the code locally:
npx @vizioz/teamwork-mcpYou can also pass configuration options directly:
npx @vizioz/teamwork-mcp --domain=your-company [email protected] --pass=your-passwordYou can provide your Teamwork credentials in three ways:
TEAMWORK_DOMAIN, TEAMWORK_USERNAME, and TEAMWORK_PASSWORD in your environment..env file with the required variables: TEAMWORK_DOMAIN=your-company
[email protected]
TEAMWORK_PASSWORD=your-password npx @vizioz/teamwork-mcp --teamwork-domain=your-company [email protected] --teamwork-password=your-passwordOr using short form:
npx @vizioz/teamwork-mcp --domain=your-company [email protected] --pass=your-password.env, but it must remain untracked (see .gitignore).By default, the Teamwork MCP server creates log files in a logs directory to help with debugging and monitoring. You can disable logging completely using the following methods:
npx @vizioz/teamwork-mcp --disable-loggingOr using the alternative form:
npx @vizioz/teamwork-mcp --no-logging DISABLE_LOGGING=true npx @vizioz/teamwork-mcpWhen logging is enabled, the server creates two log files in the logs directory:
error.log - Contains only error-level messagescombined.log - Contains all log messages (info, warnings, errors)Each log file includes a header with instructions on how to disable logging if needed.
You can control which tools are available to the MCP server using the following command-line arguments:
npx @vizioz/teamwork-mcp --allow-tools=getProjects,getTasks,getTaskByIdOr using short form:
npx @vizioz/teamwork-mcp --allow=getProjects,getTasks,getTaskById npx @vizioz/teamwork-mcp --deny-tools=deleteTask,updateTaskOr using short form:
npx @vizioz/teamwork-mcp --deny=deleteTask,updateTaskYou 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:
You can specify these groups in the allow or deny lists to include or exclude all tools within a group. For example:
npx @vizioz/teamwork-mcp --allow-tools=Tasks,PeopleOr using short form:
npx @vizioz/teamwork-mcp --allow=Tasks,People npx @vizioz/teamwork-mcp --deny-tools=Reporting,TimeOr using short form:
npx @vizioz/teamwork-mcp --deny=Reporting,TimeBy 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:
To associate your current solution with a Teamwork project, you can use the following method:
You can create a .teamwork file in the root of your project with the following structure:
PROJECT_ID = YourTeamworkProjectIDThis 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.
To add this MCP server to Cursor:
#### Versions before 0.47
npx @vizioz/teamwork-mcp and add the credentials and domain command line arguments as mentioned above.--allow=getProjects,getTasks or --deny=deleteTask#### Versions after 0.47 (editing the config manually)
"Teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"[email protected]",
"--pass",
"yourPassword"
]
}To disable logging in Cursor, add the --disable-logging argument:
"Teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"[email protected]",
"--pass",
"yourPassword",
"--disable-logging"
]
}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",
"[email protected]",
"--pass",
"yourPassword",
"--allow",
"Tasks,Projects",
"--deny",
"getProjectsPeopleMetricsPerformance,getProjectsPeopleUtilization"
]
}The Teamwork MCP tools will now be available to the Cursor Agent in Composer.
To add this MCP server to Claude Desktop, edit your Claude Desktop configuration file:
Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Add the following configuration:
{
"mcpServers": {
"teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"[email protected]",
"--pass",
"yourPassword"
]
}
}
}To add this MCP server to Windsurf, follow similar steps to Cursor by adding the MCP server configuration with the npx command and your credentials.
Note: You only need to follow these instructions if you plan to contribute to the project or submit a pull request. For regular usage, use the NPX installation method above.
git clone https://github.com/readingdancer/teamwork-mcp.git
cd teamwork-mcp npm install.env file based on the .env.example file: cp .env.example .env.env file with your Teamwork credentials: PORT=3000
NODE_ENV=development
LOG_LEVEL=info
TEAMWORK_DOMAIN=your-company
[email protected]
TEAMWORK_PASSWORD=your-passwordBuild the application:
npm run buildThis will compile the TypeScript code ready to be used 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.jsOr you can pass them using line arguments:
node C:/your-full-path/build/index.js --teamwork-domain=your-company [email protected] --teamwork-password=your-passwordYou can also use the short form:
node C:/your-full-path/build/index.js --domain=your-company [email protected] --pass=your-passwordTo run the MCP inspector for debugging:
npm run inspectorThe Teamwork MCP server is available as a Docker container from GitHub Container Registry. This provides an easy way to run the server in any containerized environment.
Pull the latest image from GHCR:
docker pull ghcr.io/activ8-ai/teamwork-mcp:latestRun the container with your Teamwork credentials:
# Using API Token (recommended)
docker run -it --rm \
-e TEAMWORK_DOMAIN=your-company \
-e TEAMWORK_API_TOKEN=your-api-token \
ghcr.io/activ8-ai/teamwork-mcp:latest
# Using Username/Password
docker run -it --rm \
-e TEAMWORK_DOMAIN=your-company \
-e [email protected] \
-e TEAMWORK_PASSWORD=your-password \
ghcr.io/activ8-ai/teamwork-mcp:latestYou can also set additional configuration:
docker run -it --rm \
-e TEAMWORK_DOMAIN=your-company \
-e TEAMWORK_API_TOKEN=your-api-token \
-e TEAMWORK_PROJECT_ID=123456 \
-e ALLOW_TOOLS=getProjects,getTasks,createTask \
-e DENY_TOOLS=deleteTask \
-e LOG_LEVEL=info \
ghcr.io/activ8-ai/teamwork-mcp:latestlatest - Latest stable release from main branchsha-<commit> - Specific commit SHAv<version> - Tagged releases (when available)Required Secrets: When using GitHub Actions workflows, ensure these repository secrets are configured:
TEAMWORK_DOMAIN (required)TEAMWORK_API_TOKEN (preferred) OR both TEAMWORK_USERNAME and TEAMWORK_PASSWORDTool Filtering: Use ALLOW_TOOLS and DENY_TOOLS environment variables to control which MCP tools are available, following the format: tool1,tool2,tool3
This project is licensed under the MIT License - see the LICENSE file for details.
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.
Status ------
codex-portal/layer-1-governance/charter-standard-execution.jsonnode scripts/status-badge.js → returns JSON for Shields.io dynamic endpoint72‑Hour Monitoring Kit ----------------------
teamwork-72hour-monitoring/tasks.csvteamwork-72hour-monitoring/setup.mdnpm run monitoring:create (requires .teamwork with TASKLISTID or TASKLISTID env)Multi‑Agent Orchestration -------------------------
enqueueHandoffnpm run orchestrator:dispatch (routes to Notion Relay / Prime / Claude adapters)npm run relay:serve (endpoints: /webhook/prime, /webhook/claude, /webhook/notion (legacy aliases: /webhook/clawed, /webhook/ancillary))Note: This repo contains the Teamwork MCP plus a Notion Relay webhook server. The Notion MCP server (viaactiv8-unified-mcp) lives in theActiv8-AI/mcpmonorepo; seedocs/activ8-unified-mcp-notion-server-setup.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.