Metadata-Version: 2.4
Name: iflow-mcp_sjtu-sai-agents-mcp_sandbox
Version: 0.1.0
Summary: A code execution server with MCP support
Requires-Python: >=3.8
Requires-Dist: fastapi
Requires-Dist: fastmcp>=2.9.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: mcp>=1.9.4
Requires-Dist: openai>=1.91.0
Requires-Dist: pydantic>=2.11.7
Requires-Dist: requests>=2.32.4
Requires-Dist: uvicorn
Description-Content-Type: text/markdown

# Code Execution Server

This repository provides a basic implementation of a **code execution server**, designed primarily for **Xmaster** ([paper](https://arxiv.org/abs/2507.05241), [code](https://github.com/sjtu-sai-agents/X-Master)) and **Browse Master** ([paper](https://arxiv.org/abs/2508.09129) [code](https://github.com/sjtu-sai-agents/Browse-Master)). The full implementation is used in [SciMaster](https://scimaster.bohrium.com). 

Due to the proprietary nature of the full code, this repository only includes an **open-source framework** and the **basic components** required for code execution. It also includes a simple **network search tool** implementation.

> **⚠️ Warning**: This is a basic code execution server without virtualization or safety protections. For added security, consider running it within **Docker** or **Apptainer** containers as necessary.


---

## 🛠️ Setup

### Environment

Clone this repository and navigate to the project directory and install the required dependencies:

```bash
cd mcp_sandbox/
pip install -r requirements.txt
```

### Tools

- setup the serper key in `configs/web_agent.json`
- setup the models' api key in `configs/llm_call.json`



---

## 🚀 Deploy the Code Execution Server

### Step 1: Start the API Server

We will first start the API server used by the tools. This API server proxies all search-related services, including:

- [Serper](https://serper.dev/)'s Google Search Service
- A series of Model APIs

Navigate to the api_proxy directory and start the API server:
```bash
cd api_proxy
python api_server.py
```

### Step 2: Deploy the Server

Deploy the server by running the following script in the `MCP` directory:

```bash
cd MCP
bash deploy_server.sh
```

---

## 📝 Usage

### Sending a Request

To send a request to the server, use the following `curl` command:

```bash
curl -X POST "http://<your-server-url>/execute" \
     -H "Content-Type: application/json" \
     -d '{"code": "<your code here>"}'
```

### ⚡ Benchmarking

For benchmarking, you can run the following command to test the server's performance:

```bash
bash benchmarking/pressure.sh 100 100 10 benchmarking/script.lua http://127.0.0.1:30008
```

Example output:

```
Running 10s test @ http://127.0.0.1:30008/execute
  100 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    50.21ms   47.15ms 296.96ms   53.20%
    Req/Sec    24.13     13.58   130.00     54.99%
  23185 requests in 10.10s, 4.27MB read
Requests/sec:   2295.61
Transfer/sec:    432.74KB
```

---


