Silica について
Silica はハードウェア設計と検証向けの MCP サーバーで、コーディングエージェントに EDA ツールチェーンへの構造化アクセスを提供します。解析済みのエラー、タイミング、使用率、反例を返し、作業手順の案内やツールの検出も行います。
主な機能
- 01RTL の lint とシミュレーション
- 02形式検証の実行と反例の確認
- 03合成、配置配線、FPGA の書き込み
- 04波形、カバレッジ、シリアル出力の取得
- 05結果の解析と EDA ツールの検出
活用シーン
- 01RTL シミュレーションの失敗を調べて修正を反復
- 02FIFO や UART の形式的な性質を検証
- 03設計を合成し FPGA ビットストリームを作成
- 04タイミング、使用率、シリアル出力を確認
MCP 対応
Silica は MCP 経由でコーディングエージェントに EDA ツールを公開し、lint、シミュレーション、検証、合成、配置配線、デバイス書き込みを可能にします。ツールの結果は生ログだけでなく構造化して返されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
18掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| top | any | いいえ | |
| file | string | はい | |
| trace | boolean | いいえ | |
| timeout | integer | いいえ | |
| coverage | boolean | いいえ | |
| simulator | string | いいえ | |
| testbench | string | はい | |
| extra_sources | any | いいえ |
詳細
できること
Silicaは、コーディングエージェントがEDAツールチェーンに構造化された形でアクセスできるようにするMCPサーバーです。エージェントはMCPツールを通じて、Lint、シミュレーション、証明、合成、配置配線、ボードへの書き込み、UARTの読み取りを行い、生ログではなく解析済みの結果(ファイル名と行番号付きのエラー、クロックごとのタイミング、使用率、推論されたメモリ、反例トレース)を取得できます。
これにより、コピー&ペーストなしで一連の作業を完結できます。シミュレーションを実行し、失敗を読み取り、RTLを修正して、再実行します。また、サーバーは作業の順序や避けるべき落とし穴もエージェントに伝え、doctorツールはインストール済みのEDAツールと、残りのツールのインストール方法を報告します。
Silicaが操作するのは、ユーザー自身がインストールしたツールです。オープンソースツール(主にOSS CAD Suite)に加え、商用ツール(VCS、Questa、Xcelium、Vivadoなど)も、PATH上にあれば使用できます。各ツールのテスト状況はサポート対象ツールに記載しています。
現在の動作状況
PicoRV32 RISC-V SoCのファームウェアがバナーを出力し、UART入力をエコーし、タイマーでLEDを駆動する構成で、Digilent Arty A7-100T(Xilinx Artix-7)上の全フローをエンドツーエンドで実行しました。
- RTLとLint:Verilator、Verible、svlintを使用し、Verilatorで複数ファイルからなる設計全体をエラボレーションします。
- シミュレーション:IcarusとVerilatorで、
$readmemhから実際のファームウェアを読み込んで実行し、波形(read_waveform)と行カバレッジ(read_coverage)を取得します。 - フォーマル検証:UARTとFIFOに対するSymbiYosysのprove、cover、境界付きチェックを実行します。意図的に誤ったアサーションは、反例とともにFAILとして報告され、eqyによる等価性検証も行います。
- 合成:Yosysの
synth_xilinxを使用し、使用率と、初期化データを含むブロックRAMとして報告されたファームウェアROMを確認します。 - 配置配線:openXC7のnextpnr-xilinxを使用します(目標100 MHzに対し、153 MHzで配線完了)。
.bitはfpga-asで組み立てます。 - 書き込み:
program_device(openFPGALoader)でSRAMに書き込み、FPGAのDONEステータスを確認します。 - シリアル確認:
capture_serialで、ボードのUARTを介したバナーとエコーを確認します。
これらの実行は、1台のマシン上で手動で行いました(OSS CAD Suite 2026-10-14、openXC7 toolchain-nix 1.0.0、Verible v0.0-4296、svlint 0.9.5)。CIでは、週次の統合ジョブでオープンソースツールを対象にテストしています。詳しくはサポート対象ツールをご覧ください。
既知の制限事項
- Vivado は合成のみです。実装やビットストリーム生成の手順はありません。
- VCS、Questa、Xcelium アダプターは、実際のインストール環境ではなく、モックしたツール呼び出しでのみテストされています。Quartus、DC Shell、JasperGold、VC Formal、SpyGlass、Verdi も同様です。動作に問題がある場合は、ツールのバージョンと出力を添えてイシューを作成してください。
- iCE40 と ECP5 のビットストリームは icepack/ecppack でパッケージ化され、実際のツールで検証されていますが、
program_deviceはモックした openFPGALoader 呼び出しを使ってこれらのボードでのみテストされています。iCE40 または ECP5 のボードを利用できなかったためです。get_project_structureは iCE40 の.pcfファイルを一覧表示しません。 - cocotb には、読み込むシミュレーターと互換性のある glibc を備えた Python が必要です。OSS CAD Suite のシミュレーターと、より新しいシステム Python(glibc が Suite より新しい)を使うと、
run_cocotbはインポート時に失敗します。 - フォーマル検証:
induction_failuresを伴うUNKNOWNの証明結果は、バグではなく結論が出ていないことを示します(k-帰納法で収束しませんでした)。深い有界検査には時間がかかる場合があります。例の UART を 120 ステップ検査するのに 16 分かかりました。 - オフライン:
uvx silica-eda@latest(Claude Code プラグインを含む)で設定したクライアントは、ネットワーク接続がないとサーバーを起動できません。--offlineを使った回避策については、インストール手順のオフラインを参照してください。 - シリアル:
capture_serialではポートを明示的に指定し、そのポートへの読み取り/書き込みアクセス権が必要です。通常、プログラミング後にキャプチャを開始すると、ブート時のメッセージを取得できません。 - Windows:シリアルデバイスの存在確認と権限の事前チェックは POSIX 専用です。また、pty ベースのシリアルテストは Windows ではスキップされます。
クイックスタート
-
uv をインストールします。 silica 自体を個別にインストールする必要はありません。エージェントが
uvx silica-eda@latestで起動します。uv のuvxは初回使用時に PyPI から silica-eda をダウンロードして実行します。確認するには、uvx silica-eda@latest --versionを実行します。 -
エージェントに silica を追加します。 セットアップウィザード
uvx silica-eda@latest setupを実行すると、各クライアントの設定が自動的に書き込まれます(セットアップウィザードを参照)。または、エージェントへのインストールに従ってください。 -
必要な EDA ツールをインストールします。ほとんどのオープンソースツールにはOSS CAD Suite、リンティングにはVerible と svlint、Xilinx の配置配線にはopenXC7を使用します。その後、エージェントに
doctorを実行するよう依頼します。 -
examples/uart/の UART の例を試します。examples/uart/ の UART TX シミュレーションを実行し、合格するかどうか教えてください。
次に、問題を起こしてエージェントにバグを見つけてもらいます。
examples/uart/uart_tx.sv で、DATA 状態のシフトを
shift_reg <= {shift_reg[6:0], 1'b0};に変更してください。シミュレーションを実行し、バグを見つけて修正してください。テストベンチには
bit[2] is 0, expected 1のような[FAIL]行が出力され、エージェントはそれをシフト方向の問題として追跡できるはずです。
エージェントにインストールする
以下の各クライアントは、サーバーを uvx silica-eda@latest で起動するため、silica を別途インストールする必要はありません。初回使用時に uvx がキャッシュ環境にダウンロードし、次回クライアントがサーバーを起動するときに新しいリリースを取得します。まずuv をインストールしてください。uvx は uv によって提供されます。silica を自分でインストールする場合は、uv tool install silica-eda または pip install silica-eda を実行すると、PATH に silica コマンドが追加されます。その場合、クライアントのコマンドは silica、引数は serve になります。uvx silica-eda を使うには、0.3.1 より新しい silica-eda リリースが必要です。0.3.1 では、代わりに uvx --from silica-eda@latest silica を使ってください。
silica は、別途インストールした EDA ツール(Verilator、Yosys、SymbiYosys、nextpnr、…)を操作します。EDA ツールのインストールを参照してください。接続したら、エージェントに doctor ツールを実行するよう依頼してください。インストール済みのツールと、不足しているツールのインストール方法が一覧表示されます。
Claude Code(ワークフロースキル付きプラグイン)
Claude Code で:
/plugin marketplace add simaanc/silica-eda
/plugin install silica-eda@silica-eda
Claude Code 2.1.275 以降では、次のコマンドで一度にインストールすることもできます:/plugin install silica-eda --marketplace simaanc/silica-eda。
更新:プラグインのサーバーは常に uvx silica-eda@latest で実行されます。プラグインの更新(新しいスキルや設定の変更)も自動的に受け取るには、マーケットプレイスの自動更新を有効にしてください。デフォルトでは無効です:/plugin → Marketplaces → silica-eda → Enable auto-update。管理者は、管理対象の設定にあるマーケットプレイスの extraKnownMarketplaces エントリーで "autoUpdate": true を設定できます。自動更新を有効にしていない場合は、/plugin marketplace update silica-eda を実行してください。
プラグインを使わず、サーバーだけを追加する場合:
claude mcp add --transport stdio --scope user silica -- uvx silica-eda@latest
Claude Desktop
Settings → Developer → Edit Config を開き、サーバーを claude_desktop_config.json に追加してから、Claude Desktop を終了し、再起動します:
{
"mcpServers": {
"silica": {
"command": "uvx",
"args": ["silica-eda@latest"]
}
}
}
サーバーが起動しない場合、Claude Desktop からシェルの PATH が参照できない可能性があります。which uvx で確認したフルパスを command に指定してください。
Codex CLI
codex mcp add silica -- uvx silica-eda@latest
または ~/.codex/config.toml に記述します:
[mcp_servers.silica]
command = "uvx"
args = ["silica-eda@latest"]
# The first launch downloads silica; Codex's default start timeout is 10 s.
startup_timeout_sec = 60
Cursor
~/.cursor/mcp.json(すべてのプロジェクト)または .cursor/mcp.json(1 つのプロジェクト)に追加します:
{
"mcpServers": {
"silica": {
"type": "stdio",
"command": "uvx",
"args": ["silica-eda@latest"]
}
}
}
ワンクリックでインストールするには、ブラウザーで次のリンクを開いてください(GitHub では cursor:// リンクをクリックできません):
cursor://anysphere.cursor-deeplink/mcp/install?name=silica&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJzaWxpY2EtZWRhQGxhdGVzdCJdfQ==
VS Code(GitHub Copilot)
code --add-mcp '{"name":"silica","type":"stdio","command":"uvx","args":["silica-eda@latest"]}'
または .vscode/mcp.json(ワークスペース)か、ユーザープロファイルの mcp.json に記述します:
{
"servers": {
"silica": {
"type": "stdio",
"command": "uvx",
"args": ["silica-eda@latest"]
}
}
}
Gemini CLI
gemini mcp add -s user silica uvx silica-eda@latest
または ~/.gemini/settings.json(ユーザー)か .gemini/settings.json(プロジェクト)に記述します:
{
"mcpServers": {
"silica": {
"command": "uvx",
"args": ["silica-eda@latest"]
}
}
}
uvx silica-eda@latest setup(または pip でインストールした場合は silica setup)を実行すると、使用するクライアントと EDA ツールを尋ね、ツールの選択内容を ~/.silica/config.toml に保存し、各クライアントの設定に uvx silica-eda@latest を実行する silica サーバーを追加します。変更内容を表示し、書き込み前に確認を求めます。ファイル内のほかのサーバーや設定は保持されます。uvx が PATH 上にある場合はフルパスで記述します。デスクトップアプリからは、シェルの PATH が見えないことがあるためです。
| クライアント | ウィザードの動作 |
|---|---|
| Claude Code | claude mcp add --transport stdio --scope user silica -- uvx silica-eda@latest を実行します |
| Claude Desktop | claude_desktop_config.json の mcpServers(macOS、Windows、Linux) |
| Codex CLI | codex mcp add silica -- uvx silica-eda@latest を実行します |
| VS Code (Copilot) | code --add-mcp '{"name":"silica","type":"stdio","command":"uvx","args":["silica-eda@latest"]}' を実行し、ユーザープロファイルに追加します |
| Cursor | ~/.cursor/mcp.json の mcpServers。"type": "stdio" を指定します |
| Gemini CLI | ~/.gemini/settings.json の mcpServers |
| Windsurf | ~/.codeium/windsurf/mcp_config.json の mcpServers |
| OpenCode | ~/.config/opencode/opencode.json の mcp に {"type": "local", "command": ["uvx", "silica-eda@latest"]} として追加します(macOS、Linux) |
| Zed | ~/.config/zed/settings.json の context_servers(Linux) |
クライアントのドキュメントにお使いのプラットフォーム向けの設定パスが記載されていない場合(macOS と Windows の Zed、Windows の OpenCode)、または既存のファイルを通常の JSON として読み込めない場合(コメントを含む Zed の settings.json など)、ウィザードはファイルを変更せず、手動で追加するブロックを表示します。
オプションの追加パッケージ。 capture_serial には pyserial、run_cocotb には cocotb が必要です。uvx を使う場合は、引数に追加します:"args": ["--with", "pyserial", "silica-eda@latest"](または --with cocotb)。pip を使う場合は、silica-eda[serial] または silica-eda[cocotb] をインストールします。
オフライン。 @latest を指定すると、クライアントがサーバーを起動するたびに uvx が PyPI に最新リリースを問い合わせます。そのため、silica がすでにキャッシュされていても、ネットワークに接続できないとサーバーは起動しません(error: Request failed after 3 retries)。オフラインで使うには、パッケージの前に --offline を指定します。"args": ["--offline", "silica-eda@latest"](プラグインのコマンドは編集できません。/plugin でプラグインを無効にし、claude mcp add --scope user silica -- uvx --offline silica-eda@latest でサーバーを追加してください)。uvx はキャッシュ内にある最新リリースを実行します。キャッシュに入れるには、以前に少なくとも一度オンラインで起動しておく必要があります。更新を受け取るには、再度 --offline を削除してください。
バージョンの固定またはロールバック。 silica-eda@latest を正確なバージョン(silica-eda@<version>。たとえば、該当するリリースが存在する場合は uvx [email protected])に置き換えると、変更するまでクライアントはそのリリースを実行し続けます。不具合のあるリリースからロールバックするには、同じ方法で以前のバージョンを固定します。Claude Code プラグインは常に @latest を実行します。バージョンを固定するには、プラグインをインストールする代わりに、固定バージョンを指定して claude mcp add でサーバーを追加してください。リリース一覧は PyPI と変更履歴で確認できます。
MCP ツール
| ツール | 説明 |
|---|---|
doctor | silica のバージョン、新しいリリースがあるかどうか、インストールされている EDA ツール(バージョンを含む)、不足しているツールのインストール方法を報告します。 |
lint | Verible、Verilator、svlint、または SpyGlass を使用します。Verilator は file と extra_files をまとめてエラボレーションします。エラーと警告には、ファイル、行、ルールが含まれます。 |
format_rtl | verible-verilog-format で SystemVerilog をフォーマットします。差分を先に表示し(dry_run)、構文エラーのあるファイルは処理しません。 |
run_simulation | Verilator、Icarus、GHDL、VCS、Questa、または Xcelium を使用します。DUT のディレクトリで実行し、$fatal/$error メッセージを含むエラー、任意の VCD(trace、テストベンチが $dumpfile/$dumpvars を呼び出します)、および Verilator のカバレッジを返します。 |
run_cocotb | cocotb(Python)のテストベンチを実行し、テストごとの成功/失敗を返します。cocotb extra が必要です。 |
read_waveform | ビューアーを使わずに、時間範囲を指定して VCD/FST トレースの信号遷移を読み取ります。 |
launch_waveform | ユーザー向けに Surfer、GTKWave、または Verdi でトレースを開きます。 |
read_coverage | Verilator の coverage.dat をファイルごとに要約し、未カバーの行を示します。 |
run_formal | SymbiYosys の prove/bmc/cover、eqy の等価性チェック、JasperGold、VC Formal を実行します。failures は到達可能な反例(トレース付き)です。prove の結果が UNKNOWN の場合は、代わりに induction_failures を一覧表示します。 |
synthesize | Yosys、Vivado、Quartus、または DC Shell を使用します。利用率、ファイルと行を含むエラー、FPGA ターゲット向けの JSON ネットリスト、および(Yosys の場合)推論されたすべてのメモリについて、そのマッピングと初期化データの有無を返します。 |
run_place_route | ice40、ECP5、Nexus、MachXO2、Xilinx 7 シリーズ(arch="xilinx"、openXC7)向けに nextpnr を実行します。Xilinx(fpga-as 経由の .bit)、iCE40(icepack 経由の .bin)、ECP5(ecppack 経由の .bit)で読み込み可能なビットストリームを返します。クロックごとの配線後タイミングと利用率も返します。 |
program_device | openFPGALoader を使用します。デフォルトでは SRAM に書き込み、要求に応じて SPI フラッシュに書き込みます。Xilinx への書き込みは、FPGA が DONE をアサートした場合にのみ成功とみなされます。.bit/.bin を受け取ります。 |
capture_serial | 指定した時間だけ UART を読み取り、任意でテキストを送信し、expect の正規表現に一致するか確認します。指定したポートのみを開きます。serial extra が必要です。 |
get_project_structure | プロジェクトの RTL ファイルと制約ファイルを一覧表示します。 |
read_rtl / search_rtl | 行番号付きでファイルを読み取ります/プロジェクトの RTL を grep します。 |
write_rtl | ファイルを変更します。差分を先に表示します(デフォルトでは dry_run=True)。 |
get_constraints | 制約ファイル(.xdc、.sdc、.lpf)を読み取ります。 |
手順に沿ったトリアージスクリプトを含むプロンプト:debug_simulation_failure、debug_formal_failure、write_testbench、generate_assertions、close_timing、cdc_review。
サポート対象のツール
| ツール | 使用する機能 | 検証状況 |
|---|---|---|
| Verilator | lint、run_simulation、read_coverage | CI で実際のツールを使用。Arty A7 フローで使用 |
| Icarus Verilog | run_simulation、run_cocotb | CI で実際のツールを使用。Arty A7 フローで使用 |
| GHDL | run_simulation(VHDL) | CI で実際のツールを使用 |
| cocotb | run_cocotb | CI で実際のツールを使用 |
| Verible、svlint | lint、format_rtl | CI ですべての PR を対象に実際のツールを使用(Verible v0.0-4296、svlint 0.9.5) |
| Yosys | synthesize | CI で実際のツールを使用(汎用、ice40、xilinx)。Arty A7 フローで使用 |
| SymbiYosys、eqy | run_formal | CI で実際のツールを使用 |
| nextpnr-ice40 + icepack | run_place_route(arch="ice40") | CI で実際のツールを使用(配置配線、パッキング)。プログラミングのみモック |
| nextpnr-ecp5 + ecppack | run_place_route(arch="ecp5") | CI で実際のツールを使用(配置配線、パッキング)。プログラミングのみモック |
| nextpnr-nexus、-machxo2 | run_place_route | モックのみ |
| openXC7 nextpnr-xilinx + fpga-as | run_place_route(arch="xilinx") | ハードウェアでテスト済み(Arty A7-100T)。CI で xc7a35t 向けの合成、配置配線、.bit の生成を実施 |
| openFPGALoader | program_device | ハードウェアでテスト済み(Arty A7-100T)。iCE40 と ECP5 はモックのみ |
| pyserial | capture_serial | ハードウェアでテスト済み。CI では pty ベースのテストを実施 |
| Surfer、GTKWave、Verdi | launch_waveform | 未テスト(起動後は処理を追跡しない) |
| VCS、Questa、Xcelium | run_simulation | モックのみ |
| Vivado | synthesize | モックのみ。合成のみ |
| Quartus、DC Shell | synthesize | モックのみ |
| JasperGold、VC Formal | run_formal | モックのみ |
| SpyGlass | lint | モックのみ |
「CI で実際のツールを使用」とは、週次の統合ワークフローで OSS CAD Suite からツールを実行することを意味します。ただし、Verible と svlint は CI ワークフローでインストールし、すべての PR でテストします。openXC7 ワークフローでは toolchain-nix から openXC7 をビルドし、コード変更時と週次に Xilinx フローを実行します。「ハードウェアでテスト済み」とは、現在動作するもので説明する Arty A7-100T を使った手動実行を意味します。「モックのみ」とは、実際にインストールするのではなく、取得済みまたは代表的な出力を使った単体テストを意味します。
ハードウェアでデザインを確認する
program_device と capture_serial を使うと、実際のボードで一連の動作を確認できます。ボードをプログラムし、デザインの出力を読み取ります。capture_serial には、serial extra から pyserial が必要です。
pip install "silica-eda[serial]"
run_place_route でビットストリームを生成した後の一般的な確認例です。ここでは、Arty A7-100T 上のファームウェアが受信した内容をエコーバックするか確認します。
program_device(bitstream="build/soc.bit", board="arty_a7_100t")
-> {"success": true, ...}
capture_serial(port="/dev/serial/by-id/usb-Digilent_Digilent_USB_Device_<serial>-if01-port0",
baud=115200, duration=6, send="hello silica\r", send_delay=0.5,
expect="hello silica")
-> {"matched": true, "match": "hello silica", "elapsed_s": 0.53,
"lines": [{"t": 0.526, "text": "hello silica"}], ...}
ポートを明示的に指定してください。silica はシリアルデバイスを検索しません。FTDI JTAG+UART ブリッジを搭載したボード(Digilent Arty、Basys、Nexys)では、UART は 2 番目のインターフェイスである if01 です。プログラミングが完了するとすぐにデザインの実行が始まるため、起動時に出力されるバナーは、その後にキャプチャを開始しても通常はすでに表示されません。上記のようにファームウェアが応答する内容を送信するか、キャプチャ中にボードのリセットボタンを押してください。ポートが見つからない場合や、ユーザーがポートを開けない場合は、結果に error と、次のような fix が含まれます。
sudo setfacl -m u:you:rw /dev/ttyUSB1 (temporary: lasts until the device is unplugged);
permanent: sudo usermod -aG uucp you, then log out and back in
Xilinx 7 シリーズのフロー
openXC7 のセットアップが完了していれば、Artix-7 のデザインを 3 回の呼び出しで RTL からプログラム済みのボードにできます。
synthesize(top_module="soc_top", files=["rtl/soc_top.sv", ...], target="xilinx", tool="yosys")
-> {"netlist": "/tmp/silica_synth_.../netlist.json", "memories": [...], ...}
run_place_route(netlist="<netlist>", arch="xilinx", device="xc7a100tcsg324-1",
constraint="arty.xdc", freq=100, output="build/soc.bit")
-> {"output": "build/soc.bit", "timing_summary": {"clocks": [{"max_freq_mhz": 153.4, "pass": true}]}, ...}
program_device(bitstream="build/soc.bit", board="arty_a7_100t")
-> {"success": true, ...}
device はスピードグレードを含む完全なパーツ名です。Arty A7-100T の openFPGALoader ボード名は arty_a7_100t です(arty は 35T です)。
設定
ツール選択の制御
デフォルトでは、検出されたすべてのツールが利用可能で、auto は最適なもの(オープンソースを優先)を選びます。カテゴリごとに制御するには、~/.silica/config.toml を編集します。
[tools.simulation]
priority = ["verilator", "iverilog"] # ordering for auto-selection
enabled = ["verilator", "iverilog"] # allowlist — everything else is blocked
priority は auto が試す順序を変更します。enabled は強制される許可リストです。このリストにないツールは、モデルが明示的に要求した場合でも使用できません。要求は、ツール名と有効なツールを示すエラーとともに拒否されるため、モデルは許可されたツールで再試行できます。ライセンスプールやエアギャップ環境のワークフローなど、インストール済みの商用ツールを実行させたくないマシンで役立ちます。制限を設けない場合は、enabled を空のままにするか、設定しないでください。
カテゴリ:simulation、synthesis、place_route、formal、lint、format、waveform、program。
ガードレール
実際のリポジトリを自律型エージェントに操作させるために設計されています。
- ファイルアクセスはプロジェクトディレクトリ内に限定されます —
read_rtl、write_rtl、format_rtl、get_constraints、search_rtl、get_project_structureは、プロジェクトルート(SILICA_PROJECT_ROOT、project.root設定キー、またはサーバーの起動ディレクトリ)から抜け出す絶対パスや..を含むパスを拒否します。相対パスはそのルートを基準に解決されます。 - 書き込みは差分を先に確認します —
write_rtlはデフォルトでドライランを行い、統合差分を返します。明示的に確認するまで、ディスク上のファイルは変更されません。 - ツールが応答しなくなってもサーバーは終了しません — すべてのツール呼び出しにはタイムアウトがあり、セッションをクラッシュさせる代わりに、構造化されたエラーを返します。
CLI
| コマンド | 説明 |
|---|---|
silica serve | MCP サーバーを起動します(stdio)。サブコマンドが指定されていない場合のデフォルトです。silica-eda も同じコマンドです。 |
silica setup | uvx silica-eda@latest でサーバーを起動する MCP クライアント設定を書き込む対話型ウィザードです。セットアップウィザードを参照してください。 |
silica config | 設定と検出されたツールを表示します。 |
silica --version、silica --help | バージョンまたはコマンドを表示します。 |
バージョン管理と互換性
silica はセマンティックバージョニングに従います。対象となるのは、MCP クライアントやエージェントが依存するツール名、パラメーター、および結果内のフィールドです。同じルールは 0.x リリースにも適用されます。
- メジャーバージョン内では、ツールの名前変更や削除、パラメーターの削除や必須化、結果フィールドの削除や名前変更は行いません。マイナーリリースでは、ツール、オプションのパラメーター、結果フィールドを追加できます。
- 非推奨化は、次のメジャーバージョンで変更がリリースされる少なくとも 1 回のマイナーリリース前に、CHANGELOG.md と対象ツールの説明で告知されます。
- ユーザーに見えるすべての変更は、マージ時に「Unreleased」の下へ変更履歴として記載され、リリース時にバージョン見出しの下へ移動されます。
開発
git clone https://github.com/simaanc/silica-eda
cd silica-eda
uv sync # editable install + dev deps
uv run ruff check silica/ tests/ scripts/
uv run pytest tests/ -q # integration tests skip tools that aren't installed
uv run silica serve # run the server from the checkout
規約についてはCONTRIBUTING.md、コード構成についてはdocs/architecture.md、リリースについてはRELEASING.mdを参照してください。
ライセンス
silica はGNU Affero General Public License v3.0(AGPL-3.0-only)の下でライセンスされています。商用利用を含め、使用、変更、再配布が可能です。変更版を配布する場合、または他者がネットワーク経由で利用できるサービスとして実行する場合は、変更内容のソースを同じライセンスの下で公開する必要があります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。