# Sally MCP

> Sally connects project management and team communication into your AI client. Use it to list projects, create tasks with specific priorities (P1-P4), add comments, and track progress on a Kanban board—all through natural conversation. It keeps frontline teams connected by managing work for deskless workers via mobile chat.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** task-management, kanban, api-first, agentic-workflows, sally

## Description

**Sally connects your project management system right into your AI client.** You'll manage projects and track team work without jumping between apps or clicking through a dozen menus. It gives your agent direct access to the core data—the stuff you actually use every day. 

**Setting Up Shop**

You can first run `check_sally_health` to confirm that the connection is solid and everything's running right on Sally's end. If you need to know who your AI client is speaking for, you just call `get_profile`; it pulls up your authenticated identity and confirms what permissions you've got in the workspace. To see all the big picture stuff—every project currently active—you use `list_projects`. You can also dive deep into a specific job by running `get_project` with an ID, which gives you every detail about that single initiative.

**Creating and Listing Projects**

Need to start something new? Run `create_project`, and Sally initializes the whole record, giving it its own unique metadata. When you're done setting up projects, you can pull a list of tasks belonging only to one specific job using `list_tasks`. If you just want to see all outstanding tasks across every project—no filtering—`list_tasks` handles that too.

**Managing Tasks: The Core Work**

The heart of the system is managing individual tasks. You can generate a brand new task by calling `create_task`, and when you do, you get to set specific details right away: you can assign priority levels from P1 through P4, define statuses, and add labels that make sense for your team's process.

You never have to manually update something twice. If a status changes or someone needs to adjust the due date, you call `update_task`. This function lets your agent modify an existing task using any combination of fields; only the data you provide actually gets changed in Sally.

When the team is collaborating on a piece of work, they don't write emails. They just use `add_comment` to post visible status notes or comments directly onto the task record. You can get all the full details for one specific item by running `get_task` with its ID. If you need a summary of every single project task across the board, you run `get_board`, and it pulls up that comprehensive Kanban view, grouping tasks automatically by their current status column.

**Tracking Time and Billing**

For billing purposes, your agent can pull two kinds of timesheet reports: one for the entire workspace using `get_timesheet_report` or a specific report just for one project. These functions give you all the hours tracked and the data needed to bill clients.

**It’s Simple:** You don't need to write complex code; you tell your AI client what you want—like, 'Give me the P2 tasks for Project Alpha,' or, 'Update Task 789 status to Done.' Your agent handles making those specific calls (`list_tasks`, `update_task`) and bringing you back exactly what you asked for. You get real-time project status, task changes, and billing reports all through simple conversation with your AI client.

## Tools

### add_comment
Posts a visible comment to an existing task for collaboration or status notes.

### get_board
Retrieves the comprehensive Kanban board view, grouping tasks by their current status column.

### create_project
Initializes and registers a brand new project within the workspace.

### create_task
Generates a new task, allowing you to set specific labels, priority levels (P1-P4), and statuses.

### get_profile
Pulls and verifies the authenticated user's identity and specific workspace permissions.

### get_project
Retrieves detailed information for a single, specified project ID.

### get_task
Fetches all the full details associated with one specific task ID.

### check_sally_health
Checks the current operational health and connectivity status of your Sally instance.

### list_projects
Lists all active projects currently housed within the workspace.

### list_tasks
Lists tasks, with an optional filter to show only those belonging to a specific project.

### get_timesheet_report
Generates a timesheet report for either your entire workspace or a particular project.

### update_task
Modifies an existing task using any fields you provide; only the provided data changes.

## Prompt Examples

**Prompt:** 
```
List all projects in my Sally workspace.
```

**Response:** 
```
I found 3 active projects: 'Product Launch' (5 tasks, 2 in progress), 'API Redesign' (12 tasks, 4 in review), and 'Onboarding Flow' (8 tasks, 1 blocked). Would you like to see the board or tasks for any of these?
```

**Prompt:** 
```
Create a P2 task 'Implement auth middleware' in project proj_abc123 with labels 'backend, security'.
```

**Response:** 
```
Done! Task 'Implement auth middleware' created in project 'API Redesign' with priority P2 and labels [backend, security]. The new task ID is task_xyz789. Want me to add any comments or sub-tasks?
```

**Prompt:** 
```
Show me the Kanban board for project proj_abc123.
```

**Response:** 
```
Here's the board for 'API Redesign': **Backlog** (3 tasks), **In Progress** (4 tasks, including 'Implement auth middleware' P2), **In Review** (2 tasks), **Done** (3 tasks). Would you like to update the status of any task?
```

## Capabilities

### Create Project Records
Start a new project in Sally and get its unique metadata.

