Metadata-Version: 2.4
Name: tasklife-mcp
Version: 0.1.1
Summary: MCP server for the Tasklife API — manage tasks, comments, pages, projects, users, and teams from Claude, Hermes, Cursor, and any MCP-compatible agent.
Project-URL: Homepage, https://github.com/saliozzia/tasklife-mcp
Author: Sal Iozzia
License: MIT
Keywords: agent,ai,mcp,model-context-protocol,tasklife
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27.0
Requires-Dist: mcp>=1.0.0
Requires-Dist: pydantic>=2.6.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: respx>=0.21.0; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Description-Content-Type: text/markdown

# tasklife-mcp

MCP server for the [Tasklife](https://tasklife.com) API. Manage tasks, comments, pages, projects, users, and teams from any MCP-compatible agent — Claude Desktop, Hermes, Cursor, Windsurf, claude.ai (v2), Grok (v2).

## Install

```bash
uv tool install tasklife-mcp
```

## Configure

Get a Tasklife API key: **Settings → Agents → Create API key** in the Tasklife web app.

### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "tasklife": {
      "command": "tasklife-mcp",
      "env": {
        "TASKLIFE_API_KEY": "tl_prod_abc123..."
      }
    }
  }
}
```

### Hermes

Edit `~/.hermes/config.yaml`:

```yaml
mcp_servers:
  tasklife:
    command: "tasklife-mcp"
    env:
      TASKLIFE_API_KEY: "tl_prod_abc123..."
```

Restart the client. Tools appear automatically.

## Tools

| Tool | Description |
|---|---|
| `get_current_user` | Who am I, what org, what scopes |
| `list_projects` | List projects (optionally filtered by team) |
| `get_project` | Get project details including columns and statuses |
| `list_tasks` | List tasks in a project with filters |
| `get_task` | Get full task details including comments |
| `create_task` | Create a new task |
| `update_task` | Update an existing task |
| `move_task` | Move a task between columns |
| `list_comments` | List comments on a task |
| `add_comment` | Add a comment to a task |
| `edit_comment` | Edit a comment (supports both simple and conflict-safe PATCH) |
| `list_pages` | List CMS pages (optionally filtered by parent) |
| `get_page` | Get a page with content and metadata |
| `create_page` | Create a new page |
| `update_page` | Update a page |
| `list_users` | List users in the org |
| `get_user` | Get user details |
| `list_teams` | List teams (org-admin gated) |

## Development

```bash
git clone https://github.com/saliozzia/tasklife-mcp
cd tasklife-mcp
uv sync --extra dev
uv run pytest
uv run tasklife-mcp  # stdio, test with MCP Inspector
```

## License

MIT