Skip to main content
Glama

LinkedRun

LinkedRun は、MCP サーバーとして公開される永続的なローカル Task–Artifact DAG の実行基盤です。

タスクは不変のアーティファクトを消費し、不変のアーティファクトを生成します。新しいタスクは、同一のバッチで送信されたタスク、またはそれ以前に送信されたタスクターの出力に依存てとができます。したがって、グラフは 1つのワークフロー実行に制限されず、増分的に伸いきます。

LinkedRun は、意図的にメカニズム専用のカーネルです。トレーニング、評価、細ボクラスタリング、ARI、モデル、実験プロトコルが何を意味するかには興味がありません。また、リソース要求を予測することもありません。開発エージェントがリソースを宣言し、LinkedRun は、マーシン容駆の制限とラインタイムの予約にの付てのみ、その宣言を信頼します。

セчей

意図した分担は以下の通りです。:

  • task Agent: 何を実行するを決定し、リソースニズを宣言します;

  • プロジェクト・ツーるグ: リソース予測、モデルの検証、ワワークフローの構築、メートリクの計算を行います;

  • LinkedRun: 依存関係の永続化、ビジーポーリングなしの待機、宣言されたリソースの予約、プロセスの実行、実行中止、アーティファクトのコミット、永続イベントの記録を行します。

コア・モデル

Artifact -> Task -> Artifact
                \\-> Task -> Artifact

データ依存は、たんに実行依存関係でもあります。アーティファクトが消費されない場合は、after による純粋リな順序約が利用できます。

CPU ツール

  • submit_task

  • submit_graph

  • get_task

  • list_tasks

  • cancel_task

  • retry_task

  • list_artifacts

  • get_artifact

  • get_graph

  • get_events

  • watch_events

  • resource_status

watch_events は、永続的な long-poll インターンェースです。クラアントは、最後の event_id から再開するため、る続的で高頻度のポーリング・ループは不要です。将来のリリースでは、ホストのサポートが十十分に普いとき、実行ハンドルを MCP の io.modelcontextprotocol/tasks 拡張へ入映できるようになるでしょう。

インストール

pip install -e .

Python 3.11+ が必須です。LinkedRun は、MCP Python SDK v2 / MCP 2026-07-28 をターゲットとします。

起動

複数のエージェント/クラ write ンが同じグラフを必要とする場合は、永続ローカル HTTP サビスが推奨されます。:

export LINKEDRUN_HOME="$HOME/.linkedrun"
linkedrun --transport streamable-http --host 127.0.0.1 --port 8765

MCP ンエンドポイint は http:``127.0.0.1:8765/mcp です。

MCP プロセス自体を管理するホストの場合:

linkedrun --transport stdio

SQLite の状態と コンテンツンツンコア レスの実アーティファクトは、LINKEDRUN_HOME の下に格納されます。

タスクを 1つ登録する

概念的に、submit_task への MCP 呼び出しは次のようになります:

{
  "name": "train",
  "command": ["python", "train.py"],
  "outputs": {
    "model": "outputs/model.pt",
    "embedding": "outputs/embedding.zarr"
  },
  "resources": {
    "cpu_cores": 8,
    "memory_bytes": 34359738368,
    "gpu_count": 1,
    "gpu_mode": "exclusive"
  }
}

コマンドは argv 配列であり、シェル文字列ではありません。シェルのセマンティクスが必要な場合は、明示的に ["bash", "-lc", "..."] を使用してください。

同一サブミッション内の依存

submit_graph は、ダイン・ロカルの参照をサポートしています:

{
  "tasks": [
    {
      "name": "train",
      "command": ["python", "train.py"],
      "outputs": {"embedding": "outputs/embedding.zarr"}
    },
    {
      "name": "cluster",
      "command": ["python", "cluster.py"],
      "inputs": {"embedding": "@train/embedding"},
      "outputs": {"clusters": "outputs/clusters.parquet"}
    },
    {
      "name": "ari",
      "command": ["python", "ari.py"],
      "inputs": {"clusters": "@cluster/clusters"}
    }
  ]
}

バッチ全体は、サイクル検出後に、アトミックに登録されます。

別サブミッション間の依存

以前のトレーニング・タスクの ID が task_abcd で、embedding を生成している場合、後で送信されたタスクは 、次を使えます:

{
  "inputs": {
    "embedding": "task:task_abcd/artifact:embedding"
  }
}

コミット済みのアーティファクトを直接参照することもできます:

artifact:art_abcd

