Stata MCP Server
在 Stata 统计软件和代码编辑器(如 VS Code 和 Cursor)之间架起一座桥梁,使用户能够直接从编辑器运行 Stata 命令,实时查看输出,并获得 AI 驱动的 Stata 编码辅助。
README
Stata MCP 扩展,适用于 VS Code 和 Cursor
此扩展使用模型上下文协议 (MCP) 为 Visual Studio Code 和 Cursor IDE 提供 Stata 集成。它允许您:
- 直接从 VS Code 或 Cursor 运行 Stata 命令
- 执行选定的代码或整个 .do 文件
- 在编辑器中实时查看 Stata 输出
- 通过 MCP 协议获得 AI 助手集成
- 在 Cursor IDE 中体验具有 Stata 上下文的增强型 AI 编码
功能
- 运行 Stata 命令: 直接从编辑器执行选定的代码或整个 .do 文件
- 语法高亮: 完全支持 Stata .do、.ado、.mata 和 .doh 文件
- AI 助手集成: 通过 MCP 提供上下文帮助和代码建议
- 跨平台: 适用于 Windows、macOS 和 Linux
- 自动 Stata 检测: 自动查找您的 Stata 安装
- 实时输出: 在编辑器中立即查看 Stata 结果
正在寻找其他 Stata 集成?
安装选项
选项 1:VS Code Marketplace
直接从 VS Code Marketplace 安装此扩展。
code --install-extension DeepEcon.stata-mcp
或者:
- 打开 VS Code
- 转到扩展视图 (Ctrl+Shift+X)
- 搜索 "Stata MCP"
- 点击 "安装"
选项 2:Cursor Extension Store
对于 Cursor 用户:
cursor --install-extension DeepEcon.stata-mcp
或者:
- 打开 Cursor
- 转到 Settings > Extensions > Browse Extensions
- 搜索 "Stata MCP"
- 点击 "安装"
选项 3:手动安装
如果您喜欢手动安装:
- 从 GitHub 发布页面 下载最新的
.vsix文件 - 对于 VS Code:
- 打开 VS Code
- 转到扩展视图
- 点击右上角的 "..." 菜单
- 选择 "Install from VSIX..."
- 导航到并选择下载的 .vsix 文件
- 对于 Cursor:
- 在终端中运行此命令:
cursor --install-extension path/to/stata-mcp-0.1.4.vsix
- 在终端中运行此命令:
注意: 首次安装或运行扩展程序可能需要一些时间,因为需要添加依赖项。请耐心等待它完成。此过程通常应少于 2 分钟。
扩展设置
您可以通过 VS Code 设置自定义扩展行为:
stata-vscode.stataPath: Stata 安装目录的路径stata-vscode.pythonPath: Python 解释器的路径。如果未设置,扩展程序将尝试使用系统 Python 或 Anaconda 基础环境stata-vscode.mcpServerHost: MCP 服务器的主机 (默认: localhost)stata-vscode.mcpServerPort: MCP 服务器的端口 (默认: 4000)stata-vscode.autoStartServer: 扩展激活时自动启动 MCP 服务器 (默认: true)stata-vscode.debugMode: 在输出面板中显示详细的调试信息 (默认: false)stata-vscode.forcePort: 强制 MCP 服务器使用指定的端口,即使该端口已被使用 (默认: false)stata-vscode.useUvForPython: 使用 uv 进行 Python 环境管理,更快更可靠 (默认: true)
Cursor MCP 配置
要在 Cursor 中启用与 Stata 的 AI 集成,您需要配置 MCP 连接:
-
创建或编辑 MCP 配置文件:
- 在 macOS/Linux 上:
~/.cursor/mcp.json - 在 Windows 上:
%USERPROFILE%\.cursor\mcp.json
- 在 macOS/Linux 上:
-
将以下配置添加到您的
mcp.json文件:
{
"mcpServers": {
"stata-mcp": {
"url": "http://localhost:4000/mcp",
"transport": "sse"
}
}
}
-
如果您的文件中已经有其他 MCP 配置,只需将 "stata-mcp" 部分添加到您现有的 "mcpServers" 对象中。
-
保存文件并重启 Cursor
此配置允许 Cursor 的 AI 与 Stata MCP 服务器通信,该服务器在使用扩展程序时自动启动。正确配置后,AI 助手可以:
- 与您的 Stata 会话交互
- 执行 Stata 命令
- 了解您的数据集和变量
- 提供更多上下文相关的编码帮助
- 帮助进行数据分析和可视化
要求
- 您的机器上安装了 Stata(建议使用 Stata 14 或更高版本)
- Python 3.11 或更高版本(如果您的现有 Python 版本低于 3.11,则会自动在本地安装)
Python 环境管理
该扩展现在包括高级 Python 环境管理:
- 版本检查: 检查您的系统上是否有 Python 3.11+
- 智能安装: 仅当您的现有 Python 版本低于 3.11 时才在本地安装 Python 3.11
- 隔离环境: 使用本地安装,不会与任何现有的 Python 安装冲突
- 依赖管理: 设置一个包含所有必需软件包的虚拟环境
- 跨平台支持: 适用于 Windows、macOS 和 Linux,并具有特定于平台的优化
- 快速软件包安装: 使用 uv,这是一种用 Rust 构建的 Python 打包工具,比 pip 快得多
这确保了扩展程序可以可靠地工作,而不管您现有的 Python 设置如何,并防止版本冲突。
关于 uv 集成
从 0.1.3 版本开始,此扩展集成了 uv,这是一种用 Rust 构建的快速 Python 软件包安装程序,可显着提高依赖项安装速度。
uv 的使用方式:
- 当缺少 Python 时: 如果未找到 Python 安装,则扩展程序使用 uv 创建虚拟环境并安装依赖项
- 当 Python < 3.11 时: 如果您的系统 Python 版本低于 3.11,则使用 uv 管理本地 Python 安装
- 对于依赖项管理: 所有 Python 软件包安装都使用 uv 以获得更快的安装时间
您可以使用 stata-vscode.useUvForPython 设置控制 uv 的使用 (默认: true)。
无需采取任何措施: 一切都会自动处理 - 扩展程序会根据需要下载并使用 uv,而无需您执行任何手动步骤。
性能提升: 使用 uv 进行软件包安装比使用 pip 快 10-100 倍,从而显着减少了初始设置时间。
用法
- 打开一个 Stata .do 文件
- 使用以下方法运行命令:
- 运行选定代码: 选择 Stata 代码并按
Ctrl+Shift+Enter(或 Mac 上的Cmd+Shift+Enter) - 运行文件: 按
Ctrl+Shift+D(或 Mac 上的Cmd+Shift+D)运行整个 .do 文件
- 运行选定代码: 选择 Stata 代码并按
- 在编辑器面板中查看输出
工作原理
该扩展程序创建一个本地 MCP 服务器,将您的编辑器连接到 Stata,从而实现:
- 命令执行: 运行 Stata 命令并立即查看结果
- 上下文感知: AI 助手了解您的 Stata 数据和命令
- 提高生产力: 获取智能代码建议和文档
故障排除
如果您在使用扩展程序时遇到问题,请按照以下步骤执行干净的重新安装:
Windows
-
关闭所有 VS Code/Cursor 窗口
-
打开任务管理器 (Ctrl+Shift+Esc):
- 转到 "进程" 选项卡
- 查找任何正在运行的 Python 或
uvicorn进程 - 选择每个进程并单击 "结束任务"
-
删除扩展文件夹:
- 按 Win+R,键入
%USERPROFILE%\.vscode\extensions并按 Enter - 删除文件夹
deepecon.stata-mcp-0.x.x(其中 x.x 是版本号) - 对于 Cursor:路径是
%USERPROFILE%\.cursor\extensions
- 按 Win+R,键入
-
手动安装 UV(如果需要):
# 以管理员身份打开 PowerShell 并运行: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" -
重新启动计算机(推荐但可选)
-
从 Marketplace 安装最新版本的扩展程序
macOS/Linux
-
关闭所有 VS Code/Cursor 窗口
-
终止任何正在运行的 Python 进程:
# 查找 Python 进程 ps aux | grep python # 终止它们(将 <PID> 替换为您找到的进程号) kill -9 <PID> -
删除扩展文件夹:
# 对于 VS Code: rm -rf ~/.vscode/extensions/deepecon.stata-mcp-0.x.x # 对于 Cursor: rm -rf ~/.cursor/extensions/deepecon.stata-mcp-0.x.x -
手动安装 UV(如果需要):
# 使用 curl: curl -LsSf https://astral.sh/uv/install.sh | sh # 或者使用 wget: wget -qO- https://astral.sh/uv/install.sh | sh -
重新启动您的终端或计算机(推荐但可选)
-
从 Marketplace 安装最新版本的扩展程序
其他故障排除提示
-
如果您看到有关找不到 Python 或 UV 的错误,请确保它们位于系统的 PATH 中:
- Windows:在 "开始" 菜单中键入 "环境变量" 并添加安装路径
- macOS/Linux:将路径添加到您的
~/.bashrc、~/.zshrc或等效文件中
-
如果您收到权限错误:
- Windows:以管理员身份运行 VS Code/Cursor
- macOS/Linux:使用
ls -la检查文件夹权限,并在需要时使用chmod修复
-
如果扩展程序仍然无法初始化:
- 打开 "输出" 面板(查看 -> 输出)
- 从下拉列表中选择 "Stata-MCP"
- 检查日志中是否有特定的错误消息
- 如果您看到与 Python 相关的错误,请尝试手动创建一个 Python 3.11 虚拟环境:
# Windows py -3.11 -m venv .venv # macOS/Linux python3.11 -m venv .venv
-
对于持续存在的问题:
- 检查您的系统的 Python 安装:
python --version或python3 --version - 验证 UV 安装:
uv --version - 确保您已安装 Python 3.11 或更高版本
- 检查您的防病毒软件是否阻止 Python 或 UV 可执行文件
- 检查您的系统的 Python 安装:
在 GitHub 上打开问题时,请提供:
- 来自 "输出" 面板的完整错误消息(查看 -> 输出 -> Stata-MCP)
- 您的操作系统和版本
- VS Code/Cursor 版本
- Python 版本 (
python --version) - UV 版本 (
uv --version) - 重现问题的步骤
- 任何相关的日志文件或屏幕截图
- 如果适用,您的 MCP 配置文件的内容
这些详细信息将帮助我们更快地识别和修复问题。您可以在以下位置打开问题:GitHub Issues
许可证
MIT
鸣谢
由 Lu Han 创建 由 DeepEcon 发布
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。