Skip to main content
Glama

goalslot-mcp

GoalSlot 用の MCP サーバーです。これは、自分の GoalSlot アカウントに対して、目標、タスク、週間スケジュールテンプレート、時間追跡、共有タイマー、レポート、メモ、ジャーナルのツールを AI アシスタントに提供します。

stdio 上で動作するため、任意の MCP ホストが起動できます。ツールをうまく使う方法をモデルに教える4つのスキルが同梱されています。

インストール

このサーバーは CLI が書き込んだ資格情報を読み取るため、先に goalslot CLI にサインインしておく必要があります。このサーバー自体がログインフローを実行することはありません。

npm install -g goalslot-cli
goalslot login

次に、MCP サーバーを Claude Code に追加します:

claude mcp add goalslot -- npx -y goalslot-mcp

Claude Desktop や、JSON 設定を受け取る任意のホストの場合:

{
  "mcpServers": {
    "goalslot": {
      "command": "npx",
      "args": ["-y", "goalslot-mcp"]
    }
  }
}

動作確認:

npx -y goalslot-mcp --list-tools

このパッケージはまだ npm に公開されていません。公開されるまでは、ソースからインストールしてください: リポジトリをクローンし、npm install && npm run build を実行してから、ホストを node /path/to/goalslot-mcp/dist/cli.js に指定します。

Related MCP server: GoHighLevel MCP Server

認証の仕組み

このサーバーにはログインフローはありません。stdio がプロトコルチャネルであるため、サーバーは何かをプロンプト表示できず、モデルにトークンを処理させるのはさらに悪いでしょう。マシン上に既に存在する資格情報を読み取ります。

解決順序:

  1. 環境変数 GOALSLOT_ACCESS_TOKEN(設定されていて空でない場合)

  2. $GOALSLOT_CONFIG_DIR/credentials.json

  3. Windows では %APPDATA%\goalslot\credentials.json

  4. $XDG_CONFIG_HOME/goalslot/credentials.json、それ以外の場合は ~/.config/goalslot/credentials.json

このファイルは goalslot login によって書き込まれ、CLI と共有されます。その形式は次のとおりです:

{
  "version": 1,
  "apiBaseUrl": "https://api.goalslot.io/api",
  "apiUrl": "https://api.goalslot.io/api",
  "accessToken": "<jwt>",
  "refreshToken": "gsl_rt_...",
  "accessTokenExpiresAt": "2026-08-25T12:00:00.000Z",
  "refreshTokenExpiresAt": "2026-11-23T00:00:00.000Z",
  "tokenId": "<uuid>",
  "scopes": ["full"],
  "user": { "id": "...", "email": "..." },
  "defaultTimezone": "Asia/Karachi",
  "weekStartsOn": 1
}

apiBaseUrlapiUrl は両方とも読み取られ、同じ値で書き込まれるため、CLI とこのサーバーが互いに上書きすることはありません。未知のキーは書き換え後も保持されます。

CLI トークンは、typ: "cli" と、失効可能なトークン行を指定する cid クレームを持つ通常の Bearer JWT であり、通常の API ルートはすべてこれを受け入れます。アクセストークンの有効期限は1時間です。401 が返された場合、このサーバーは POST /api/auth/cli/token/refresh に対してリフレッシュトークンをローテーションし、新しいペアを 使用する前に アトミックにディスクに書き込み、元のリクエストを1回再試行します。ローテーションはシングルフライトです: リフレッシュトークンは一度きりであり、ローテーション済みのトークンを再試行すると資格情報全体が失効するため、同時に2つのリフレッシュが発生すると恒久的なログアウトになります。

トークン、ヘッダー、Authorization 行がログに書き込まれることは、どのレベルでも一切ありません。

資格情報が存在しないか無効な場合、すべてのツールは構造化された NOT_AUTHENTICATED または SESSION_EXPIRED を返し、モデルに goalslot login を実行するよう指示します。トークンを貼り付けるよう求めることはありません。

ヘッドレスと CI

GOALSLOT_ACCESS_TOKEN はファイルを完全に上書きします。リフレッシュを機能させたい場合は GOALSLOT_REFRESH_TOKEN と組み合わせてください。これがない場合、リフレッシュは無効になり、1時間のアクセストークンが期限切れになるとセッションは終了します。長期間の使用には、代わりに GOALSLOT_CONFIG_DIR を設定し、サーバーにファイルを管理させてください。

