单店 MCP 服务器
用于与 SingleStore 数据库交互的模型上下文协议 (MCP) 服务器。该服务器提供用于查询表、描述模式和生成 ER 图的工具。
特征
- 列出数据库中的所有表
- 执行自定义 SQL 查询
- 获取详细的表信息,包括架构和示例数据
- 生成数据库模式的 Mermaid ER 图
- SSL 支持,可自动获取 CA 包
- 正确的错误处理和 TypeScript 类型安全
先决条件
- Node.js 16 或更高版本
- npm 或 yarn
- 访问 SingleStore 数据库
- SingleStore CA 包(自动从门户获取)
安装
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 SingleStore MCP 服务器:
- 克隆存储库:
- 安装依赖项:
- 构建服务器:
环境变量
必需的环境变量
服务器需要以下环境变量来进行数据库连接:
所有这些环境变量都是服务器与 SingleStore 数据库建立连接所必需的。该连接使用 SSL 和 SingleStore CA 捆绑包,该捆绑包会自动从 SingleStore 门户获取。
可选环境变量
对于 SSE(服务器发送事件)协议支持:
设置环境变量
- 在您的 Shell 中:在运行服务器之前在终端中设置变量:
- 在客户端配置文件中:将变量添加到您的 MCP 客户端配置文件中,如下面的集成部分所示。
用法
协议支持
该服务器支持两种客户端集成协议:
- MCP 协议:使用 stdio 通信的标准模型上下文协议,由 Claude Desktop、Windsurf 和 Cursor 使用。
- SSE 协议:通过 HTTP 向需要实时数据流的基于 Web 的客户端和应用程序发送服务器发送事件。
两种协议都公开相同的工具和功能,允许您根据用例选择最佳的集成方法。
可用工具
- 列表表
- 列出数据库中的所有表
- 无需参数 GXP8
- 查询表
- 执行自定义 SQL 查询
- 参数:
- 查询:SQL 查询字符串 GXP9
- 描述表
- 获取表的详细信息
- 参数:
- 表:表名GXP10
- 生成图表
- 生成数据库模式的 Mermaid ER 图
- 无需参数 GXP11
- 运行读取查询
- 在数据库上执行只读(SELECT)查询
- 参数:
- 查询:执行 GXP12 的 SQL SELECT 查询
- 创建表
- 在数据库中创建具有指定列和约束的新表
- 参数:
- table_name:要创建的表的名称
- columns:列定义数组
- table_options:可选表配置 GXP13
- 生成合成数据
- 生成合成数据并将其插入现有表中
- 参数:
- table:要插入数据的表的名称
- count:要生成的行数(默认值:100)
- column_generators:针对特定列的自定义生成器
- batch_size:每批插入的行数(默认值:1000)GXP14
- 优化SQL
- 使用 PROFILE 分析 SQL 查询并提供优化建议
- 参数:
- 查询:用于分析和优化 GXP15 的 SQL 查询
- 响应内容包括:
- 原始查询
- 性能概况摘要(总运行时间、编译时间、执行时间)
- 检测到的瓶颈列表
- 具有影响级别(高/中/低)的优化建议
- 有关索引、连接、内存使用和其他优化的建议
独立运行
- 构建服务器:
- 仅使用 MCP 协议运行服务器:
- 使用 MCP 和 SSE 协议运行服务器:
使用 SSE 协议
启用 SSE 后,服务器将公开以下 HTTP 端点:
- 根端点返回服务器信息和可用端点。
- 健康检查返回有关服务器的状态信息。
- 上交所连接建立服务器发送事件连接以进行实时更新。
- 列表工具返回所有可用工具的列表,与 MCP
list_tools
功能相同。还支持 MCP Inspector 兼容性的 POST 请求: - 呼叫工具使用提供的参数执行工具。
- 如果提供了
client_id
,则响应将流式传输到该 SSE 客户端。 - 如果省略
client_id
,则直接在HTTP响应中返回响应。
还支持标准 MCP 格式以实现 MCP Inspector 兼容性:
- 如果提供了
SSE 事件类型
使用 SSE 连接时,服务器发送以下事件类型:
- 消息(未命名事件):当 SSE 连接成功建立时发送。
- open :附加连接建立事件。
- message :用于所有 MCP 协议消息,包括工具启动、结果和错误事件。
所有事件均遵循 MCP 协议使用的 JSON-RPC 2.0 格式。系统使用标准message
事件类型,以兼容 MCP Inspector 和大多数 SSE 客户端库。
JavaScript 客户端示例
与 MCP Inspector 一起使用
MCP Inspector 是一款基于浏览器的工具,用于测试和调试 MCP 服务器。要将其与此服务器配合使用,请执行以下操作:
- 使用一个命令启动服务器和 MCP 检查器:或者仅启动服务器:
- 要单独安装并运行 MCP Inspector:检查器将在您的默认浏览器中打开。
- 当 MCP 检查器打开时:a. 在连接字段中输入 URL:注意:实际端口可能因您的配置而异。请检查服务器启动日志,了解实际使用的端口。服务器将输出:b. 确保选择“SSE”作为传输类型c. 点击“连接”
- 如果您遇到连接问题,请尝试以下替代方法:a.尝试连接到特定端点:b.尝试使用您机器的实际 IP 地址:c.如果在 Docker 中运行:
- 调试连接问题:a. 通过在浏览器中访问http://localhost:8081来验证服务器是否正在运行b. 检查服务器日志中的连接尝试c. 尝试重启服务器和检查器d. 确保没有其他服务正在使用端口 8081e. 使用提供的脚本测试 SSE 连接:或者手动使用 curl:f. 验证您的防火墙设置是否允许连接到端口 8081
- 一旦连接,检查器将显示所有可用的工具并允许您以交互方式测试它们。
⚠️注意:使用 MCP 检查器时,必须使用完整的 URL,包括http://
前缀。
MCP 客户端集成
在 Claude Desktop 中安装
- 将服务器配置添加到位于以下位置的 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
SSE_ENABLED 和 SSE_PORT 变量是可选的。如果您想启用支持 SSE 和标准 MCP 协议的 HTTP 服务器,请添加这两个变量。
- 重新启动Claude桌面应用程序
- 在与 Claude 的对话中,您现在可以使用 SingleStore MCP 服务器:
在 Windsurf 中安装
- 将服务器配置添加到位于以下位置的 Windsurf 配置文件:
- macOS:
~/Library/Application Support/Windsurf/config.json
- Windows:
%APPDATA%\Windsurf\config.json
- macOS:
SSE_ENABLED 和 SSE_PORT 变量是可选的,但通过 SSE HTTP 服务器启用附加功能。
- 重启风帆冲浪
- 在您与 Windsurf 中的 Claude 对话时,当 Claude 需要访问数据库信息时,SingleStore MCP 工具将自动可用。
在光标处安装
- 将服务器配置添加到您的 Cursor 设置中:
- 打开游标
- 前往“设置”(齿轮图标)> 扩展程序 > Claude AI > MCP 服务器
- 添加一个新的 MCP 服务器,配置如下:
SSE_ENABLED 和 SSE_PORT 变量允许 Web 应用程序通过 HTTP 连接到服务器并通过服务器发送事件接收实时更新。
- 重启光标
- 在 Cursor 中使用 Claude AI 时,SingleStore MCP 工具将可用于数据库操作。
安全注意事项
- 切勿将凭证提交给版本控制
- 使用环境变量或安全配置管理
- 考虑在生产环境中使用连接池机制
- 在 SingleStore 中实施适当的访问控制和用户权限
- 保持 SingleStore CA 包为最新版本
发展
项目结构
建筑
测试
故障排除
- 连接问题
- 验证环境变量中的凭据和主机信息
- 检查 SSL 配置
- 确保数据库可以通过网络访问
- 检查您的防火墙设置以允许到您的 SingleStore 数据库的出站连接
- 构建问题
- 清除 node_modules 并重新安装依赖项
- 验证 TypeScript 配置
- 检查 Node.js 版本兼容性(应为 16+)
- MCP 集成问题
- 验证客户端配置中服务器的 build/index.js 文件的路径是否正确
- 检查客户端配置中所有环境变量是否均已正确设置
- 更改配置后重新启动客户端应用程序
- 检查客户端日志中是否有与 MCP 服务器相关的错误消息
- 首先尝试独立运行服务器,以验证其在客户端之外是否正常工作
贡献
- 分叉存储库
- 创建功能分支
- 提交你的更改
- 推送到分支
- 创建拉取请求
执照
MIT 许可证 - 详情请参阅许可证文件
Related MCP Servers
- -securityAlicense-qualityProvides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.Last updated -5629JavaScriptMIT License
- AsecurityAlicenseAqualityA TypeScript-based server to interact with ArangoDB using the Model Context Protocol, enabling database operations and integration with tools like Claude and VSCode extensions for streamlined data management.Last updated -7434TypeScriptMIT License
IoTDB MCP Serverofficial
AsecurityAlicenseAqualityA server that enables running SQL queries against IoTDB databases, providing data reading capabilities and schema information through a Model Context Protocol interface.Last updated -326PythonApache 2.0- AsecurityAlicenseAqualityA server that connects to PostgreSQL databases and provides tools for safely exploring schemas, running read-only SQL queries, and performing data analysis with pre-built templates.Last updated -57381JavaScriptMIT License