mcpField
W
weeek-mcp

weeek-mcp

ローカル
github.com/YOLKINS生産性010 週間前に更新

weeek-mcp について

weeek-mcpは、stdio経由でAIクライアントをWeeekのワークスペースに接続するローカルMCPサーバーです。標準では読み取り専用で、設定により書き込みツールを選択して有効化できます。

主な機能

  1. 01プロジェクト、タスク、メンバー、タグの一覧
  2. 02ボードと列の確認
  3. 03書き込みツールの既定での非表示
  4. 04ツール名による許可リスト
  5. 05レスポンスサイズの上限設定

活用シーン

  1. 01Weeekのワークスペースでタスクやプロジェクトを確認
  2. 02読み取り専用でボード情報を照会
  3. 03必要に応じてタスク作成や更新を有効化

MCP 対応

stdio経由でAIクライアントにWeeekの照会・タスク管理ツールを提供します。既定では読み取りツールを10個登録し、READ_ONLY=falseにすると最大5個の書き込みツールを公開できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"yolkins-weeek": {
"command": "npx",
"args": [
"-y",
"weeek-mcp"
],
"env": {
"WEEEK_ACCESS_TOKEN": "<WEEEK_ACCESS_TOKEN>",
"READ_ONLY": "<READ_ONLY>",
"ENABLED_TOOLS": "<ENABLED_TOOLS>",
"WEEEK_BASE_URL": "<WEEEK_BASE_URL>",
"WEEEK_TIMEOUT_MS": "<WEEEK_TIMEOUT_MS>",
"MAX_RESPONSE_CHARS": "<MAX_RESPONSE_CHARS>"
}
}
}
}
起動コマンドnpx -y weeek-mcp
設定が必要な環境変数
WEEEK_ACCESS_TOKENシークレットWeeek Public API v1 access token. Required — the server refuses to start without it.
READ_ONLYGate for the write tools. Defaults to 'true': a fresh install exposes only the ten read tools. Set to 'false' to additionally expose the five write tools (create/update/move/complete a task, set an MR link) — an explicit operator opt-in, never the default.
ENABLED_TOOLSOptional comma-separated allowlist of tool names to register (still subject to READ_ONLY). Pair with READ_ONLY=false for a granular write rollout, e.g. 'weeek_complete_task'.
WEEEK_BASE_URLOverride the Weeek API base URL. Defaults to the public v1 endpoint.
WEEEK_TIMEOUT_MSPer-request timeout in milliseconds.
MAX_RESPONSE_CHARSUpper bound on the JSON length of a single tool response, protecting the agent's context window from unbounded list/detail payloads.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmweeek-mcp1.0.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

weeek-mcp

Weeek 向けのローカル MCP サーバーです。デフォルトでは読み取り専用で、オプトインすると書き込みツールを利用できます。

npm version npm downloads CI License: MIT MCP

README(ロシア語版)

weeek-mcp は、stdio を介して AI クライアント(Claude Desktop、Claude Code、Cursor、MCP Inspector)を Weeek ワークスペースに接続します。デフォルトでは読み取り専用です。標準のインストールではプロジェクト、タスク、ボード、メンバー、タグを一覧表示できますが、変更は一切行いません。また、READ_ONLY=false でオプトインした場合に限り、5 つの書き込みツールが公開されます。Node ≥ 20 で動作し、npx でインストールできるため、クローンやビルドは不要です。

これを選ぶ理由

  • npm で公開済み。 npx -y weeek-mcp はすぐに使えます。クローン、ビルド、絶対パスは不要です。
  • デフォルトでは読み取り専用で、組み合わせ可能な制限機能を備えています。 オプトインしない限り、書き込み機能は登録されません。ENABLED_TOOLS で利用可能なツールを指定し、MAX_RESPONSE_CHARS ですべてのペイロードの上限を設定できます。クライアント側の慣習ではなく、サーバー側で適用されます。
  • 2 言語に対応。 英語版とロシア語版のドキュメントを完全に同じ内容で提供しています。
  • 詳細なエラーモデル。 エージェントが文章を解析せずに再試行するか諦めるかを判断できるよう、エージェントが読み取れるメッセージを含む 9 種類のエラーコードを用意しています。

