Warp SQLite MCP服务器
基于Rust的MCP(模型上下文协议)服务器,提供对Warp终端数据库的SQLite访问,使AI代理能够查询对话历史、管理笔记本电脑并与Warp的数据交互。
特性
- SQLite CRUD操作:常规插入、选择、更新和删除操作
- 笔记本管理:创建、读取、更新、删除和列出Warp笔记本
- MCP服务器管理:注册/注销MCP服务器并管理其环境变量
- 对话历史访问:查询AI对话、命令和代理交互
先决条件
- Rust(最新稳定版本)
- 已安装曲速终端
- 访问Warp的SQLite数据库
安装
- 克隆存储库:
git clone https://github.com/samuelatagana/warp-sqlite-mcp.git
cd warp-sqlite-mcp- 构建项目:
cargo build --release二进制文件将在 target/release/warp-sqlite-mcp
配置
服务器可以通过三种方式配置(按优先级顺序):
- 环境变量:
export DATABASE_URL="sqlite:///Users/samuelatagana/Library/Application Support/dev.warp.Warp-Stable/warp.sqlite"- 配置文件 (
config.toml在项目目录中):
[database]
url = "sqlite:///Users/samuelatagana/Library/Application Support/dev.warp.Warp-Stable/warp.sqlite"- 默认:回落到
sqlite://./app.sqlite如果未提供配置
用法
运行服务器
# Using environment variable
DATABASE_URL="sqlite:///path/to/warp.sqlite" ./target/release/warp-sqlite-mcp
# Using config file
./target/release/warp-sqlite-mcp可用工具
通用SQLite操作
sqlite_insert-在任何表格中插入一行sqlite_select-查询任何表中的行sqlite_update-更新任何表中的行sqlite_delete-从任何表中删除行
笔记本管理
notebook_create-创建新笔记本notebook_list-列出带有可选搜索的笔记本notebook_get-按ID获取特定笔记本notebook_append-将文本附加到现有笔记本notebook_delete-删除笔记本
MCP服务器管理
mcp_register_server-注册MCP服务器mcp_unregister_server-注销MCP服务器mcp_set_env-为MCP服务器设置环境变量mcp_get_env-获取MCP服务器的环境变量
已知问题
- 类型转换错误:目前,存在一个问题,即JSON数字被反序列化为浮点数而不是整数,导致预期的工具出错
i64参数。这会影响:
- 工具与 limit 或 offset 参数 - 工具与 id 参数(notebook_get、notebook_append、notebook_delete)
变通方案:直接通过以下方式使用SQL查询 sqlite_select 没有数字参数。
数据库模式
Warp数据库包含许多表,包括:
ai_queries-AI对话查询agent_conversations-代理模式对话notebooks-Warp笔记本电脑active_mcp_servers-已注册的MCP服务器commands-命令历史记录- 还有更多。..
发展
运行测试
cargo test建设促进发展
cargo build编码结构
src/main.rs-主服务器实现- 用途
rmcp用于MCP协议实现的v0.5.0 - 用途
sqlx用于SQLite数据库访问 - 异步运行时由
tokio
贡献
欢迎问题和拉取请求!请确保:
- 代码遵循Rust约定
- 所有测试均通过
- 新功能包括适当的文档
许可证
\[在此处添加您的许可证\]
作者
塞缪尔·阿塔加纳
