Skip to main content
Glama
beardfaceguy

codeJung-mcp

by beardfaceguy

codeJung-mcp

An MCP server that exposes the self-hosted codeJung code-review service as tools any MCP client can call — Claude Code, Claude Desktop, Cursor, Codex CLI, Windsurf, and web/URL-based clients.

It's a thin client over codeJung's stable /v1 HTTP API. There are two ways to connect (see Installation):

  • Remote (recommended): point your client at the hosted URL — nothing to install, works from anywhere.

  • Local: run the stdio server (codejung_mcp.py) from a clone of this repo.

Tools

Tool

Purpose

review_pr(pr_url, wait_secs=300, post_comments=True)

Submit a GitHub PR, wait up to wait_secs, return review markdown + findings.

submit_review(pr_url, post_comments=True)

Submit a PR and return jobId immediately (for long reviews).

get_review(job_id)

Status, plus result once the job has succeeded.

review_dir(path, wait_secs=300)

Review a local directory (full-file scan, no PR needed). Local stdio + SSH mode only.

The selected LLM in your client is irrelevant — the client (not the model) drives the server, so it works with any tool-calling model (GPT, Claude, Gemini, Grok, …). MCP tools run in the client's Agent mode.

Review-only (don't post to the PR)

review_pr / submit_review take post_comments (default True). Pass post_comments=False to review a PR without posting inline comments — the findings come back to you (findings array + summaryMarkdown) and the PR is left untouched. Good for "review-then-decide" agent workflows.

Expect a few minutes

A review runs a multi-model pipeline and typically takes ~3–5 minutes (sometimes longer under load). That's normal, not a hang. Tell the user a review is in progress; a "running" status just means "check back shortly." Model calls are individually deadline-capped and retried, so a review can't hang indefinitely — it just isn't instant.

Blocking vs non-blocking

review_pr / review_dir wait at most wait_secs, emitting progress to stderr, then return {"status":"running","jobId":...} if not finished — they never block indefinitely. Fetch a still-running result later with get_review(job_id). Set wait_secs=0 to return right after submit. For clients with short tool-call timeouts, prefer submit_reviewget_review.

Related MCP server: tai-mcp-github

Installation

Pick one of the two options below. You'll need a codeJung API token either way. Tokens are issued per user by the maintainer — you can't self-provision one, so contact the maintainer to request your own key. Use the token they give you wherever <TOKEN> appears below; keep it to yourself (don't share or paste it in public channels).

The service is hosted at https://codejung.wint3rmute.com/mcp — always on, TLS, bearer-token gated. No clone, no Python, no SSH; works from any network.

Cursor — merge into ~/.cursor/mcp.json (under mcpServers):

{
  "mcpServers": {
    "codejung": {
      "url": "https://codejung.wint3rmute.com/mcp",
      "headers": { "Authorization": "Bearer <TOKEN>" }
    }
  }
}

Claude Code — one command:

claude mcp add --transport http codejung https://codejung.wint3rmute.com/mcp \
  --header "Authorization: Bearer <TOKEN>"

Claude Desktop / Windsurf / other URL-capable clients — add the same url + headers entry to that client's MCP config file.

Then restart the client, switch to Agent mode, and try: "review https://github.com/owner/repo/pull/123 with codejung".

Web clients (ChatGPT/Grok) can point at the same URL, but their MCP client and auth support vary by product/plan (some expect OAuth rather than a static bearer header). The endpoint is a standards-compliant streamable-HTTP MCP server; whether a given product accepts it depends on that product.

Option B — Local stdio server (from a clone)

Run the stdio server yourself. Needed for review_dir (local-directory reviews), or if you'd rather not use the hosted URL.

  1. Clone + install deps:

    git clone git@github.com:beardfaceguy/codeJung-mcp.git
    cd codeJung-mcp
    pip install -r requirements.txt        # installs `mcp`; needs python3 ≥ 3.10
  2. Choose how it reaches codeJung (via env vars — see Configuration):

    • Remote API over HTTPS (works anywhere): CODEJUNG_API_URL=https://codejung.wint3rmute.com + CODEJUNG_API_TOKEN=<token>

    • SSH-to-loopback (on the home LAN; the token is read on the host and never leaves it): CODEJUNG_SSH_HOST=codejung + passwordless SSH to that host.

  3. Register with your client, e.g. Claude Code (remote-API mode):

    claude mcp add codejung -s user \
      -e CODEJUNG_API_URL=https://codejung.wint3rmute.com \
      -e CODEJUNG_API_TOKEN=<token> \
      -- python3 /ABS/PATH/codeJung-mcp/codejung_mcp.py
    • Cursor / Claude Desktop / Windsurf: merge client-configs/mcp.json (the command/args/env form), editing the absolute path + env.

    • Codex CLI: merge client-configs/codex-config.toml into ~/.codex/config.toml.

review_dir requires SSH mode (it rsyncs the target dir to the host); it is unavailable in remote-URL mode and returns a clear error there.

Configuration (env vars)

Var

Default

Meaning

CODEJUNG_API_URL

(unset)

If set, the stdio server calls the public REST API over HTTPS (remote mode).

CODEJUNG_API_TOKEN

(unset)

Bearer token for remote mode (required when CODEJUNG_API_URL is set).

CODEJUNG_SSH_HOST

codejung

SSH host running the service (SSH mode, when CODEJUNG_API_URL is unset).

CODEJUNG_ENV_PATH

~/codeJung/deploy/codejung.env

Path to codejung.env on the host (SSH mode; holds the token).

CODEJUNG_REVIEW_STAGING

~/cj-review-staging

Host staging dir for review_dir (SSH mode).

Verifying (Option B)

pip install -r requirements.txt
# tools register?
python3 -c "import asyncio, codejung_mcp as m; print([t.name for t in asyncio.run(m.mcp.list_tools())])"
# end-to-end (remote mode): set the env first, then submit a real PR
CODEJUNG_API_URL=https://codejung.wint3rmute.com CODEJUNG_API_TOKEN=<token> \
  python3 -c "import codejung_mcp as m; print(m.review_pr('https://github.com/OWNER/REPO/pull/N', post_comments=False)['status'])"

For Option A, just confirm the endpoint is reachable:

curl https://codejung.wint3rmute.com/v1/health     # -> {"status":"ok"}

Security notes

  • The bearer token gates all /v1/jobs* endpoints (constant-time check) and the /mcp endpoint. Keep it secret; don't paste it in shared channels.

  • In SSH mode the token is read on the host and never transits to the client.

  • PR URLs and job IDs are strictly validated before interpolation into any remote command (prevents shell injection).

  • review_dir copies the target dir to the host (excluding .git, node_modules, virtualenvs, build output) and removes the staged copy after.

How it's hosted (maintainer reference)

codeJung is served permanently at https://codejung.wint3rmute.com via the router's nginx reverse proxy (a vhost on the shared :443, alongside other services), terminating a Let's Encrypt cert and proxying to the Pi's Caddy, which routes / → codeJung REST API and /mcp → the streamable-HTTP MCP server (codejung_mcp_http.py).

Host-side pieces:

  • Remote MCP server: codejung_mcp_http.py runs on the host (venv ~/.codejung-mcp-venv), systemd unit codejung-mcp-http.service, binds 127.0.0.1:8765.

  • Caddy /mcp route: bearer-gated via CJ_MCP_TOKEN, rewrites upstream Host to 127.0.0.1:8765 (the MCP SDK's DNS-rebinding guard only trusts localhost).

Redeploy codejung_mcp_http.py after editing:

scp codejung_mcp_http.py codejung:~/codeJung-mcp-http.py
ssh codejung 'sudo systemctl restart codejung-mcp-http'
F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • A MCP server built for developers enabling Git based project management with project and personal…

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/beardfaceguy/codeJung-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server