使用说明

项目简介

Stata-MCP 是一个基于 Model Context Protocol (MCP) 的服务器,旨在让大型语言模型 (LLM) 能够安全、可扩展地调用 Stata 软件进行复杂的统计分析和数据处理任务。通过标准化的 MCP 协议,Stata-MCP 提供了资源管理、工具注册和 Prompt 模板等核心功能,使得 LLM 客户端可以方便地与 Stata 进行交互,完成数据加载、统计分析、结果输出等操作。

主要功能点

  • Stata 命令工具集: 内置丰富的 Stata 命令生成工具,涵盖数据管理、描述统计、回归分析、面板数据分析、标签管理等常用功能,例如 'use', 'save', 'summarize', 'regress', 'generate', 'xtreg', 'merge', 'label' 等。
  • 数据信息获取: 提供 'get_data_info' 工具,允许 LLM 获取数据文件的描述性统计信息,以便更好地理解数据,例如文件格式、大小、变量类型、缺失值情况以及数值变量的统计摘要和分类变量的频率分布。
  • 结果文档管理: 通过 'results_doc_path' 工具,方便用户统一管理 Stata 命令执行结果的输出路径,便于结果的整理和后续使用。
  • Dofile 管理: 支持 'write_dofile' 和 'append_dofile' 工具,允许 LLM 生成和管理 Stata dofile,实现复杂分析流程的自动化,提高分析效率和可重复性。
  • Stata 执行: 通过 'stata_do' 工具,安全地执行 Stata dofile,并将执行日志返回给 LLM 客户端,方便用户查看 Stata 命令的执行情况。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/SepineTam/stata-mcp.git
  2. 进入目录:
    cd stata-mcp
  3. 复制配置文件:
    cp example.config.py config.py
    (可选) 根据需要修改 'config.py' 中的配置,例如临时数据存储路径等。
  4. 运行服务器:
    uv run stata_mcp.py 17 se
    请根据实际安装的 Stata 版本号和版本类型修改命令中的参数 '17 se',例如,如果您的 Stata 版本是 16MP,则应使用 'uv run stata_mcp.py 16 mp'。

服务器配置

对于 MCP 客户端(如 Claude, Cline, ChatWise),您需要配置 Stata-MCP 服务器的连接信息。以下是一些示例配置,请根据您的 MCP 客户端进行相应配置:

Claude 配置示例 (JSON):

{
  "stata-mcp": {
    "command": "uv",
    "args": [
      "--directory",
      "/Users/yourname/path/to/repo/",  // 请替换为您的 stata-mcp 仓库在您电脑上的实际路径
      "run",
      "stata_mcp.py",
      "17",   // 您的 Stata 版本号,例如 16, 17, 18 等
      "se"    // 您的 Stata 版本类型,例如 se, mp
    ]
  }
}

ChatWise 配置示例:

type: stdio
ID: stata-mcp
command: uv --directory /Users/yourname/path/to/repo/ run stata_mcp.py 17 se  // 请替换为您的 stata-mcp 仓库路径和 Stata 版本信息

Cline 配置示例 (JSON):

{
  "mcpServers": {
    "stata-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/yourname/path/to/repo/",  // 请替换为您的 stata-mcp 仓库在您电脑上的实际路径
        "run",
        "stata_mcp.py",
        "17",   // 您的 Stata 版本号
        "se"    // 您的 Stata 版本类型
      ]
    }
  }
}

配置参数说明:

  • 'command': 启动服务器的命令,通常为 'uv' (推荐,需要预先安装 uv)或 'python3' 等。
  • 'args': 启动命令的参数列表,用于配置 Stata-MCP 服务器,包括:
    • '--directory': 'stata-mcp' 仓库在您电脑上的本地路径。请务必根据您的实际情况替换为正确的路径。
    • 'run': 使用 'uv run' 或 'python3 -m' 运行 Python 脚本的固定参数。
    • 'stata_mcp.py': 服务器主程序文件名,固定为 'stata_mcp.py'。
    • '17 se': 请根据您实际安装的 Stata 版本进行修改。 '17' 代表 Stata 版本号,'se' 代表版本类型 (SE 或 MP)。例如,如果您安装的是 Stata 16MP,则应修改为 '16 mp'。

基本使用方法

  1. 确保 Stata-MCP 服务器已成功启动并运行。
  2. 在您的 LLM 客户端中,根据客户端的要求配置并连接到 Stata-MCP 服务器。
  3. 使用 LLM 客户端提供的界面或指令,即可调用 Stata-MCP 服务器提供的各种 Stata 工具,例如:
    • 请求 LLM 加载指定的数据文件进行分析,LLM 将调用 'use' 工具生成 Stata 命令。
    • 请求 LLM 对数据进行描述性统计分析,LLM 将调用 'summarize' 工具生成 Stata 命令。
    • 请求 LLM 进行回归分析,LLM 将调用 'regress' 或 'xtreg' 等工具生成 Stata 命令。
    • 请求 LLM 执行一系列复杂的 Stata 分析流程,LLM 可以组合使用 'write_dofile', 'append_dofile' 和 'stata_do' 工具,先生成 dofile,再执行 dofile。
    • 当 LLM 需要了解数据文件信息时,可以调用 'get_data_info' 工具获取数据文件的描述性统计信息。
    • 当需要保存 Stata 分析结果时,可以使用 'results_doc_path' 工具获取结果输出路径,并告知 LLM 在生成的 Stata 代码中使用该路径保存结果。
    • 通过调用 'read_log' 工具,LLM 可以读取 Stata 命令执行的日志,了解命令执行的详细信息。

信息

分类

AI与计算