mcpField
R
Rotifer Protocol MCP Server

Rotifer Protocol MCP Server

ローカル
github.com/rotifer-protocol開発ツール15 日前に更新

Rotifer Protocol MCP Server について

Rotifer Protocol エコシステムの開発者向け MCP サーバーです。Gene の検索や管理に加え、MCP 対応 IDE やクライアントから WASM サンドボックス内で Agent を構成・実行できます。

主な機能

  1. 01Gene の検索・詳細表示・比較
  2. 02複数 Gene による Agent の作成と実行
  3. 03Gene のテスト・コンパイル・公開
  4. 04ローカル Gene と Agent の管理
  5. 05ランキング、開発者プロフィール、リソースの参照

活用シーン

  1. 01タスクに合う Gene を検索して比較
  2. 02選択した Gene から Agent を構成
  3. 03ローカルで開発した Gene をテストして公開
  4. 04Arena のランキングや開発者プロフィールを確認

MCP 対応

Gene の検索、Agent の構成、ライフサイクル操作、ランキングなどの Rotifer ツール、リソース、ガイド付きプロンプトを MCP クライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"rotifer": {
"command": "npx",
"args": [
"-y",
"@rotifer/mcp-server"
]
}
}
}
起動コマンドnpx -y @rotifer/mcp-server

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

パッケージ
npm@rotifer/mcp-server0.19.6

ツール

31

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
querystringいいえGene 名または説明を全文検索します
domainstringいいえ機能ドメインで絞り込みます(例:search.web、code.format)
fidelityenumいいえGene の忠実度タイプで絞り込みますWrapped | Hybrid | Native | Unknown
sortenumいいえ並べ替え順(デフォルト:query が指定されている場合は関連度順、それ以外は新しい順)relevance | newest | popular | fitness
pagenumberいいえページ番号(デフォルトは 1)
per_pagenumberいいえ1 ページあたりの結果数(デフォルト 20、最大 50)

詳細

@rotifer/mcp-server

npm License: Apache-2.0 Node.js MCP

IDE から直接、AI エージェントを構築、合成、実行できます。

遺伝子を検索し、組み合わせ可能なゲノムでエージェントを作成し、WASM サンドボックスでパイプラインを実行して、Arena で競い合いましょう。 設定は不要です。Cursor、Claude Desktop、Windsurf、および MCP 対応のあらゆるクライアントで動作します。


クイックスタート

Cursor

.cursor/mcp.json に追加します:

{
  "mcpServers": {
    "rotifer": {
      "command": "npx",
      "args": ["@rotifer/mcp-server"]
    }
  }
}
Claude Desktop

claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "rotifer": {
      "command": "npx",
      "args": ["@rotifer/mcp-server"]
    }
  }
}
Windsurf / その他の MCP クライアント

同じ npx コマンドを使用します。MCP stdio トランスポートをサポートするクライアントであれば、どれでも動作します。

何ができますか?

1 回の会話でエージェントを作成して実行する
You: "Build me an agent for code security scanning"
AI:  → create_agent({ agent_name: "sec-bot", gene_ids: ["security-scanner", "genesis-code-format"],
                       composition: "Seq" })
     Agent 'sec-bot' created with 2-gene Seq genome.

You: "Run it on my project"
AI:  → agent_run({ agent_name: "sec-bot", input: "{\"path\":\"./src\"}" })
     Pipeline complete — 3 findings, 0 critical.
遺伝子を検索、比較、合成する
You: "Find the best gene for web search"
AI:  → search_genes({ query: "web search" })
     Found 8 genes. Top match: genesis-web-search (F(g) = 0.87, Native)

You: "Compare it against the lite version"
AI:  → compare_genes({ gene_ids: ["...", "..."] })
     Side-by-side: success rate, latency, fitness breakdown
IDE から遺伝子のライフサイクル全体を管理する
You: "Wrap my function as a gene"
AI:  → wrap_gene({ gene_name: "my-search", domain: "search.web", fidelity: "Wrapped" })
     → compile_gene({ gene_name: "my-search" })
     → test_gene({ gene_name: "my-search", compliance: true })
     → publish_gene({ gene_name: "my-search", changelog: "Initial release" })

