Skip to main content
Glama

ActiveCollab MCP Server

Local MCP (Model Context Protocol) server for ActiveCollab API integration. Allows Claude Code to access ActiveCollab data without exposing API tokens to external services.

Architecture

Claude Code (CLI) │ ▼ ┌──────────────────┐ │ MCP Server │ ← Python, runs locally │ (stdio) │ └──────────────────┘ │ ▼ ┌──────────────────┐ │ ActiveCollab API │ ← HTTPS └──────────────────┘

Requirements

  • Python 3.8+

  • pip

Setup

1. Ensure Python is available

On some Linux distributions, python command may not exist (only python3). Fix with:

# Ubuntu/Debian (recommended) sudo apt install python-is-python3 # Or manually create symlink sudo ln -s /usr/bin/python3 /usr/bin/python

2. Install dependencies

pip install -r requirements.txt

3. Generate API token

Run the token generator script:

python generate_token.py

The script will prompt you for:

  • ActiveCollab URL - Your self-hosted instance URL (e.g., https://collab.yourcompany.com)

  • Email - Your ActiveCollab login email

  • Password - Your ActiveCollab password (hidden input)

=== ActiveCollab API Token Generator (Self-Hosted) === ActiveCollab URL (e.g., https://collab.inchoo.net): https://collab.yourcompany.com Email: your.email@company.com Password: ******** Generating token... ================================================== SUCCESS! Here are your credentials: API URL: https://collab.yourcompany.com/api/v1 API Token: 1-aBcDeFgHiJkLmNoPqRsTuVwXyZ123456789 ================================================== Save to config.json now? (y/n): y Saved to config.json!

How it works:

  1. Makes a POST request to /api/v1/issue-token with your credentials

  2. ActiveCollab returns a permanent API token for the "Claude MCP Server" client

  3. Token is saved to config.json

Alternative: Manually create config.json:

cp config.json.example config.json # Edit config.json with your API URL and token

4. Configure MCP server

cp .mcp.json.example .mcp.json # Edit .mcp.json - update "cwd" to your absolute path

5. Restart Claude Code

Available Tools

Tool

Parameters

Description

list_projects

-

List all projects

get_project

project_id

Get project details

list_tasks

project_id, status (all/open/completed)

List tasks for a project

get_task

project_id, task_id

Get task details

my_tasks

-

Get tasks assigned to current user

get_task_comments

task_id

Get comments on a task

get_task_time_records

project_id, task_id

Get time records for a task

get_project_time_records

project_id

Get all time records for a project

get_notifications

-

Get recent notifications for current user

get_subtasks

project_id, task_id

Get subtasks for a task

get_overdue_tasks

project_id

Get tasks with overdue deadlines

get_tasks_with_deadlines

project_id

Get open tasks sorted by due date

get_labels

-

Get all global task labels

get_tasks_by_label

project_id, label_id

Get tasks with specific label

get_task_lists

project_id

Get all task lists in a project

get_tasks_by_list

project_id, task_list_id

Get tasks in a specific list

get_users

-

Get all team members (not clients)

get_tasks_by_assignee

project_id, user_id

Get tasks assigned to a user

Usage Examples

> List all projects > Show open tasks for project 5 > Get details of task 123 > Show my tasks > Get comments for task 456 > Show time records for task 61735 in project 489 > Get all time records for project 489 > Show my notifications > Get subtasks for task 61735 in project 489 > Show overdue tasks for project 489 > Show tasks with deadlines for project 489 > List all labels > Show tasks with STORY label (272) in project 489 > Show task lists for project 489 > Show tasks in IN PROGRESS list (31231) for project 489 > List all team members > Show tasks assigned to Željko (1090) in project 489

Project Structure

activeMCP/ ├── src/ │ ├── __init__.py │ ├── server.py # MCP server with tool definitions │ ├── api/ │ │ ├── __init__.py │ │ └── client.py # ActiveCollab API client │ └── utils/ │ ├── __init__.py │ └── config.py # Configuration loader ├── generate_token.py # API token generator script ├── config.json # API credentials (gitignored) ├── config.json.example # Template for config.json ├── .mcp.json # MCP server config (gitignored) ├── .mcp.json.example # Template for .mcp.json ├── run_server.sh # Server launcher script ├── requirements.txt └── README.md

Dependencies

  • Python 3.8+ (ensure python command is available, see Setup step 1)

  • mcp>=1.0.0 - Model Context Protocol SDK

  • httpx>=0.25.0 - HTTP client (optional, using urllib)

Implementation Status

  • Phase 1: Basic infrastructure (config, client, auth)

  • Phase 2: MCP server skeleton

  • Phase 3: Projects module (list, get)

  • Phase 4: Tasks module (list, get, filter by status)

  • Phase 5: Time tracking module (read only)

  • Phase 6: Comments module (read only)

  • Phase 7: Notifications module (read only)

  • Phase 8: Subtasks module (read only)

  • Phase 9: Deadlines module (overdue tasks, tasks with deadlines)

  • Phase 10: Labels module (list labels, filter tasks by label)

  • Phase 11: Task lists module (list task lists, filter tasks by list)

  • Phase 12: Users module (list users, filter tasks by assignee)

  • Phase 13: Write operations (create/update tasks, add comments, log time)

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zeljkolivaja/active-colab-local-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server