Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
通过 pystata 驱动真实 Stata 的 MCP 服务器:数据加载/清洗/建模/诊断/图形导出,75 个工具覆盖完整计量工作流。
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
STATA_HOME, STATA_EDITION, STATA_ALLOWED_ROOTS필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"stata": {
"command": "npx",
"args": [
"-y",
"@aliveranme/stata-mcp"
],
"env": {
"STATA_HOME": "your-value",
"STATA_EDITION": "your-value",
"STATA_ALLOWED_ROOTS": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add stata --env STATA_HOME=your-value --env STATA_EDITION=your-value --env STATA_ALLOWED_ROOTS=your-value -- npx -y @aliveranme/stata-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"stata": {
"command": "npx",
"args": [
"-y",
"@aliveranme/stata-mcp"
],
"env": {
"STATA_HOME": "your-value",
"STATA_EDITION": "your-value",
"STATA_ALLOWED_ROOTS": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"stata": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@aliveranme/stata-mcp"
],
"env": {
"STATA_HOME": "your-value",
"STATA_EDITION": "your-value",
"STATA_ALLOWED_ROOTS": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
STATA_EDITION envSTATA_ALLOWED_ROOTS env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검
레지스트리 이름이 GitHub 계정 aliveranme 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: STATA_HOME
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.10)은 3개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Show HN Launches — buy per-query in-session (showhnwatch)
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Show HN: indie launches & side projects. $0.01/query. Be born in one call — free testnet funds.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
在 Claude Code 里用自然语言做 Stata 分析。你描述要什么,Agent 自己写命令、执行、 读结果、继续下一步 —— 加载数据、清洗、建模、诊断、导出,全在一个持久的 Stata 会话里完成,数据不用反复载入。
你: 加载 auto.dta,用 weight 和 mpg 回归 price,并检查异方差
Agent 自动完成(无需你写任何 Stata 命令):
stata_use_dataset("auto.dta") → 74 obs, 12 vars 已载入
stata_regress("price", "weight mpg") → R² = 0.293 ; weight 1.75 (p=0.008) stata_run("estat hettest") → Breusch–Pagan χ² 检验异方差 stata_graph("rvfplot", export="…png") → 残差图导出为文件
数据从第一步起就留在内存里,后面每一步都接着用 —— 这正是 stata_run("regress …") 之外还值得有一个 MCP Server 的原因。
两部分组成,一起装进 Claude Code:
pystata 直接调用 Stata 的运行时,把 75 个工具 暴露给 Agent。stata_run 执行任意命令、stata_help 查任意命令的官方语法,二者 合起来即「全量内置命令支持」;其余专用工具(回归 / 面板 / IV / 生成变量 / 数据 清洗 / 后估计 / 文件资源 / 后台任务 …)是给高频命令加结构化参数与校验的便利层。pystata 通过 ctypes 在进程内加载 Stata 运行时,而非每条命令起一个子进程:
stata_more 翻页), 硬上限 120K 字符防止撑爆 MCP 通道;长命令有 60s 超时看门狗(可显式调大)。utilities/pystatagit clone https://gitea.aliveranme.space/aliveranme/stata-mcp.git
cd stata-mcp python setup.py
装在非标准位置(如外置卷
/Volumes/xxx/Applications/StataNow)时自动检测会失败 ——
先
export STATA_HOME=/你的/Stata路径再跑setup.py即可。
setup.py 会:检测 Stata 安装(常见路径 + STATA_HOME 环境变量,跨平台)→ 创建虚拟环境并安装 fastmcp → 生成 .mcp.json(保留你已有的其他 MCP Server 配置) → 验证 Server 可启动。
手动安装(自动检测失败时)
# 1. 指定 Stata 路径(替换为你本机实际路径)
export STATA_HOME="C:/Program Files/StataNow/StataNow19" # Windows
export STATA_EDITION=mp # mp / se / be
cd mcp-stata-server uv venv source .venv/Scripts/activate # Windows Git Bash
uv pip install "fastmcp>=3.2.0"
cd .. cp .mcp.json.example .mcp.json # 编辑其中的
</details>
若你已有 Node.js ≥ 18 与 uv(无 uv 时需 Python 3.10+ 且已装 fastmcp>=3.2.0),可直接使用已发布的 npm 包 @aliveranme/stata-mcp:
export STATA_HOME="/你的/Stata路径" # 含 utilities/pystata
export STATA_EDITION=mp
npx -y @aliveranme/stata-mcp
Claude Code .mcp.json 配置:
{
"mcpServers": { "stata": { "command": "npx", "args": ["-y", "@aliveranme/stata-mcp"], "env": { "STATA_HOME": "/Applications/StataNow", "STATA_EDITION": "mp" } } } }
npx @aliveranme/stata-mcp与npx stata-mcp-server(bin 名)等价,二者都触发同一个启动器。
重启 Claude Code(或 /reload-plugins),.mcp.json 里的 stata Server 会自动连接。 然后在对话里直接说:
帮我加载 auto.dta 并做描述统计
Agent 会自动走 stata_use_dataset → stata_describe → stata_summarize。
除 Claude Code 外,本 MCP 可接入所有支持 MCP 的客户端/Agent。逐平台教程见 docs/agent-setup/:
| Agent / 客户端 | 配置位置 | 教程 |
|---|---|---|
| Claude Code | .mcp.json / claude mcp add | claude-code.md |
| Claude Desktop | claude_desktop_config.json | claude-desktop.md |
| Cursor | .cursor/mcp.json | cursor.md |
| Cline / Roo Code / Continue / Zed / Windsurf | 通用 mcpServers schema(Zed 用 context_servers) | other-clients.md |
插件 / 扩展市场分发(Claude Code 插件、Cursor 扩展、Claude Desktop
.mcpb)的可行性
评估见 plugin-distribution.md。
能力边界不在工具数量上:
stata_run+stata_help已覆盖全部内置命令。下面的
专用工具是给高频命令加结构化参数与校验的便利层。
| 类别 | 工具 |
|---|---|
| 核心执行 | stata_run(任意命令,含危险前缀拦截;save_output= 完整输出落盘并登记为资源)· stata_run_do_file(执行前自动拆出 ssc install 单独安装,已装跳过) |
| 数据管理 | stata_use_dataset · stata_import(excel/csv/sas/spss/dbase/parquet)· stata_use_example(sysuse/webuse)· stata_save_dataset · stata_set_cwd · stata_generate · stata_egen · stata_xtset(面板/时序声明) |
| 数据重构 / 校验 | stata_merge · stata_append · stata_reshape · stata_collapse · stata_frame(多数据集)· stata_verify(count/assert/duplicates/isid/missing)· stata_replace · stata_drop · stata_keep · stata_rename · stata_recode · stata_destring |
| 数据探索 | stata_describe · stata_codebook · stata_summarize · stata_list · stata_tabulate · stata_correlate · stata_display |
| 估计 | stata_regress · stata_logistic · stata_probit · stata_poisson · stata_ttest · stata_xtreg · stata_ivregress · stata_logit · stata_mlogit · stata_nbreg · stata_qreg · stata_mixed |
| 后估计 | stata_margins · stata_test · stata_predict · stata_estat(vif/hettest/ovtest/ic)· stata_estimates(存取与并排比较)· stata_lincom · stata_nlcom · stata_hausman · stata_return_list |
| 图形 / 导出 | stata_graph(导出即验证文件写入)· stata_scheme(主题)· stata_export_excel · stata_export_delimited · stata_etable(回归表直出 Word/Excel) |
| 文件资源回传 | stata_list_resources · stata_read_file(info/base64)· stata_register_file —— 导出产物经资源协议(resources/read 读 stata-file:///)取回二进制 |
| 包管理与帮助 | stata_help(查任意命令帮助)· stata_install_package · stata_uninstall_package · stata_describe_package · stata_find_package · stata_list_packages |
| 会话生命周期 | stata_clear(scope 重置)· stata_snapshot(save/list/restore/erase)· stata_more(翻页)· stata_status · stata_ping |
| 长任务控制 | stata_background(后台执行,单块上限 3600s)· stata_task_status · stata_task_cancel · stata_task_result · stata_task_list |
| 服务器日志 | stata_read_log(tail/path) |
各工具的参数与说明
数据管理 — stata_use_dataset 加载 .dta(可只载入子集);stata_import 覆盖官方 import 命令族,按扩展名推断格式;stata_save_dataset 保存;stata_set_cwd 改工作目录; stata_generate / stata_egen 创建变量(支持官方 [type] 存储类型与 [if] [in]); stata_xtset 声明面板 / 时序结构 —— 它是 stata_xtreg 的前提。
数据探索 — stata_summarize / stata_codebook / stata_list / stata_tabulate 均支持 condition;stata_correlate 可选 pairwise 走 pwcorr;stata_display 算表达式 / 看返回值。
估计 — stata_regress(OLS)、stata_logistic、stata_probit(可选 marginal_effects)、stata_poisson(可选 irr)、stata_ttest(可按组)、 stata_xtreg(effects = fe/re/be/mle/pa,需先 xtset)、stata_ivregress (2sls/liml/gmm)。扩展族:stata_logit(报告原始系数,OR 用 logistic)、 stata_mlogit(多分类,baseoutcome 定基准)、stata_nbreg(负二项)、 stata_qreg(分位,quantile 默认 0.5)、stata_mixed(多水平,random="|| id:")。
数据清洗 — stata_replace 覆盖变量值、stata_drop/stata_keep 删/留变量或观测 (两种形态二选一)、stata_rename 重命名(单个或批量)、stata_recode 重编码 (values="(1=0) (2/4=1)" 官方规则组)、stata_destring 字符串转数值(必须 replace=True 或 generate())。
后估计(须先跑估计命令)— stata_margins(dydx / at)、stata_test (Wald 检验)、stata_predict(预测值 / 残差,会创建变量)、stata_lincom / stata_nlcom(线性 / 非线性组合检验)、stata_hausman(模型比较,需先 stata_estimates action="store" 存两个模型)。
图形 / 导出 — stata_graph 把 graph 与 export 原子执行,以文件是否真被写入判定 成败。导出选项按格式自动适配官方边界:尺寸单位(位图与 svg 用像素、pdf 用英寸、 eps/ps/emf 不支持)、quality(仅 jpg)、mag(仅 pdf/eps/ps)、fontface (仅矢量格式)—— 不适用的选项被丢弃并在返回信息中说明,而非让 Stata 静默失败。 stata_scheme 列出 / 查询 / 设置主题(不传 scheme 时不会改动你当前的主题)。 stata_export_excel 导数据为 .xlsx(支持 sheet_mode / cell / firstrow / if-in 筛选);stata_export_delimited 导 CSV / TSV / 自定义分隔符。 回归表用 stata_etable(官方 etable,Stata 17+,无第三方依赖): estimates="m1 m2 m3" 并排多模型,直出 .docx / .xlsx / .pdf / .tex / .html / .md, 并以文件是否真被写入判定成败 —— etable 会先把表打印出来再报导出错误,只看输出 很容易把失败当成功。
包管理与帮助 — stata_help("命令") 查任意内置 / 已装外置命令的官方语法; stata_find_package 走 net search 联网找包;stata_install_package 装(ssc 或 URL); stata_uninstall_package 卸载(ado uninstall,纯本地);stata_describe_package 查包详情(默认本地 ado describe,source="ssc" 走联网 ssc describe 供装前了解); stata_list_packages 列已装。
会话 — stata_more 翻上一条命令的完整输出;stata_status 一次给出数据集、工作目录、 frame、面板/时序设定、已存与活跃的估计结果、内存 —— 即 Agent 调 xtreg / margins / predict 前需要确认的全部前提;stata_ping 心跳。stata_clear 按 scope 重置会话(data/estimates/graphs/panels/all);stata_snapshot 用 Stata 原生快照在数据 阶段间快速回退(save/list/restore/erase)。
文件资源回传 — 导出工具(stata_graph / stata_export_* / stata_etable / stata_save_dataset / stata_run save_output=)成功后把文件登记为 MCP 资源。远程 客户端经 resources/read 读 stata-file:///<路径> 取回图表 / Excel / CSV / dta 的 二进制,或 stata_read_file 取 base64 / 元信息;stata_list_resources 列出全部登记 文件,stata_register_file 登记已有的磁盘文件。安全边界:只读登记过的文件。
长任务控制 — stata_background 把耗时长命令放到后台(立即返回任务号,单块超时 上限 3600s,运行期间其他调用会等待共享的 _stata_lock);stata_task_status 查进度、 stata_task_cancel 显式取消、stata_task_result 取结果、stata_task_list 列全部。 stata_read_log 读本服务器运行日志排查问题。
.claude/skills/stata/SKILL.md 是 Agent 的 Stata 编程参考:
| 模块 | 内容 |
|---|---|
| 核心原则 | 分析前先探数据、变量名大小写、路径规范、返回值检查 |
| 语法要点 | 命令结构、if 条件陷阱、因子变量、循环与条件块、egen 函数 |
| 命令地图 | 3500+ 内置命令按族归类,语法一律指向 stata_help |
| 分析模板 | 数据探索、OLS / Logit、面板、工具变量、DID —— 均经真实 Stata 验证 |
| 外置命令表 | reghdfe / ivreg2 / estout / coefplot / did / rdrobust … 按计量方向组织 |
| 常见陷阱 | 变量名冲突、缺失值、字符串转换、路径、do 文件 |
| 组件 | 要求 |
|---|---|
| Stata | StataNow 19 / Stata 18(MP / SE / BE),需含 utilities/pystata |
| Python | 3.10+ |
| Claude Code | 最新版(支持 MCP stdio) |
| 操作系统 | Windows、macOS(setup.py 跨平台检测;Linux 亦受 setup.py 支持但未实测) |
pystata是 Stata 官方的 Python 集成,随 Stata 一同分发,Windows / macOS / Linux
均提供。本项目在 Windows 与 macOS(StataNow 19.5 MP)上均实测可用。
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
STATA_HOME | C:\Program Files\StataNow\StataNow19 | Stata 安装目录。环境变量优先级最高;未设置时由 setup.py 自动检测。 |
STATA_EDITION | mp | Stata 版本(mp / se / be) |
STATA_ALLOWED_ROOTS | 未设置 | 路径沙箱白名单,分号分隔(例 C:/data;D:/projects)。两重限制:未设置时不限制绝对路径;设置后既校验工具的路径参数,也审计 stata_run / stata_run_do_file / stata_background 自由文本命令里的引号路径(use "越界路径" 同样被拒)。宏路径 fail-open,未配置白名单时不启用。 |
STATA_ALLOW_UNC | 未设置 | 设为 1 允许 UNC 网络路径,默认拒绝。 |
JAVA_TOOL_OPTIONS | 自动追加 -Djava.awt.headless=true | MCP 无 GUI 会话时自动启用 Java headless,避免图形导出触发 AWT 渲染错误。若已显式设置 -Djava.awt.headless=true/false,则保留原值。 |
开发 / 调试
# 调试模式启动 Server
cd mcp-stata-server source .venv/bin/activate # 或 .venv/Scripts/activate (Windows) python server.py
python -m pytest tests/ -q
STATA_HOME=/path/to/StataNow python -m pytest tests_e2e/ -q
#
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요