ツール(31)

検索と分析
ツール説明主なパラメーター
search_genes名前、ドメイン、説明から Gene エコシステムを検索しますquery、domain、fidelity、sort(relevance/newest/popular/fitness)、page、per_page
get_gene_detailGene の詳細情報(表現型、fitness、メタデータ)を取得しますgene_id、content_hash(どちらも Gene を特定します)
get_arena_rankingsドメインの Arena ランキングを F(g) fitness 順で取得しますdomain、page、per_page
compare_genes2~5 個の Gene の fitness を並べて比較しますgene_ids(配列)
get_gene_statsダウンロード統計(合計、7 日、30 日、90 日)を取得しますgene_id
get_leaderboardクリエイターの評判ランキングを取得しますlimit
get_developer_profileクリエイターの公開プロフィールと評判を取得しますusername
get_gene_reputation評判の詳細な内訳(Arena、使用状況、安定性)を取得しますgene_id
list_gene_versions変更履歴を含むバージョン履歴を取得しますowner、gene_name
suggest_domainレジストリから一致するドメインを提案しますdescription
ローカルワークスペース
ツール説明主なパラメーター
list_local_genesローカルワークスペースをスキャンし、インストール済みの Gene を一覧表示しますproject_root、domain、fidelity
list_local_agentsローカルワークスペースの Agent を一覧表示しますproject_root、state
Gene のライフサイクル
ツール説明主なパラメーター
init_geneスターターファイルを含む新しい Gene プロジェクトを初期化しますgene_name、fidelity、domain、no_genesis
scan_genes候補となる関数または SKILL.md ファイルをスキャンしますpath、skills、skills_path
wrap_gene関数/スキルを Gene としてラップしますgene_name、domain、fidelity、from_skill、from_clawhub
test_geneGene をテストします(スキーマ検証+サンドボックス)gene_name、verbose、compliance
compile_geneGene を WASM IR にコンパイルしますgene_name、check、wasm_path、lang
doctorローカルの TypeScript→WASM ツールチェーン(esbuild / javy)を確認し、不足しているものを報告します。読み取り専用です。compile_gene が失敗したときに使用しますproject_root
run_geneローカルの Gene を実行しますgene_name、input、verbose、no_sandbox、trust_unsigned
publish_geneRotifer Cloud に公開しますgene_name、all、description、changelog、skip_arena、skip_security
install_geneCloud Registry から Gene をインストールします。force を指定すると、置き換えるコピーのスナップショットを作成しますgene_id、project_root、force
rollback_geneローカル Gene の最後の上書きを元に戻します。名前を指定せずに呼び出すと、元に戻せる項目を一覧表示しますgene_name、project_root
vg_scanV(g) セキュリティスキャン — Gene/スキルのコード安全性を静的解析しますpath、gene_id、all、project_root
arena_submitサンドボックスでローカル Gene を測定し、その測定結果を Arena に送信します。スコアは Gene の実行によって生成され、呼び出し元が指定することはありませんgene_name、project_root
エージェントの構成
ツール説明主なパラメーター
create_agent複数の Gene を組み合わせた Agent を作成しますagent_name、gene_ids、composition(Seq/Par/Cond/Try/TryPool)、domain、top、strategy、par_merge
agent_run名前を指定してローカルの Agent を実行しますagent_name、input、verbose、no_sandbox
認証と分析
ツール説明主なパラメーター
auth_statusログイン状態を確認します—
loginOAuth ログイン(GitHub/GitLab)provider、endpoint
logout認証情報を消去します—
get_mcp_statsMCP 呼び出しの分析情報days
get_my_reputation現在のユーザーの評価—

リソース(7)

MCP リソースを使うと、AI クライアントは Rotifer のデータをコンテキストとして参照できます。

