SQLite数据库服务

一个基于Rust实现的SQLite数据库服务,通过标准化的Model Control Protocol (MCP)提供数据库创建、管理和查询功能,适用于AI代理和数据分析场景。

  • by marekkucak
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 marekkucak/sqlite-anet-mcp

使用说明

SQLite Anet MCP服务器

Rust实现 模型控制协议(MCP) 通过标准化协议提供SQLite数据库功能的服务器。该服务器使AI代理能够直接创建、管理和查询SQLite数据库。

该项目基于 模型上下文协议SQLite服务器 参考实施。


特性

  • 🗃️ 创建和管理SQLite数据库表
  • 🔍 执行SELECT查询以进行数据检索
  • ✏️ 执行INSERT、UPDATE和DELETE查询以进行数据操作
  • 📊 描述表模式并列出可用表
  • 📝 从数据中保存和综合业务见解
  • 🔄 用于消息传递的NATS传输层
  • 🛠️ JSON-RPC 2.0兼容API
  • ⚡ 与Tokio的异步请求处理

需求

  • 锈 1.70+
  • NATS 本地运行或可通过网络访问的服务器
  • 数据库 (作为Rust依赖项包含在内)

安装

克隆存储库并构建服务器:

git clone https://github.com/yourusername/sqlite-anet-mcp.git
cd sqlite-anet-mcp

在中配置您的环境 .env 文件:

NATS_URL=nats://localhost:4222
MCP_SUBJECT=mcp.requests
SQLITE_DB_PATH=./data/sqlite.db
RUST_LOG=debug

入门指南

运行服务器

# Start a NATS server in another terminal or ensure one is already running
# Example:
nats-server

# Run the SQLite MCP server
cargo run

测试服务器

您可以使用附带的测试客户端测试服务器:

cargo run --example test_client

这将建立一个基本的客户数据库,并演示服务器的功能。

奇努克数据库测试

要运行Chinook数据库测试示例:

cargo run --example chinook_test

注: 在运行Chinook测试之前,您需要:

  1. 从以下网址下载Chinook SQLite数据库:https://www.sqlitetutorial.net/sqlite-sample-database/
  2. 放置 chinook.db 文件在 ./data/ 目录
  3. 集 SQLITE_DB_PATH=./data/chinook.db 在你的 .env 文件或运行示例时

可用工具

1.列表表

列出SQLite数据库中的所有表。

例子:

{
  "name": "list_tables",
  "arguments": {}
}

2.描述表

获取特定表的架构信息。

参数:

  • table_name (必填):要描述的表的名称

例子:

{
  "name": "describe_table",
  "arguments": {
    "table_name": "customers"
  }
}

3.创建表

在SQLite数据库中创建新表。

参数:

  • query (必需):CREATE TABLE SQL语句

例子:

{
  "name": "create_table",
  "arguments": {
    "query": "CREATE TABLE customers (id INTEGER PRIMARY KEY, name TEXT, email TEXT, join_date TEXT)"
  }
}

4.read_query

在SQLite数据库上执行SELECT查询。

参数:

  • query (必需):要执行的SELECT SQL查询

例子:

{
  "name": "read_query",
  "arguments": {
    "query": "SELECT * FROM customers WHERE join_date > '2023-01-01'"
  }
}

5.write_query

在SQLite数据库上执行INSERT、UPDATE或DELETE查询。

参数:

  • query (必需):要执行的SQL查询(必须是INSERT、UPDATE或DELETE)

例子:

{
  "name": "write_query",
  "arguments": {
    "query": "INSERT INTO customers (name, email, join_date) VALUES ('John Doe', 'john@example.com', '2023-01-15')"
  }
}

6.附录_视图

在备忘录中添加业务见解。

参数:

  • insight (必填):从数据分析中发现的业务洞察力

例子:

{
  "name": "append_insight",
  "arguments": {
    "insight": "Customer acquisition is stable and growing over time."
  }
}

可用资源

商业洞察备忘录

发现的商业见解的活文档。

URI: memo://insights

例子:

{
  "method": "readResource",
  "params": {
    "uri": "memo://insights"
  }
}

可用提示

MCP演示

提示为数据库添加初始数据种子,并演示如何使用SQLite MCP Server+Claude。

论据:

  • topic (必填):为数据库添加初始数据的主题

例子:

{
  "method": "getPrompt",
  "params": {
    "name": "mcp-demo",
    "arguments": {
      "topic": "coffee shop sales"
    }
  }
}

建筑

服务器采用模块化设计:

  • 工具 –SQLite数据库操作实现
  • 模型 –SQLite查询和响应结构
  • 鼓励 –交互式演示模板
  • 资源 –业务见解备忘录生成
  • SQLite –核心数据库功能

发展

添加新功能

要使用其他SQLite功能扩展服务器:

  1. 在中定义响应结构 src/models/sqlite.rs
  2. 在中实施该工具 src/tools/ 遵循工具特性
  3. 在中注册该工具 src/main.rs

故障排除

  • 确保NATS服务器正在运行且可访问
  • 检查SQLite数据库路径是否设置正确
  • 验证请求格式是否与每个工具的预期输入模式匹配

许可证

MIT许可证


致谢

该项目建立在 Anet MCP服务器 框架,基于 模型上下文协议SQLite服务器 参考实施。