Stata执行器

一个面向Agent的本地Stata执行MCP server,用于运行do脚本/内联命令并读取稳定执行结果。

  • by JinYuKiKK0
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 JinYuKiKK0/Stata-Executor-MCP

使用说明

Stata 执行器 (Stata Executor)

stata_executor 是一个面向 Agent 的本地 Stata 执行 MCP server,让 Agent 具备运行 do 脚本/内联命令并读取稳定执行结果的能力。

它返回两类信息:一类是稳定的执行事实,另一类是可直接给模型消费的干净实证结果正文。它不负责解释经济学或实证结果。

安装

uv sync

配置

stata_executor 通过 MCP 启动 JSON 的 env 字段注入环境变量:

  • STATA_EXECUTOR_STATA_EXECUTABLE: Stata 可执行文件路径(必填)
  • STATA_EXECUTOR_EDITION: 版本(可选,mp / se / be,默认 mp)

示例:

{
  "mcpServers": {
    "stata-executor": {
      "command": "D:/Developments/PythonProject/Stata-Executor-MCP/.venv/Scripts/python.exe",
      "args": ["-m", "stata_executor"],
      "cwd": "D:/Developments/PythonProject/Stata-Executor-MCP",
      "env": {
        "STATA_EXECUTOR_STATA_EXECUTABLE": "D:/Program Files/Stata17/StataMP-64.exe",
        "STATA_EXECUTOR_EDITION": "mp"
      }
    }
  }
}

启动命令:python -m stata_executor。

暴露的工具 (Tools)

  • doctor: 检查环境与配置
  • run_do: 执行现有的 .do 文件
  • run_inline: 执行单条或多条 inline 命令

结果结构 (Result Shape)

run_do / run_inline 返回的结构化内容 (structuredContent) 包含以下字段:

  • status: 执行状态 (succeeded, failed)
  • error_kind: 失败时的错误分类(bootstrap_error / input_error / timeout / stata_parse_or_command_error / stata_runtime_error / artifact_collection_error),成功时为 null
  • result_text: 过滤命令回显后的完整结果正文,面向模型直接消费
  • diagnostic_excerpt: 失败时围绕末次命令与错误行的诊断片段
  • artifacts: 本次执行新增或变更的产物绝对路径列表

doctor 返回:

  • ready: 配置与可执行文件是否就绪
  • errors: 未就绪时的错误清单(就绪时为空列表)

执行失败时响应的 isError=true 且仍然返回完整 structuredContent,便于 Agent 基于诊断字段进行恢复。

测试

python -m unittest discover -s tests -v