クイックスタート

推奨されるインストール方法は npx です。クローンもビルドも不要です。 examples/claude_desktop.mcp.json を MCP クライアントの設定に追加し、YOUR_WEEEK_TOKEN_HERE を https://app.weeek.net/ws/_/settings/apps/api で取得した実際のトークンに置き換えて、クライアントを再起動してください。

{
  "mcpServers": {
    "weeek": {
      "command": "npx",
      "args": ["-y", "weeek-mcp"],
      "env": {
        "WEEEK_ACCESS_TOKEN": "YOUR_WEEEK_TOKEN_HERE"
      }
    }
  }
}

初回起動時に npx が weeek-mcp をダウンロードしてキャッシュします。Cursor と Cline でも同じ mcpServers 形式を使用します。examples/cursor.mcp.json と examples/cline.mcp.json を参照してください。その他の環境変数には安全なデフォルト値が設定されています。必要なものだけを上書きしてください(設定を参照)。npx が node を見つけられない場合(nvm 使用時によく発生します)は、トラブルシューティングを参照してください。依存関係なしで動作確認するには、docs/smoke.md を参照してください。

examples/ は GitHub 上にのみあります。npm の tarball に含まれるのは dist/、 README.md、README.ru.md、LICENSE です。

ツール

デフォルトで 10 個の読み取りツールが公開されます。READ_ONLY=false の場合に限り、15 個すべてが公開されます(書き込みツールを有効にするを参照)。

読み取りツール戻り値
pingpong: <msg> — トランスポートのヘルスチェック。API 呼び出しもトークンも不要です
weeek_get_me認証済みユーザー(id、email、name)— トークンを確認します
weeek_list_projectsトークンで表示可能なすべてのプロジェクト
weeek_get_projectID で指定した単一のプロジェクト。description を含みます
weeek_list_tasksタスクの 1 ページ分(フィルターと offset/per_page によるページネーション)
weeek_get_taskID で指定した単一のタスク。複数担当者のフィールドを含みます
weeek_list_membersワークスペースのすべてのメンバー
weeek_list_tagsすべてのタグ
weeek_list_boardsプロジェクト内のすべてのボード
weeek_list_board_columnsボードのすべての列(並び順)
書き込みツール(READ_ONLY=false)機能
weeek_complete_task完了フラグを切り替えます。completed: false にすると未完了に戻します
weeek_move_taskタスクをボードの列に移動します(列はステータスを表します)
weeek_create_task新しいタスクを作成し、新しい ID とともに返します
weeek_update_taskタイトル/優先度/種別/期限を編集します
weeek_set_task_mr_linkカスタムフィールドにマージリクエスト/プルリクエストの URL を記録します

フィールド単位の詳細なリファレンス(入力、出力、エッジケース、切り詰め、複数担当者)→ docs/tools.md。

書き込みツールを有効にする

デフォルトのインストールでは、ワークスペースに変更を加えることはできません。 変更を加える5つのツールはすべて READ_ONLY(デフォルトは true)によって非表示になっており、登録されないため、tools/list に表示されることはありません。READ_ONLY=false にすると、tools/list に表示されるツールが10個から15個に増え、エージェントがトークンでアクセスできるワークスペース内でタスクを作成、編集、移動、完了できるようになります。サーバー側での確認手順はありません。annotations はヒントにすぎず、MCP クライアントは無視できます。内容の変更を許容できるワークスペースをトークンのアクセス先にしてください。

"env": {
  "WEEEK_ACCESS_TOKEN": "YOUR_WEEEK_TOKEN_HERE",
  "READ_ONLY": "false"
}

