MCP Hub
Back to servers

MOCO

A comprehensive MCP server for MOCO that enables employee-level access to time tracking, project management, and leave data with secondary AI-driven analysis features.

Stars
4
Forks
6
Tools
7
Updated
Aug 6, 2025
Validated
Jan 11, 2026

📊 MOCO MCP Server

A Model Context Protocol (MCP) server that provides employee read access to the MOCO API for time tracking, project management, holiday tracking, and presence monitoring.

⚡ Quick Start

npx -y @niondigital/moco-mcp

That's it! The server will start and be ready to connect to your MCP client.

🚀 Installation

Prerequisites

  • Node.js ≥ 18.0.0
  • MOCO account with API access
  • MOCO API key and subdomain

MCP Client Integration

Claude Desktop

Add to your Claude Desktop claude_desktop_config.json file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "moco": {
      "command": "npx",
      "args": ["-y", "@niondigital/moco-mcp"],
      "env": {
        "MOCO_API_KEY": "your-moco-api-key",
        "MOCO_SUBDOMAIN": "your-subdomain"
      }
    }
  }
}
Cursor

Add to your Cursor settings:

MacOS: ~/Library/Application Support/Cursor/User/settings.json
Windows: %APPDATA%\Cursor\User\settings.json
Linux: ~/.config/Cursor/User/settings.json

{
  "mcpServers": {
    "moco": {
      "command": "npx",
      "args": ["-y", "@niondigital/moco-mcp"],
      "env": {
        "MOCO_API_KEY": "your-moco-api-key",
        "MOCO_SUBDOMAIN": "your-subdomain"
      }
    }
  }
}
Windsurf

Add to your Windsurf MCP configuration:

{
   "mcpServers": {
      "moco": {
         "command": "npx",
         "args": ["-y", "@niondigital/moco-mcp"],
         "env": {
            "MOCO_API_KEY": "your-moco-api-key",
            "MOCO_SUBDOMAIN": "your-subdomain"
         }
      }
   }
}
Claude Code (CLI)

Add the MCP server to Claude Code:

claude mcp add -e MOCO_API_KEY="your-moco-api-key" -e MOCO_SUBDOMAIN="your-subdomain" moco -- npx -y @niondigital/moco-mcp
Gemini CLI

Configure Gemini CLI with MCP support:

{
   "mcpServers": {
      "moco": {
         "command": "npx",
         "args": ["-y", "@niondigital/moco-mcp"],
         "env": {
            "MOCO_API_KEY": "your-moco-api-key",
            "MOCO_SUBDOMAIN": "your-subdomain"
         }
      }
   }
}
Kiro
  1. Go to Kiro > MCP Servers
  2. Add new MCP server by clicking + Add
  3. Paste the configuration below:
{
  "mcpServers": {
    "moco": {
    "command": "npx",
    "args": [
      "-y",
      "@niondigital/moco-mcp"
    ],
    "env": {
       "MOCO_API_KEY": "your-moco-api-key",
       "MOCO_SUBDOMAIN": "your-subdomain"
    },
    "disabled": false,
    "autoApprove": []
    }
  }
}

  1. Click Save to apply changes
LM Studio
  1. Go to Program (right side) > Install > Edit mcp.json
  2. Paste the configuration below:
{
  "mcpServers": {
    "moco": {
      "command": "npx",
      "args": ["-y", "@niondigital/moco-mcp"],
       "env": {
          "MOCO_API_KEY": "your-moco-api-key",
          "MOCO_SUBDOMAIN": "your-subdomain"
       }
    }
  }
}
  1. Click Save to apply changes
  2. Toggle MCP server on/off from the right hand side (under Program) or by clicking the plug icon at the bottom of the chat box

🔑 MOCO API Setup

Getting Your API Credentials

  1. Log into your MOCO account
  2. Navigate to API settings:
    • Go to ProfileIntegrations
    • Or visit: https://niondigital.mocoapp.com/profile/integrations
  3. Copy the listed API key
  4. Note your subdomain:
    • From your MOCO URL: https://yourcompany.mocoapp.com
    • Your subdomain is: yourcompany

Environment Variables

You can set environment variables in several ways:

Option 1: System Environment Variables

