使用说明
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代理。
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。单击“添加扩展名”。
使用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 查看详细的工作流程文档。