~ / rigs / SepineTam / mcp-for-stata

SepineTam/mcp-for-stata

Stata-MCP: A MCP server for integrating Stata into your agent loop with a safety-first design.

↗ GitHub ★ 264 agpl-3.0 updated 3d ago project Claude CodeCodex
share on X
ARCHETYPE
Fort Knox
Deny lists, pre-tool hooks, sandboxing. Nothing touches prod without a signature.
CONTEXT TAX · EVERY TURN
~39.7k tokens
Context hog · median rig: 2.2k · breakdown
GUARDRAILS
4/5
Blocks destructive commands · Protects secrets · No YOLO mode · Sandbox or ask-first rules · details

Copy this rig

# review before running: this installs third-party code
$ claude mcp add context7 -- npx -y @upstash/context7-mcp@3.2.4 --api-key ${CONTEXT7_API_KEY}
$ claude mcp add --transport http github https://api.githubcopilot.com/mcp -H 'Authorization: YOUR_VALUE'
$ claude mcp add mineru -- uvx mineru-open-mcp==1.0.21
$ claude mcp add codex-mcp -- codex mcp-server
$ claude mcp add --transport http openaiDeveloperDocs https://developers.openai.com/mcp
$ claude mcp add --transport http claude-code-docs https://code.claude.com/docs/mcp
$ claude mcp add --transport http dip https://dip.aidea-labs.com/mcp
$ claude mcp add nber-mcp -- uvx nber-cli mcp-server
$ claude mcp add zotero-mcp -- uvx --from zotero-mcp-server zotero-mcp
$ claude mcp add stata-mcp -- uvx stata-mcp
$ npx degit SepineTam/mcp-for-stata/.claude ./rig-mcp-for-stata  # inspect, then merge into .claude/

MCP servers are added to Claude Code at local scope; env vars are shown as YOUR_… placeholders — we never store values. Files are fetched with degit into a separate folder so you can review before merging.

$ claude mcp add context7 -- npx -y @upstash/context7-mcp@3.2.4 --api-key ${CONTEXT7_API_KEY}
$ claude mcp add --transport http github https://api.githubcopilot.com/mcp -H 'Authorization: YOUR_VALUE'
$ claude mcp add mineru -- uvx mineru-open-mcp==1.0.21
$ claude mcp add codex-mcp -- codex mcp-server
$ claude mcp add --transport http openaiDeveloperDocs https://developers.openai.com/mcp
$ claude mcp add --transport http claude-code-docs https://code.claude.com/docs/mcp
$ claude mcp add --transport http dip https://dip.aidea-labs.com/mcp
$ claude mcp add nber-mcp -- uvx nber-cli mcp-server
$ claude mcp add zotero-mcp -- uvx --from zotero-mcp-server zotero-mcp
$ claude mcp add stata-mcp -- uvx stata-mcp
$ npx degit SepineTam/mcp-for-stata/.claude/skills/mcp-smoke-test .claude/skills/mcp-smoke-test
$ npx degit SepineTam/mcp-for-stata/.claude/skills/rfc-impl-generator .claude/skills/rfc-impl-generator
$ npx degit SepineTam/mcp-for-stata/plugins/stata-toolbox/skills/diagnostic-dofile .claude/skills/diagnostic-dofile
$ npx degit SepineTam/mcp-for-stata/plugins/stata-toolbox/skills/stata-audit .claude/skills/stata-audit
$ npx degit SepineTam/mcp-for-stata/plugins/stata-toolbox/skills/stata-discover .claude/skills/stata-discover
$ npx degit SepineTam/mcp-for-stata/plugins/stata-toolbox/skills/stata-skill .claude/skills/stata-skill

Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.

{
  "permissions": {
    "deny": [
      "Bash(git push --force)",
      "Bash(echo $:*TOKEN:*)",
      "Bash(echo $:*API_KEY:*)",
      "Bash(cat .env)",
      "Read(~/.zshrc)",
      "Read(~/.bashrc)",
      "Read(~/.profile)",
      "Read(~/.zprofile)"
    ],
    "ask": [
      "Read(.env)"
    ]
  }
}

MCP servers (10)

serversourceest. tokens
Context7 npm 1.2k
GitHub MCP · "github" remote · remote 18.0k
mineru-open-mcp · "mineru" pypi 2.5k
codex · "codex-mcp" binary 2.5k
OpenAI Developer Docs · "openaiDeveloperDocs" remote · remote 1.0k
code.claude.com · "claude-code-docs" remote · remote 2.5k
dip.aidea-labs.com · "dip" remote · remote 2.5k
nber-cli · "nber-mcp" pypi 2.5k
zotero-mcp-server · "zotero-mcp" pypi 2.5k
stata-mcp pypi 2.5k

Skills (6)

Permissions

deny (8)
Bash(git push --force)
Bash(echo $:*TOKEN:*)
Bash(echo $:*API_KEY:*)
Bash(cat .env)
Read(~/.zshrc)
Read(~/.bashrc)
Read(~/.profile)
Read(~/.zprofile)
ask (1)
Read(.env)
allow (50)
Skill(rfc-impl-generator)
Skill(mcp-smoke-test)
Read(~/.statamcp/*)
Read(.claude/rules/*)
Bash(bash .claude/skills/mcp-smoke-test/scripts/cleanup.sh)
Bash(bash .claude/skills/mcp-smoke-test/scripts/prepare_smoke_test.sh)
Bash(stata-mcp --version)
Bash(stata-mcp --help)
Bash(stata-mcp doctor:*)
Bash(stata-mcp server:*)
Bash(stata-mcp tool:*)
Bash(stata-mcp config:*)
Bash(uvx:*)
Bash(uv run:*)
Bash(uv add:*)
Bash(uv remove:*)
Bash(uv sync:*)
Bash(uv build:*)
Bash(uv pip:*)
Bash(git pull:*)
Bash(git push:*)
Bash(git log:*)
Bash(git diff:*)
Bash(git status:*)
Bash(git fetch:*)
Bash(find:*)
Bash(mcp dev main.py)
Bash(npx @modelcontextprotocol/inspector uv run main.py)
WebFetch(domain:*.modelcontextprotocol.io)
WebFetch(domain:*.lianxh.cn)
WebFetch(domain:*.stata.com)
WebFetch(domain:*.statamcp.com)
WebFetch(domain:*.nber.com)
WebFetch(domain:*.ssrn.com)
WebFetch(domain:*.openai.com)
WebFetch(domain:*.claude.com)
mcp__mineru__*
mcp__claude-code-docs__*
mcp__openaiDeveloperDocs__*
mcp__context7__resolve-library-id
mcp__context7__query-docs
mcp__codex-mcp__codex
mcp__codex-mcp__codex-reply
mcp__github__list_issues
mcp__github__issue_read
mcp__github__search_issues
mcp__github__list_pull_requests
mcp__github__pull_request_read
mcp__github__search_pull_requests
mcp__github__get_file_contents

Similar rigs

copied ✓