SingleStore MCP Server 是一个基于 Model Context Protocol(MCP)的服务器,用于连接大语言模型(LLM)与 SingleStore 数据库平台。MCP 是一种标准化协议,用于管理 LLM 与外部系统之间的上下文。该仓库提供安装器和 MCP 服务器,使 Claude Desktop、Claude Code、Cursor 或任何兼容 MCP 的客户端能够使用自然语言与 SingleStore 交互,从而更轻松地执行复杂操作。
用途:通过自然语言与 SingleStore Management API 和服务交互,简化数据库管理、工作区操作、SQL 执行、Notebook 与任务管理、Stage 文件管理等任务。
主要能力:服务器实现了一系列工具,包括:
- get_user_info:获取当前用户信息,无需参数。
- organization_info:获取当前组织信息,无需参数。
- choose_organization:从可用组织中选择(仅在未设置 API 密钥环境变量时可用),无需参数。
- set_organization:设置活动组织(仅在未设置 API 密钥环境变量时可用),参数 organization_id(字符串)。
- workspace_groups_info:获取用户可访问的工作区组信息,无需参数。
- workspaces_info:获取特定工作区组中的工作区信息,参数 workspace_group_id(字符串)。
- resume_workspace:恢复已暂停的工作区,参数 workspace_id(字符串)。
- list_starter_workspaces:列出用户可访问的所有 Starter 工作区,无需参数。
- create_starter_workspace:创建新的 Starter 工作区,参数为工作区配置参数。
- terminate_starter_workspace:终止现有 Starter 工作区,参数 workspace_id(字符串)。
- list_regions:获取支持工作区的所有区域列表,无需参数。
- list_sharedtier_regions:获取共享层区域列表,无需参数。
- run_sql:在连接的工作区上执行 SQL 操作,参数 workspace_id、database、sql_query 和连接参数,返回结构化查询结果。
- create_notebook_file:在 SingleStore Spaces 中创建新的 Notebook 文件,参数 notebook_name、content(可选)。
- upload_notebook_file:上传 Notebook 文件到 SingleStore Spaces,参数 file_path、notebook_name。
- create_job_from_notebook:从 Notebook 创建定时任务,参数包括 notebook_path、schedule_mode 等任务配置。
- get_job:获取现有任务详情,参数 job_id(字符串)。
- delete_job:删除现有任务,参数 job_id(字符串)。
- stage_list_files:列出 Stage 部署文件系统中的文件和文件夹,参数 deployment_id(字符串)、path(字符串,可选)。
- stage_get_file:按路径从 Stage 获取文件,参数 deployment_id(字符串)、path(字符串)、return_type(字符串:'metadata'、'url' 或 'content'),返回文件元数据、下载 URL 或文本内容。
- stage_create_folder:在 Stage 中创建文件夹,参数 deployment_id(字符串)、path(字符串)。
- stage_upload_file:上传带文本内容的文件到 Stage,参数 deployment_id(字符串)、path(字符串)、content(字符串)、local_path(字符串)。
- stage_move:在 Stage 中移动或重命名文件或文件夹,参数 deployment_id(字符串)、source_path(字符串)、destination_path(字符串)。
- stage_delete:从 Stage 删除文件或文件夹,参数 deployment_id(字符串)、path(字符串)。 注意:组织管理工具(choose_organization 和 set_organization)仅在未设置 API 密钥环境变量时可用,允许在 OAuth 认证期间进行交互式组织选择。
使用方式: 先决条件:Python >= v3.10.0;在 Python 环境中安装 uvx;使用 VS Code、Cursor、Windsurf、Claude Desktop、Claude Code、Goose 或其他 MCP 客户端。 安装:使用标准配置在大多数工具中可用。无需 API 密钥、令牌或环境变量!服务器启动时通过浏览器 OAuth 自动处理认证。
- 自动设置:可自动运行 Claude CLI 命令。
- 手动设置:遵循 MCP 安装指南,使用标准配置。
- Cursor:转到 Cursor 设置 -> MCP -> 添加新的 MCP 服务器,命名,使用命令类型,命令为 uvx singlestore-mcp-server start。也可通过点击编辑验证配置或添加命令行参数。
- VS Code:遵循 MCP 安装指南,使用标准配置。也可使用 VS Code CLI 安装。安装后,SingleStore MCP 服务器将可用于 VS Code 中的 GitHub Copilot 代理。
- Windsurf:遵循 Windsurf MCP 文档,使用标准配置。
- 其他客户端:如 Program 侧边栏 -> 安装 -> 编辑 mcp.json,使用标准配置;或高级设置 -> 扩展 -> 添加自定义扩展,类型 STDIO,命令 uvx singlestore-mcp-server start;或 Qodo Gen 聊天面板 -> 连接更多工具 -> 添加新 MCP -> 粘贴标准配置。 注意:使用 Docker 时需要 API 密钥,因为 Docker 容器中运行的服务器不支持 OAuth 流程。可以自行构建 Docker 镜像。为更好安全性,建议使用 Docker Desktop 配置 SingleStore MCP 服务器。
开发:使用 uv 进行依赖管理。克隆仓库,安装依赖,设置 pre-commit 钩子(可选但推荐)。开发工作流使用 Ruff 进行 linting 和格式化。发布流程通过 git 标签和自动化 PyPI 发布管理:创建发布使用 ./scripts/release.sh(交互式工具),推送版本标签触发自动发布,无需手动上传 PyPI。详见 scripts/dev-workflow.md。
适用场景:适用于需要通过自然语言管理 SingleStore 数据库、工作区、组织、Notebook、任务和 Stage 文件的开发人员或数据团队,尤其适合使用 Claude Desktop、Cursor、VS Code 等 MCP 客户端的用户。
限制:需要 Python >= 3.10.0 和 uvx;Docker 方式需要 API 密钥且不支持 OAuth;组织管理工具仅在未设置 API 密钥环境变量时可用。其他具体限制暂未提供。