したがって、グラフは永続的かつ増量的です。ワークフロー実 行というトッぷ・レベルの境界は必要ありません。

ラインタイム契約

タスクの開始前に、LinkedRun はプライベートな試ー行ディレイクトリを作成し、以下を設します:

LINKEDRUN_TASK_ID
LINKEDRUN_ATTEMPT_ID
LINKEDRUN_WORKDIR
LINKEDRUN_OUTPUT_DIR
LINKEDRUN_INPUT_<NAME>

各インプット・ファイトは、不変のコテンテンツーアドレス済 ストレージへの読み取リー専用(慣例)シンボリック・リンクです。宣言された出力パスは、試行ディレクトリ内に留まる必要があります。プロセスが成功終了した場合、出力はハッシュ化されてから、タスクが SUCCEEDED になる前にアーティファクト・ストアにコミットされます。

タスクの状態

PENDING -> READY -> RUNNING -> SUCCEEDED
                       \\----> FAILED
PENDING --------------------> BLOCKED      (upstream failed/missing artifact)
PENDING --------------------> UNSCHEDULABLE (declared request exceeds machine capacity)
PENDING/RUNNING ------------> CANCELED

リトライは、タスクごとのジェネレーションを増加させます。ジェネレーションが古くなった後、以前の試行はコミットできません。これが、LinkedRun のフフェンシング・ルールの初の実装です。

リソースに関するポリシ

LinkedRun は、リソース使用量を推測しません。次を受け付りません:

cpu_cores
memory_bytes
gpu_count
gpu_mode=exclusive
gpu_memory_bytes_hint
walltime_seconds
scratch_bytes

gpu_memory_bytes_hint は、v0.1 では根拠となるメタデデータ過ぎません。GPU のスケジューリングは、専用デバースの割り当てです。CPU とメモリは予約費を計算の対象であり、walltime_seconds は確強制されます。OS レベルのハードな CPU/メモリ/スクラッチ分離は、カーネルに実験専用アドミッションの論理理を加える 것ではななく、今後のサンドボックス・モージュールに委ねられます。

現時点为 v0.1 スの境界

実装済み:

  • SQLite/WAL による永続的なタスク、実試行試行、依存関係、アーティファクト、イベント状態;

  • 同一バッチのグラフのアトミック登録とサイクル検出;

  • 送信みを跨ぐるタスク/アーティファクト参照;

  • バックグラウンドでの依存関係ディスパッチ;

  • 呼び出し主が宣した CPU/メモリ/GPU 予約;

  • CUDA_VISIBLE_DEVICES による専用 GPU の割り当て;

  • サブにプロセスの実行、キングセル、ウォールタイム制限;

  • コンテンツアドレス型の不変ファイル/ディレクトリアーティファクト;

  • 永続的なイベントと再接続可能なロングポール;

  • リから トライ世代/フェンスー規則;

  • stdig および Streamエ MCP トランスポート。

まだ堅硬化されていないもの:

  • CPU、メモリ、スクラッチに対する OS レベルの cグループ/ジェクト・オブジェクトというハード制限;

  • 実行中の子プロセスに手直し続けて接し直しながら、マシン/カーネルのクラッシュをいたこと (v0.1 では、途中で断れた試行を安全に失敗扱いし、明示的なリトライを必要とします) ;

  • 非ローカル HTTP の露出しに対する認証;

  • MCP のタスク拡スの張マッピング;

  • アーティファクト・ガベージ・コレクションおよび保管ポリシー;

  • リモート・ワーカソや分散指向のタスケジューリング (現時点は目標外部) :リステ。

これらの省略は意図的です。v0.2 は、オプシオナルなメニズムを加える前に、最小限のカーネルの境界を確立します。

開発

python -m venv .venv
. .venv/bin/activate
pip install -e '.[dev]'
pytest -q
ruff check .

アーキテクチャのルール

ある特機が、LinkedRun の外部へ出しても 、一般のタスクの永続化、依存関係のスケジューリング、プロセス・ライフサイクル、アーティファクトのコミット、イベントの持続性を壊さず|オれた場合は、LinkedRun の外側に残す。特に、モデルのバリデーション、リソースの予測、実験のセマンティクス、メートリクのセマンティクス、正式な結果の公表は、外部の関心ごとしません。

-
license - not tested
Not graded
quality - not tested
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 Connectors

  • Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.

  • Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.

  • Workflow diagnostics, capability routing, and x402 settlement for MCP-compatible agents.

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/ShiroganeKaichou/LinkedRun'

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