使用说明
SQLite MCP服务器
MCP(模型上下文协议)服务器,使LLM能够与SQLite数据库交互。此服务器通过一组用于模式检查和SQL查询执行的工具提供对任何SQLite数据库的只读访问。
内置于 async/await 图案使用 aiosqlite 用于非阻塞数据库操作。
特性
- list_tables -获取数据库中的所有表名
- describe_table -获取特定表的列详细信息、类型和关系
- get_schema -通过CREATE TABLE语句获取完整的数据库架构
- 怎么翻译 -执行只读SQL查询(仅限SELECT)
先决条件
- Python 3.13+
- 紫外线 包管理器
安装
- 克隆此存储库
- 安装依赖项:
uv sync
快速开始使用示例数据
该项目包括一个用于演示目的的CRM示例数据库。
1.创建数据库并为其添加种子
uv run seed_database.py
这创造了 crm.db 使用示例CRM数据:
- 5名用户(销售团队)
- 20家公司
- 40个联系人
- 25笔交易
- 30活动
2.运行MCP服务器
看 运行服务器 在......下面
运行服务器
服务器使用 crm.db 与脚本位于同一目录中(硬编码)。
开发模式(MCP检查器)
uv run mcp dev sqlite_mcp_server.py
这将启动 MCP检查员 -基于web的调试UI http://localhost:5173 您可以在哪里:
- 查看所有已注册的工具
- 使用自定义输入交互式测试每个工具
- 检查JSON响应
- 连接LLM之前的调试问题
生产模式(LLM集成)
uv run sqlite_mcp_server.py
这将在中启动服务器 stdio模式,已准备好连接LLM客户端。
客户端配置
示例:克劳德桌面
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"sqlite": {
"command": "uv",
"args": [
"--directory",
"/path/to/sqlite-mcp-server",
"run",
"sqlite_mcp_server.py"
]
}
}
}
工具参考
list_tables
返回数据库中的所有表名。
示例响应:
{
"tables": ["activities", "companies", "contacts", "deals", "users"]
}
describe_table
获取有关表结构的详细信息。
参数:
table_name(string):要描述的表的名称
示例响应:
{
"table": "contacts",
"columns": [
{"name": "id", "type": "INTEGER", "nullable": false, "primary_key": true},
{"name": "first_name", "type": "TEXT", "nullable": false, "primary_key": false},
{"name": "email", "type": "TEXT", "nullable": true, "primary_key": false}
],
"foreign_keys": [
{"column": "company_id", "references_table": "companies", "references_column": "id"}
],
"indexes": []
}
get_schema
以CREATE TABLE语句返回完整的数据库架构。
示例响应:
{
"schema": {
"users": "CREATE TABLE users (...)",
"companies": "CREATE TABLE companies (...)"
}
}
怎么翻译
执行只读SQL查询。只允许使用SELECT语句。
参数:
sql(string):SELECT SQL语句
示例响应:
{
"columns": ["name", "email"],
"rows": [
["John Doe", "john@example.com"],
["Jane Smith", "jane@example.com"]
],
"row_count": 2
}
安全: 服务器通过以下方式验证查询是否为只读:
- 确保查询以SELECT或with开头
- 阻止INSERT、UPDATE、DELETE、DROP等关键字。
使用自己的数据库
服务器被硬编码使用 crm.db 在脚本目录中。要使用其他数据库,请执行以下操作:
- 替换
crm.db使用数据库文件(保持相同名称),或 - 修改
DB_PATH持续在sqlite_mcp_server.py
