Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Calq MCPstart a timer for the Website Redesign project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Calq MCP
A Model Context Protocol (MCP) server for time tracking, project management, AI-powered memory, and team collaboration.
Features
β±οΈ Time Tracking
Timer system - Start/stop timers for real-time tracking
Manual logging - Log time with backdating support
Billing - Mark entries as billable/billed, track unbilled time
π§ AI-Powered Memory
Semantic search - Find memories and entries by meaning, not just keywords
Personal & shared - Keep notes private or share with your team
Project/client linking - Associate memories with specific projects or clients
Vector storage - Powered by ChromaDB and Voyage AI embeddings
π₯ Team Collaboration
GitHub OAuth - Authenticate team members via GitHub (integrated into MCP flow)
Role-based access - Admin and member roles
Per-user data - Timers and entries are user-scoped
π Project & Client Management
Clients - Manage client information
Projects - Link projects to clients with hourly rates
Invoice summaries - Get unbilled time grouped by client with calculated values
Prerequisites
Node.js 20+
PostgreSQL - Relational database for structured data
ChromaDB - Vector database for semantic search
Voyage AI API key - For generating embeddings
GitHub OAuth App - For user authentication
Installation
Option 1: Docker Compose (Recommended)
This automatically sets up Calq, PostgreSQL, and ChromaDB:
Services:
Calq MCP:
http://localhost:${MCP_PORT}/mcp(default: 3000)PostgreSQL: Internal to Docker (port 5432)
ChromaDB:
http://localhost:${CHROMA_PORT}(default: 8000, internal to Docker)
Option 2: Local Development
Configuration
Environment Variables
Variable | Required | Description |
| Yes | PostgreSQL connection URL |
| No | PostgreSQL password for Docker (default: calq) |
| Yes | Voyage AI API key for embeddings |
| No | ChromaDB URL (default: |
| Yes | GitHub OAuth App client ID |
| Yes | GitHub OAuth App client secret |
| No | Server port (default: 3000) |
| No | OAuth callback (default: |
Database Management
Calq uses Drizzle ORM with PostgreSQL:
GitHub OAuth Setup
Click "New OAuth App"
Fill in:
Application name: Calq
Homepage URL:
http://localhost:3000Authorization callback URL:
http://localhost:3000/oauth/github/callback
Copy the Client ID and generate a Client Secret
Add both to your
.envfile
Claude Desktop Configuration
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
When you first use Calq, Claude Desktop will open a browser for GitHub authentication.
Tools
Time Tracking
Tool | Description |
| Log time with message, project, and optional date |
| Start a timer for a project |
| Stop timer and log the time |
| Check if a timer is running |
| Discard timer without logging |
| Delete a time entry |
| Modify an existing entry |
Summaries
Tool | Description |
| List all projects with total time |
| Projects with client info and values |
| Detailed summary for a project |
| Today's time by project |
| This week's time by day |
| Unbilled time summary |
| Unbilled time by client with values |
Memory
Tool | Description |
| Store a memory (personal/shared, linked to project/client) |
| Quick capture an idea |
| Search memories semantically |
| Search time entries semantically |
| List all memories |
| List all captured ideas |
| Delete a memory |
Clients & Projects
Tool | Description |
| Add a new client |
| List all clients |
| Create/update project with client and hourly rate |
Users
Tool | Description |
| Show current user info |
| List all users (admin only) |
| Change user role (admin only) |
| Team activity summary |
Usage Examples
Architecture
PostgreSQL - Source of truth for structured data (entries, projects, users)
ChromaDB - Vector store for semantic search (memories, entry embeddings)
Drizzle ORM - Type-safe database access layer
Data Storage
In Docker, data is persisted via volumes:
calq-data- Application datapostgres-data- PostgreSQL databasechroma-data- ChromaDB embeddings
License
MIT