### Manage Task Details
Create, read, update, or list tasks. You can assign priorities (P1-P4), set statuses, and add labels to any task.

### View Kanban Status
Retrieve the full board view that groups all tasks by their current status column.

### Update Task State
Change an existing task's attributes—like its assignee, priority, or labels—using `update_task`.

### Track Time and Billing
Fetch timesheet reports for the entire workspace or a specific project to track billable hours.

## Use Cases

### The Weekly Status Meeting
A PM needs a quick status check across three different departments. Instead of opening the project dashboard, they ask their agent to run `get_board`. The agent responds with an aggregated view: 'I found 3 active projects... Would you like to see the board or tasks for any of these?'—solving the problem in seconds.

### Handling Scope Creep
A developer realizes a task needs more detail and a new priority. They prompt their agent: 'Update task xyz789 to P1 and add label security.' The agent executes `update_task` and confirms the change, ensuring the critical path is immediately updated.

### Onboarding New Team Members
An operations team member needs a full picture of current billing. They ask their agent to run `get_timesheet_report`. The agent fetches all data for 'Q3 Marketing' and provides the total tracked hours, eliminating manual spreadsheet compilation.

### Initiating Work Flow
A new feature is approved. Instead of waiting for a meeting to create it, the PM asks their agent: 'Create a P2 task called Implement Auth Middleware in API Redesign with labels backend and security.' The agent uses `create_task` immediately.

## Benefits

- See project status updates instantly. Instead of navigating to a dashboard, running `get_board` gives you an immediate overview of task distribution across all columns (Backlog, In Progress, etc.).
- Maintain accurate records effortlessly. When you need to track billable work, calling `get_timesheet_report` pulls organized data on tracked hours and billing info directly into your agent's context.
- Keep the project history clean. Use `add_comment` to centralize all status updates and discussions right on the task itself, so nothing gets lost in email threads.
- Automate follow-up actions. If a task needs a change—say, it moves from 'In Progress' to 'Needs Review'—your agent can execute `update_task` instantly, changing its state or priority (P1-P4).
- Get project context fast. Need details on the 'API Redesign' project? Running `get_project` gives you all the metadata and status points without clicking through sub-menus.
- Verify user permissions immediately. Use `get_profile` to confirm who your agent is acting for, which is crucial before running write operations like `create_task`.

## How It Works

The bottom line is, your AI client runs direct, conversational commands against your structured project data.

1. Subscribe to this server and input your Sally API key, instance URL, and workspace slug.
2. Your AI client uses the tools (like `list_projects` or `create_task`) to interact with your project data in real time.
3. The agent processes the result—it might return a list of projects or confirm that the new task was created—and passes that information back to you.

## Frequently Asked Questions

**How do I use add_comment to communicate?**
You pass a task ID and the comment text to `add_comment`. This adds a visible note to the project record, keeping all collaboration history in one spot.

**What is the difference between list_tasks and get_task?**
`list_tasks` shows you multiple tasks (often filtered by project ID). `get_task` fetches the complete details—the full description, history, and all metadata—for one single task.

**Can I check my permissions using get_profile?**
Yes. Running `get_profile` verifies your authenticated identity and shows exactly what permissions your agent has within the Sally workspace before it tries to write anything.

**Do I need a project ID for create_task?**
You must provide a valid Project ID. The `create_task` tool requires this context because every task needs to belong to an existing, defined project within the system.

**When I use get_board, how does it handle large projects with thousands of tasks?**
It returns an aggregated view rather than listing every single task. The response summarizes the counts for each status column (Backlog, In Progress, etc.), keeping the data quick and actionable.

**Does get_task provide audit history like who last modified the task?**
Yes, it provides modification timestamps and user IDs. This lets your agent build a clear record of changes, making auditing part of your workflow.

**What should I check if list_projects returns an authentication error?**
First, verify the API key you passed to the server. If that's fine, confirm the workspace slug is correct and active in your Sally instance.

**If I use create_task, can it automatically link or reference timesheet data?**
No, `create_task` only handles task metadata like titles and labels. You'll need to run get_timesheet_report separately if you want that billing data connected.

**Can I create a task with priority, labels, and status in one step?**
Yes! Use `create_task` with the project ID, title, priority (P1-P4), status name, and comma-separated labels. The task is created instantly with all metadata.

**How do I view my Kanban board from the AI agent?**
Use `get_board` to retrieve the aggregated board data. Optionally pass a project ID to scope it to a specific project. Tasks are grouped by their status columns.

**Does Sally require a hosted instance or cloud account?**
Sally is a self-hosted, API-first project management system. You need your own Sally instance URL, an API key (atpm_ prefix), and your workspace slug to connect.