Mcp Sqlite Server

Mcp Sqlite Server

🚀 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 保护。

  • 0 关注
  • 0 收藏,9 浏览
  • system 提出于 2025-09-23 20:54

相似服务问题

相关AI产品