数据库MCP服务器

SingleStore MCP Server是一个基于Model Context Protocol(MCP)的服务器,用于在大型语言模型(LLMs)和外部系统之间管理上下文,支持通过自然语言与SingleStore数据库进行交互。

  • by singlestore-labs
  • Python
  • 本地部署
  • 33 星标
  • 更新于
在 GitHub 查看 singlestore-labs/mcp-server-singlestore

使用说明

SingleStore MCP服务器

模型上下文协议 (MCP)是一种标准化协议,旨在管理大型语言模型(LLM)和外部系统之间的上下文。此存储库为Singlestore提供了一个安装程序和一个MCP服务器,实现了无缝集成。

使用MCP,您可以使用Claude Desktop、Claude Code、Cursor或任何兼容的MCP客户端使用自然语言与SingleStore交互,从而更轻松地执行复杂的操作。

💡 专业建议:不确定MCP服务器能做什么?打电话给 /help 在您的聊天中提示!

需求

  • Python>=v3.10.0
  • uvx 安装在python环境中
  • VS Code、Cursor、Windsurf、Claude Desktop、Claude Code、Goose或任何其他MCP客户端

入门

入门

首先,在客户端上安装SingleStore MCP服务器。

标准配置 适用于大多数工具:

{
  "mcpServers": {
    "singlestore-mcp-server": {
      "command": "uvx",
      "args": [
        "singlestore-mcp-server",
        "start"
      ]
    }
  }
}

不需要API密钥、令牌或环境变量! 启动时,服务器会自动通过浏览器OAuth处理身份验证。

Claude Desktop

自动设置:

uvx singlestore-mcp-server init --client=claude-desktop

手动设置: 遵循MCP安装 引导,使用上面的标准配置。

Claude Code

自动设置:

uvx singlestore-mcp-server init --client=claude-code

这将自动为您运行Claude CLI命令。

手动设置:

claude mcp add singlestore-mcp-server uvx singlestore-mcp-server start
Cursor

自动设置:

uvx singlestore-mcp-server init --client=cursor

手动设置: 首选 Cursor Settings -> MCP -> Add new MCP Server.按你的喜好命名,使用 command 使用命令键入 uvx singlestore-mcp-server start。您还可以通过单击来验证配置或添加命令行参数 Edit.

VS Code

自动设置:

uvx singlestore-mcp-server init --client=vscode

手动设置: 遵循MCP安装 引导,使用上面的标准配置。您还可以使用VS Code CLI进行安装:

code --add-mcp '{"name":"singlestore-mcp-server","command":"uvx","args":["singlestore-mcp-server","start"]}'

安装后,SingleStore MCP服务器将可用于VS Code中的GitHub Copilot代理。

Windsurf

自动设置:

uvx singlestore-mcp-server init --client=windsurf

手动设置: 关注Windsurf MCP 文档.使用上面的标准配置。

Gemini CLI

自动设置:

uvx singlestore-mcp-server init --client=gemini

手动设置: 遵循MCP安装 引导,使用上面的标准配置。

LM Studio

自动设置:

uvx singlestore-mcp-server init --client=lm-studio

手动设置: 首选 Program 在右侧边栏-> Install -> Edit mcp.json.使用上面的标准配置。

Goose

仅限手动设置: 首选 Advanced settings -> Extensions -> Add custom extension.按你的喜好命名,使用类型 STDIO,并设置 command 到 uvx singlestore-mcp-server start。单击“添加扩展名”。

Qodo Gen

仅限手动设置: 打开 Qodo Gen VSCode或IntelliJ中的聊天面板→ 连接更多工具→ + 添加新MCP→ 粘贴上面的标准配置。

点击 保存.

使用Docker

注: 使用Docker时需要API密钥,因为在Docker容器中运行的服务器不支持OAuth流。

{
  "mcpServers": {
    "singlestore-mcp-server": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", "--init", "--pull=always",
        "-e", "MCP_API_KEY=your_api_key_here",
        "singlestore/mcp-server-singlestore"
      ]
    }
  }
}

你可以自己构建Docker镜像:

docker build -t singlestore/mcp-server-singlestore .

为了提高安全性,我们建议使用Docker Desktop配置SingleStore MCP服务器——请参阅 这篇博客文章 了解Docker新的MCP目录的详细信息。

组件

工具

