量子电路模拟器服务

stim-mcp-server是一个基于Google Stim的稳定器电路模拟器,允许用户通过对话构建和采样量子电路,适用于量子计算探索和实验。

  • by DeDuckProject
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 DeDuckProject/stim-mcp

使用说明

stim-mcp服务器

MCP服务器包装 谷歌的Stim 稳定器电路模拟器。将其连接到LLM,您可以通过对话构建和采样电路。

这是一个用于探索的实验工具,目前处于测试阶段。它应该被这样对待。

工具

工具 说明
hello_quantum 健康检查--返回刺激版本和活动会话计数
create_circuit 验证刺激电路串并打开持久会话
append_operation 将一个或多个刺激指令附加到现有电路
sample_circuit 模拟电路并返回测量统计数据
analyze_errors 构建检测器错误模型并找到最短的逻辑错误路径
get_circuit_diagram 返回ASCII、SVG或时间线图
inject_noise 在电路中添加去极化或X误差噪声
generate_circuit 生成标准QEC电路(表面、重复、颜色代码)

连接到远程服务器

托管实例在Google Cloud Run上运行:

统一资源定位符: https://stim-mcp-5s3woqufqa-uc.a.run.app/mcp 运输:流式HTTP(MCP 1.x)

Claude.ai

首选 设置→ 连接器→ 转到“自定义”→ 点击“+”图标→ 添加自定义连接器 以及上面URL中的名称“Stim”。

克劳德代码(CLI)

添加到您的 ~/.claude/claude.json (或项目级别 .claude/claude.json):

{
  "mcpServers": {
    "stim-mcp": {
      "url": "https://stim-mcp-5s3woqufqa-uc.a.run.app/mcp"
    }
  }
}

其他MCP客户端

使用 POST https://stim-mcp-5s3woqufqa-uc.a.run.app/mcp 和 Content-Type: application/json 和 Accept: application/json, text/event-stream.

冷启动:服务器在空闲时扩展为零。一段时间不活动后的第一个请求可能需要5-10秒。内存中的电路会话在按比例缩小时会丢失——重新创建电路的成本很低。

安装

需求 紫外线.

通过PyPI(推荐)

不需要克隆。配置您的MCP客户端(见下文) uvx 在第一次运行时处理其余部分。

来源(开发)

git clone https://github.com/DeDuckProject/stim-mcp
cd stim-mcp
uv sync

在本地运行

克劳德桌面

macOS — ~/Library/Application Support/Claude/claude_desktop_config.json 视窗 — %APPDATA%\Claude\claude_desktop_config.json Linux — ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "stim": {
      "command": "/path/to/uvx",
      "args": ["--from", "stim-mcp-server", "stim-mcp-server"]
    }
  }
}

替换 /path/to/uvx 随着输出 which uvx.

克劳德代码

claude mcp add stim -- /path/to/uvx --from stim-mcp-server stim-mcp-server

替换 /path/to/uvx 随着输出 which uvx.

来源(开发)

claude mcp add stim -- /path/to/uv run --directory /path/to/stim-mcp stim-mcp-server

Stdio(直接)

uv run stim-mcp-server

HTTP/SSE(本地测试)

MCP_TRANSPORT=sse stim-mcp-server
# Server listens on http://localhost:8080/mcp

与MCP检查员一起检查:

npx @modelcontextprotocol/inspector http://localhost:8080/mcp

码头工人

docker build -t stim-mcp .
docker run -p 8080:8080 stim-mcp
# Server listens on http://localhost:8080/mcp

MCP开发工具

uv run mcp dev src/stim_mcp_server/server.py

部署到云运行

先决条件

brew install --cask google-cloud-sdk
gcloud auth login
gcloud config set project YOUR_PROJECT_ID
gcloud services enable run.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com

部署

gcloud run deploy stim-mcp \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --port 8080 \
  --memory 512Mi \
  --cpu 1 \
  --min-instances 0 \
  --max-instances 1

--source . 触发Cloud Build来构建Docker镜像——不需要本地Docker。 --max-instances 1 保持电路会话的一致性(在内存存储中)。 --min-instances 0 允许缩放到零。

环境变量

变量 默认值 描述
MCP_TRANSPORT stdio 设置为其他任何内容(例如。 sse)启动HTTP服务器
MCP_HOST 0.0.0.0 HTTP模式的绑定地址
MCP_PORT 8080 HTTP模式端口

隐私和安全

电路ID是128位随机令牌(UUID v4),因此几乎无法猜测。但是,共享服务器具有 没有身份验证和访问控制 --任何获得电路ID的人都可以读取和修改该电路。

如果您关心电路的隐私,请在本地运行MCP服务器 (参见 在本地运行).远程服务器用于实验和学习,而不是敏感工作。

远程服务器上的工具调用是匿名记录的(只有工具名称,没有参数或电路数据),用于使用分析。

例子

“创建贝尔状态并对其采样1000次”

“这个表面代码中最短的错误路径是什么?”

“添加0.1%的去极化噪声,并告诉我有什么变化”

发展

uv sync
uv run pytest

释放

推a v* 标签到 master 触发完整的发布管道(测试必须首先通过):

  • PyPI --包是自动构建和发布的
  • 云运行 --服务器自动部署
# bump version in pyproject.toml, then:
git tag v0.x.y
git push origin v0.x.y

所需的GitHub机密: PYPI_API_TOKEN, GCP_SA_KEY.