URI テンプレート説明
rotifer://genes/{gene_id}/statsGene のダウンロード統計
rotifer://genes/{gene_id}Gene の詳細+表現型
rotifer://developers/{username}作成者のプロフィール+評価
rotifer://leaderboard評価スコア上位の作成者
rotifer://local/genesローカルの Gene インベントリ
rotifer://local/agentsローカルの Agent レジストリ
rotifer://versionMCP サーバーのバージョンと更新の利用可否

各リソースは、同じ役割のツールが返すものを返します。そのため、宣言したツールセットは両方を対象とします。--tools=evolve を指定すると、rotifer://genes/{gene_id}/stats、 rotifer://developers/{username}、rotifer://leaderboard は一覧から消え、直接読み取ろうとしても拒否されます。 これは、get_gene_stats、 get_developer_profile、get_leaderboard が要求されていないためです。 rotifer://version は常に応答します。これはサーバーが自身について説明するものであり、 機能ではないためです。0.16.0 より前は、ツールセットの指定にかかわらずこれらにアクセスできました。

プロンプト(4)

MCP プロンプトは、一般的なタスク向けにガイド付きワークフローを AI クライアントに提供します。

プロンプト説明主な引数
rotifer-hello対話形式でエージェントを作成 — テンプレートを選んですぐに実行template、input
rotifer-guideRotifer Protocol を理解 — 遺伝子、エージェント、Arena、忠実度モデル—
rotifer-architectエージェントを設計 — タスク主導の遺伝子検索と構成計画task
rotifer-challengeArena で評価 — 遺伝子を提出し、競合相手と比較gene

AI に次のように尋ねてみてください:「rotifer-hello プロンプトを使ってエージェントを作って」、または 「rotifer-architect を使って、ドキュメントの Q&A 用エージェントを設計して」。


アーキテクチャ

┌─────────────────────────────────────────────────┐
│  AI IDE (Cursor / Claude / Windsurf)            │
│                                                 │
│  "Find genes for code formatting"               │
│       │                                         │
│       ▼                                         │
│  ┌─────────────────────┐                        │
│  │  MCP Client         │                        │
│  │  (stdio transport)  │                        │
│  └────────┬────────────┘                        │
└───────────┼─────────────────────────────────────┘
            │ MCP Protocol
            ▼
┌─────────────────────────────────────────────────┐
│  @rotifer/mcp-server                            │
│                                                 │
│  31 Tools  7 Resources  4 Prompts  Local Scanner│
│  ┌──────────┐  ┌───────────┐   ┌────────────┐  │
│  │ discover │  │rotifer:// │   │ ./genes/    │  │
│  │ lifecycle│  │genes/stats│   │ phenotype   │  │
│  │ agents   │  │developers │   │ agents      │  │
│  │ auth     │  │leaderboard│   └────────────┘  │
│  └────┬─────┘  └─────┬─────┘         │         │
└───────┼──────────────┼────────────────┼─────────┘
        │              │                │
        ▼              ▼                ▼
┌─────────────────────────────────────────────────┐
│  Rotifer Cloud API          Local File System   │
│  (Supabase)                 (genes/, .rotifer/) │
└─────────────────────────────────────────────────┘

設定

デフォルトでは設定不要で、公開 Rotifer Cloud API に接続します。

カスタムエンドポイントを使用するには、~/.rotifer/cloud.json を作成します。

{
  "endpoint": "https://your-supabase-instance.supabase.co",
  "anonKey": "your-anon-key"
}

または、環境変数を設定します。

ROTIFER_CLOUD_ENDPOINT=https://your-instance.supabase.co
ROTIFER_CLOUD_ANON_KEY=your-anon-key
公開するツールの選択

デフォルトでは、31 個すべてのツールを利用できます。ROTIFER_MCP_TOOLS を使うと、 特定のインテグレーションで実際に必要なものだけに絞り込めます。これは、代理で公開やログインを できないようにすべきアシスタントにサーバーを接続する場合に便利です。

