# Tower MCP

> Tower MCP Server gives your AI agent direct access to a team's entire project lifecycle. It lets you manage tasks, track projects, and read discussions without ever touching the web UI. Your agent can list all active projects, create new tickets, update status reports using `update_task`, and even pull up shared documents via `list_doc_folders`. This is pure command-line productivity for project management.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** team-collaboration, task-assignment, project-tracking, discussion-threads, workflow-management, team-productivity

## Description

**Tower MCP Server - Manage Projects & Tasks Via AI**

You've got your AI agent hooked up. It gives you direct command-line access to Tower, letting you treat complex project tracking like a conversation. You never gotta touch the web UI again. Your agent handles everything: listing projects, assigning tasks, checking status reports, and pulling shared files—all through simple natural language commands.

**Discovering the Scope of Work**

You wanna know what's going on across your whole portfolio? Run `list_projects` to get a real-time roster showing every collaboration workspace you have access to. Once you pick one, use `get_project` to pull all the deep details about that single project's setup and structure.

**Controlling Tasks and Workflows**

The core of this thing is task management. You can generate a brand new work item anytime by calling `create_task`, specifying exactly what the job is for within a certain project. Need to change something? Use `update_task` to instantly modify key details like changing status, adjusting the assignee, or rewriting the description on an existing ticket. If you need the full picture of one specific task—who owns it, its current status, and its detailed notes—just run `get_task_details`. For a quick overview, however, `list_tasks` gives you a summarized list of every open item in that project.

**Team Coordination and Resources**

Managing people is just as important. Use `list_members` to pull up a complete roster of everyone on the team so you can make accurate assignments. You can also run `list_teams` to see the official names and structure of all available groupings in your workspace. When it comes to files, don't waste time searching folders; simply call `list_doc_folders` to get an immediate list of every shared resource folder tied to a project.

**Monitoring Communication and Status**

Keeping everyone aligned is key. To see what folks are talking about without reading hundreds of emails, run `list_discussions`. This pulls up the latest topics and conversations happening across the entire project history. You can combine this with running `list_tasks` to get a status summary, then use `get_task_details` if you need to know who's actually responsible for that specific item.

**How It All Connects**

Your agent doesn't just run tools; it connects them. You can pull the full list of projects via `list_projects`, then select one, and immediately get all available document locations using `list_doc_folders`. Need to assign someone? First, you check out the roster with `list_members` or see which teams are active with `list_teams`. Once that's done, you can use those details when calling `create_task` to make sure the job lands on the right person. You gotta keep this flow going: list projects -> pick a project -> check members/files -> create task -> update status as it moves along.

It's pure command-line efficiency for managing everything from initial setup to final sign-off.

## Tools

### create_task
Generates a brand new task item within a specified project.

### get_project
Retrieves detailed information about a single, specific project workspace.

### get_task_details
Pulls all the specifics—assignee, description, status—for one existing task item.

### list_discussions
Fetches a list of recent topics and conversations for an entire project.

### list_doc_folders
Lists all document folders associated with a given project, helping you find shared files.

### list_members
Retrieves a complete roster of team members available for assignment and collaboration.

### list_projects
Gets a list of every single project workspace you're connected to in Tower.

### list_tasks
Returns a summary list of all tasks currently active within a specified project.

### list_teams
Displays the names and structure of available team groupings in your workspace.

### update_task
Changes key details—like status, assignee, or description—on an existing task item.

## Prompt Examples

**Prompt:** 
```
List all my active projects on Tower.
```

**Response:** 
```
I've retrieved your Tower projects. You have 3 active projects: 'Design Refresh', 'API Integration', and 'Content Calendar'. Which one would you like to explore?
```

**Prompt:** 
```
Create a task in project 'Design Refresh' titled 'Select primary color palette'.
```

**Response:** 
```
Done! I've created the task 'Select primary color palette' in the 'Design Refresh' project. Would you like to assign it to someone?
```

**Prompt:** 
```
Show me recent discussions in the 'API Integration' project.
```

**Response:** 
```
I've found 4 recent discussions in 'API Integration', including 'Authentication Flow' and 'Endpoint Mapping'. Would you like to see the details of any of these topics?
```

## Capabilities

### List all active projects
Run `list_projects` to get a real-time roster of every collaboration workspace you have access to.

### Create and update tasks
Use `create_task` or `update_task` to instantly generate new work items or change the status/assignee on existing ones.

