Claude 插件集成
概述
Stata-MCP 为 Claude Code 提供官方原生插件支持,目前 stata-toolbox@stata-plugin-lib 中集成了两个强大组件:
- Stata-MCP 服务器:用于 Stata 执行的模型上下文协议服务器
- Stata LSP(Language Server Protocol):Stata do 文件的高级语言支持
此插件包名为 stata-toolbox,提供统一的实证研究开发环境,将 Stata 的分析能力与 AI 辅助和高级 IDE 功能相结合。
什么是 Claude Plugin?
Claude Plugin 是 Claude Code 中引入的插件系统,允许开发者打包和分发:
- MCP 服务器:向 Claude 暴露工具的模型上下文协议服务器
- LSP 服务器:用于增强编辑器支持的语言服务器协议服务器
- Skills:扩展 Claude 智能体能力的技能
- 配置:预配置的最佳集成设置
插件系统实现复杂开发环境的一键安装,用可复现、版本控制的包替代手动配置。
插件结构
更多插件配置模式可在 Claude 的 plugins-reference 中找到。
.claude-plugin/
├── marketplace.json # 插件注册表清单
└── plugins/
└── stata-toolbox/ # 插件包
└── plugin.json # 插件配置
市场清单(marketplace.json)
{
"name": "stata-plugin-lib",
"owner": {
"name": "Song Tan",
"email": "sepinetam@gmail.com"
},
"plugins": [
{
"name": "stata-toolbox",
"source": "./plugins/stata-toolbox",
"description": "The official working package of Stata-MCP plugin, including mcp config and stata lsp."
}
]
}
字段:
- name(string):市场库标识符(kebab-case,无空格)
- owner(object):作者信息
- name(string):作者姓名
- email(string):联系邮箱
- plugins(array):插件包列表
- name(string):插件标识符
- source(string):插件目录的相对路径
- description(string):插件功能摘要
插件配置(plugin.json)
{
"name": "stata-toolbox",
"version": "0.1.0",
"description": "The official working package of Stata-MCP plugin, including mcp config and stata lsp.",
"author": {
"name": "Song Tan",
"email": "sepinetam@gmail.com",
"url": "https://www.sepinetam.com"
},
"homepage": "https://statamcp.com",
"repository": "https://github.com/sepinetam/stata-mcp",
"license": "AGPL-3.0",
"keywords": ["stata", "econometrics", "empirical analysis"],
"mcpServers": {
...
},
"lspServers": {
...
}
}
配置分区:
MCP 服务器配置
{
"mcpServers": {
"stata-mcp": {
"command": "uvx",
"args": [
"stata-mcp"
]
}
}
}
command:执行 MCP 服务器的命令。使用 uvx 允许直接运行已安装的 Python 包,无需激活虚拟环境。
args:传递给命令的命令行参数数组。["stata-mcp"] 指定要运行的包名。
LSP 服务器配置
"lspServers": {
"stata": {
"command": "stata-language-server",
"args": [],
"extensionToLanguage": {
".do": "stata"
},
"settings": {
"stata": {
"setMaxLineLength": 120,
"setIndentSpace": 4,
"enableCompletion": true,
"enableDocstring": true,
"enableStyleChecking": true,
"enableFormatting": true
}
}
}
}
注意:您应该先通过
pipx install "git+https://github.com/euglevi/stata-language-server.git"安装stata-language-server。
command:LSP 服务器二进制可执行文件。必须在系统 PATH 中可用。
args:传递给 LSP 服务器的命令行参数数组。空数组表示无额外参数。
extensionToLanguage:将文件扩展名映射到语言标识符。.do 文件映射到 stata 语言以获得正确的 LSP 支持。
settings:LSP 特定配置对象。stata 键包含 Stata 语言服务器设置,用于代码补全、格式化和样式检查。
安装
前提条件
在安装插件之前,请确保满足以下要求:
- Claude Code:通过官方安装程序安装 ```bash # macOS/Linux curl -fsSL https://claude.ai/install.sh | bash
# Windows irm https://claude.ai/install.ps1 | iex ```
-
Stata:有效的 Stata 17+ 许可证并安装了 Stata MP
-
Python 包:
stata-mcp包可用bash # 验证安装 uvx stata-mcp --usable -
Stata LSP:已安装语言服务器
bash pipx install "git+https://github.com/euglevi/stata-language-server.git" -
uv:包运行器(推荐) ```bash # 通过 homebrew 安装 brew install uv
# 或通过官方安装程序 curl -LsSf https://astral.sh/uv/install.sh | sh ```
安装方法
添加市场注册表并安装插件:
# 添加市场
claude plugin marketplace add sepinetam/stata-mcp
# 安装插件到用户范围(默认)
claude plugin install stata-toolbox
# 安装到项目范围(与团队共享)
claude plugin install stata-toolbox --scope project
# 安装到本地范围(gitignore)
claude plugin install stata-toolbox --scope local
插件自动使用当前目录作为 Stata 操作的工作目录。
验证
安装后,验证插件是否已加载:
# 列出已安装的插件
claude plugin list
工作原理
安装后,插件提供无缝集成:
1. 自动加载
Claude Code 自动检测:
- .claude-plugin/marketplace.json → 插件注册表
- plugins/stata-toolbox/plugin.json → 插件配置
2. MCP 工具
Stata-MCP 服务器暴露 Claude 可调用的工具:
- stata_do:执行 Stata 代码
- write_dofile:创建 do 文件
- get_data_info:分析数据集
- help:获取 Stata 命令文档
- 以及更多...
3. LSP 功能 Stata LSP 提供高级编辑器支持: - 语法高亮:增强的 .do 文件着色 - 补全:自动建议 Stata 命令 - 悬停文档:鼠标悬停在命令上获取帮助 - 错误检测:实时语法验证 - 格式化:自动格式化 .do 文件
示例工作流程
此部分由 AI 生成,使用前请审查。如果您想获得最佳结果,应该根据自己的偏好编辑
~/.claude/CLAUDE.md。
论文复现
> 从 "source/data/CPS_2018.dta" 加载数据集
> 使用 OLS 回归复现 Mincer (1974) 的表 3
> 将回归表导出为 LaTeX 格式
Claude:
1. 使用 get_data_info 了解数据集结构
2. 使用 write_dofile 创建 do 文件
3. 使用 stata_do 执行
4. 将表导出到 stata-mcp-result/
快速假设检验
> 检验 2008 年金融危机后教育回报是否增加
> 使用大学入学作为处理组的双重差分法
Claude:
1. 生成 DiD 规范
2. 使用事件研究设计运行 stata_do
3. 呈现带经济学解释的结果
比较:插件 vs 手动配置
手动配置
使用命令的传统方法:
claude mcp add stata-mcp -- uvx stata-mcp
或需要手动编辑 .mcp.json:
{
"mcpServers": {
"stata-mcp": {
"command": "uvx",
"args": ["stata-mcp"],
"env": {
"STATA_MCP_CWD": "/absolute/path/to/project"
}
}
}
}
基于插件的配置
使用插件:
# 单命令安装
claude plugin marketplace add sepinetam/stata-mcp
claude plugin install stata-toolbox
比较
| 功能 | 手动配置 | 插件安装 |
|---|---|---|
| 设置 | 手动编辑 .mcp.json 或命令 |
一键安装 |
| MCP 服务器 | ✅ | ✅ |
| LSP 服务器 | ❌ 单独安装 | ✅ 包含 |
| 团队共享 | ✅ | ✅ |
| 更新 | 自动更新最新 MCP | 自动更新 MCP,手动更新其他 |
架构
插件加载流程
1. Claude Code 启动
↓
2. 扫描 .claude-plugin/marketplace.json
↓
3. 解析插件注册表
↓
4. 加载每个插件的 plugin.json
↓
5. 注册 MCP 服务器
↓
6. 初始化 LSP 服务器
↓
7. 应用插件配置
↓
8. 插件可供使用
组件交互
┌─────────────────────────────────────────────────────┐
│ Claude Code │
└──────────────────────┬──────────────────────────────┘
│
┌─────────────┴────────────┐
│ │
┌────▼─────┐ ┌────▼─────┐
│ MCP │ │ LSP │
│ Server │ │ Server │
└────┬─────┘ └────┬─────┘
│ │
┌────▼───────────────────────────▼────┐
│ Stata-MCP Package │
│ - stata_do tool │
│ - Data analysis tools │
│ - Help system │
└─────────────────────────────────────┘
│
┌────▼──────────┐
│ Stata │
│ Executable │
└───────────────┘
故障排除
插件未检测到
症状: 插件已安装但 Claude Code 不显示工具
解决方案:
1. 完全重启 Claude Code
2. 验证 marketplace.json 和 plugin.json 中的 JSON 语法
3. 检查文件权限(必须可读)
4. 确保插件正确安装
5. 运行 claude plugin list 验证
MCP 服务器连接失败
症状: 工具显示错误 "Failed to connect to MCP server"
诊断:
# 独立测试 MCP 服务器
uvx stata-mcp --usable
# 检查 Stata 是否可访问
stata-se --version
# 验证 uvx 安装
uvx --version
解决方案:
1. 安装缺失的依赖:
bash
pip install stata-mcp
-
验证 Stata 安装路径
-
检查环境变量是否正确设置
LSP 不工作
症状: .do 文件中没有语法高亮或补全
诊断:
# 检查 stata-language-server 是否已安装
which stata-language-server
# 测试 LSP 服务器
stata-language-server --help
解决方案:
1. 安装 stata-language-server:
bash
npm install -g stata-language-server
-
验证文件扩展名映射:
json { "extensionToLanguage": { ".do": "stata" } } -
检查 Claude Code 中的 LSP 日志
最佳实践
- 验证安装:安装前使用
uvx stata-mcp --usable检查系统兼容性 - 环境变量:对敏感数据使用
.env文件或项目设置 - 文档:维护带有研究指令的项目特定 CLAUDE.md
- 版本更新:保持插件更新以获取最新功能和错误修复
相关文档
许可证和归属
stata-toolbox 插件是 Stata-MCP 项目的一部分。
- 许可证:AGPL-3.0
- 版权:(c) 2026 Song Tan (Sepine Tam), Inc.
- 作者:Song Tan (sepinetam@gmail.com)
Stata LSP:由 euglevi 版权所有,采用 MIT 许可证
该插件集成了独立开发的组件: - Stata-MCP Server:GitHub 仓库 - Stata LSP:GitHub 仓库
文档版本:1.0.0 最后更新:2025-02-12 维护者:Song Tan (sepinetam@gmail.com)