export MOCO_API_KEY="your-moco-api-key"
export MOCO_SUBDOMAIN="your-subdomain"

Option 2: .env File (for local development)

MOCO_API_KEY=your-moco-api-key
MOCO_SUBDOMAIN=your-subdomain

Option 3: MCP Client Configuration (recommended) Use the env section in your MCP client configuration as shown above.

🛠️ Available Tools

ToolDescriptionParameters
get_activitiesGet activities within a date range with summation and optional project filteringstartDate, endDate (ISO 8601), projectId (optional)
get_user_projectsList all assigned projects or search by queryquery (optional)
get_user_project_tasksGet all tasks for a specific assigned projectprojectId
get_user_holidaysGet holiday overview for a year with calculationsyear
get_user_presencesGet presence data within a date range with daily summariesstartDate, endDate (ISO 8601)
get_user_sick_daysGet sick days overview for a year with calculationsyear
get_public_holidaysGet public holidays for a year with working days calculationsyear

🎯 Available Prompts

The MoCo MCP server provides 8 intelligent prompts that orchestrate multiple tools to deliver comprehensive insights:

PromptDescriptionKey Parameters
weekly_time_reportGenerates detailed weekly time tracking report with project breakdownweek_start, include_billable_analysis
vacation_planning_assistantAssists with vacation planning by analyzing available days and holidaysplanned_start_date, planned_end_date
personal_productivity_insightsAnalyzes work habits and provides productivity recommendationsanalysis_period, focus_area
monthly_business_reviewCreates comprehensive business reports with trends and metricsmonth, year, include_comparisons
smart_work_life_balance_advisorEvaluates work-life balance with personalized recommendationsanalysis_weeks, target_hours_per_week
project_time_analysisDetailed project time analysis with efficiency metricsproject_ids, time_period
team_capacity_overviewTeam capacity planning with absence and resource analysisplanning_horizon, include_holidays
work_hours_compliance_checkCompliance check for working time regulationscheck_period, max_weekly_hours, max_daily_hours

Prompt Examples

Weekly Time Report:

{
  "name": "weekly_time_report",
  "arguments": {
    "week_start": "2024-01-15",
    "include_billable_analysis": true
  }
}

Vacation Planning:

{
  "name": "vacation_planning_assistant",
  "arguments": {
    "planned_start_date": "2024-07-15",
    "planned_end_date": "2024-07-29"
  }
}

Work-Life Balance Analysis:

{
  "name": "smart_work_life_balance_advisor",
  "arguments": {
    "analysis_weeks": 6,
    "target_hours_per_week": 40
  }
}

Compliance Check:

{
  "name": "work_hours_compliance_check",
  "arguments": {
    "check_period": "last_month",
    "max_weekly_hours": 48,
    "max_daily_hours": 10
  }
}

📝 Tool Examples

Get Activities

Filter all activities in a date range:

{
  "name": "get_activities",
  "arguments": {
    "startDate": "2024-01-01",
    "endDate": "2024-01-31"
  }
}

Filter activities for a specific project:

{
  "name": "get_activities",
  "arguments": {
    "startDate": "2024-01-01",
    "endDate": "2024-01-31",
    "projectId": 123456
  }
}

Sample Output:

Activities from 2024-01-01 to 2024-01-31:

2024-01-15:
  Project 123 (Website Redesign):
    Task 456 (Frontend Development): 4.5h (4:30)
    Task 789 (Backend API): 3.25h (3:15)
    Project total: 7.75h (7:45)
  Daily total: 7.75h (7:45)

Grand total: 7.75h (7:45)

Get User Projects

List all assigned projects:

{
  "name": "get_user_projects",
  "arguments": {}
}

Search projects:

{
  "name": "get_user_projects",
  "arguments": {
    "query": "website"
  }
}

Get User Project Tasks

{
  "name": "get_user_project_tasks",
  "arguments": {
    "projectId": 123456
  }
}

Get User Holidays

{
  "name": "get_user_holidays",
  "arguments": {
    "year": 2024
  }
}

Sample Output:

Holiday overview for 2024:

Taken holiday days:
- 2024-03-15: 1.0 day
- 2024-04-22: 0.5 day
- 2024-07-08: 1.0 day

