WEEEK (smart) について
WEEEK のタスク管理と CRM を扱う MCP サーバーです。ID ではなく名前でレコードを作成、検索、関連付けでき、タスク、プロジェクト、時間、カスタムフィールド、CRM のツールセットを選択できます。
主な機能
- 01名前によるタスクと関連項目の操作
- 02プロジェクト、時間、CRM のツールセット
- 03名前によるカスタムフィールド値の設定
- 04公開するツールセットの設定
- 05破壊的操作に明示的な確認を要求
活用シーン
- 01担当者、期限、フィールドを指定してタスクを作成
- 02名前で CRM の取引を作成し連絡先を関連付け
- 03必要なタスクまたは CRM ツールを有効化
- 04確認なしの削除やアーカイブを防止
MCP 対応
WEEEK の公開 API 操作を MCP クライアント向けのツールとして提供します。タスクのツールセットが既定で有効で、プロジェクト、時間、カスタムフィールド、CRM も選択できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y weeek-mcp-smartWEEEK_API_TOKENシークレットWEEEK personal API token (WEEEK → Settings → API)WEEEK_API_BASE_URLOverride API base for self-hosted / regional hosts (default https://api.weeek.net/public/v1)WEEEK_TIMEOUT_MSPer-request timeout in ms (default 30000)WEEEK_ATTACH_DIRDirectory weeek_attach_file may read from (default: the server's working directory)WEEEK_ATTACH_MAX_BYTESMax attachable file size in bytes (default 10485760)WEEEK_TOOLSETSComma-separated tool groups to expose: tasks (default), time, projects, custom-fields, crm — or "all"ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
weeek-mcp-smart
名前で操作できる、唯一のワンクリック WEEEK MCP サーバー — ID ではなく名前を使います。1 回の呼び出しでタスクを作成できます。
weeek_create_task({ title: "Ship v1", project: "Marketing",
column: "In Progress", assignee: "Ilya", due: "next friday",
fields: { "Estimate": 5 } })
続けて weeek_add_comment、weeek_add_assignees、weeek_set_task_parent も、すべて名前で、すべて 1 回の呼び出しで実行でき、カスタムフィールドも含めて扱えます。CRM の操作も同様です:weeek_create_deal({ status: "New", funnel: "Sales", title: "Big one", contacts: ["Ann Lee"] })。
最初に list_projects → list_boards → list_columns → list_members と順番に呼び出す必要はありません。
公開先
| 場所 | リンク |
|---|---|
| npm | weeek-mcp-smart |
| 公式 MCP レジストリ | io.github.IlyaIvanchikov/weeek-mcp-smart (レジストリ) |
| Glama | glama.ai/mcp/servers/IlyaIvanchikov/weeek-mcp |
| GitHub Releases | 最新リリース。Claude Desktop 用のワンクリック weeek-mcp-smart.mcpb も含まれます |
すべての v* タグは、1 回の CI 実行で npm、MCP レジストリ、GitHub Releases に公開されます。Glama は独自のスケジュールでリポジトリを再インデックスします。
インストール(Claude Code / Cursor)
claude mcp add weeek -s user -- npx -y weeek-mcp-smart
# then set WEEEK_API_TOKEN in the generated config
インストール(Claude Desktop、ワンクリック)
⬇ 最新の .mcpb をダウンロード し、Claude Desktop で開きます(設定 → 拡張機能 → ファイルからインストール)。WEEEK API トークンの入力を求められます。トークンは OS のキーチェーンに保存されます。
すべてのリリース:https://github.com/IlyaIvanchikov/weeek-mcp/releases
トークンの取得
WEEEK → 設定 → API → 個人用トークンを生成します。
設定
| 環境変数 | 必須 | デフォルト | 用途 |
|---|---|---|---|
WEEEK_API_TOKEN | ツールの呼び出しに必要 | — | WEEEK の個人用 API トークンです。サーバーはこの値がなくても起動してツール一覧を表示しますが、設定するまではどのツールを呼び出しても失敗します。 |
WEEEK_API_BASE_URL | いいえ | https://api.weeek.net/public/v1 | セルフホスト環境や地域別ホスト向けの上書き設定です。 |
WEEEK_TIMEOUT_MS | いいえ | 30000 | リクエストごとのタイムアウトです。 |
WEEEK_TOOLSETS | いいえ | tasks | 公開するツールのグループをカンマ区切りで指定します。all も指定できます。「ツールセット」を参照してください。 |
WEEEK_ATTACH_DIR | いいえ | サーバーの作業ディレクトリ | weeek_attach_file が読み取り可能なディレクトリです(「安全性」を参照)。 |
WEEEK_ATTACH_MAX_BYTES | いいえ | 10485760(10 MB) | 添付可能なファイルの最大サイズです。 |
安全性
このサーバーは、信頼できないコンテンツ(タスクのテキスト、Web ページ)を読み取る LLM によって動作するため、特にリスクの高い 2 つのツールには制限が設けられています。
weeek_attach_fileは、許可されたディレクトリ内のファイルのみを読み取ります(サブフォルダーも含みます)。デフォルトではサーバーの作業ディレクトリが対象となるため、ローカルファイルなら設定なしで使用でき、対象外のパス(/etc/passwd、~/.ssh、..によるディレクトリ遡り、対象外に抜けるシンボリックリンク)は拒否されます。WEEEK_ATTACH_DIRを設定して、隔離する場所を指定したり、対象をさらに制限したりできます。特別なフォルダーは必要ありません。weeek_delete_taskは取り消せない操作で、明示的なconfirm: trueが必要です。タスクを削除せずに完了扱いにするには、weeek_complete_taskを使用してください。weeek_get_attachmentは、WEEEK 自身がホストする添付ファイルの画像を返すため、スクリーンショットで指定されたタスクも推測せずに読み取れます。添付ファイルのserviceがweeekの場合にのみ、バイトデータをダウンロードします。Google Drive/Dropbox/OneDrive/Box に保存された添付ファイルの場合は、URL 付きのメタデータを返します。ダウンロード時にトークンは一切送信しません。WEEEK はストレージバケットにリダイレクトする有効期限 1 時間の署名付き URL を発行し、サーバーはhttpsに限り、どちらの接続にも認証情報を付与せず、リダイレクトを 1 回だけたどります。画像以外の場合はメタデータのみを返し、WEEEK_ATTACH_MAX_BYTESを超えるものは切り詰めずに拒否します。- 削除、アーカイブ、または関連付け解除を行うすべてのツール — プロジェクト、ボード、列、タグ、ポートフォリオ、コメント、時間記録、カスタムフィールドまたはフィールドの選択肢、ファネル、ステータス、取引、組織または連絡先、連絡先または組織の住所、メールアドレスまたは電話番号、担当者、ウォッチャー、連絡先、組織またはタグのリンク、タスクのプロジェクトへの所属 — には
confirm: trueが必要で、注釈では破壊的操作として示されるため、クライアントは実行前に確認できます。
ツールセット
各ツールのスキーマはリクエストごとにモデルへ送信されるため、サーバーではデフォルトのツールセットを少数に絞り、必要に応じて追加できるようにしています。WEEEK_TOOLSETS にカンマ区切りのリスト、または all を設定してください。
| ツールセット | ツール | デフォルト |
|---|---|---|
tasks | weeek_list_projects, weeek_list_boards, weeek_list_columns, weeek_list_tasks, weeek_get_task, weeek_list_members, weeek_get_attachment, weeek_create_task, weeek_create_tasks, weeek_update_task, weeek_move_task, weeek_complete_task, weeek_attach_file, weeek_delete_task, weeek_list_comments, weeek_add_comment, weeek_delete_comment, weeek_add_assignees, weeek_remove_assignees, weeek_add_watchers, weeek_remove_watchers, weeek_add_task_to_project, weeek_remove_task_from_project, weeek_set_task_parent | はい |
time | weeek_set_timer, weeek_add_time_entry, weeek_update_time_entry, weeek_delete_time_entry | |
projects | weeek_get_project, weeek_create_project, weeek_update_project, weeek_archive_project, weeek_delete_project, weeek_create_board, weeek_update_board, weeek_delete_board, weeek_move_board, weeek_create_column, weeek_update_column, weeek_delete_column, weeek_move_column, weeek_list_portfolios, weeek_get_portfolio, weeek_create_portfolio, weeek_update_portfolio, weeek_delete_portfolio, weeek_list_tags, weeek_get_tag, weeek_create_tag, weeek_update_tag, weeek_delete_tag, weeek_get_workspace, weeek_get_profile | |
custom-fields | weeek_list_custom_fields, weeek_create_custom_field, weeek_update_custom_field, weeek_delete_custom_field, weeek_transfer_custom_field, weeek_move_custom_field, weeek_add_field_option, weeek_update_field_option, weeek_delete_field_option, weeek_move_field_option | |
crm | weeek_list_funnels, weeek_get_funnel, weeek_create_funnel, weeek_update_funnel, weeek_delete_funnel, weeek_list_statuses, weeek_get_status, weeek_create_status, weeek_update_status, weeek_delete_status, weeek_list_currencies, weeek_list_deals, weeek_get_deal, weeek_create_deal, weeek_update_deal, weeek_delete_deal, weeek_move_deal, weeek_add_deal_assignees, weeek_remove_deal_assignees, weeek_attach_organization, weeek_detach_organization, weeek_add_deal_task, weeek_move_deal_task, weeek_remove_deal_task, weeek_attach_deal_file, weeek_list_organizations, weeek_get_organization, weeek_create_organization, weeek_update_organization, weeek_delete_organization, weeek_list_contacts, weeek_get_contact, weeek_create_contact, weeek_update_contact, weeek_delete_contact, weeek_attach_contact, weeek_detach_contact, weeek_add_crm_tag, weeek_remove_crm_tag, weeek_add_detail, weeek_update_detail, weeek_delete_detail | |
all | すべてのツールセット |
weeek_version は常に利用できます。デフォルトはタスク機能で、リクエストあたりのツールスキーマは 16 871 バイトです。crm 単独では 32 290 バイト、all では 76 692 バイトです。不明な名前を指定すると、起動時に有効な名前の一覧とともに拒否されます。WEEEK の公開 API のすべての操作(157 件)が登録されており、1 件を除いてすべてツールに対応しています(PATCH /crm/deals/{id}:API はリクエストボディの大部分を無視するため、weeek_update_deal は PUT とリンク用ルートを使用します)。テストの実行ごとに、登録内容と同梱の OpenAPI ドキュメントが双方向で照合されます。
カスタムフィールドの値には追加のツールセットは必要ありません。weeek_get_task が値を返し、weeek_create_task/weeek_update_task ではフィールド名を使って fields: { "Estimate": 5, "Stage": "Review" } を指定できます(作成時はグローバルフィールドとプロジェクトフィールド、タスク作成後は weeek_update_task を使ってボード独自のフィールドも指定できます)。custom-fields ツールセットは、グローバルスコープ、プロジェクト、ボード、CRM ファネルのフィールド自体を管理するためのものです。API ではボードのフィールドをほかの場所から一覧取得できないため、ボードのタスクから読み取ります。そのため、空のボードではフィールドは表示されません。
crm ツールセットでは、すべての参照を名前で指定します。ファネル、ファネル内のステータス、タイトル(ファネルまたはステータスも指定)または ID による案件、組織、フルネームによる連絡先、コードによる通貨、タイトルによるタグです。案件にはタスクと同様にカスタムフィールド値が含まれます(fields は名前で指定します。weeek_create_deal では funnel も渡します)。住所、メールアドレス、電話番号は組織と連絡先に属し、weeek_add_detail / weeek_update_detail / weeek_delete_detail で変更します。
1.0.0 からのアップグレード:weeek_create_task / weeek_update_task の due が期限を正しく設定するようになりました(以前送信されていたキーは API に無視されていました)。weeek_update_deal はカスタムフィールドと 4 つのリンクリストを適用するようになり、description は削除されました(API では作成時にしか設定できません)。weeek_create_organization / weeek_update_organization では responsibles の代わりに単一の responsible を指定します(リストは無視されていました)。weeek_list_deals から sort: "amount" が削除されました(API が 500 を返すためです)。weeek_update_project の color は # と 6 桁の 16 進数で指定する必要があります。API が success: false とする 200(プランの上限など)は、エラーとして報告されるようになりました。
0.7.0 からのアップグレード:ツールの名前変更や削除はありません。WEEEK_TOOLSETS=tasks が引き続きデフォルトです。crm または all を指定すると有効になります。
0.5.0 からのアップグレード:デフォルトのツールセットは 0.6.0 で 12 個から 24 個のツールに増え(さらに weeek_version が追加されました)、WEEEK_TOOLSETS=tasks が引き続きデフォルトのため、time、projects、all を有効にしない限り、ほかに変更はありません。
WEEEK_TOOLSETS=tasks,crm npx -y weeek-mcp-smart # add the CRM
WEEEK_TOOLSETS=all npx -y weeek-mcp-smart # everything
開発
API 仕様スナップショットの更新
spec/weeek-openapi.json は WEEEK の公開 OpenAPI ドキュメントのスナップショットです。テスト(tests/contract.test.ts)では、サーバーが呼び出すすべての操作がスナップショットに存在すること、および仕様で宣言されたすべての操作が登録されていることをチェックします(双方向で 157 件)。これにより、API の変更は本番環境での不意な問題ではなく、テストの失敗として検出されます。
Node ≥ 18(fetch を使用するため)が必要です。curl が必要なのは REFRESH_SPEC_INTERFACE が設定されている場合のみです。
npm run refresh-spec # re-extract from developers.weeek.net
npx vitest run tests/contract.test.ts
更新に成功すると、次のような 1 行が出力されます。
wrote …/spec/weeek-openapi.json: openapi 3.1.1, 99 paths, 157 operations, 35 schemas (from weeek.yaml-<hash>.js)。
DNS または接続エラーで更新に失敗した場合は、scripts/refresh-spec.mjs の先頭にあるコメントを確認してください。既知の原因(VPN リゾルバー、ブロックされたトンネル)と、それぞれに対する正確な修正方法が記載されています。
作者
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。