服务器实现了以下工具:

  • get_user_info:检索当前用户的详细信息

    • 无需任何论据
    • 返回用户信息和详细信息
  • 组织信息:检索有关用户当前组织的详细信息

    • 无需任何论据
    • 返回组织的详细信息
  • 选择组织:从可用组织中选择(仅在未设置API关键环境变量时可用)

    • 无需任何论据
    • 返回可供选择的组织列表
  • set组织:设置活动组织(仅在未设置API关键环境变量时可用)

    • 论据: organization_id (字符串)
    • 将指定的组织设置为活动组织
  • workspace_groups_info:检索用户可访问的工作区组的详细信息

    • 无需任何论据
    • 返回工作区组的详细信息
  • 工作空间_信息:检索特定工作区组中工作区的详细信息

    • 论据: workspace_group_id (字符串)
    • 返回工作区的详细信息
  • 简历_工作空间:恢复暂停的工作区

    • 论据: workspace_id (字符串)
    • 恢复指定的工作区
  • list_starter_workspaces:列出用户可访问的所有初学者工作区

    • 无需任何论据
    • 返回可用初学者工作区的详细信息
  • create_starter_workspace:创建新的初学者工作区

    • 参数:工作区配置参数
    • 返回创建的启动器工作区的详细信息
  • terminate_arter_workspace:终止现有的启动器工作区

    • 论据: workspace_id (字符串)
    • 终止指定的启动器工作区
  • list_地区:检索支持工作区的所有区域的列表

    • 无需任何论据
    • 返回可用区域的列表
  • list_sharedtier_regions:检索共享层区域列表

    • 无需任何论据
    • 返回共享层区域列表
  • run_sql:在连接的工作区上执行SQL操作

    • 论据: workspace_id, database, sql_query,以及连接参数
    • 以结构化格式返回SQL查询的结果
  • create_notebook_file:在SingleStore Spaces中创建新的笔记本文件

    • 论据: notebook_name, content (可选)
    • 返回创建的笔记本的详细信息
  • upload_notebook_file:将笔记本文件上载到SingleStore Spaces

    • 论据: file_path, notebook_name
    • 返回上传笔记本的详细信息
  • create_job_from_notebook:从笔记本创建计划作业

    • 参数:作业配置包括 notebook_path, schedule_mode等等。
    • 返回所创建作业的详细信息
  • get_job:检索现有作业的详细信息

    • 论据: job_id (字符串)
    • 返回指定作业的详细信息
  • 删除job:删除现有作业

    • 论据: job_id (字符串)
    • 删除指定的作业
  • stage_list_files:列出Stage部署文件系统中的文件和文件夹

    • 论据: deployment_id (字符串), path (字符串,可选)
    • 返回文件夹内容,包括文件和子文件夹
  • stage_getfile:按路径从Stage获取文件

    • 论据: deployment_id (字符串), path (字符串), return_type (字符串:“元数据”、“url”或“内容”)
    • 返回文件元数据、下载URL或文本内容
  • stage_create_folder:在Stage中创建文件夹

    • 论据: deployment_id (字符串), path (字符串)
    • 返回创建状态
  • stage_upload_file:将包含文本内容的文件上传到Stage

    • 论据: deployment_id (字符串), path (字符串), content (字符串), local_path (字符串)
    • 返回上传状态
  • 阶段_移动:在Stage中移动或重命名文件或文件夹

    • 论据: deployment_id (字符串), source_path (字符串), destination_path (字符串)
    • 返回移动状态
  • 阶段_结束:从Stage中删除文件或文件夹

    • 论据: deployment_id (字符串), path (字符串)
    • 返回删除状态

备注:组织管理工具(choose_organization 和 set_organization)仅当未设置API密钥环境变量时才可用,从而允许在OAuth身份验证期间进行交互式组织选择。

发展

先决条件

  • Python>=3.11
  • 紫外线 用于依赖关系管理

设置

  1. 克隆存储库:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
  1. 安装依赖项:
uv sync --dev
  1. 设置预提交挂钩(可选但推荐):
uv run pre-commit install

开发工作流程

# Quick quality checks (fast feedback)
./scripts/check.sh

# Run tests independently
./scripts/test.sh

# Comprehensive validation (before PRs)
./scripts/check-all.sh

# Create and publish releases
./scripts/release.sh

运行测试

# Run test suite with coverage
./scripts/test.sh

# Or use pytest directly
uv run pytest
uv run pytest --cov=src --cov-report=html

代码质量

我们使用 拉夫 对于linting和格式化:

# Format code
uv run ruff format src/ tests/

# Lint code
uv run ruff check src/ tests/

# Lint and fix issues automatically
uv run ruff check --fix src/ tests/

发布流程

发布是通过git标签和自动PyPI发布来管理的:

  1. 创建发布: ./scripts/release.sh (交互式工具)
  2. 自动发布:由推送版本标签触发
  3. 无需手动上传PyPI -全自动流水线

看 scripts/dev-workflow.md 查看详细的工作流程文档。