A comprehensive Model Context Protocol (MCP) server for integrating with the MOCO time tracking and project management API. Features 45 tools for managing projects, time entries, users, companies, invoices, and more.
- Project Management - Full CRUD for projects, tasks, reports, and user assignments (contracts)
- Time Tracking - Create, update, delete activities with timer support
- User Management - List and view staff members/users
- Company & Contacts - Manage customers, suppliers, and contact persons
- Invoices - List and view invoice details
- Schedules - Work schedules and absence tracking
- Sales Pipeline - Deals, offers, and proposal management
- Comments - Add comments to any entity type
- Node.js 18 or higher
- pnpm (recommended) or npm
- A MOCO account with API access
git clone https://github.com/sajadghawami/moco-mcp.git
cd moco-mcp
# Install dependencies (choose one)
pnpm install # or: npm install | yarn install
# Build
pnpm build # or: npm run build | yarn build- Log in to your MOCO account at
https://[your-domain].mocoapp.com - Navigate to Profile → Integrations → API
- Generate or copy your API token
Add to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"moco": {
"command": "node",
"args": ["/path/to/moco-mcp/build/index.js"],
"env": {
"MOCO_API_TOKEN": "your-api-token-here",
"MOCO_DOMAIN": "your-subdomain"
}
}
}
}Add to .mcp.json in your project directory (project-specific) or ~/.claude/.mcp.json (global):
{
"mcpServers": {
"moco-mcp": {
"command": "node",
"args": ["/path/to/moco-mcp/build/index.js"],
"env": {
"MOCO_API_TOKEN": "your-api-token-here",
"MOCO_DOMAIN": "your-subdomain"
}
}
}
}| Tool | Description |
|---|---|
moco_list_projects |
List all projects with optional filters |
moco_get_project |
Get detailed project information by ID |
moco_list_project_tasks |
List all tasks for a project |
moco_get_project_report |
Get budget and time report for a project |
moco_list_assigned_projects |
List projects assigned to current user |
moco_archive_project |
Archive a project |
moco_unarchive_project |
Unarchive a project |
moco_list_project_contracts |
List users assigned to a project |
moco_get_project_contract |
Get project contract details |
moco_create_project_contract |
Add a user to a project |
moco_update_project_contract |
Update a project contract |
moco_delete_project_contract |
Remove a user from a project |
| Tool | Description |
|---|---|
moco_list_activities |
List time entries with date range filters |
moco_get_activity |
Get activity details by ID |
moco_create_activity |
Create a new time entry |
moco_update_activity |
Update an existing time entry |
moco_delete_activity |
Delete a time entry |
moco_start_timer |
Start/resume timer on an activity |
moco_stop_timer |
Stop a running timer |
| Tool | Description |
|---|---|
moco_list_users |
List all staff members/users |
moco_get_user |
Get user details by ID |
| Tool | Description |
|---|---|
moco_list_companies |
List customers, suppliers, organizations |
moco_get_company |
Get company details by ID |
moco_create_company |
Create a new company |
| Tool | Description |
|---|---|
moco_list_contacts |
List all contact persons |
moco_get_contact |
Get contact details by ID |
| Tool | Description |
|---|---|
moco_list_units |
List organizational units/departments |
| Tool | Description |
|---|---|
moco_list_invoices |
List invoices with optional filters |
moco_get_invoice |
Get invoice details by ID |
moco_create_invoice |
Create a new invoice |
moco_update_invoice |
Update an existing invoice |
| Tool | Description |
|---|---|
moco_list_schedules |
List work schedules and absences |
| Tool | Description |
|---|---|
moco_list_deals |
List sales leads/deals |
moco_get_deal |
Get deal details by ID |
moco_create_deal |
Create a new deal |
moco_update_deal |
Update an existing deal |
| Tool | Description |
|---|---|
moco_list_offers |
List offers/proposals |
moco_get_offer |
Get offer details by ID |
moco_update_offer_status |
Update offer status |
moco_send_offer_email |
Send offer via email |
| Tool | Description |
|---|---|
moco_list_comments |
List comments on entities |
moco_create_comment |
Add a comment to an entity |
moco_update_comment |
Update a comment |
moco_delete_comment |
Delete a comment |
| Tool | Description |
|---|---|
moco_ping |
Health check to verify server is running |
# Install dependencies
pnpm install
# Build the TypeScript source
pnpm build
# Start the server
pnpm start
# Watch mode for development
pnpm devmoco-mcp/
├── src/
│ ├── index.ts # MCP server entry + 45 tool registrations
│ ├── api.ts # HTTP client (GET/POST/PUT/DELETE)
│ ├── types.ts # TypeScript interfaces
│ └── tools/
│ ├── projects.ts # Project, task, report, contract tools
│ ├── activities.ts # Time entry + timer tools
│ ├── users.ts # User tools
│ ├── companies.ts # Company tools
│ ├── contacts.ts # Contact tools
│ ├── units.ts # Unit tools
│ ├── invoices.ts # Invoice tools
│ ├── schedules.ts # Schedule tools
│ ├── deals.ts # Deal tools
│ ├── offers.ts # Offer tools
│ └── comments.ts # Comment tools
├── build/ # Compiled JavaScript output
├── package.json
└── tsconfig.json
This server integrates with the MOCO REST API. For complete API documentation, see:
- MOCO API Documentation
- API Base URL:
https://[your-domain].mocoapp.com/api/v1
ISC