まずは5つすべてではなく、ツールを1つだけ使いましょう。 READ_ONLY=false と ENABLED_TOOLS を組み合わせると、書き込みを有効にしつつ、指定した1つのツールだけを使えます。

"env": {
  "WEEEK_ACCESS_TOKEN": "YOUR_WEEEK_TOKEN_HERE",
  "READ_ONLY": "false",
  "ENABLED_TOOLS": "weeek_complete_task"
}

READ_ONLY は外側のゲートです。ENABLED_TOOLS に書き込みツールを指定しただけでは、書き込みは有効になりません。許可リストは追加方式ではないため、必要な読み取りツールもあわせて指定してください。 examples/claude_desktop.write.mcp.json は、まさにそれを設定できる、すぐに編集して使える構成ファイルです。

各書き込みツールでできること、できないこと
ツール変更内容元に戻す方法destructiveHintidempotentHint
weeek_complete_task1つの完了フラグcompleted: false を指定して再実行するfalsetrue
weeek_set_task_mr_link1つのカスタムフィールドの値値を再設定するfalsetrue
weeek_move_taskタスクのボード列(およびボード)元の場所が分かっている場合は、そこに戻すtruefalse
weeek_update_taskタイトル/優先度/種類/期限以前の値が分かっている場合は、各フィールドを再設定するtruefalse
weeek_create_task新しいタスクを作成する削除する。ただし、このサーバーでは削除できないtruefalse

true の3行は、エージェントが以前の値を確認しておらず、元に戻せないため、「人間による確認が望ましい」と示されています。特に注意が必要なのは weeek_create_task です。このサーバーでは作成したタスクを元に戻せず、再試行すると2つ目のタスクが作成されます。weeek_set_task_mr_link は、custom_field_id/custom_field_name を渡さない限り、名前でカスタムフィールドを特定します。一致する名前と曖昧さの扱いについては、 docs/tools.md をご覧ください。

設定

起動時に環境変数を読み込み、zod で検証します。無効な値があると、起動は stderr にエラーを出力してゼロ以外の終了コードで中断されます。サーバーが .env ファイルを直接読み込むことはありません。環境変数は MCP クライアントの env ブロックまたはシェルを通じて渡してください。

変数必須デフォルト用途
WEEEK_ACCESS_TOKENはい—個人用 Weeek API トークン(20文字以上。プレースホルダーと空白で囲まれた値は拒否されます)。
WEEEK_BASE_URLいいえhttps://api.weeek.net/public/v1Weeek HTTP クライアントのベース URL。セルフホストのプロキシを使用する場合は上書きします。
WEEEK_TIMEOUT_MSいいえ30000リクエストごとのタイムアウト(ms)。正の整数を指定します。
READ_ONLYいいえtrue書き込みツールを非表示にします。true の場合、readOnlyHint !== true のツールは登録されません。true/false/1/0 を指定できます。
ENABLED_TOOLSいいえ(未設定=すべて)ツール名をカンマ区切りで指定する許可リスト。READ_ONLY との照合も行われます。不明な名前は WARN として記録され、結果が空の場合は起動が中断されます。
MAX_RESPONSE_CHARSいいえ65536レスポンスごとのバイト上限。上限を超えたペイロードは切り詰められ、truncated: true のフラグが付けられます。最小 1024、最大 1000000。
LOG_LEVELいいえinfoロガーのしきい値:debug、info、warn、error。不明な値は info にフォールバックします。

どちらのゲートもサーバー側で実行されます。非表示のツールは登録されないため、エージェントは呼び出せません。READ_ONLY は重要な設定です。エージェントにワークスペースを変更させる意図がない限り、デフォルトのままにしてください。コピーして使えるテンプレートは .env.example をご覧ください。

トラブルシューティング