ツール

読み取りツールが9つ、書き込みツールが9つあります。読み取りツールは自由に呼び出しても安全で、readOnlyHint と注釈されています。各書き込みツールの説明は WRITES. で始まり、ここで公開されているものでユーザーデータを削除するものはありません。

読み取り

ツール

説明

goalslot_get_context

オリエンテーション用の呼び出しで、引数はありません。ユーザー、プラン制限と現在の使用状況、カテゴリの値文字列、ラベル、タイムゾーン、今日の日付、今週、および実行中のタイマーを返します。すべてのスキルが最初にこれを呼び出します。

goalslot_list_goals

目標時間、記録済み時間、進捗、期限、ラベルを含む目標。オプションでステータス、カテゴリ、ラベルのフィルターが可能です。

goalslot_get_goal

1つの目標を完全に取得します。オプションで、ユーザーが書いた振り返りも含みます。

goalslot_list_tasks

ステータス、目標、スケジュールブロック、または曜日でフィルタリングされたタスク。大きなバックログがコンテキストを圧迫しないように上限があります。

goalslot_get_schedule

週間スケジュールテンプレート。日ごとにグループ化され、開始時刻でソートされ、1日あたりの予定分数が含まれます。

goalslot_list_time_entries

期間またはプリセットにわたる個々の時間エントリと合計。オプションの目標フィルターとテキスト検索があります。

goalslot_get_report

1つの view 列挙型の背後にある9つのレポートエンドポイント: dashboardweeklymonthlydetailedsummaryday_by_taskday_totalschedulegoals_progress

goalslot_search_notes

タイトルまたは本文の部分文字列でメモを検索するか、IDで1件取得します。ツリーパスを返し、HTML本文をマークダウンに変換します。

goalslot_get_journal

日付でマージされたジャーナルエントリとデイリーチェックイン: 気分、エネルギー、集中度、うまくいったこと、妨げになったこと。

書き込み

ツール

説明

goalslot_create_goal

目標を作成します。targetHours は時間で測定される唯一のフィールドです。

goalslot_update_goal

ステータスを含む目標を更新します。loggedHours は意図的に設定できません。

goalslot_create_task

タスクを作成します。オプションで目標とスケジュールブロックにリンクできます。

goalslot_update_task

action によるタスクライフサイクル全体: updatecomplete(時間も記録)、restore

goalslot_log_time

既に費やした時間を記録します。dryRun をサポートします。リンクされた目標にクレジットされます。

goalslot_start_timer

共有サーバータイマーを開始します。静かに引き継ぐのではなく、TIMER_ALREADY_RUNNING を返します。

goalslot_stop_timer

タイマーを停止して時間エントリにするか、破棄します。

goalslot_manage_schedule_block

週間テンプレート内の1つのブロックを作成、更新、または削除します。dryRunupdateScope をサポートします。

goalslot_write_journal

1つの日付のジャーナルエントリとデイリーチェックインをアップサートします。マークダウン入力、TipTap HTML 出力。

意図的にツールにしないもの

目標、タスク、時間エントリの削除、スケジュール全体のクリア、公開または他の人との共有、AI コーチのチャットエンドポイント、請求とアカウント設定、テンプレートのインポート。連鎖的な影響を伴う破壊や個人データを公開するものは、エージェントがループで呼び出せる場所ではなく、人間が入力する場所に属します。GoalSlot アプリまたは CLI を使用してください。

ツールが強制する規約

  • 期間は整数分 で、常に durationMinutes という名前で、裸の duration ではありません。読み取りでは表示専用に durationHours を浮動小数点数として返します。目標の targetHours は唯一の例外です。

  • 日付は YYYY-MM-DD で、時刻が含まれる場合は境界で拒否されます。「今日」は UTC ISO スライスではなく、あなたのタイムゾーンで計算されます。

  • スケジュールは繰り返しの週間テンプレート であり、日付付きのイベントではありません。関連するすべてのツールの説明にその旨が記載されています。

  • dayOfWeek は日曜日始まり(0 = 日曜日)で、週次レポートが使用する月曜日始まりの順序とは異なります。両方ともインラインでラベル付けされ、すべてのレスポンスには dayName が含まれます。

  • 週次バケットは、API サーバーのタイムゾーンで導出され、1日ずれる可能性がある API の保存済み dayOfWeek 列から読み取るのではなく、エントリの日付から再計算されます。

