PrizmSight雪花MCP服务器——内部操作指南
机密 --此存储库是私有的。不要与客户或外部方共享。
概述
托管雪花MCP服务器,客户端通过Docker Desktop在本地运行,并通过Claude Desktop使用。我们在实时通话中引导他们完成安装——他们双击安装程序,回答几个提示,Claude Desktop就连接好了。他们从未见过这个回购或内部。
建筑
Claude Desktop
│
└── http://localhost:9000/snowflake-mcp (HTTP daemon, port 9000)
│
├── entrypoint.sh
│ ├── snowflake-labs-mcp (upstream, internal HTTP on port 9001)
│ └── server.py (FastMCP proxy, HTTP on port 9000)
│ ├── proxied Snowflake tools (from upstream)
│ └── custom PrizmSight tools (@server.tool())
│
├── /app/config/tools_config.yaml (mounted from ~/prizmsight-mcp/config/)
└── .env credentials (passed via --env-file)所有请求都通过 server.py (FastMCP代理),代理上游 snowflake-labs-mcp 工具,并在它们旁边添加自定义PrizmSight工具。上游作为端口9001上的内部HTTP子进程运行,从未向主机公开。容器作为后台守护进程运行(docker run -d)端口9000绑定到本地主机。
多拱形图像(amd64+arm64)-适用于英特尔Mac、苹果Silicon Mac和Windows。
先决条件(PrizmSight团队)
- Docker(使用Docker Compose+Buildx)
- Azure命令行界面(
az)访问我们的ACR
本地开发
cp .env.example .env # Fill in Snowflake credentials
cp configs/template.yaml configs/tools_config.yaml # Configure tools
docker-compose up --build # Start
./scripts/healthcheck.sh # Verify客户入职(实时通话)
这是典型的流程——您正在与客户通话,并引导他们完成设置。
通话前
- PrizmSight团队配置ACR拉取访问 提前为客户服务
(令牌、服务主体或 az acr login --无论什么适合他们的环境)。
- 与客户确认先决条件:
- 已安装Docker桌面https://www.docker.com/products/docker-desktop/ - 已安装Claude Desktop--https://claude.ai/download - 雪花凭据就绪(帐户、用户、PAT、仓库、角色)
- (可选)预生成配置 如果他们需要Cortex服务或自定义权限:
./scripts/generate-client-config.sh --name acme-corp发送给他们 configs/clients/acme-corp.yaml 文件提前。
打电话
- 向客户端发送其平台的安装文件:
- 雨衣: setup.command (双击打开终端并运行) - 窗户: PrizmSight Setup.bat (在命令提示符中双击运行)
- 按照向导提示引导他们:
- 雪花账户标识符(例如。 xy12345.us-east-1) - 用户名(例如。 MCP_SERVICE_USER) - 程序化访问令牌(PAT)——在Snowsight中生成 - 仓库(例如。 COMPUTE_WH) - 角色(例如。 MCP_READONLY_ROLE) - 是否启用写入操作?(y/N)-允许插入/更新/删除。说 N 对于只读分析用例, Y 如果他们需要克劳德修改数据。
向导会自动处理一切:
- 产生 .env 和 tools_config.yaml - 提取Docker镜像 - 配置Claude桌面 (将HTTP URL写入 claude_desktop_config.json)
- 让客户端重新启动Claude Desktop 一起测试——问克劳德一个关于他们数据的问题,以确认一切都是端到端的。
通话后
- 向客户发送参考指南(
docs/client-setup-guide.md)用于管理、故障排除和更新。
安装向导
| 文件 | 平台 | 如何运行 |
|---|---|---|
setup.command | Mac/Linux | 在Finder中双击,或 ./setup.command 在终端 |
PrizmSight Setup.bat | Windows | 双击,或在命令提示符下运行 |
两位巫师:
- 检查Docker Desktop是否已安装并正在运行
- 以交互方式收集Snowflake凭据
- 询问写入操作切换
- 生成
.env和config/tools_config.yaml在~/prizmsight-mcp/ - 从ACR中提取Docker镜像
- 将容器作为后台守护进程启动(端口9000)
- 自动配置克劳德桌面(
claude_desktop_config.json)使用HTTP URL
- 如果存在,则合并到现有配置中(保留其他MCP服务器) - 如果不存在,则创建新配置
重新运行会检测到现有安装并提供重新配置(提取最新映像、更新Claude Desktop配置、保留凭据)。
构建并推进ACR
使用Docker Buildx构建多拱形映像(amd64+arm64):
az acr login --name prizmsightacr
./scripts/build-and-push.sh prizmsightacr-fwgab2creheadgdj.azurecr.io图像标签: prizmsightacr-fwgab2creheadgdj.azurecr.io/mcp/snowflake-mcp:1.0.0-sfmcp1.3.5
添加自定义工具
添加了自定义工具 src/server.py (包括注释掉的示例)。添加一个 @server.tool() 功能、重建、推送——新工具会自动出现在Claude Desktop中。
上游维护
./scripts/check-upstream-version.sh # Check for updates更新程序:
- 上游审查 更新日志 为了打破变化
- 碰撞
SNOWFLAKE_MCP_VERSION在Dockerfile - 测试:
docker-compose up --build - 推:
./scripts/build-and-push.sh prizmsightacr-fwgab2creheadgdj.azurecr.io - 客户端拉取更新的图像:
docker pull prizmsightacr-fwgab2creheadgdj.azurecr.io/mcp/snowflake-mcp:latest
