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-serverStdio(直接)
uv run stim-mcp-serverHTTP/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/mcpMCP开发工具
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.
