# Shuttle MCP server

> An Android framework that prevents TransactionTooLargeException crashes by safely transporting large Serializable objects between components.

- Repository: https://github.com/grarcht/Shuttle
- Page: https://hostedmcp.org/servers/grarcht/shuttle
- Transport: stdio
- Stars: 87
- License: MIT
- Latest version: 4.0.0

## Install

### Claude Code

```sh
claude mcp add shuttle -- docker run -i --rm ghcr.io/grarcht/shuttle-mcp:4.0.0
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "shuttle": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/grarcht/shuttle-mcp:4.0.0"
      ]
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "shuttle": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/grarcht/shuttle-mcp:4.0.0"
      ]
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"shuttle","type":"stdio","command":"docker","args":["run","-i","--rm","ghcr.io/grarcht/shuttle-mcp:4.0.0"]}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "shuttle": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/grarcht/shuttle-mcp:4.0.0"
      ]
    }
  }
}
```

### Codex

```sh
codex mcp add shuttle -- docker run -i --rm ghcr.io/grarcht/shuttle-mcp:4.0.0
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.shuttle]
command = "docker"
args = ["run", "-i", "--rm", "ghcr.io/grarcht/shuttle-mcp:4.0.0"]
```

### Gemini CLI

```sh
gemini mcp add -s user shuttle docker -- run -i --rm ghcr.io/grarcht/shuttle-mcp:4.0.0
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "shuttle": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/grarcht/shuttle-mcp:4.0.0"
      ]
    }
  }
}
```

## FAQ

### What problem does Shuttle solve?

It prevents TransactionTooLargeException crashes by storing large Serializable objects in a warehouse and passing only a small identifier through Intents or Bundles.

### Does Shuttle require manual serialization boilerplate?

No, when using the @ShuttleCargo annotation, the annotation processor generates the required serialization code at build time.