症状考えられる原因対処方法
クライアントにサーバーが表示されないcommand が、クライアントから見つけられない node を指しているか、dist/index.js が存在しない、または実行可能ではないnpm run build を実行し、ls -la dist/index.js で 0755 と表示されることを確認してください。which node で確認できる絶対パスを使用してください(下記の NVM に関する注意事項を参照)。
MCP server failed to start がすぐに表示される上記と同じ原因に加え、node_modules が見つからないリポジトリのルートで npm install && npm run build を実行してください。
標準エラー出力に invalid env: WEEEK_ACCESS_TOKEN: ... が表示されるトークンに空白文字や制御文字が含まれているか、プレースホルダーが指定されているhttps://app.weeek.net/ws/_/settings/apps/api で本物のトークンを生成し、前後にスペースや改行を含めずに貼り付けてください。
invalid env: WEEEK_BASE_URL: ... が表示されるURL のスキームが http(s) 以外であるか、user:pass@ が含まれているhttps://api.weeek.net/public/v1 をそのまま使用してください。認証情報は WEEEK_ACCESS_TOKEN を通じて渡してください。
dist/index.js の起動時に EACCES が表示されるpostbuild での chmod が実行されなかったchmod +x dist/index.js を実行してください。
npm start は動作するが、クライアントでは失敗するクライアントが、シェルとは異なる PATH で起動している下記の NVM 回避策を参照してください。
NVM 回避策 — spawn npx ENOENT / spawn node ENOENT

Claude Desktop と Cursor は、~/.nvm/nvm.sh を読み込まない非対話型 シェルで MCP サブプロセスを起動するため、Node が nvm 経由でインストールされている場合、 "command": "npx" のようにパスを指定しないと、気付かないうちに失敗します。絶対パスを直接指定する方法があります — which npx を実行し、その結果を command として貼り付けてください(nvm のバージョンを 切り替えるたびに更新してください)。パッケージは初回実行時に引き続きダウンロードされ、キャッシュされます。

{ "command": "/Users/<you>/.nvm/versions/node/v20.18.0/bin/npx", "args": ["-y", "weeek-mcp"] }

— または、~/.nvm/nvm.sh を読み込んでから exec npx "$@" を実行する小さなラッパースクリプトを command に指定すれば、nvm のバージョンを切り替えても動作します。

エラー

すべての Weeek ツールは同じ形式で失敗します。isError: true と、1 行の <tool> failed (<weeek_code>): <one English sentence> が返されます。weeek_<code> トークンは、 安定した機械処理可能な契約であり、文は自己修正の指針となります。 9 つのコードは、未認証/アクセス禁止/見つからない/検証エラー/レート制限/ サーバー/ネットワーク/タイムアウト/無効なレスポンスを網羅し、それぞれに再試行の指針があります。

weeek_get_task failed (weeek_not_found): Weeek returned 404 for this resource. Verify the id exists in the configured workspace and was not deleted.
weeek_list_tasks failed (weeek_rate_limited): Weeek rate-limited the request (HTTP 429). Retry after a brief delay or reduce the call frequency.

再試行の動作を含む完全な表 → docs/errors.md。

貢献 · セキュリティ · ライセンス

  • 貢献 — 問題の報告や機能リクエストを歓迎します。ただし、プルリクエストは事前の合意が必要です (このリポジトリでは、厳密に直線的な増分プロセスを採用しています)。 CONTRIBUTING.md を参照してください。
  • セキュリティ — トークンや標準出力の 1 バイトでも漏えいさせる方法を見つけた場合は、公開の問題を作成しないでください。 非公開の連絡先と脅威モデルについては SECURITY.md を参照してください。
  • ライセンス — MIT。
  • AI コーディングエージェント向け — エントリーポイントの契約(不変条件、固定された依存関係、 マージ前チェックリスト)は CLAUDE.md に記載されています。

CONTRIBUTING.md、SECURITY.md、CLAUDE.md は GitHub 上にのみあり、 examples/ と同様、npm の tarball には含まれていません。例外は LICENSE で、パッケージに同梱されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。