mcpField
S
SQLite-Anet-MCP Server

SQLite-Anet-MCP Server

本地服务
github.com/marekkucak数据库082 周前更新

关于 SQLite-Anet-MCP Server

SQLite-Anet-MCP Server 是基于 Rust 的 MCP 服务,为 AI Agent 提供 SQLite 数据库操作能力。它将查询和表管理工具与洞察备忘录资源、演示提示词结合,并通过 NATS 传递消息。

主要功能

  1. 01创建和管理数据库表
  2. 02执行 SELECT 查询
  3. 03执行 INSERT、UPDATE 和 DELETE 查询
  4. 04列出数据表并查看架构
  5. 05保存和读取业务洞察
  6. 06NATS 传输与 JSON-RPC 2.0 API

适用场景

  1. 01通过 AI Agent 查询 SQLite 数据
  2. 02创建和更新数据库记录
  3. 03检查可用数据表及其架构
  4. 04记录数据分析所得洞察

MCP 相关

该服务通过 MCP 工具提供 SQLite 操作,将业务洞察备忘录作为资源,并提供 MCP 演示提示词。请求使用兼容 JSON-RPC 2.0 的 API,并通过 NATS 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SQLite-Anet-MCP Server

使用 Rust 实现的 Model Control Protocol (MCP) 服务,通过标准化协议提供 SQLite 数据库功能。该服务使 AI Agent 能够直接创建、管理和查询 SQLite 数据库。

本项目基于 Model Context Protocol SQLite Server 参考实现。


功能

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

要求

  • Rust 1.70+
  • NATS 服务在本地运行或可通过网络访问
  • SQLite(作为 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 数据库测试

运行 Chinook 数据库测试示例:

cargo run --example chinook_test

注意: 运行 Chinook 测试前,你需要:

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

可用工具

1. list_tables

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

示例:

{
  "name": "list_tables",
  "arguments": {}
}
2. describe_table

获取指定表的结构信息。

参数:

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

示例:

{
  "name": "describe_table",
  "arguments": {
    "table_name": "customers"
  }
}
3. create_table

在 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', '[email protected]', '2023-01-15')"
  }
}
6. append_insight

向备忘录中添加业务洞察。

参数:

  • 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"
    }
  }
}

架构

该服务采用模块化设计:

  • tools – SQLite 数据库操作实现
  • models – SQLite 查询和响应结构
  • prompts – 交互式演示模板
  • resources – 业务洞察备忘录生成
  • sqlite – 核心数据库功能

开发

添加新功能

要扩展服务,添加更多 SQLite 功能:

  1. 在 src/models/sqlite.rs 中定义响应结构
  2. 按照 Tool trait 在 src/tools/ 中实现工具
  3. 在 src/main.rs 中注册工具

故障排除

  • 确保 NATS 服务正在运行且可访问
  • 检查 SQLite 数据库路径是否已正确设置
  • 确认请求格式符合每个工具预期的输入架构

许可证

MIT 许可证


致谢

本项目基于 Anet MCP Server 框架构建,并参考了 Model Context Protocol SQLite Server 参考实现。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。