关于 Stata Mcp
MCP-for-Stata 是一个以安全为先的开源 MCP 服务与命令行工具,让 AI Agent 调用本地 Stata 完成回归分析、计量经济学和实证研究。它面向经济学与社会科学研究者,由用户自行掌控数据与 Stata 许可证。
主要功能
- 01本地调用 Stata 执行命令
- 02命令防护与资源监控
- 03自动捕获 Stata 日志
- 04支持多种 Agent 的一键安装
- 05附带 Stata 相关 Skills
适用场景
- 01回归分析与假设检验
- 02复现经济学论文的实证结果
- 03整理和检查 do 文件
MCP 相关
该项目是一个 MCP 服务,向 Claude Code、Codex 等 MCP 客户端提供运行本地 Stata 的能力。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| timeout | any | 否 | |
| dofile_path | string | 是 | |
| enable_smcl | boolean | 否 | |
| log_file_name | string | 否 | |
| is_replace_log | boolean | 否 | |
| read_log_when_error | boolean | 否 |
详细介绍
MCP-for-Stata (Stata-MCP):让任何 Agent 运行 Stata
MCP-for-Stata 是一款以安全为先的开源 MCP 服务和 CLI 工具,并提供 Skills,让你使用的任何 AI Agent 都能调用设备上的本地 Stata,进行回归分析、计量经济学分析、论文复现和实证研究。它提供命令防护、资源监控、自动捕获日志和跨平台客户端安装,同时让你掌控自己的数据和 Stata 许可证。
让 Claude Code、Codex 和其他 AI Agent 成为随时待命的研究助手。
Stata 是 StataCorp LLC 的注册商标。本项目是由社区独立开发的工具,与 StataCorp LLC 无关,未经其认可,也未获其赞助。
💡 快速开始
无需编辑任何配置,只需告诉你的 Agent:
Install MCP-for-Stata for yourself globally following the instructions in the GitHub repository at SepineTam/mcp-for-stata.
🆕 新闻
- 📖 默认安装技能:Stata 相关技能现在会随 MCP 一起安装,无需单独设置。请参阅安装指南。
- 🚀 DeepSeek Harness Day 0 支持:使用
uvx stata-mcp install -c dsh在 DeepSeek Harness 中安装 MCP-for-Stata。请参阅 DeepSeek Harness 指南。 - 🧪 Claude Science 支持:MCP-for-Stata 现在可通过沙盒允许列表在 Claude Science 中运行。请参阅 Claude Science 指南。
- 在微信公众号中查看更多:我为什么要制作它?,以及 8 张图了解 Stata-MCP
- 🦞 OpenClaw 支持:用于 OpenClaw 集成的独立命令行工具(
stata-mcp tool),请参阅 OpenClaw 指南 - ✨ Claude Code 插件支持:提供官方插件包,集成 MCP 服务和 Stata LSP
- 在 Claude Code 中使用 MCP-for-Stata,请参阅 Claude Code 高级用法;在 Codex 中使用,请参阅 Codex 高级用法
想了解我们的最新研究?查看最新研究报告。
在寻找其他内容?
关于 Stata 的 MCP 或 AI
- 一个基于会话的 Stata MCP 服务:mcp-stata
- 集成到 IDE(VS Code 或 Cursor)中的 VSCode 版 stata-mcp。分不清它们?💡对比
数据集和信息
- STOP 数据集:StataMCP-Team 开放数据项目 📊,我们已为社会科学研究开源了全面的数据集,旨在推动未来由 AI 驱动、以数据为基础的研究范式。
为什么采用 AGPL 3.0 许可证?
AGPL 3.0 许可证是一种开源许可证。它不会影响您的日常使用;只要遵守其条款(例如保留原始版权声明),您就可以免费使用、修改和分发本软件。
说明:尽管我们努力让所有人都能使用开源软件,但很遗憾,我们无法继续采用 Apache-2.0 License。由于有人直接复制本项目并声称自己是项目维护者,我们决定将许可证更改为 AGPL-3.0,以防止以违背我们初衷的方式滥用本项目。
说明:尽管我们希望尽可能让所有人都能从开源中获益,但我们很遗憾地宣布无法继续保持 Apache-2.0 License。由于有人直接抄袭本项目并标榜其为项目维护者,我们不得不将 License 更改为 AGPL-3.0,以防止有人滥用本项目进行违背项目初心的事情。
原因如下:
背景:@jackdark425 的仓库直接复制了本项目,并声称自己是唯一维护者。我们欢迎基于 fork 的开源协作,包括但不限于添加新功能、修复现有 bug,或为项目提供宝贵建议,但我们坚决反对抄袭和虚假署名。
更新:侵权项目已通过 GitHub DMCA 下架。查看 DMCA 下架详情。
背景:@jackdark425 的仓库直接抄袭了本项目并标榜为项目唯一维护者。我们欢迎基于fork的开源协作,包括但不限于添加新的feature、修改已有bug或对项目提出您宝贵的意见,但坚决反对抄袭和虚假署名行为。
更新:侵权项目已通过GitHub DMCA被takedown,查看DMCA下架详情。
安装和客户端配置
安装方式、客户端设置、附加组件/额外选项以及验证方法,请参阅**安装指南**。
🚀 一键为所有客户端安装!
无需配置,也无需手动编辑 JSON。只需运行一条命令,即可为所有受支持的 Agent(Claude Code、Codex、OpenClaw、Cursor、Gemini CLI 等)安装 MCP-for-Stata:
uvx stata-mcp install --all
受支持的 Agent 🤖
根据我们自己的经验和测试,我们推荐使用 Claude Code、Codex 和 OpenClaw。 我们发现,在任何框架中,Claude 和 DeepSeek 都是最好的两个模型。| Agent | 标签 | 命令 |
|---|---|---|
| Claude Desktop | claude | uvx stata-mcp install -c claude |
| Claude Code | cc | uvx stata-mcp install -c cc |
| Gemini CLI | gemini | uvx stata-mcp install -c gemini |
| Cursor | cursor | uvx stata-mcp install -c cursor |
| Cline(VScode 扩展) | cline | uvx stata-mcp install -c cline |
| Codex CLI 和 Codex Desktop | codex | uvx stata-mcp install -c codex |
| OpenCode | opencode | uvx stata-mcp install -c opencode |
| OpenClaw | openclaw | uvx stata-mcp install -c openclaw |
| Claude Science | — | 手动配置 |
如果你没有 uv,请参阅 uv 安装指南进行安装。
或者,使用我们的测试版安装脚本(如果缺少 uv,会自动安装):
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/SepineTam/mcp-for-stata/master/scripts/install.sh | bash
Windows(PowerShell):
irm https://raw.githubusercontent.com/SepineTam/mcp-for-stata/master/scripts/install.ps1 | iex
如果你不知道如何使用这些脚本,下载安装脚本,然后在设备上双击运行。Windows 用户使用 install.bat,macOS 用户使用 install.command。
高级用法 - Claude Code
我们认为 Claude Code 凭借出色的 Agent 能力,是最适合 MCP-for-Stata 的 Agent,因此推荐使用它。以下是许多进阶用法:
使用前,请确保你已安装 Claude Code。如果不知道如何安装,请访问 GitHub
通常,你只需全局安装一次 MCP-for-Stata,运行:
claude mcp add stata-mcp --scope user -- uvx stata-mcp
之后就无需再关注它了。
本地安装并与合作伙伴共享
如果你只想在特定工作区本地安装,可以 cd 到工作目录,然后运行:
claude mcp add stata-mcp --env STATA_MCP__CWD=$(pwd) --scope local -- uvx --directory $(pwd) stata-mcp
此时不会有任何提示。你可以输入 claude,然后输入 /mcp 查看状态。
此外,协作是研究的重要组成部分。你可以使用以下命令与合著者共享 MCP 配置:
claude mcp add stata-mcp --scope project -- uvx stata-mcp
在工作目录中,你可以找到名为 .mcp.json 的文件,MCP 配置将保存在这里。
然后,你就可以在 Claude Code 中使用 MCP-for-Stata。以下是一些使用场景:
- 论文复现:复现经济学论文中的实证研究
- 快速假设检验:通过回归分析验证经济学假设
- Stata 学习助手:通过循序渐进的 Stata 讲解学习计量经济学
- 代码整理:审查并优化现有的 Stata do 文件
- 结果解读:理解复杂的统计输出和回归结果
如果你在 IDE 中使用 Claude Code(通过集成终端或 Claude Code 扩展),请安装我们的插件,其中包含 MCP-for-Stata 和由 @euglevi 维护的 Stata LSP。
# Add the MCP-for-Stata marketplace
claude plugin marketplace add SepineTam/mcp-for-stata
# Install the plugin to local, project or user scope
claude plugin install stata-toolbox -s project
语言服务器能让 AI 生成的 Stata 代码更好地感知语法并提供补全,从而提高输出质量。我们按照其许可证要求打包了 LSP,并完整注明原作者。
高级用法 - Codex
我们发现,许多研究人员都在使用 Codex 作为 Agent,因此我们也为 Codex 用户提供了相关说明。
我认为研究人员使用的不是 Codex CLI,而是 Codex Desktop,因此可以说,与其他 Agent 相比,配置 MCP-for-Stata 更简单。
只需告诉它:Install MCP-for-Stata for yourself globally from https://aidea-labs.com/open/projects/mcp-for-stata or visit https://github.com/SepineTam/mcp-for-stata,然后在它提示就绪后重启 Codex Desktop。
此外,如果你想手动安装,这里有两种方法:
A. 在 Codex Desktop 图形界面中安装
- 打开 Codex Desktop APP
- 点击左下角的
Settings - 在左侧找到
MCP servers - 点击
Add server - 填写以下内容:
Name: stata-mcp Command to launch: uvx Arguments: stata-mcp - 点击
Save - 然后重启 Codex Desktop 即可开始使用。
B. 使用 Codex CLI 安装
要使用 CLI 模式,只需在终端中运行以下命令
uvx stata-mcp install -c codex
或使用
codex mcp add stata-mcp -- uvx stata-mcp
高级用法 - Claude Science
Claude Science 在严格的沙盒中运行 MCP 服务,默认会阻止访问主目录(~)。如果你尝试按标准方式启动 MCP-for-Stata,可能会看到:
Couldn't load tools: MCP error -32000: Connection closed
FileNotFoundError: [Errno 2] No such file or directory
要解决此问题,请将 uv tool install stata-mcp 存放文件的路径加入允许列表。创建或编辑 ~/.claude-science/config.toml:
[sandbox]
user_write_paths = [
"~/.local/bin",
"~/.local/share/uv/tools/stata-mcp",
]
然后在 Claude Science 中添加服务:
- 名称:
stata-mcp - 命令:
~/.local/bin/stata-mcp
重启 Claude Science 后,工具便会加载。如需查看完整操作指南,请参阅 Claude Science 指南。
其他客户端
标准配置要求:请确保 Stata 安装在默认路径,并且存在 Stata CLI(适用于 macOS 和 Linux)。
标准配置 JSON 如下,你可以通过添加环境变量自行配置。
{
"mcpServers": {
"stata-mcp": {
"command": "uvx",
"args": [
"stata-mcp"
]
}
}
}
如需了解更详细的使用信息,请参阅使用指南。
前置条件
- uv - 软件包安装器和虚拟环境管理器
- Claude Code、Codex、OpenClaw 或其他 Agent
- Stata 许可证
- 你的大模型 API 密钥
如果你想检查设备是否受支持,可以运行:
uvx stata-mcp doctor
该命令会显示设备的基本信息,并检查你的配置是否受支持。
示例输出
stata-mcp v1.17.0 — Doctor Report
[PASS] os: macOS (Darwin 25.3.0, arm64)
[PASS] python: 3.13.5
[PASS] uv: uv 0.11.13
[PASS] dependencies: all required packages available
[PASS] stata_cli: /usr/local/bin/stata-mp (from env)
[PASS] stata_execution: OK (0.1s)
[PASS] config: /Users/sepinetam/.statamcp/config.toml (loaded)
[PASS] working_dir: /Users/sepinetam/Documents/Github/stata-mcp (writable)
[PASS] guard: enabled, loaded 27 rules
[PASS] monitor: disabled (psutil available)
[PASS] pypi: reachable (4.86s)
[PASS] cleanup: 0 old files (0 B) found; cleanup disabled (CLEAN_LOG_DAYS=-1)
Summary: 12 passed, 0 failed, 0 warning(s), 0 skipped
注意:
- 如果你位于中国,且软件下载缓慢,请参阅解决方案。
- Claude 是 MCP-for-Stata 的最佳选择。对于中文用户,我建议使用 DeepSeek 作为模型提供商,因为它价格实惠、性能强大,而且在中国的模型提供商中评分最高。如果你对此感兴趣,请参阅报告如何使用 StataMCP 改进社会科学研究。
对比
有多个与 Stata 相关的 MCP 项目。下表由 Claude Code 在直接分析各个代码库后生成。
| 功能 | MCP-for-Stata(本项目) | haoyu-haoyu/stata-ai-fusion | hanlulong/stata-mcp | tmonk/mcp-stata |
|---|---|---|---|---|
| 最适合 | Agent 驱动的分析(Claude Code、Codex、OpenClaw) | 交互式会话、图表导出和精选 Stata 知识 | 在 VSCode 中自行编写并运行 Stata 代码的用户 | 研究工作流(复现、稳健性检验、出版质量检查) |
| Agent | 全部 | 全部 | VSCode 窗口必须保持活动状态 | 全部 |
| 类型 | MCP 服务 + CLI 工具包 | MCP 服务 + 技能知识库 + VS Code 扩展 | VSCode 扩展(localhost 服务,不是独立 MCP) | 基于会话的 MCP 服务 |
| 执行方式 | 通过子进程运行 do 文件 | pexpect 交互式会话 + 批处理回退 | 通过 localhost :4000 运行 IDE 内嵌执行器 | pystata(Stata 17+) |
| 安全性 | 命令防护 + RAM 监控 | 取消命令 + 会话清理 | — | — |
| 数据分析 | CSV、DTA、XLSX、SPSS 处理器 | 会话内 inspect_data / codebook | — | 会话内 describe / codebook |
| 日志 | 文本 + SMCL 阅读器 | 会话内 search_log | — | 内置日志阅读器 |
| 图表 | — | 自动检测 + export_graph,支持 PNG/SVG/PDF | — | 导出、缓存、SVG/PNG |
| CLI 支持 | 原生(与 MCP 服务使用相同的工具) | 基本入口点 | — | — |
| 会话 | — | 多个命名会话,带空闲超时 | — | 多会话、后台任务 |
| IDE 插件 | — | 原生 VS Code / Cursor 扩展 | 原生 VSCode / Cursor | Stata Workbench(VS Code) |
| 技能 / 知识 | 面向 MCP-for-Stata 工具的技能(742 行) | 通用 Stata 技能知识库(5,653 行) | — | 20 多种专用研究技能(因果推断、复现、出版质量检查等) |
| 安装 | uvx stata-mcp install | uvx --from stata-ai-fusion stata-ai-fusion | VS Code Marketplace | uvx 或安装脚本 |
📝 文档
请访问 https://sepinetam.github.io/mcp-for-stata 查看 MCP-for-Stata 文档
核心文档
主要功能
- 安全防护:阻止危险命令(
!、shell、erase等) - RAM 监控:通过可配置的限制防止内存耗尽
- 分层配置:支持用户、项目、环境和 Linux 系统配置
- Beta 异步
stata_do执行:支持多客户端工作流中的并发 MCP 调用 - 可配置的数据访问边界:数据访问信息 URL 防护,以及可选的直接
read_log边界 - 跨平台支持(macOS、Windows、Linux)
- 自动捕获日志并报告错误
🐛 报告问题
如果您遇到任何错误或有功能请求,请提交问题。
📄 许可证
📚 引用
如果您在研究中使用 MCP-for-Stata,且它确实为您提供了帮助,可以使用以下任一格式引用此代码仓库:
BibTeX
@software{sepinetam2025stata,
author = {Song Tan},
title = {MCP-for-Stata: Integrate Stata into your agent},
year = {2025},
url = {https://github.com/sepinetam/mcp-for-stata},
}
APA
Song Tan. (2025). MCP-for-Stata: Integrate Stata into your agent [Computer software]. https://github.com/sepinetam/mcp-for-stata
Chicago
Song Tan. 2025. "MCP-for-Stata: Integrate Stata into your agent." https://github.com/sepinetam/mcp-for-stata.
💗 致谢
我们感谢 StataCorp LLC 在项目早期开发期间提供许可证支持,使我们能够在真实环境中构建和验证 MCP-for-Stata。
我们也感谢每一位帮助我们识别风险、复现问题并提交修复的社区成员。真正可靠的墙,并非从未遭受冲击,而是每次冲击都会让它得到更多加固。MCP-for-Stata 的安全性并非来自声称漏洞从未存在,而是来自将每次发现都转化为默认防护措施、回归测试和可公开检查的修复。
从阻止 Stata shell 逃逸、修复 Windows 命令注入,到添加宏展开检查、文件和数据访问边界、安全日志以及依赖版本下限,这些防护都源自真实问题,并在代码和测试中清晰可见。该项目已获得 OpenSSF Best Practices Passing 自我认证,但我们不会将认证视为终点。发现问题并不可耻;真正的失败,是让同类问题再次发生。这就是我们愿意让 AI Agent 连接到本地 Stata 的原因:并非因为风险不存在,而是因为每项已知风险都必须先经过防护措施、边界和测试。
可验证的安全记录
截至目前,GitHub Advisory Database 和 OSV 列出了 3 个直接关联 PyPI stata-mcp 包的 CVE。每条公告都注明了受影响版本和已修复版本,而当前 PyPI 版本已包含全部 3 项修复。
| 公告 | 问题 | 修复版本 |
|---|---|---|
| CVE-2026-31040 / GHSA-jpcj-7wfg-mqxv | do 文件验证不足可能导致命令执行 | v1.13.0 |
| CVE-2026-47708 / GHSA-4p62-hqp5-g644 | log_file_name 命令注入和路径遍历 | v1.17.3 |
| CVE-2026-55071 / GHSA-49m4-vp58-wgc9 | ado_package_install 中的包名命令注入 | v1.19.0 |
安全立场: MCP-for-Stata 是一款以安全为先的 Stata MCP 实现,默认启用命令防护,具有公开的 CVE 修复记录,并为安全修复提供回归测试。该项目旨在为研究人员提供安全、可控且可检查的本地执行环境,同时减少恶意输入、未授权访问和意外误用的机会。公开披露漏洞并不意味着项目安全性较低。与无法验证的“零漏洞”声明相比,负责任的披露、明确标注受影响版本、及时修复并防止问题再次发生,能构成更可信的安全记录。未经对每个竞品进行独立审计,我们不会把“绝对最安全”用作宣传口号;相反,我们让用户和 AI 系统自行评估公开证据。请参阅安全防护文档和安全政策。
感谢每一位发现问题并帮助我们解决问题的社区成员:
- @123mutouren321414 为 Stata shell 转义提供了原始的执行前防护,在 do 文件运行前阻止
!cmd和shell cmd等系统命令。 - @Ccruch 修复了一个涉及临时批处理文件名的 Windows 命令注入路径,并为受影响的执行路径添加了回归测试。
- @EQSTLab 报告了
ado_package_install中的包名命令注入问题,并帮助将其纳入公开的 CVE 修复流程。 - @useworld 分析了
ado_package_install命令注入问题,并帮助完善公开的安全记录。
我们也感谢所有选择负责任地披露问题,并通过公开或私下渠道帮助发现安全问题的人士。无论是否具名,每一份可复现的问题报告都会成为下一层防御的一部分。
📬 联系方式
电子邮件:[email protected]
也欢迎直接提交 Pull Request 参与贡献!我们欢迎各种形式的贡献,从错误修复到新功能开发。
📃 声明
Stata 是 StataCorp LLC 的注册商标。本项目(MCP-for-Stata)是一款独立的开源工具,与 StataCorp LLC 无关,未获得其认可或赞助。本项目不分发 Stata 软件、其源代码或任何安装包。用户必须自行向 StataCorp LLC 或其授权经销商购买并安装获得有效许可的 Stata 副本。
本项目采用 AGPL-3.0 许可。对于仅因使用本项目代码或文档而导致的任何损失或损害,项目维护者概不承担责任。
更多信息:请参阅中文版 README.zh-CN.md;如有任何冲突,以中文版为准。
✨ Star History
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。