Judge0 CE MCP Server
# Judge0 Ce MCP Server
[English](./README_EN.md) | 简体中文 | [繁體中文](./README_ZH-TW.md)
用于访问 Judge0 Ce API 的 MCP 服务器。
## 🚀 使用 EMCP 平台快速体验
**[EMCP](https://sit-emcp.kaleido.guru)** 是一个强大的 MCP 服务器管理平台,让您无需手动配置即可快速使用各种 MCP 服务器!
### 快速开始:
1. 🌐 访问 **[EMCP 平台](https://sit-emcp.kaleido.guru)**
2. 📝 注册并登录账号
3. 🎯 进入 **MCP 广场**,浏览所有可用的 MCP 服务器
4. 🔍 搜索或找到本服务器(`bach-judge0_ce`)
5. 🎉 点击 **"安装 MCP"** 按钮
6. ✅ 完成!即可在您的应用中使用
### EMCP 平台优势:
- ✨ **零配置**:无需手动编辑配置文件
- 🎨 **可视化管理**:图形界面轻松管理所有 MCP 服务器
- 🔐 **安全可靠**:统一管理 API 密钥和认证信息
- 🚀 **一键安装**:MCP 广场提供丰富的服务器选择
- 📊 **使用统计**:实时查看服务调用情况
立即访问 **[EMCP 平台](https://sit-emcp.kaleido.guru)** 开始您的 MCP 之旅!
---
## 简介
这是一个 MCP 服务器,用于访问 Judge0 Ce API。
- **PyPI 包名**: `bach-judge0_ce`
- **版本**: 1.0.0
- **传输协议**: stdio
## 安装
### 从 PyPI 安装:
```bash
pip install bach-judge0_ce
```
### 从源码安装:
```bash
pip install -e .
```
## 运行
### 方式 1: 使用 uvx(推荐,无需安装)
```bash
# 运行(uvx 会自动安装并运行)
uvx --from bach-judge0_ce bach_judge0_ce
# 或指定版本
uvx --from bach-judge0_ce@latest bach_judge0_ce
```
### 方式 2: 直接运行(开发模式)
```bash
python server.py
```
### 方式 3: 安装后作为命令运行
```bash
# 安装
pip install bach-judge0_ce
# 运行(命令名使用下划线)
bach_judge0_ce
```
## 配置
### API 认证
此 API 需要认证。请设置环境变量:
```bash
export API_KEY="your_api_key_here"
```
### 环境变量
| 变量名 | 说明 | 必需 |
|--------|------|------|
| `API_KEY` | API 密钥 | 是 |
| `PORT` | 不适用 | 否 |
| `HOST` | 不适用 | 否 |
### 在 Cursor 中使用
编辑 Cursor MCP 配置文件 `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"bach-judge0_ce": {
"command": "uvx",
"args": ["--from", "bach-judge0_ce", "bach_judge0_ce"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}
```
### 在 Claude Desktop 中使用
编辑 Claude Desktop 配置文件 `claude_desktop_config.json`:
```json
{
"mcpServers": {
"bach-judge0_ce": {
"command": "uvx",
"args": ["--from", "bach-judge0_ce", "bach_judge0_ce"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}
```
## 可用工具
此服务器提供以下工具:
### `about`
Get general information.
**端点**: `GET /about`
---
### `create_a_batched_submission`
Create multiple submissions at once.
**端点**: `POST /submissions/batch`
**参数**:
- `base64_encoded` (string): Example value:
---
### `get_a_batched_submission`
Get multiple submissions at once.
**端点**: `GET /submissions/batch`
**参数**:
- `tokens` (string) *必需*: Example value: dce7bbc5-a8c9-4159-a28f-ac264e48c371,1ed737ca-ee34-454d-a06f-bbc73836473e,9670af73-519f-4136-869c-340086d406db
- `base64_encoded` (string): Example value:
- `fields` (string): Return only the desired submission attributes. The default value for the fields parameter is stdout,time,memory,stderr,token,compile_output,message,status. Use * to receive all available attributes.
---
### `get_a_language`
Get a language.
**端点**: `GET /languages/{id}`
**参数**:
- `id` (string) *必需*: Example value: 52
---
### `get_a_submission`
Get submission.
**端点**: `GET /submissions/{token}`
**参数**:
- `base64_encoded` (string): Example value:
- `fields` (string): Return only the desired submission attributes. The default value for the fields parameter is stdout,time,memory,stderr,token,compile_output,message,status. Use * to receive all available attributes.
- `token` (string) *必需*: Example value: 2e979232-92fd-4012-97cf-3e9177257d10
---
### `get_configuration`
Configuration information gives you detailed information about the configuration of Judge0.
**端点**: `GET /config_info`
---
### `get_languages`
Get active languages.
**端点**: `GET /languages`
---
### `get_statuses`
Get statuses.
**端点**: `GET /statuses`
---
### `create_a_submission`
Creates new submission. Created submission waits in queue to be processed. On successful creation, you are returned a submission token which can be used to check submission status.
**端点**: `POST /submissions`
**参数**:
- `base64_encoded` (string): Example value:
- `wait` (string): Example value:
- `fields` (string): Return only the desired submission attributes. The default value for the fields parameter is stdout,time,memory,stderr,token,compile_output,message,status. Use * to receive all available attributes.
---
## 技术栈
- **传输协议**: stdio
- **HTTP 客户端**: httpx
## 许可证
MIT License - 详见 [LICENSE](./LICENSE) 文件。
## 开发
此服务器由 [API-to-MCP](https://github.com/BACH-AI-Tools/api-to-mcp) 工具生成。
版本: 1.0.0
TDQS
Scored across 9 tools
Most tools have distinct purposes, such as create_a_submission vs. get_a_submission, but there is some potential confusion between get_a_batched_submission and get_a_submission, as the batched version could be seen as an extension rather than a completely separate function. Overall, the descriptions help clarify the differences, but the overlap in retrieval operations for single vs. batched submissions might cause minor misselection.
The naming follows a mostly consistent verb_noun pattern, such as create_a_submission and get_a_submission, with minor deviations like about and get_configuration that use simpler forms. All tools use snake_case, which maintains readability, but the slight variation in verb usage (e.g., 'get' vs. 'create') and the inclusion of articles like 'a' in some names (e.g., get_a_submission) versus others (e.g., get_languages) shows a small inconsistency.
With 9 tools, the count is well-scoped for a Judge0 server, covering key operations like creating and retrieving submissions, managing languages, and accessing configuration. Each tool appears to earn its place by addressing specific needs in code execution and submission management, without feeling overly sparse or bloated.
The tool set provides good coverage for the Judge0 domain, including CRUD-like operations for submissions (create and get) and support for languages and statuses. However, there are minor gaps, such as no explicit update or delete tools for submissions, which might limit full lifecycle management, but agents can likely work around this by re-creating submissions as needed.