HackerEarth MCP

io.github.pratham-jain33Published by GitHub account pratham-jain33v0.2.1Updated Oct 24, 2026

Give any AI assistant a code run button via HackerEarth. 24 languages, zero setup.

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Runs code in 24 languages on HackerEarth's sandboxed cloud servers and returns real output, so an assistant can test snippets instead of guessing.

What you can do
  • Run code: send a snippet plus a language to HackerEarth and get back printed output and error messages.
  • List languages: see every supported language identifier, with friendly aliases like python mapped to the exact identifier.
  • Check results: the assistant can verify whether a function works and explain the actual output.
When to use it
Useful when you want an assistant to actually execute small programs, check whether a snippet is correct, or compare output across languages without installing local toolchains.
Requirements
Local Python package (Python 3.10 or newer) run via uvx or pip, on a desktop assistant. A HackerEarth client-secret supplied in the HACKEREARTH_KEY environment variable, obtained free from the HackerEarth developer dashboard. Network access to HackerEarth.
Before you install
The HACKEREARTH_KEY client-secret is required and should be kept in the environment, not pasted into chat. Every run sends your code to HackerEarth's servers and consumes your account's request quota. It is an unofficial community project, not affiliated with HackerEarth.

Installation

In SourceWeft

  1. Open HackerEarth MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

hackerearth-mcp

mcp-name: io.github.pratham-jain33/hackerearth-mcp

[License: MIT] [Python 3.10+] [MCP Compatible] [Version] [PyPI] [Stars] [Tests]

Also listed on Glama with one-click deploy.

Give any AI assistant a code run button.

Unofficial community project. Not made by, endorsed by, or affiliated with HackerEarth. You bring your own free HackerEarth API key.

Why

AI assistants are great at writing code and terrible at knowing whether it works. They guess. This server plugs into any MCP-compatible assistant (Claude Desktop, Claude Code, Cursor, and more) and lets it actually run code in 24 programming languages on HackerEarth's sandboxed servers, then read the real output. No local toolchains to install. Nothing untrusted ever touches your machine.

Tools

ToolDescription
run_codeSends code plus a language to HackerEarth, waits for it to run, and returns the printed output and any error messages.
list_languagesLists every language HackerEarth can run, with the exact identifiers to pass to run_code. Takes no inputs.

Installation

bash
# Quick install via uvx (recommended)uvx hackerearth-mcp
bash
# Or install with pippip install hackerearth-mcp
bash
# Install from sourcegit clone https://github.com/pratham-jain33/hackerearth-mcpcd hackerearth-mcppython -m venv .venv.venv/bin/pip install -e .

Features

  • Exposes two MCP tools: run_code and list_languages.
  • Executes code in 24 programming languages via HackerEarth's sandboxed cloud servers.
  • Provides friendly language aliases (e.g., python → PYTHON3).
  • Returns real program output and error messages.
  • Gracefully handles missing HACKEREARTH_KEY and unknown languages without making network calls.
  • Lists all supported language identifiers.
  • Simple installation via uvx or pip.
  • Compatible with any MCP‑compatible AI assistant (Claude Desktop, Cursor, etc.).

Tech/framework used

  • Language: Python (>=3.10)
  • Core libraries: FastMCP (provides MCP server framework), requests (HTTP client)

Quickstart

1. Get a free HackerEarth API key

Register a client in the HackerEarth developer dashboard to receive a client-secret. The free tier includes a generous request quota.

2. Install

No cloning needed:

bash
uvx hackerearth-mcp

or with pip:

bash
pip install hackerearth-mcp

From source instead:

bash
git clone https://github.com/pratham-jain33/hackerearth-mcpcd hackerearth-mcppython -m venv .venv.venv/bin/pip install -e .

3. Connect your assistant

Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "hackerearth": {      "command": "uvx",      "args": ["hackerearth-mcp"],      "env": {        "HACKEREARTH_KEY": "paste-your-client-secret-here"      }    }  }}

From source, point at your checkout instead:

json
{  "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"      }    }  }}

Restart Claude Desktop, then try: "run this Python program and tell me what it prints: print(6 * 7)"

Configuration

VariableRequiredDescription
HACKEREARTH_KEYYesYour HackerEarth client-secret. Read from the environment, never hardcoded, never sent to the assistant in chat.

How it works

(This section is written by the project's author.)

  1. You ask the assistant to run some code.
  2. The assistant calls run_code with the code and the language.
  3. The server sends it to HackerEarth with your key and gets back a tracking token.
  4. The server polls HackerEarth until the run finishes.
  5. HackerEarth runs the code in a sealed sandbox on their machines.
  6. The server hands the output back to the assistant, which explains it to you.

Screenshots

Code style

No explicit linting or formatting tools are configured. The code follows standard PEP 8 conventions as observed in the source files.

Build status

[Tests]

Example session

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

Roadmap

  • v0.1 — code submission, status polling, output download, compile/runtime error reporting, 24-language list
  • v0.2 — PyPI packaging, install and run with a single uvx hackerearth-mcp command, server.json for the official MCP registry
  • Published to the official MCP registry and Glama; submitted to awesome-mcp

Contributing

Issues and pull requests are welcome. If you add a tool, write its description the way you'd explain it to a smart friend who has never seen it — the assistant reads that text to decide when to use it.

License

MIT © Pratham Jain. See LICENSE.

Acknowledgments

Built on HackerEarth's code execution API and the Model Context Protocol. Thanks to HackerEarth for a genuinely developer-friendly free tier.

Tests

The repository includes a local test script test_local.py. To run the tests:

bash
pip install fastmcp requestspython test_local.py

The GitHub Actions workflow test.yml executes the same commands on each push/pull request.

API reference

  • run_code(code: str, language: str) -> str Executes the supplied code in the specified language on HackerEarth and returns the program's printed output or error messages.
  • list_languages() -> str Returns a newline‑separated list of all supported language identifiers (e.g., PYTHON3, JAVASCRIPT_NODE).
  • _normalize_language(lang: str) -> str (internal) Normalizes user‑provided language names or aliases to the exact HackerEarth identifiers.
  • MCP registration is performed via FastMCP("hackerearth-mcp") which automatically registers the two tools above.

Created with repo-doctor

Source: README.md at commit b639e2d

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.1LatestSep 27, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts