使用说明
SQLite插件
A. hyper-mcp WebAssembly插件(v2)
用于通过模型上下文与一个或多个SQLite数据库进行交互
协议。它捆绑了SQLite(通过 rusqlite
编译为 wasm32-wasip1),因此不需要安装外部SQLite。
连接由键控 别名 在工具调用期间保持开放,直到你
明确地 close 他们。
工具
| 工具 | 说明 |
|---|---|
connect |
打开一个数据库并在别名下注册。拿 alias, path,可选 mode (read |
attach |
将另一个数据库附加到现有连接。拿 alias, db_name (SQL AS 名称), path,可选 mode (默认值 read).如果别名不存在,则失败。 |
close |
通过以下方式关闭连接 alias.Idenpotent--关闭未知别名成功并报告 closed: false. |
connections |
列出所有打开的连接别名及其路径和模式。 |
tables |
列出的所有表和视图 alias,跨主数据库和任何附加数据库。 |
describe_table |
返回表的架构:列(类型、可空性、默认值、主键位置)、外键、索引和原始值 CREATE 声明。拿 alias, table,可选 db_name (默认值 main). |
execute_sql |
在以下对象上运行单个SQL语句 alias。插件检查准备好的语句的列数,以决定是否 查询 (返回 columns + rows)或 执行 (返回 rows_affected). |
打开模式
read--以只读方式打开;数据库文件必须已经存在。write--以读写方式打开,如果文件不存在,则创建该文件。
attach 通过SQLite URI将相同的语义应用于附加的数据库
文件名(mode=ro / mode=rwc).
设置 create: true 上 connect 忽略 mode 并且总是以写方式打开
模式。它会创建任何缺失的父目录,并拒绝覆盖
现有文件,因此这是提供新数据库的安全方法。
execute_sql 结果形状
execute_sql 始终返回带有 result_type
鉴别器:
result_type: "query"→columns(名称数组)和rows(行阵列, 每个值都是一个与以下值对齐的数组columns).rows_affected是0.result_type: "execute"→rows_affected(整数)。columns/rows是空的。
SQLite值映射到JSON如下: NULL → null, INTEGER → 号码,
REAL → 号码, TEXT → 字符串,以及 BLOB → { "$base64": "<data>" }.
execute_sql跑a 单个 声明。要运行多个语句,请调用 每个语句使用一次工具。
配置
因为该插件在WASM沙箱中运行,所以它只能访问以下数据库文件
通过以下方式明确安装 allowed_paths。映射包含以下内容的主机目录
将您的数据库放入插件中,并在中使用沙盒中的路径 connect/attach.
{
"plugins": {
"sqlite": {
"url": "oci://ghcr.io/hyper-mcp-rs/sqlite-plugin:latest",
"runtime_config": {
"allowed_paths": ["/host/path/to/data:/data"]
}
}
}
}
使用上面的映射,打开一个数据库:
{ "alias": "app", "path": "/data/app.db", "mode": "write" }
对于本地开发,将插件指向新构建的 .wasm:
{
"plugins": {
"sqlite": {
"url": "file:///path/to/target/wasm32-wasip1/release/plugin.wasm",
"runtime_config": {
"allowed_paths": ["/host/path/to/data:/data"]
}
}
}
}
建筑
插件目标 wasm32-wasip1。因为捆绑的SQLite是从
C、 需要一个可以针对WebAssembly的C工具链——
WASI SDK.
# One-time setup
rustup target add wasm32-wasip1
# Install the WASI SDK and point the C cross-compiler at it
export WASI_SDK_PATH=/opt/wasi-sdk
export CC_wasm32_wasip1="$WASI_SDK_PATH/bin/clang"
export AR_wasm32_wasip1="$WASI_SDK_PATH/bin/llvm-ar"
# Build
cargo build --release --target wasm32-wasip1
# Result: target/wasm32-wasip1/release/plugin.wasm
CI(.github/workflows/ci.yml)发布工作流安装WASI SDK
并自动设置这些变量。
许可证
阿帕奇-2.0。看 许可证.