このページは AI の支援を受けて英語から翻訳されています。内容が異なる場合は英語版が正となります。
Gleam
StackQL MCP サーバーを Erlang/BEAM ターゲットの Gleam アプリケーションに組み込みます。ライブラリは OTP のスーパービジョンと統合され、署名済みバイナリをダウンロードして検証し、stdio 経由で起動します。
組み込みバイナリは、初回実行時にダウンロードされて sha256 で検証されるか、アプリにベンダリングされます。共通コントラクトを参照してください。
インストール
gleam add stackql_mcp
対象は Erlang/BEAM のみです(JavaScript ターゲットは対象外)。サーバーは child_spec() を通じて OTP の子プロセスとして公開されるため、独自のスーパービジョンツリーに組み込むことができます。
クイックスタート
import gleam/io
import gleam/int
import gleam/list
import envoy
import stackql_mcp
pub fn main() {
let config =
stackql_mcp.Config(
..stackql_mcp.default_config(),
auth: [stackql_mcp.auth_for("github", "null_auth")],
)
let assert Ok(server) =
stackql_mcp.start(
config: config,
home: "/home/u",
os: "linux",
arch: "x86_64",
getenv: envoy.get,
)
let assert Ok(tools) = stackql_mcp.list_tools(server)
io.println(int.to_string(list.length(tools)) <> " tools available")
stackql_mcp.stop(server)
}
API は次のとおりです。ライフサイクルには stackql_mcp.start()、stop()、child_spec() を使用します。操作には list_tools() と call_tool() を使用します(スーパーバイザー配下で使用する supervised_list_tools() と supervised_call_tool() のバリアントもあります)。設定には Config、default_config()、auth_for() を使用します。
モード
モードは Config.mode で設定し、デフォルトは read_only です。昇格するには、safe、delete_safe、full_access のいずれかに設定します:
stackql_mcp.Config(..stackql_mcp.default_config(), mode: stackql_mcp.safe)
昇格は明示的にのみ行われます。オプトインしない限り、サーバーはミューテーションツールやライフサイクルツールを有効にしません。
ベンダリング / 組み込み
起動時に、ライブラリはプラットフォーム用の StackQL バンドルをダウンロードし、組み込み済みの固定 sha256 値と照合して検証し、ファミリー共通の共有キャッシュに保存します。解決の優先順位は次のとおりです:
- 明示的に指定した
Config.binary。 STACKQL_MCP_BIN環境変数。~/.stackql/mcp-server-bin/<version>/<platform-key>/の共有キャッシュ。
オフラインまたはエアギャップ環境へのデプロイでは、STACKQL_MCP_BUNDLE にローカルのバンドルを指定します。
デモアプリ
pipewatch は、このライブラリ用に予定されているデモです。ロードマップに含まれていますが、まだ実装されていません。