com.teamwork/mcp

The Teamwork.com official MCP server helps teams efficiently manage client projects with AI.

โ˜… 16MITdevtools

Install

Config snippet generator goes here (5 client tabs)

README

# Teamwork MCP Server

> Model Context Protocol server for Teamwork.com integration with Large Language
> Models

[![Go Report Card](https://goreportcard.com/badge/github.com/teamwork/mcp)](https://goreportcard.com/report/github.com/teamwork/mcp)
[![Go](https://img.shields.io/badge/Go-1.26.0-blue.svg)](https://golang.org/)
[![MCP](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io/)

๐Ÿ“Œ Are you a Teamwork.com user wanting to connect AI tools to your Teamwork.com
site right now? Jump straight to the **[Usage Guide](docs/usage/README.md)** for
tokens, enabling MCP, and client configuration examples.

## ๐Ÿ“– Overview

This MCP (Model Context Protocol) server enables seamless integration between
Large Language Models and Teamwork.com. It provides a standardized interface for
LLMs to interact with Teamwork.com projects, allowing AI agents to perform
various project management operations.

### ๐Ÿค– What is MCP?

Model Context Protocol (MCP) is an open protocol that standardizes how
applications provide context to LLMs. This server describes all the actions
available in Teamwork.com (tools) in a way that LLMs can understand and execute
through AI agents.

## โœจ Features

- **Multiple Transport Modes**: HTTP and STDIO interfaces for different deployment scenarios
- **Secure Authentication**: Bearer token and OAuth2 integration with Teamwork.com
- **Tool Framework**: Extensible toolset architecture for adding new capabilities
- **Production Ready**: Comprehensive logging, monitoring, and observability
- **Read-Only Mode**: Optional restriction to read-only operations for safety

## ๐Ÿš€ Available Servers

This project provides three different ways to interact with the Teamwork.com MCP
server:

### ๐Ÿ“ก HTTP Server

Production-ready HTTP server for cloud deployments and multi-client support.

**๐Ÿ“– [Full HTTP Server Documentation](cmd/mcp-http/README.md)**

Quick start:
```bash
TW_MCP_SERVER_ADDRESS=:8080 go run cmd/mcp-http/main.go
```

### ๐Ÿ’ฌ STDIO Server

Direct STDIO interface for desktop applications and development environments.

**๐Ÿ“– [Full STDIO Server Documentation](cmd/mcp-stdio/README.md)**

Quick start:
```bash
TW_MCP_BEARER_TOKEN=your-token go run cmd/mcp-stdio/main.go
```

### ๐Ÿ› ๏ธ HTTP CLI

Command-line tool for testing and debugging MCP server functionality.

**๐Ÿ“– [Full HTTP CLI Documentation](cmd/mcp-http-cli/README.md)**

Quick start:
```bash
go run cmd/mcp-http-cli/main.go -mcp-url=https://mcp.example.com list-tools
```

## ๐Ÿ“‹ Prerequisites

- Go 1.26 or later
- Valid Teamwork.com API credentials (bearer token or OAuth2 setup)

## ๐Ÿงช Development & Testing

### Running Tests
```bash
# Run all tests
go test ./...

# Run specific package tests
go test ./internal/twprojects/
```

### MCP Inspector
For debugging purposes, use the [MCP Inspector tool](https://github.com/modelcontextprotocol/inspector):

```bash
NODE_EXTRA_CA_CERTS=letsencrypt-stg-root-x1.pem npx @modelcontextprotocol/inspector node build/index.js
```

> [!IMPORTANT]
> **Note**: The `NODE_EXTRA_CA_CERTS` environment variable is required when
> using OAuth2 authentication with the Let's Encrypt certification authority.
> Download the certificate [here](https://letsencrypt.org/certs/staging/letsencrypt-stg-root-x1.pem).

## ๐Ÿ—๏ธ Architecture

```
โ”œโ”€โ”€ cmd/
โ”‚   โ”œโ”€โ”€ mcp-http/          # HTTP server implementation
โ”‚   โ”œโ”€โ”€ mcp-stdio/         # STDIO server implementation
โ”‚   โ””โ”€โ”€ mcp-http-cli/      # CLI tool for testing via HTTP
โ”œโ”€โ”€ internal/
โ”‚   โ”œโ”€โ”€ auth/              # Authentication helpers (bearer & OAuth2 token handling)
โ”‚   โ”œโ”€โ”€ config/            # Configuration management (env, flags)
โ”‚   โ”œโ”€โ”€ helpers/           # Shared utility functions (errors, link helpers, tool parsing)
โ”‚   โ”œโ”€โ”€ request/           # HTTP request primitives / Teamwork API wiring
โ”‚   โ”œโ”€โ”€ toolsets/          # Tool framework and registration logic
โ”‚   โ””โ”€โ”€ twprojects/        # Teamwork project/domain tools (tasks, tags, timers, etc.)
โ”œโ”€โ”€ examples/              # Usage & integration examples (LangChain Node/Python)
โ”œโ”€โ”€ docs/usage/            # End-user setup & connection guide
โ”œโ”€โ”€ Makefile               # Common developer tasks
โ”œโ”€โ”€ Dockerfile             # Container build configuration
โ”œโ”€โ”€ CODE_OF_CONDUCT.md     # Community guidelines
โ”œโ”€โ”€ CONTRIBUTING.md        # Contribution guide
โ””โ”€โ”€ SECURITY.md            # Security policy
```