npx @rotifer/mcp-server --tools=evolve          # the rank-and-swap preset (10 tools)
npx @rotifer/mcp-server --tools=readonly        # nothing that writes (14 tools)
ROTIFER_MCP_TOOLS=search_genes,get_gene_detail  # an exact list
ROTIFER_MCP_TOOLS=evolve,vg_scan                # a preset plus one

プリセットでも以下のツールでもない名前は無視され、stderr に通知が出ます。該当する名前が 一つもない場合、サーバーは起動せず、プリセットを一覧表示してコード 2 で終了します。ツールが まったくない状態で実行されることはありません。

フラグと変数は同じ動作をし、両方が設定されている場合はフラグが優先されます。呼び出し元に よって利用できるものが異なるため、両方用意されています。シェルユーザーは変数を設定し、 マニフェストからこのサーバーを起動するものはコマンドラインだけを制御します。

宣言したセットは、tools/list だけでなく、すべての機能を対象とします。セット外のツールは 名前で呼び出しても拒否されます。除外されたツールと重複するリソースは一覧から 除かれ、読み取りも拒否されます。また、以下のサンドボックス回避手段も、別途宣言されない限り 無効になります。回避する方法が残された制限は、制限とは言えません。

セット外のツールは listTools から除外され、呼び出されても拒否されます。拒否のメッセージには、 ツールを再び追加する方法と、同等の処理を行う rotifer CLI コマンドがある場合はそのコマンドが 示されます。つまり、絞り込まれたセットは行き止まりではなく、意図的に確認して解除できる境界です。

未設定のままにしておけば、何も変わりません。

サンドボックスの無効化

agent_run と run_gene には no_sandbox があり、run_gene にはさらに trust_unsigned があります。これらのオプションを使うと、Gene コードが WASM サンドボックス内 ではなく、通常の Node.js として実行されます。絞り込まれたツールセット内のツールからでも サンドボックスを無効にできるなら、ツールセットを絞る意味はほとんどありません。そのため、 起動時に宣言されていない限り、これらのオプションは拒否されます。

npx @rotifer/mcp-server --allow=no-sandbox
npx @rotifer/mcp-server --allow=no-sandbox,trust-unsigned
ROTIFER_MCP_ALLOW=no-sandbox                    # same thing

機能が取り除かれるわけではありません。オプションの設定が「どの呼び出し元でも可能」から 「誰かが起動時に宣言した場合に可能」に変わるだけなので、いつでも自分で設定できます。

rotifer agent run <name> --no-sandbox
rotifer run <gene> --trust-unsigned

変わるのは、アシスタントが独断でサンドボックスを無効化できなくなる点です。 no_sandbox: false の指定は安全な動作を求めるものであり、拒否されることはありません。

インストールの取り消し

以前は、force を指定した install_gene で Gene を上書きすると、元に戻す方法がありませんでした。 現在は、まず古いコピーを <genes>/.snapshots/ に移動し、rollback_gene で復元できます。

rollback_gene {}                          → what can be rolled back
rollback_gene { gene_name: "formatter" }  → restore the copy that was replaced

Gene ごとにスナップショットは一つです。同じ Gene を次に上書きするとスナップショットは置き換えられ、 ロールバックすると消費されます。これは最後のアップグレードを取り消す機能であり、履歴を保持する ものではありません。上流に存在するバージョンは、すでに list_gene_versions で確認できます。

サーバーを最新の状態に保つ

サーバーは以前から、起動時に1日1回、stderr に1行出力して、古いバージョンを使っていることを知らせていました。self-update はそのもう一方です。

rotifer-mcp-server self-update              # check, verify, install
rotifer-mcp-server self-update --rollback   # back to the version it replaced

npm が来歴アテステーションを提供していないバージョンへの更新は拒否されます。このパッケージは CI から --provenance を付けて公開されるため、アテステーションのないビルドはこのプロジェクトがリリースしたものではありません。

