Back to MCP directory
publicPublicdnsLocal runtime

mcp-sqlite-server

一个基于Python的MCP服务器,连接SQLite数据库并提供数据查询、模式访问和提示模板功能,支持与语言模型和MCP客户端交互。

article

README

🚀 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_mcp_server.py

使用 uv 可选:

uv run sqlite_mcp_server.py

安装到 Claude Desktop

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

python install_to_claude.py

💻 使用示例

基础用法

从 MCP 服务器获取表结构

mcp server --host localhost:5000 --get schema://sqlite/sales

执行 SQL 查询

mcp server --host localhost:5000 --query "SELECT * FROM sales LIMIT 5"

生成查询描述

mcp server --host localhost:5000 --describe "SELECT COUNT(*) FROM customers WHERE state = 'CA'"

📚 详细文档

测试

使用 MCP CLI 工具测试服务器

  1. 安装 MCP CLI:
pip install mcp-cli
  1. 测试表结构获取:
mcp test --host localhost:5000 --test-get schema://sqlite/sales
  1. 测试 SQL 查询执行:
mcp test --host localhost:5000 --test-query "SELECT * FROM sales LIMIT 5"

日志记录

配置日志文件

logging_config.json 中添加以下内容:

{
  "version": 1,
  "handlers": {
    "file_handler": {
      "class": "logging.FileHandler",
      "filename": "mcp_server.log",
      "level": "INFO"
    }
  },
  "root": {
    "level": "INFO",
    "handlers": ["file_handler"]
  }
}

启用日志记录

sqlite_mcp_server.py 中添加以下内容:

import logging
from logging.config import fileConfig

fileConfig("logging_config.json")
logger = logging.getLogger()

def main():
    # ...
    logger.info("Starting MCP Server")
    # ...

if __name__ == "__main__":
    main()

📄 许可证

此项目受 MIT License 保护。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client