エラー

失敗は isError: true と1つの JSON オブジェクトとして返されます:

{
  "error": {
    "code": "PLAN_LIMIT",
    "message": "You've reached your FREE plan limit for goals.",
    "httpStatus": 403,
    "retryable": false,
    "remedy": "The account is at its goal limit. Ask the user to pause a goal with update_goal (status PAUSED), delete one from the CLI, or upgrade. Do not retry.",
    "details": { "plan": "FREE", "limitType": "goals" }
  }
}

remedy はモデル向けに命令形で書かれています。コード: NOT_AUTHENTICATEDSESSION_EXPIREDPLAN_LIMITFORBIDDENSCHEDULE_CONFLICTINVALID_INPUTNOT_FOUNDRATE_LIMITEDUPSTREAM_ERRORWRITE_BUDGET_EXCEEDEDREAD_ONLY_MODETIMER_ALREADY_RUNNINGNO_TIMER_RUNNING

スキル

4つのスキルが skills/ に同梱されています。これらはツールの説明では表現できない判断を担います: 呼び出しの順序、書き込み前に確認すべきこと、言うべきでないこと。

スキル

使用時

goalslot-plan-my-week

週の計画、目標のための時間のブロック、スケジュールの再調整。

goalslot-log-time

未追跡の時間のキャッチアップ、エントリの修正、タイマーの操作。

goalslot-weekly-review

週の終わり、「今週はどうだったか」、振り返りの作成。

goalslot-goal-checkup

「X に対して順調か」、目標の削減と期限の延期の判断。

スキルフォルダにディレクトリをコピーして Claude Code にインストールします:

# macOS and Linux
cp -r "$(npm root -g)/goalslot-mcp/skills/"* ~/.claude/skills/

# Windows PowerShell
Copy-Item "$(npm root -g)\goalslot-mcp\skills\*" "$env:USERPROFILE\.claude\skills\" -Recurse

クローンからは、代わりにリポジトリの skills/* をコピーしてください。プロジェクトスコープでも機能します: リポジトリ内の .claude/skills/ に配置します。

設定

変数

効果

GOALSLOT_CONFIG_DIR

credentials.json を保持するディレクトリ。最初にチェックされます。

GOALSLOT_ACCESS_TOKEN

資格情報ファイルを完全に上書きします。CI の脱出ハッチ。

GOALSLOT_REFRESH_TOKEN

上記と組み合わせるリフレッシュトークン。ローテーションはメモリ内のみで保持されます。

GOALSLOT_API_URL

API ベース URL。デフォルトは https://api.goalslot.io/api

GOALSLOT_TZ

ログイン時のタイムゾーンを上書きする IANA タイムゾーン。

GOALSLOT_MCP_READONLY=1

すべての書き込みツールが READ_ONLY_MODE を返します。完全に信頼していないエージェントをライブアカウントに向ける場合に設定します。

GOALSLOT_MCP_MAX_WRITES

プロセスごとに許可される書き込み呼び出し数。デフォルトは25。暴走ループは、無料アカウントのみをバックストップするプラン制限ではなく、ここで停止します。

HTTP トランスポート

オプションで、フラグの後ろにあります:

npx -y goalslot-mcp --http --port 7801

同じツールレジストリを http://127.0.0.1:7801/mcp でストリーミング可能な HTTP トランスポート経由でステートレスに提供します。

これはシングルユーザーかつローカルのみです。すべてのリクエストはこのマシンのGoalSlot認証情報で処理されます。呼び出し元ごとの認証、OAuth、トークンの管理は一切ないため、ポートに到達できる人は誰でもアカウントを読み書きできます。ループバックにバインドされており、そのままにしておく必要があります。goal-slot-api#55で追跡されているホスト型マルチテナントMCPサーバーではありません。それには本格的なOAuthフローとユーザーごとのトークン保存が必要であり、それは別の作業です。

stdioがサポートされているパスです。

開発

npm install
npm run typecheck
npm test
npm run build
node dist/cli.js --list-tools

TypeScript strict、ESM、Node 20以降。テストはスタブ化されたfetchを使用したvitestです。スイート内の何もライブAPIに触れません。CIはUbuntuとWindowsでNode 20と22に対して型チェック、テスト、ビルドを実行します。

ライセンス

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

  • Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ZeeshanAdilButt/goalslot-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server