知っておくべき点が2つあります。

  • 実行中のサーバーは、古いコードのままサービスを続けます。 インストールによってディスク上のファイルは置き換わりますが、エディターがすでに接続しているプロセスは置き換わりません。更新後に MCP ホストを再起動してください。
  • npx 経由で起動している場合、更新するものはありません。 バージョンを固定していない npx @rotifer/mcp-server は実行のたびに最新の公開バージョンを解決するため、self-update はその旨を伝えて終了し、グローバルにインストールして npx 経由のバージョンを上書きすることはありません。

これはユーザーが実行するコマンドであり、モデルが呼び出せるツールではありません。更新にはグローバルインストールが必要であり、ツールでは結果を正確に報告することさえできません。モデルは「更新しました」と伝えても、実際には古いプロセスからサービスが提供され続けるためです。

HTTP 経由でサービスを提供する

通常、サーバーは起動した MCP ホストと stdio 経由で通信します。代わりに Streamable HTTP 経由で公開するには、次のようにします。

rotifer-mcp-server serve                      # http://127.0.0.1:3000/mcp
rotifer-mcp-server serve --port 8080
rotifer-mcp-server serve --host 0.0.0.0       # reachable from other machines
  • --host を指定しない場合、127.0.0.1 で待ち受けます。 HTTP エンドポイントには認証がなく、ツールはサインイン済みの Rotifer アカウントで動作するため、デフォルトでは他のマシンからアクセスできません。ループバック以外のアドレスを --host に指定すると、サーバーは起動時に stderr でそのことを通知します。以前のバージョンでは、すべてのインターフェースで待ち受けていました。
  • リクエスト本文の上限は 256 KiB です。 これを超えるリクエストは、解析される前に JSON-RPC エラーを伴う 413 で応答されます。MCP メッセージはこのサイズよりはるかに小さいため、この上限は、SDK のデフォルト値(4 MiB)について説明しているGHSA-46jr-4wx8-v453の脆弱性を防ぐために設けられています。この脆弱性では、単一のリクエストでサーバーのメモリを使い果たす可能性があります。
  • GET /health は、稼働確認用に {"status":"ok","transport":"streamable-http"} を返します。
使用状況の報告

サインインしている場合、各ツール呼び出しの使用状況レコードが Rotifer Cloud に送信されます。記録されるのは、ツール名、処理対象となった Gene の ID、成功したかどうか、所要時間、ユーザー ID です。get_mcp_stats はこの情報を読み取ります。Gene の実行も呼び出しとして記録され、プロトコルの改ざん防止メトリクスはこの記録に依存します。

渡した引数、ファイルの内容、環境変数、ローカル設定は送信されません。

サインアウト中は、使用状況レコードは送信されません。 ただし、どちらの場合も1つのリクエストが送信されます。Gene をインストールすると、その Gene の公開インストールカウンターが増加します。送信されるのは Gene の ID だけで、ユーザー ID、セッション、引数は含まれません。Arena はこの情報でインストール数を集計します。0.15.1 まではこれを止める仕組みがなく、このセクションには「サインアウト中は何も報告されない」と記載されていましたが、インストールについては正しくありませんでした。

現在は ROTIFER_TELEMETRY=0 で次の3つすべてを停止できます。

ROTIFER_TELEMETRY=0    # also accepts false / off

この3つとは、logMcpCall、logGeneInvocation、および installGene 内の track_download 呼び出しです。いずれも src/cloud.ts にあり、全体を読むのに時間はかかりません。ここに挙げたもの以外に、何かを独自に報告する処理はありません。このサーバーのその他すべての外部への呼び出しは、クエリ、公開、サインインなど、呼び出したツールが処理を行うためのものです。それに加えて、WASM アーティファクトのダウンロードと、1日1回の npm バージョン確認があります。

要件

  • Node.js >= 20

CLI と連携する

この MCP サーバーは、Rotifer CLI と組み合わせると最も効果を発揮します。CLI はローカルランタイム(WASM サンドボックス、Arena エンジン、IR コンパイラー)を提供し、MCP サーバーはそれらすべてを AI アシスタントに公開します。

npm install -g @rotifer/playground
rotifer init my-agent && cd my-agent
rotifer hello --template quality-advisor   # your first Agent workspace in seconds

リンク

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

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

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