Summary:
- Taken vacation: 2.5 days
- Annual entitlement: 25 days
- Utilization: 10% (2.5/25)
- Remaining vacation: 22.5 days

Get User Presences

{
  "name": "get_user_presences",
  "arguments": {
    "startDate": "2024-01-01",
    "endDate": "2024-01-07"
  }
}

Sample Output:

Presences from 2024-01-01 to 2024-01-07:

Daily presences:
- 2024-01-01: 8.25h (8:15)
- 2024-01-02: 7.5h (7:30)
- 2024-01-03: 8.0h (8:00)

Grand total: 23.75h (23:45)

Statistics:
- Working days: 3
- Average per day: 7.92h (7:55)

Get User Sick Days

{
  "name": "get_user_sick_days",
  "arguments": {
    "year": 2024
  }
}

Get Public Holidays

{
  "name": "get_public_holidays",
  "arguments": {
    "year": 2024
  }
}

Sample Output:

Public holidays for 2024:

Holiday dates:
- 2024-01-01: New Year's Day
- 2024-04-01: Good Friday
- 2024-04-03: Easter Monday
- 2024-05-01: Labor Day
- 2024-05-09: Ascension Day
- 2024-05-20: Whit Monday
- 2024-10-03: German Unity Day
- 2024-12-25: Christmas Day
- 2024-12-26: Boxing Day

Summary:
- Total public holidays: 9 days
- Approximate working days: 251 days

🔧 Advanced Configuration

Local Development

If you want to run from source:

git clone https://github.com/niondigital/moco-mcp.git
cd moco-mcp
npm install
npm run build
npm start

Then configure your MCP client to use the local path:

{
  "mcpServers": {
    "moco": {
      "command": "node",
      "args": ["/path/to/moco-mcp/dist/index.js"],
      "env": {
        "MOCO_API_KEY": "your-moco-api-key",
        "MOCO_SUBDOMAIN": "your-subdomain"
      }
    }
  }
}
Docker Support
FROM node:18-alpine
WORKDIR /app
RUN npm install -g @niondigital/moco-mcp
ENV MOCO_API_KEY=""
ENV MOCO_SUBDOMAIN=""
CMD ["@niondigital/moco-mcp"]

🔍 Troubleshooting

Common Issues

❌ Authentication Error:

API authentication failed. Please check MOCO_API_KEY.
  • Verify your API key is correct and has necessary permissions
  • Check if the API key is properly set in environment variables
  • Ensure the key hasn't expired

❌ Subdomain Error:

MOCO_SUBDOMAIN should only contain the subdomain name
  • Use only the subdomain part: company (not company.mocoapp.com)
  • Remove https:// and .mocoapp.com from the subdomain

❌ Node.js Version Error:

This package requires Node.js >= 18.0.0
  • Update Node.js to version 18 or higher
  • Check your version: node --version

❌ npx Connection Issues:

Error: Cannot find module '@niondigital/moco-mcp'
  • Ensure you have internet connection
  • Try: npx --yes @niondigital/moco-mcp
  • Clear npx cache: npx clear-npx-cache

❌ MCP Client Not Finding Tools:

  • Restart your MCP client after configuration changes
  • Check that environment variables are properly set
  • Verify JSON configuration syntax is correct

Debug Mode

For debugging, you can run the server with additional logging:

NODE_ENV=development npx -y @niondigital/moco-mcp

Testing Connection

You can test the server manually:

echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | npx -y @niondigital/moco-mcp

🌟 Features

  • ✅ Read-only Access: Safe API integration with no data modification
  • 🔄 Automatic Pagination: Handles large datasets seamlessly
  • 📊 Smart Aggregation: Automatic summation by date, project, and task
  • 🎯 Project Filtering: Filter activities by specific projects
  • 🧩 Comprehensive Tools: 7 specialized tools for different use cases
  • 🎯 Intelligent Prompts: 8 AI-powered prompts for complex analysis and insights
  • 🌐 Multi-Client Support: Works with all major MCP clients

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and add tests
  4. Run tests: npm test
  5. Submit a pull request

📄 License

MIT License - see LICENSE file for details.

🆘 Support

Reviews

No reviews yet

Sign in to write a review