返回市场
MCP服务器单库版

MCP服务器单库版

作者:singlestore-labs26 星标更新:2025-11-19

项目介绍

SingleStore MCP 服务器

MIT 许可证 PyPI 下载量

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

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

💡 小贴士:不确定 MCP 服务器能做什么?只需在聊天中调用 /help 提示!

要求

  • Python >= v3.10.0
  • 在您的 Python 环境中安装了 uvx
  • 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 处理身份验证。

<details> <summary>Claude Desktop</summary>

自动设置:

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

手动设置: 遵循 MCP 安装 指南,使用上述标准配置。

</details> <details> <summary>Claude Code</summary>

自动设置:

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

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

手动设置:

claude mcp add singlestore-mcp-server uvx singlestore-mcp-server start
</details> <details> <summary>Cursor</summary>

自动设置:

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

手动设置: 前往 Cursor 设置 -> MCP -> 添加新 MCP 服务器。按喜好命名,使用命令类型 uvx singlestore-mcp-server start。您也可以通过点击 编辑 来验证配置或添加命令行参数。

</details> <details> <summary>VS Code</summary>

自动设置:

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 代理一起使用。

</details> <details> <summary>Windsurf</summary>

自动设置:

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

手动设置: 遵循 Windsurf MCP 文档。使用上述标准配置。

</details> <details> <summary>Gemini CLI</summary>

自动设置:

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

手动设置: 遵循 MCP 安装 指南,使用上述标准配置。

</details> <details> <summary>LM Studio</summary>

自动设置:

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

手动设置: 前往右侧边栏中的 Program -> Install -> Edit mcp.json。使用上述标准配置。

</details> <details> <summary>Goose</summary>

仅手动设置: 前往 高级设置 -> 扩展 -> 添加自定义扩展。按喜好命名,使用类型 STDIO,并将 command 设置为 uvx singlestore-mcp-server start。点击“添加扩展”。

</details> <details> <summary>Qodo Gen</summary>

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

点击 <code>保存</code>

</details>

使用 Docker

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

{
  "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:获取当前用户的信息

    • 不需要参数
    • 返回用户信息和详细资料
  • 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:列出用户可以访问的所有初始工作空间

    • 不需要参数
    • 返回可用初始工作空间的详细资料
  • create_starter_workspace:创建新的初始工作空间

    • 参数:工作空间配置参数
    • 返回创建的初始工作空间的详细资料
  • terminate_starter_workspace:终止现有的初始工作空间

  • 参数:workspace_id (字符串)

  • 终止指定的初始工作空间

  • list_regions:获取支持工作空间的所有区域列表

    • 不需要参数
    • 返回可用区域列表
  • list_sharedtier_regions:获取共享层级区域列表

    • 不需要参数
    • 返回共享层级区域列表
  • run_sql:在连接的工作空间上执行 SQL 操作

    • 参数:workspace_iddatabasesql_query 和连接参数
    • 返回 SQL 查询结果的结构化格式
  • create_notebook_file:在 SingleStore Spaces 中创建新的笔记本文件

    • 参数:notebook_namecontent (可选)
    • 返回创建的笔记本的详细资料
  • upload_notebook_file:将笔记本文件上传到 SingleStore Spaces

    • 参数:file_pathnotebook_name
    • 返回上传的笔记本的详细资料
  • create_job_from_notebook:从笔记本创建计划任务

    • 参数:包括 notebook_pathschedule_mode 等的任务配置
    • 返回创建的任务的详细资料
  • get_job:获取现有任务的详细资料

    • 参数:job_id (字符串)
    • 返回指定任务的详细资料
  • delete_job:删除现有任务

    • 参数:job_id (字符串)
    • 删除指定的任务

注意:组织管理工具 (choose_organizationset_organization) 仅在未设置 API 密钥环境变量时可用,允许在 OAuth 认证期间进行交互式组织选择。

开发

先决条件

  • Python >= 3.11
  • 用于依赖管理的 uv

设置

  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

开发流程

# 快速质量检查(快速反馈)
./scripts/check.sh

# 独立运行测试
./scripts/test.sh

# 综合验证(提交 PR 前)
./scripts/check-all.sh

# 创建并发布版本
./scripts/release.sh

运行测试

# 运行带有覆盖率的测试套件
./scripts/test.sh

# 或直接使用 pytest
uv run pytest
uv run pytest --cov=src --cov-report=html

代码质量

我们使用 Ruff 进行代码格式化和检查:

# 格式化代码
uv run ruff format src/ tests/

# 检查代码
uv run ruff check src/ tests/

# 自动修复问题
uv run ruff check --fix src/ tests/

发布流程

版本通过 git 标签管理和自动化 PyPI 发布:

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

详情请参阅 scripts/dev-workflow.md 的开发流程文档。