🚀 📊 MOCO MCP Server
このModel Context Protocol (MCP) サーバーは、MOCO APIに対する社員の読み取りアクセスを提供し、時間管理、プロジェクト管理、休日管理、在席監視などの機能を利用できます。
🚀 クイックスタート
npx -y @niondigital/moco-mcp
以上です!サーバーが起動し、MCPクライアントに接続できる状態になります。
📦 インストール
前提条件
- Node.js ≥ 18.0.0
- APIアクセス権を持つMOCOアカウント
- MOCO APIキーとサブドメイン
MCPクライアントの統合
Claude Desktop
Claude Desktopのclaude_desktop_config.jsonファイルに以下を追加します。
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
Cursorの設定に以下を追加します。
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
WindsurfのMCP設定に以下を追加します。
{
"mcpServers": {
"moco": {
"command": "npx",
"args": ["-y", "@niondigital/moco-mcp"],
"env": {
"MOCO_API_KEY": "your-moco-api-key",
"MOCO_SUBDOMAIN": "your-subdomain"
}
}
}
}
Claude Code (CLI)
Claude CodeにMCPサーバーを追加します。
claude mcp add -e MOCO_API_KEY="your-moco-api-key" -e MOCO_SUBDOMAIN="your-subdomain" moco -- npx -y @niondigital/moco-mcp
Gemini CLI
Gemini CLIをMCPサポートで設定します。
{
"mcpServers": {
"moco": {
"command": "npx",
"args": ["-y", "@niondigital/moco-mcp"],
"env": {
"MOCO_API_KEY": "your-moco-api-key",
"MOCO_SUBDOMAIN": "your-subdomain"
}
}
}
}
Kiro
Kiro > MCP Serversに移動します。
+ Addをクリックして新しいMCPサーバーを追加します。
- 以下の設定を貼り付けます。
{
"mcpServers": {
"moco": {
"command": "npx",
"args": [
"-y",
"@niondigital/moco-mcp"
],
"env": {
"MOCO_API_KEY": "your-moco-api-key",
"MOCO_SUBDOMAIN": "your-subdomain"
},
"disabled": false,
"autoApprove": []
}
}
}
Saveをクリックして変更を適用します。
LM Studio
Program (右側) > Install > Edit mcp.jsonに移動します。
- 以下の設定を貼り付けます。
{
"mcpServers": {
"moco": {
"command": "npx",
"args": ["-y", "@niondigital/moco-mcp"],
"env": {
"MOCO_API_KEY": "your-moco-api-key",
"MOCO_SUBDOMAIN": "your-subdomain"
}
}
}
}
Saveをクリックして変更を適用します。
- 右側 (
Programの下) からMCPサーバーをオン/オフに切り替えるか、チャットボックスの下部にあるプラグアイコンをクリックします。
🔑 MOCO APIの設定
API資格情報の取得
- MOCOアカウントにログインします。
- API設定に移動します。
- Profile → Integrationsに移動するか、
https://niondigital.mocoapp.com/profile/integrationsにアクセスします。
- 表示されているAPIキーをコピーします。
- サブドメインを確認します。
- MOCOのURL
https://yourcompany.mocoapp.com から、サブドメインは yourcompany です。
環境変数
環境変数はいくつかの方法で設定できます。
オプション1: システム環境変数
export MOCO_API_KEY="your-moco-api-key"
export MOCO_SUBDOMAIN="your-subdomain"
オプション2: .envファイル (ローカル開発用)
MOCO_API_KEY=your-moco-api-key
MOCO_SUBDOMAIN=your-subdomain
オプション3: MCPクライアント設定 (推奨)
上記のようにMCPクライアント設定のenvセクションを使用します。
🛠️ 利用可能なツール
| ツール |
説明 |
パラメータ |
get_activities |
日付範囲内のアクティビティを取得し、集計し、オプションでプロジェクトをフィルタリングします。 |
startDate, endDate (ISO 8601), projectId (オプション) |
get_user_projects |
割り当てられたすべてのプロジェクトをリストするか、クエリで検索します。 |
query (オプション) |
get_user_project_tasks |
特定の割り当てられたプロジェクトのすべてのタスクを取得します。 |
projectId |
get_user_holidays |
年間の休日概要を計算して取得します。 |
year |
get_user_presences |
日付範囲内の在席データを取得し、日別の要約を表示します。 |
startDate, endDate (ISO 8601) |
get_user_sick_days |
年間の病欠日数の概要を計算して取得します。 |
year |
get_public_holidays |
年間の祝日を取得し、稼働日数を計算します。 |
year |
🎯 利用可能なプロンプト
MoCo MCPサーバーは、複数のツールを調整して包括的な洞察を提供する8つのインテリジェントなプロンプトを提供します。
| プロンプト |
説明 |
主要パラメータ |
weekly_time_report |
週次の時間管理レポートを生成し、プロジェクト別に内訳を表示します。 |
week_start, include_billable_analysis |
vacation_planning_assistant |
利用可能な日数と休日を分析して休暇計画を支援します。 |
planned_start_date, planned_end_date |
personal_productivity_insights |
勤務習慣を分析し、生産性向上の推奨事項を提供します。 |
analysis_period, focus_area |
monthly_business_review |
トレンドとメトリックを含む包括的なビジネスレポートを作成します。 |
month, year, include_comparisons |
smart_work_life_balance_advisor |
ワークライフバランスを評価し、パーソナルな推奨事項を提供します。 |
analysis_weeks, target_hours_per_week |
project_time_analysis |
プロジェクトの時間を詳細に分析し、効率メトリックを表示します。 |
project_ids, time_period |
team_capacity_overview |
欠勤とリソースを分析してチームの容量計画を行います。 |
planning_horizon, include_holidays |
work_hours_compliance_check |
労働時間規制の遵守状況をチェックします。 |
check_period, max_weekly_hours, max_daily_hours |
プロンプトの例
週次時間レポート:
{
"name": "weekly_time_report",
"arguments": {
"week_start": "2024-01-15",
"include_billable_analysis": true
}
}
休暇計画:
{
"name": "vacation_planning_assistant",
"arguments": {
"planned_start_date": "2024-07-15",
"planned_end_date": "2024-07-29"
}
}
ワークライフバランス分析:
{
"name": "smart_work_life_balance_advisor",
"arguments": {
"analysis_weeks": 6,
"target_hours_per_week": 40
}
}
遵守状況チェック:
{
"name": "work_hours_compliance_check",
"arguments": {
"check_period": "last_month",
"max_weekly_hours": 48,
"max_daily_hours": 10
}
}
💻 使用例
基本的な使用法
アクティビティの取得
{
"name": "get_activities",
"arguments": {
"startDate": "2024-01-01",
"endDate": "2024-01-31"
}
}
特定のプロジェクトのアクティビティをフィルタリング
{
"name": "get_activities",
"arguments": {
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"projectId": 123456
}
}
サンプル出力
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)
ユーザーのプロジェクトをリストする
{
"name": "get_user_projects",
"arguments": {}
}
プロジェクトを検索する
{
"name": "get_user_projects",
"arguments": {
"query": "website"
}
}
ユーザーのプロジェクトタスクを取得する
{
"name": "get_user_project_tasks",
"arguments": {
"projectId": 123456
}
}
ユーザーの休日を取得する
{
"name": "get_user_holidays",
"arguments": {
"year": 2024
}
}
サンプル出力
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
ユーザーの在席データを取得する
{
"name": "get_user_presences",
"arguments": {
"startDate": "2024-01-01",
"endDate": "2024-01-07"
}
}
サンプル出力
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)
ユーザーの病欠日数を取得する
{
"name": "get_user_sick_days",
"arguments": {
"year": 2024
}
}
祝日を取得する
{
"name": "get_public_holidays",
"arguments": {
"year": 2024
}
}
サンプル出力
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
🔧 高度な設定
ローカル開発
ソースから実行する場合は、以下の手順を実行します。
git clone https://github.com/niondigital/moco-mcp.git
cd moco-mcp
npm install
npm run build
npm start
次に、MCPクライアントをローカルパスを使用するように設定します。
{
"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サポート
FROM node:18-alpine
WORKDIR /app
RUN npm install -g @niondigital/moco-mcp
ENV MOCO_API_KEY=""
ENV MOCO_SUBDOMAIN=""
CMD ["@niondigital/moco-mcp"]
🔍 トラブルシューティング
一般的な問題
❌ 認証エラー:
API authentication failed. Please check MOCO_API_KEY.
- APIキーが正しく、必要な権限を持っていることを確認します。
- APIキーが環境変数に正しく設定されていることを確認します。
- キーが期限切れになっていないことを確認します。
❌ サブドメインエラー:
MOCO_SUBDOMAIN should only contain the subdomain name
- サブドメイン部分のみを使用します (
company で company.mocoapp.com ではない)。
- サブドメインから
https:// と .mocoapp.com を削除します。
❌ Node.jsバージョンエラー:
This package requires Node.js >= 18.0.0
- Node.jsをバージョン18以上に更新します。
- バージョンを確認するには、
node --version を実行します。
❌ npx接続問題:
Error: Cannot find module '@niondigital/moco-mcp'
- インターネット接続があることを確認します。
npx --yes @niondigital/moco-mcp を試します。
- npxキャッシュをクリアします:
npx clear-npx-cache
❌ MCPクライアントがツールを見つけられない場合
- 設定変更後にMCPクライアントを再起動します。
- 環境変数が正しく設定されていることを確認します。
- JSON設定の構文が正しいことを確認します。
デバッグモード
デバッグ用に、追加のログを表示してサーバーを実行できます。
NODE_ENV=development npx -y @niondigital/moco-mcp
接続テスト
サーバーを手動でテストすることができます。
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | npx -y @niondigital/moco-mcp
✨ 主な機能
- ✅ 読み取り専用アクセス: データを変更せずに安全なAPI統合が可能です。
- 🔄 自動ページネーション: 大規模なデータセットをシームレスに処理します。
- 📊 スマートな集計: 日付、プロジェクト、タスクごとに自動的に集計します。
- 🎯 プロジェクトフィルタリング: 特定のプロジェクトでアクティビティをフィルタリングします。
- 🧩 包括的なツール: さまざまなユースケースに対応する7つの専用ツールがあります。
- 🎯 インテリジェントなプロンプト: 複雑な分析と洞察を提供する8つのAIベースのプロンプトがあります。
- 🌐 複数クライアントサポート: すべての主要なMCPクライアントで動作します。
🤝 コントリビューション
- リポジトリをフォークします。
- 機能ブランチを作成します:
git checkout -b feature-name
- 変更を加え、テストを追加します。
- テストを実行します:
npm test
- プルリクエストを送信します。
📄 ライセンス
MITライセンス - 詳細については LICENSE ファイルを参照してください。
🆘 サポート