项目简介

Turso是一个高性能的进程内SQL数据库,与SQLite完全兼容,并以Rust语言编写。除了作为独立的数据库使用外,其命令行工具(CLI)'tursodb'还内置了一个Model Context Protocol (MCP) 服务器模式。这个MCP服务器旨在让AI助手能够以标准化、结构化的方式与Turso数据库进行交互,从而提供上下文信息和执行数据操作。

主要功能点

  • 数据库交互工具: Turso MCP服务器将数据库操作封装为一系列可供AI助手调用的“工具”(Tools)。这些工具允许AI助手执行以下操作:
    • 数据库管理: 打开新的数据库连接,或获取当前数据库的描述信息。
    • Schema探索: 列出数据库中的所有表,并详细描述特定表的结构(列名、类型等)。
    • 数据查询: 执行只读的SQL 'SELECT'查询,获取所需数据。
    • 数据操作: 插入新数据、更新现有数据或删除数据。
    • Schema变更: 执行DDL(数据定义语言)语句,如'CREATE TABLE'、'ALTER TABLE'、'DROP TABLE'等,以修改数据库结构。
  • JSON-RPC通信: 服务器通过标准JSON-RPC协议进行通信。它通过标准输入(stdin)接收客户端的请求(如调用工具),并通过标准输出(stdout)返回相应的JSON-RPC响应。
  • 会话管理: 服务器负责管理与底层Turso数据库的会话状态,确保客户端请求在正确的上下文中执行。
  • 传输协议支持: 目前主要通过stdin/stdout提供服务,便于与各种支持标准I/O的LLM客户端或集成工具进行交互。

安装步骤

  1. 安装Turso CLI: 在Linux或macOS系统上,您可以通过以下命令安装最新的'turso' CLI:
    curl --proto '=https' --tlsv1.2 -LsSf \
      https://github.com/tursodatabase/turso/releases/latest/download/turso_cli-installer.sh | sh
    对于Windows或其他安装方式,请参考Turso官方文档获取详细说明。
  2. 验证安装: 安装完成后,请确保'tursodb'命令已添加到您的系统PATH中,可以通过运行'tursodb --version'来验证。

服务器配置

Turso MCP服务器通过命令行参数启动,MCP客户端需要配置相应的启动命令和参数才能建立连接。以下是一个标准的MCP客户端配置示例,包含了必要的参数说明:

{
  "server_name": "my-turso-database-server",
  "command": "tursodb",
  "args": ["/path/to/your/database.db", "--mcp"],
  "comment_database_path": "请将 '/path/to/your/database.db' 替换为您的Turso数据库文件在服务器端(或本地)的实际路径。如果是内存数据库,可以使用 ':memory:'。",
  "comment_mcp_flag": " '--mcp' 是必需的参数,用于指示 'tursodb' CLI以MCP服务器模式启动,并监听标准输入/输出。",
  "comment_encoding": "(可选)如果您的MCP客户端支持,可以指定字符编码,例如 'utf-8'。",
  "comment_protocol_version": "(可选)指定MCP协议版本,例如 '2024-11-05'。"
}

基本使用方法

一旦Turso MCP服务器启动,它会通过标准I/O等待JSON-RPC请求。以下是两种常见的使用场景:

  1. 手动通过命令行发送JSON-RPC请求: 您可以通过管道(pipe)将JSON-RPC请求发送到'tursodb --mcp'命令的标准输入,并从其标准输出获取响应。

    • 启动服务器并发送初始化及列出表请求的示例:
      cat << 'EOF' | tursodb my_local_data.db --mcp
      {"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "manual-client", "version": "1.0"}}}
      {"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "schema_change", "arguments": {"query": "CREATE TABLE users (id INTEGER, name TEXT)"}}}
      {"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "insert_data", "arguments": {"query": "INSERT INTO users VALUES (1, 'Alice')"}}}
      {"jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": {"name": "list_tables", "arguments": {}}}
      {"jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": {"name": "execute_query", "arguments": {"query": "SELECT * FROM users"}}}
      EOF
      上述命令会创建一个名为'my_local_data.db'的数据库(如果不存在),在其中创建'users'表,插入一条数据,然后列出所有表并查询'users'表内容。响应将直接打印到终端。
  2. 与支持MCP的AI助手集成: 如果您使用支持Model Context Protocol的AI助手(例如Anthropic的Claude Code),可以直接通过AI助手的MCP管理命令来添加和配置Turso MCP服务器。

    • 以Claude Code为例的配置步骤:
      1. 添加MCP服务器到Claude Code:
        claude mcp add my-database -- tursodb ./path/to/your/database.db --mcp
        此命令会将一个名为 'my-database' 的MCP服务器添加到Claude Code的配置中,并指定其启动命令。
      2. 重启Claude Code: 通常需要重启AI助手,以使其加载新的MCP服务器配置。
      3. 通过自然语言与数据库交互: 配置完成后,您即可直接向AI助手提问,例如:
        • "Show me all tables in the database." (显示数据库中的所有表。)
        • "What's the schema for the users table?" (users表的Schema是什么?)
        • "Insert a new user with name 'Bob' and email '[email protected]'." (插入一个新用户,名为'Bob',邮箱为'[email protected]'。) AI助手将利用Turso MCP服务器提供的工具来执行这些操作。

关键词

SQL数据库, AI助手集成, 数据访问, 数据库工具, JSON-RPC服务

信息

分类

数据库与文件