# join

`station__dataframe__join` · external (needs EXECUTION_BACKEND_URL configured) · domain `dataframe` · pv-relevance `non-pv`

Join two DataFrames on shared key columns. Join types: inner, left, right, outer, semi, anti. Provide left and right DataFrames as separate column objects and the key column names.

> **Note:** This tool routes through an external execution backend. If `EXECUTION_BACKEND_URL` is unset on the server, calls return JSON-RPC error `-32603 "Tool execution backend not configured"`. Tools with `backend: native` execute in-process and are always callable.

## Agent metadata

- `idempotent`: unknown
- `read_only`: unknown
- `expected_latency_ms`: unknown (not yet contract-tested)
- `cost_tokens_estimate`: unknown

## Input schema

- `left` *object* (required) — Left DataFrame: column name to array of values
- `right` *object* (required) — Right DataFrame: column name to array of values
- `on` *array* (required) — Key column names present in both DataFrames
- `how` *string* — Join type: inner (default), left, right, outer, semi, anti

## Example call

```json
POST /api/mcp
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "station__dataframe__join",
    "arguments": {
      "left": {},
      "right": {},
      "on": []
    }
  }
}
```

## Related

- [/tools](/tools) — all 3062 tools
- [/tools/dataframe__join](/tools/dataframe__join) — HTML page
- [/tools/dataframe__join/json](/tools/dataframe__join/json) — JSON form (agent-friendly)
- [/api/mcp](/api/mcp) — endpoint
- [/AGENTS.md](/AGENTS.md) — agent guide