### Track team membership
Run `list_members` to get a list of all available users and teams for assignment purposes.

### Monitor project discussions
Call `list_discussions` to pull up the latest topics and conversations happening within any given project.

### Retrieve shared resources
Run `list_doc_folders` to see exactly where all the necessary files are stored for a specific project.

## Use Cases

### The Weekly Status Report
A PM needs to compile status for 10 projects. Instead of opening ten dashboards, they tell their agent: 'Give me the completion percentage and assignees for all tasks in Project X.' The agent runs `list_tasks` and gathers the data into one summary.

### The Missing File Hunt
A developer needs the latest wireframes. Instead of guessing which folder it's in, they ask their AI client to 'Show me all document folders for Design Refresh.' The agent calls `list_doc_folders` and hands them the exact path.

### Reassigning Ownership
A task was assigned incorrectly. Instead of manually editing the ticket, the ops lead tells their agent: 'Update Task ABC to assign it to Jane.' The agent executes `update_task` and confirms the change.

### Onboarding New Team Members
A new hire joins the team. The manager asks the agent, 'Who are all the current members on the API Integration project?' The agent runs `list_members`, giving the manager a fresh roster for immediate assignment.

## Benefits

- Skip the UI clicks. You don't have to navigate through five tabs to check a status. Just ask your agent, and it runs `list_tasks` for you right away.
- Keep communication centralized. Use `list_discussions` to instantly pull up topic threads from any project, so you never miss an important decision made off-platform.
- Assign work in natural language. Need a task created? Just tell your agent; it runs `create_task`, assigning the item and logging it immediately.
- See who's available. Run `list_members` to get all team names, then use that list when you need to update an assignment with `update_task`.
- Audit project scope easily. You can run `get_project` to grab the full context and know exactly what boundaries a collaboration workspace operates within.

## How It Works

The bottom line is that your AI client talks directly to Tower's API tools, getting project data without needing a graphical interface.

1. Subscribe to this server and provide your Tower Access Token.
2. Connect your AI client (Claude, Cursor, etc.) to the Vinkius MCP endpoint.
3. Ask your agent a direct question: 'What tasks need updating in Project X?' The agent calls `list_tasks` or `get_project`, gets the data, and answers you.

## Frequently Asked Questions

**Can I use list_projects to find a project that doesn't exist in Tower?**
No. `list_projects` only retrieves projects you are actually connected to within the Tower workspace. It acts as your roster, not a search engine for outside data.

**Does update_task require me to know the task ID?**
Yes. To successfully run `update_task`, you must provide the unique identifier of the existing task item. The agent can help you find this first using `list_tasks`.

**What if I want to create a task but don't know the project ID?**
First, run `list_projects` to get all available IDs and names. Then, include the correct Project ID when you call `create_task`. You gotta provide that context.

**How do I see who is on a team using list_members?**
You simply ask your agent to run `list_members`. It returns a full roster of names and roles, letting you know exactly who's available for assignments.

**If I give an invalid access token when running list_projects, what error does the server return?**
The connection fails immediately. The agent will receive a specific 401 or authentication failure code from Vinkius before any project data is returned. You need to verify your Tower Access Token in the server settings.

**When I call get_task_details, how do I know if a task was deleted versus just marked as complete?**
The tool response includes an explicit 'status' field. If the status is 'archived' or 'deleted', you won't be able to use update_task on it. You’ll still get all the original metadata.

**If I run list_tasks and there are thousands of records, does the tool handle pagination automatically?**
Yes, your agent client handles pagination for large datasets. The response payload will contain a 'next page' token or total record count, allowing your agent to loop through all results until it hits the full dataset size.

**Can I filter the output of list_tasks beyond just listing them? For instance, by assignee?**
You can. You pass a specific 'filter' parameter into the tool call—like an email address or user ID—to limit the result set before it reaches your agent. This keeps the data highly focused.

**How do I obtain a Tower Access Token?**
Log in to your Tower account, go to the [App Center](https://tower.im/oauth/tokens), and generate a new Personal Access Token. Make sure to copy it immediately.

**Can I see team discussions through this server?**
Yes. Use the `list_discussions` tool with a project ID to retrieve the list of recent topics and discussions shared within that project.

**Is it possible to manage multiple teams?**
Yes. You can use `list_teams` to see all teams you are a part of and then use the team IDs to list members or access specific projects associated with those teams.