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 startCursor
自动设置:
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
- 紫外线 用于依赖关系管理
设置
- 克隆存储库:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore- 安装依赖项:
uv sync --dev- 设置预提交挂钩(可选但推荐):
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发布来管理的:
- 创建发布:
./scripts/release.sh(交互式工具) - 自动发布:由推送版本标签触发
- 无需手动上传PyPI -全自动流水线
看 scripts/dev-workflow.md 查看详细的工作流程文档。
