Skip to content

MCP Quick Reference

Quick reference for using ERA Agent with Claude Desktop via MCP.

Terminal window
# 1. Build agent
cd era-agent && go build -o agent
# 2. Configure Claude Desktop
# Edit: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
# Edit: ~/.config/Claude/claude_desktop_config.json (Linux)
{
"mcpServers": {
"era-agent": {
"command": "/absolute/path/to/agent",
"args": ["mcp"]
}
}
}
Terminal window
# 3. Restart Claude Desktop (Cmd+Q, then reopen)
ToolUse ForExample
era_pythonPython scriptsRun FizzBuzz, data analysis
era_nodeJavaScript/Node.jsArray operations, algorithms
era_typescriptTypeScript codeType-safe code execution
era_denoDeno runtimeModern JS/TS with Deno APIs
era_shellSystem commandsPackage install, file ops
ToolUse ForExample
era_create_sessionStart persistent environmentCreate Python session
era_run_in_sessionRun code in sessionExecute with state
era_list_sessionsView all sessionsCheck active VMs
era_get_sessionGet session detailsCheck session status
era_delete_sessionClean up sessionRemove unused VM
ToolUse ForExample
era_upload_fileAdd files to sessionUpload CSV, config
era_read_fileRead session filesView results
era_list_filesList session filesCheck workspace
Run this Python code:
print("Hello World")
print([x**2 for x in range(10)])
1. Create a Python session
2. In that session, run: pip install pandas requests
3. Then run your Python code using those packages
1. Create a Python session
2. Upload data.csv with [your data]
3. Install pandas
4. Analyze the data
5. Read the results file
Test this sorting algorithm in both Python and JavaScript
Create a Python session with network access, install beautifulsoup4 and requests,
then scrape the top stories from Hacker News
  • F-strings: print(f'{x}: {y}')
  • Multi-line code with proper indentation
  • Special characters in strings
  • Complex nested structures
  • No State Between Tools: Use sessions for stateful work
  • Packages Not Installed: Use era_shell to install first
  • Network Disabled: Request “with network access” when needed
  • File Paths: Use relative paths in sessions, upload files first
ResourceDefaultOverride
CPU1 core”with 4 CPUs”
Memory256 MiB”with 2GB memory”
Timeout30 sec”with 60 second timeout”
NetworkDisabled”with network access”
ProblemSolution
Tools not showingRestart Claude Desktop (Cmd+Q)
“Command not found”Use absolute path in config
Code execution failsCheck Docker is running
Package not foundUse era_shell to install
Network errorRequest session “with network access”

Use Language Tools (era_python, etc.):

  • Quick one-off scripts
  • Simple calculations
  • Testing snippets
  • No package dependencies

Use Sessions:

  • Installing packages
  • Multi-step workflows
  • Stateful computations
  • File processing pipelines

Use era_shell:

  • Package installation (pip, npm)
  • System commands (ls, mkdir)
  • Environment setup
  • NOT for running code (use language tools instead)
  1. Reuse Sessions: Create once, use multiple times
  2. Choose Right Tool: Language-specific tools are faster than generic
  3. Install Once: Install packages at session start, not each run
  4. Load Once: Load large data once in session, process multiple times
Create a Python session, install pandas and matplotlib, upload this CSV,
analyze the data, create a visualization, and save it as a PNG
Implement quicksort in Python with logging, test it with random data,
then implement the same algorithm in JavaScript and compare performance
Create a Python session with network access, install requests,
fetch data from this API, process it, and save as JSON
Create a Node.js session, create package.json, install dependencies,
create index.js with an Express server, and test it
  • ✅ All code runs in isolated VMs
  • ✅ Network disabled by default
  • ✅ Filesystem isolation per session
  • ✅ Resource limits enforced
  • ⚠️ Enable network only when needed
  • ⚠️ Sessions are local to your machine