assiststudio-runner について
assiststudio-runnerは、AssistStudioユーザーやMCPクライアント向けのWindows専用エンジンで、自然言語によるLLMタスクをスケジュール実行します。タスク管理ツール、Windows Task Schedulerとの連携、設定可能な結果配信を備えています。
主な機能
- 017つのMCPツールによるタスク管理
- 02定期実行と一回限りの実行設定
- 03コマンドラインからのヘッドレス実行
- 04複数のLLMプロバイダーに対応
- 05Outboxチャネル経由で結果を配信
- 06Windows Credential Managerで認証情報を保存
活用シーン
- 01平日の調査要約を定期実行
- 02テスト用にタスクをすぐ実行
- 03実行状況と履歴の確認
MCP 対応
stdioで動作するMCPサーバーとして、タスクの作成、更新、削除、一覧表示、実行に加え、状態と履歴の確認ツールを公開します。タスクから設定済みのMCPサーバーを起動することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AssistStudio Runner
自然言語によるタスクをスケジュールに従って実行し、設定済みのチャネルを通じて結果を配信する、Windows 専用のヘッドレス LLM タスク自動化エンジンです。公式の MCP C# SDK を使用した Model Context Protocol(MCP) サーバーとして構築されています。
特長
- デュアルモード動作 — タスク管理用の MCP サーバー(
serve)と、スケジュール実行用のヘッドレス CLI(exec) - 7 つの MCP ツール —
create_task、update_task、delete_task、list_tasks、run_task、get_task_history、get_execution_status - Windows タスク スケジューラとの統合 — cron 式を
schtasksエントリに自動的にマッピング - 共有 AgentLoop — Ai.Execution による LLM 実行(SubAgentExecutor と同じループを使用)
- 複数プロバイダーの LLM に対応 — Ai.Providers を介した Claude、OpenAI、Gemini、Ollama、Groq
- MCP サーバーのオーケストレーション — タスクから任意の MCP サーバー(Outbox、RAG、Filesystem、カスタム)を起動可能
- 柔軟なツール制御 —
AllowedToolsが null の場合はすべてのツールを許可、明示的なリストで細かく制御、空のリストの場合は安全なツールのみ許可 - 安全な認証情報 — Windows Credential Manager(DPAPI)に API キーを保存し、AssistStudio と共有
- 実行ログ — DB サマリーと、会話履歴を完全に含む詳細な JSON ログ
- 一回限りのスケジュール設定 — 単一実行タスク向けの ISO 8601 日時を指定する
schedule_once(「5 分後」「明日の午前 9 時」など) - 結果の配信 — Outbox チャネル(Slack、Telegram、Email、KakaoTalk、Discord)を介して結果を送信
インストール
dotnet tool(推奨)
dotnet tool install -g FieldCure.AssistStudio.Runner
インストール後、assiststudio-runner コマンドをグローバルに使用できます。
スケジュール設定には Windows タスク スケジューラを使用し、認証情報は Windows Credential Manager に保存するため、公開パッケージは Windows 専用です。
ソースから
git clone https://github.com/fieldcure/fieldcure-assiststudio-runner.git
cd fieldcure-assiststudio-runner
dotnet build
要件
- .NET 8.0 Runtime 以降
- Windows(タスク スケジューラと Credential Manager に必要)
設定
自動設定(推奨)
runner.json がない状態で serve モードを起動すると、Runner は Windows Credential Manager をスキャンして既知のプロバイダー API キーを検出し、設定ファイルを自動生成します。AssistStudio をお使いの場合、API キーはすでに保存されているため、手動設定は不要です。
手動設定
# Create runner.json config template
assiststudio-runner config init
# Set API key for a provider model
assiststudio-runner config set-credential "Claude" sk-ant-api03-...
# Verify (displays masked value)
assiststudio-runner config get-credential "Claude"
設定ファイルは %LOCALAPPDATA%/FieldCure/AssistStudio/Runner/runner.json に作成されます。
{
"defaultModelName": "Claude",
"models": {
"Claude": {
"providerType": "Claude",
"modelId": "claude-sonnet-4-20250514"
}
},
"fallbackChannel": "runner-alerts",
"logRetentionDays": 30
}
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"runner": {
"command": "assiststudio-runner",
"args": ["serve"]
}
}
}
VS Code(Copilot)
.vscode/mcp.json に追加します。
{
"servers": {
"runner": {
"command": "assiststudio-runner",
"args": ["serve"]
}
}
}
ソースから(dotnet tool を使わない場合)
{
"mcpServers": {
"runner": {
"command": "dotnet",
"args": [
"run",
"--project", "C:\\path\\to\\fieldcure-assiststudio-runner\\src\\FieldCure.AssistStudio.Runner",
"--", "serve"
]
}
}
}
ツール
| ツール | 説明 | 確認 |
|---|---|---|
create_task | プロンプト、スケジュール、MCP サーバー設定を指定してタスクを作成 | 必須 |
update_task | タスクのフィールドを変更 — 部分更新に対応し、変更したフィールドのみを更新 | 必須 |
delete_task | タスク、その実行履歴、ログファイルを削除 | 必須 |
list_tasks | フィルタリングと最終実行ステータスを含めてタスクを一覧表示 | — |
run_task | 実行を開始(デフォルトは非同期、オプションで 60 秒待機) | 必須 |
get_task_history | ステータスで絞り込み、実行履歴を照会 | — |
get_execution_status | 実行のリアルタイムのステータスを確認 | — |
使用方法
会話の例
User: "Summarize competitor news every morning at 9 AM and send it to Slack"
LLM → create_task (schedule: "0 9 * * 1-5", mcp_servers: [outbox, rag])
User: "Run a test"
LLM → run_task (wait: true) → reports result
User: "Exclude weekends"
LLM → update_task (schedule: "0 9 * * 1-5")
User: "What were yesterday's results?"
LLM → get_task_history (limit: 1)
実行モード
| モード | コマンド | 目的 |
|---|---|---|
| Serve | assiststudio-runner serve | タスク管理用の MCP サーバー(stdio) |
| Exec | assiststudio-runner exec <task-id> | ヘッドレス実行(schtasks から呼び出されます) |
| Config | assiststudio-runner config init | 設定テンプレートを作成します |
assiststudio-runner config set-credential <key> <value> | API キーまたは環境変数を保存します | |
assiststudio-runner config get-credential <key> | 認証情報を取得します(マスク済み) |
終了コード(exec モード)
| コード | 意味 |
|---|---|
0 | 成功 |
1 | 失敗 |
2 | タイムアウト |
3 | タスクが見つかりません |
4 | すでに実行中です |
スケジュール設定
Cron 式は Windows タスク スケジューラのエントリに自動的にマッピングされます。
| スケジュール | パラメーター | schtasks |
|---|---|---|
| 指定時刻に1回 | schedule_once: "2026-04-07T15:30:00+09:00" | /SC ONCE /SD 2026/04/07 /ST 15:30 |
| 30分ごと | schedule: "*/30 * * * *" | /SC MINUTE /MO 30 |
| 2時間ごと | schedule: "0 */2 * * *" | /SC HOURLY /MO 2 |
| 毎日午前9時 | schedule: "0 9 * * *" | /SC DAILY /ST 09:00 |
| 平日の午前9時 | schedule: "0 9 * * 1-5" | /SC WEEKLY /D MON,TUE,WED,THU,FRI /ST 09:00 |
| 毎月1日 | schedule: "0 9 1 * *" | /SC MONTHLY /D 1 /ST 09:00 |
スケジュールされたタスクは schtasks /IT を使って作成されるため、対話型ユーザーのコンテキストで実行され、トリガー時にユーザーがログインしている必要があります。
schtasks のコマンドラインでは dnx(NuGet の npx 相当、.NET 10+)を使用してワーカーを取得し、実行します。dnx FieldCure.AssistStudio.Runner@<major>.* --yes exec <id> の形式です。ワーカーが使用するステートレス MCP サーバー(Essentials、Outbox)も、同じ方法で現在のメジャーバージョン範囲に固定して起動されます。NuGet に接続できないワークフローで具体的な実行ファイルを指定するには、RunnerConfig.ToolPath を設定してください。
データストレージ
| データ | 保存場所 |
|---|---|
| 設定 | %LOCALAPPDATA%/FieldCure/AssistStudio/Runner/runner.json |
| タスクデータベース | %LOCALAPPDATA%/FieldCure/AssistStudio/Runner/runner.db(SQLite、WAL) |
| 実行ログ | %LOCALAPPDATA%/FieldCure/AssistStudio/Runner/logs/{id}.json |
| API キー | Windows 資格情報マネージャー(FieldCure.AssistStudio) |
プロジェクト構成
src/FieldCure.AssistStudio.Runner/
├── Program.cs # Dual-mode entry point (serve/exec/config)
├── Models/ # RunnerTask, TaskExecution, RunnerConfig, ExecutionLog
├── Storage/TaskStore.cs # SQLite storage with WAL mode
├── Credentials/ # ICredentialService + Windows PasswordVault
├── Scheduling/ # CronToSchtasks parser, SchedulerService (schtasks)
├── Execution/ # TaskExecutor (AgentLoop-based), McpServerPool
├── Tools/ # 7 MCP tools for serve mode
└── Configuration/ConfigRunner.cs # CLI config subcommands
開発
# Build
dotnet build
# Test
dotnet test
# Pack
dotnet pack -c Release
AssistStudio 向けに設計
Runner は AssistStudio エコシステム向けに特化して作られています。通常、タスクは AssistStudio での自然言語による会話を通じて作成されます。AssistStudio がワークフローの設計、MCP サーバーの選択、ツールの権限設定を自動的に処理します。
Runner は serve モードを使って Claude Desktop や VS Code と単独で使用することもできますが、その場合はタスクのパラメーター(プロンプト、MCP サーバー、許可するツール)を手動で組み立てる必要があります。すべての機能を利用するには、AssistStudio を使用してください。
関連項目
AssistStudio エコシステムの一部です。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。