关于 HackerEarth MCP
HackerEarth MCP 是供 AI 助手运行代码并查看实际结果的非官方服务。它将程序提交到 HackerEarth 的沙盒服务器,支持 24 种语言,并返回输出或错误;使用时需要 HackerEarth API 密钥。
主要功能
- 01运行 24 种语言的代码
- 02返回程序输出和错误
- 03列出支持的语言标识符
- 04规范化语言别名
- 05在 HackerEarth 沙盒服务器执行
适用场景
- 01检查生成的代码能否运行
- 02查看短程序的执行输出
- 03查找运行代码所需的语言标识符
MCP 相关
向 MCP 客户端提供 `run_code` 和 `list_languages` 工具。代码使用配置的 API 密钥在 HackerEarth 沙盒服务器上执行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | string | 是 | |
| language | string | 是 |
详细介绍
hackerearth-mcp
mcp-name: io.github.pratham-jain33/hackerearth-mcp
也已列入 Glama,支持一键部署。
为任何 AI 助手提供代码运行按钮。
非官方社区项目。 并非由 HackerEarth 制作、认可或关联。你需要自备免费的 HackerEarth API 密钥。
为什么
AI 助手擅长编写代码,却不擅长判断代码是否能正常运行。它们会猜测。此服务可接入任何兼容 MCP 的助手(Claude Desktop、Claude Code、Cursor 等),让它真正运行代码:在 HackerEarth 的沙盒服务上运行 24 种编程语言,然后读取实际输出。无需安装本地工具链。任何不可信内容都不会接触你的计算机。
工具
| 工具 | 描述 |
|---|---|
run_code | 将代码和语言发送到 HackerEarth,等待运行完成,并返回打印的输出和任何错误消息。 |
list_languages | 列出 HackerEarth 支持运行的所有语言,以及传给 run_code 的准确标识符。无需输入。 |
安装
# Quick install via uvx (recommended)
uvx hackerearth-mcp
# Or install with pip
pip install hackerearth-mcp
# Install from source
git clone https://github.com/pratham-jain33/hackerearth-mcp
cd hackerearth-mcp
python -m venv .venv
.venv/bin/pip install -e .
功能
- 提供两个 MCP 工具:
run_code和list_languages。 - 通过 HackerEarth 的沙盒云服务执行 24 种编程语言的代码。
- 提供易用的语言别名(例如,
python→PYTHON3)。 - 返回程序的实际输出和错误消息。
- 在缺少
HACKEREARTH_KEY或语言未知时妥善处理,不会发起网络请求。 - 列出所有受支持的语言标识符。
- 可通过
uvx或pip轻松安装。 - 兼容任何支持 MCP 的 AI 助手(Claude Desktop、Cursor 等)。
技术/框架
快速开始
1. 获取免费的 HackerEarth API 密钥
在 HackerEarth 开发者控制台注册客户端,即可获取 client-secret。免费套餐提供充足的请求配额。
2. 安装
无需克隆:
uvx hackerearth-mcp
或使用 pip:
pip install hackerearth-mcp
也可以从源代码安装:
git clone https://github.com/pratham-jain33/hackerearth-mcp
cd hackerearth-mcp
python -m venv .venv
.venv/bin/pip install -e .
3. 连接助手
Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"hackerearth": {
"command": "uvx",
"args": ["hackerearth-mcp"],
"env": {
"HACKEREARTH_KEY": "paste-your-client-secret-here"
}
}
}
}
从源代码运行时,改为指向你的检出目录:
{
"mcpServers": {
"hackerearth": {
"command": "/absolute/path/to/hackerearth-mcp/.venv/bin/python",
"args": ["/absolute/path/to/hackerearth-mcp/server.py"],
"env": {
"HACKEREARTH_KEY": "paste-your-client-secret-here"
}
}
}
}
重启 Claude Desktop,然后试试:“运行这段 Python 程序并告诉我输出是什么:print(6 * 7)”
配置
| 变量 | 必需 | 描述 |
|---|---|---|
HACKEREARTH_KEY | 是 | 你的 HackerEarth client-secret。从环境变量读取,不会硬编码,也不会在聊天中发送给助手。 |
工作原理
(本节由项目作者撰写。)
- 你让助手运行一段代码。
- 助手使用代码和语言调用
run_code。 - 服务端将代码连同你的密钥发送到 HackerEarth,并获取一个跟踪令牌。
- 服务端持续轮询 HackerEarth,直到运行完成。
- HackerEarth 在其机器上的隔离沙箱中运行代码。
- 服务端将输出交给助手,由助手向你解释。
截图
代码风格
未配置明确的代码检查或格式化工具。根据源文件观察,代码遵循标准的 PEP 8 规范。
构建状态
会话示例
You: Is this Fibonacci function correct? Run it and show me the first 10 numbers.
def fib(n):
a, b = 0, 1
for _ in range(n):
print(a, end=" ")
a, b = b, a + b
fib(10)
Claude: [calls run_code with your function]
It works. The output is: 0 1 1 2 3 5 8 13 21 34
路线图
- v0.1 — 提交代码、轮询状态、下载输出、报告编译/运行时错误、支持 24 种语言
- v0.2 — PyPI 打包,通过单条
uvx hackerearth-mcp命令安装并运行,为官方 MCP 注册表提供server.json - 已发布到官方 MCP 注册表和 Glama;已提交至 awesome-mcp
参与贡献
欢迎提交问题和拉取请求。如果你添加工具,请像向一位从未接触过它的聪明朋友解释那样撰写工具描述——助手会读取这段文本,以决定何时使用它。
许可证
MIT © Pratham Jain。参见 LICENSE。
致谢
基于 HackerEarth 的代码执行 API 和 Model Context Protocol。感谢 HackerEarth 提供真正对开发者友好的免费套餐。
测试
此代码库包含本地测试脚本 test_local.py。运行测试:
pip install fastmcp requests
python test_local.py
GitHub Actions 工作流 test.yml 会在每次推送/拉取请求时执行相同的命令。
API 参考
run_code(code: str, language: str) -> str在 HackerEarth 上使用指定的language执行提供的code,并返回程序打印的输出或错误消息。list_languages() -> str返回所有支持的语言标识符列表,每个标识符占一行(例如,PYTHON3、JAVASCRIPT_NODE)。_normalize_language(lang: str) -> str(内部函数) 将用户提供的语言名称或别名规范化为准确的 HackerEarth 标识符。- MCP 注册通过
FastMCP("hackerearth-mcp")完成,它会自动注册上述两个工具。
使用 repo-doctor 创建
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。