返回市场
MCPSQLite服务器

MCPSQLite服务器

作者:prayanks8 星标更新:2025-04-15

项目介绍

SQLite MCP 服务器

此仓库包含一个用Python编写的MCP(模型上下文协议)服务器,该服务器连接到一个包含初创公司融资数据的SQLite数据库。服务器公开表模式作为资源,提供只读SQL查询工具,并提供常见数据分析任务的提示模板。它设计用于与MCP客户端和语言模型(LLMs)配合工作,并通过STDIO协议进行通信。

目录


概述

MCP服务器使用MCP Python SDK(带CLI扩展)实现了一个服务器,该服务器:

  • 连接到SQLite数据库(例如,包含初创公司融资信息的数据库)。
  • 公开表模式作为MCP资源
  • 提供执行只读SQL查询的工具
  • 提供提示模板,帮助语言模型生成数据分析见解。
  • 通过STDIO协议进行通信,从标准输入读取JSON-RPC消息并写入标准输出响应。

特性

  • 资源

    • schema://sqlite/{table}:返回特定表的SQL模式。
    • schema://sqlite/all:返回所有表模式的JSON映射。
  • 工具

    • sql_query:执行只读SQL查询。仅允许SELECT语句。
  • 提示

    • analyze_table_prompt:为特定表生成分析提示。
    • describe_query_prompt:生成解释SQL查询的提示。
  • STDIO协议

    • stdin读取并写入响应到stdout,使集成变得简单。
  • 日志记录

    • 使用Python的logging模块来跟踪活动和调试错误。

设置和安装

创建示例SQLite数据库

将以下脚本保存为create_db.py

<同上>

运行:

python create_db.py

创建虚拟环境

python -m venv venv

激活环境:

  • macOS/Linux

    source venv/bin/activate
    
  • Windows

    venv\Scripts\activate
    

安装依赖项:

pip install "mcp[cli]"

运行MCP服务器

  1. 将您的服务器代码保存为sqlite_mcp_server.py
  2. 运行服务器:
python sqlite_m_服务器.py

可选(使用uv):

uv run sqlite_mcp_server.py

安装到Claude桌面

将以下内容保存为install_to_claude.py并运行:

python install_to_claude.py

更新Claude桌面配置:

{
  "mcpServers": {
    "sqlite_mcp_server": {
      "command": "python",
      "args": ["-u", "/绝对路径/to/sqlite_mcp_server.py"]
    }
  }
}

之后重启Claude桌面。


使用

  • 访问资源schema://sqlite/allschema://sqlite/startups
  • 调用工具
    SELECT * FROM startups WHERE funding_amount > 10000000;
    
  • 使用提示:生成SQL或解释查询。

测试

运行测试脚本:

python sqlite_mcp_client_tests.py sqlite_mcp_server.py

此脚本测试:

  • 列出资源
  • 获取模式
  • 有效/无效查询
  • 提示模板

日志记录

修改日志配置:

logging.basicConfig(
    filename='mcp_server.log',
    level=logging.DEBUG,
    format="[%(asctime)s] %(levelname)s - %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S"
)

默认情况下,日志打印到stderr。


许可证

本项目根据MIT许可证发布。参见LICENSE文件。


其他注意事项

  • 根据需要调整安装/配置脚本中的路径。
  • 在运行服务器之前确保已创建SQLite数据库。
  • 与MCP Inspector或Claude桌面集成。