# Developer Overview

> Build governed agentic automations on Glow's multiplayer canvas. Use native app integrations, connect AI editors through MCP, and extend automations with Python and HTTP.

Build, test, and govern automations using MCP, Python, webhooks, and REST APIs on a multiplayer canvas. Combine tool-using AI agents, deterministic business logic, and human approval points in one workflow.

**At a glance**

- **Use it to:** Build and test automations from AI editors over MCP, run Python 3.13 in Code editor Steps, and connect webhooks or REST APIs
- **Find it:** Your account → MCP (?tab=mcp) · Tools → Data → Dev tools (Code editor, HTTP Request, Respond to Webhook) · Tools → Start → Webhook
- **Cost:** 0 credits for direct MCP building and validation · 1 Step credit per Code editor or HTTP Request execution
- **Limits:** Python 3.13 sandbox includes stdlib, numpy, and pandas · Up to 50 atomic operations per update_workflow batch

Build visually or connect an AI app or coding editor through Model Context Protocol (MCP). Use native app actions for supported services, Python for custom logic, and HTTP Request for arbitrary APIs. Keep agent permissions and review gates explicit in the automation your team operates.

Glow's [native integration framework](https://docs.getglow.ai/manage/apps-and-integrations/how-integrations-work) supplies the app catalogue, operation fields, and action execution. An app Step runs the operation you configure, while an AI Agent chooses among its permitted app tools. The bound connection supplies account authorization, and the external service enforces its own resource permissions and rate limits.

> Explore developer tooling, the Glow platform, and connected apps in the [developer architecture diagram](https://docs.getglow.ai/developers/overview) on the web version of this page.

## Core Developer Capabilities

  - [Model Context Protocol (MCP)](https://docs.getglow.ai/developers/mcp): Connect ChatGPT, Claude, Gemini, Cursor, VS Code, Zed, Windsurf, or CLI agents to build and test automations live.
  - [Automation Versioning](https://docs.getglow.ai/build/core-concepts/versioning): Save named checkpoints, review revision diffs, and restore earlier automation versions.
  - [Code Editor (Python)](https://docs.getglow.ai/build/action-steps/code-execution): Run Python 3.13 scripts with standard libraries, numpy, pandas, and real-time syntax checks.
  - [HTTP Request](https://docs.getglow.ai/build/action-steps/http-request): Call REST endpoints with custom methods, headers, authentication, multipart payloads, and cURL import.
  - [REST API & Webhooks](https://docs.getglow.ai/manage/workspace-settings/developer-settings): Trigger live automations from external systems and query step-by-step execution history over HTTP.
  - [Secrets & Variables](https://docs.getglow.ai/manage/workspace-settings/secrets-and-variables): Store reusable workspace variables and encrypted secrets such as API keys and connection strings.
  - [Canvas State & Undo/Redo](https://docs.getglow.ai/build/the-canvas/undo-redo): Track tab edits and coordinate before undoing a generated group on a shared canvas.
  - [Step Executions & Logs](https://docs.getglow.ai/build/core-concepts/executions): Inspect Step inputs, outputs, errors, and retry attempts for each run.
  - [Variable Syntax & Tokens](https://docs.getglow.ai/reference/variable-syntax): Reference Step outputs, loop items, system variables, and encrypted secrets with double curly braces.
  - [Inline Data Transformation](https://docs.getglow.ai/build/core-concepts/data-transformation): Format text, calculate numbers, parse dates, and filter lists inside variable tokens using pipe syntax.
  - [Error Handling & Retries](https://docs.getglow.ai/build/core-concepts/error-handling): Configure Step retry delays and error branches for failed actions.
  - [System Limits & Quotas](https://docs.getglow.ai/reference/system-limits): Review execution timeouts, payload size caps, batch concurrency, and retention limits.

## Development Workflows

Explore how developers build and integrate with Glow:

**AI Editor Integration (MCP)**

### AI Editor Integration (MCP)

Glow implements the [Model Context Protocol](https://modelcontextprotocol.io) for users with an **Admin**, **Manager**, or **Member** role. Click **Connect AI tool** in the **Workflow Assistant** header or open **Your account → MCP** to connect via OAuth 2.1 or a personal token.

- **Direct building & live companion canvas:** Query component schemas in batches and apply atomic edits through `update_workflow`. An open Glow tab follows and frames your changes automatically.
- **In-chat account handoff:** When a Step needs an app connection, `get_connections` returns a direct `connectUrl` (`?source=mcp&connectStep=<n>`) that opens that Step's connection dialog.
- **Run traces & version checkpoints:** Inspect past runs and traces (`list_workflow_executions`, `get_workflow_execution`) and list or save revision checkpoints (`list_workflow_versions`, `save_workflow_version`).
- **Testing:** Run single-Step (`test_step`) or whole-automation (`run_workflow_test`) tests with their dedicated execution grants; see [Testing Automations with MCP](https://docs.getglow.ai/developers/mcp/testing).

> Compare inbound editor requests and outbound AI Agent tool calls in the [MCP bridge walkthrough](https://docs.getglow.ai/developers/overview) on the web version of this page.

Follow [Connecting AI Apps & Editors](https://docs.getglow.ai/developers/mcp/client-setup) to connect your client, then use the [MCP Tool Reference](https://docs.getglow.ai/developers/mcp/tool-reference) to build and validate.

**Custom Python Logic**

### Custom Python Logic

When visual steps do not cover your transformations or business rules, insert a **Code editor** Step:

- **Python execution:** Run scripts for calculations, transformations, and validation. See [Code editor](https://docs.getglow.ai/build/action-steps/code-execution) for runtime details and limits.
- **Data packages included:** Use `numpy` and `pandas` out of the box without package installation.
- **Typed references:** Upstream data arrives as native Python objects (`dict`, `list`, `int`) rather than raw string interpolations.
- **Real-time diagnostics:** The editor underlines unclosed brackets and syntax errors as you type.

Replace the sample values below with upstream references once you confirm their output shape:

```python filename="code_step.py"
import json

order_items = [{"price": 100.0}, {"price": 50.0}]
customer_tier = "enterprise"

total_discount = sum(
    item["price"] * 0.15
    for item in order_items
    if customer_tier == "enterprise"
)

# The final line must be JSON for downstream structured output.
print(json.dumps({"discount_applied": total_discount}))
```

If this Code editor is Step 3, downstream Steps read `{{ 3.result.output.discount_applied }}`. See the [Code Editor Guide](https://docs.getglow.ai/build/action-steps/code-execution) for reference syntax.

**Inbound & Outbound APIs**

### Inbound & Outbound APIs

Connect Glow to your microservices and web services:

- **Webhook triggers:** Send events to the URL copied from your Webhook Step. A `202 Accepted` response confirms receipt, not run completion.
- **Correlation IDs:** Send `x-glow-correlation-id` as an HTTP request header rather than inside the JSON body.
- **Execution queries:** Query `/api/v1/flows/{flowId}/executions` with both `x-glow-api-key` and the matching `x-glow-correlation-id` header.
- **Outbound HTTP requests:** Configure custom auth (Bearer, Basic, API Key), query parameters, and request bodies.

Set `GLOW_WEBHOOK_URL` to your Webhook Step's URL and publish the automation before sending requests. If webhook signature verification is enabled, include the required signature header and keep the webhook URL secret:

```bash filename="curl trigger example"
curl -X POST "$GLOW_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -H "x-glow-correlation-id: req_982347abc" \
  -d '{
    "event": "deployment_succeeded",
    "commit": "4e64b03",
    "author": "dev@example.com"
  }'
```

Review [REST API & Webhooks](https://docs.getglow.ai/manage/workspace-settings/developer-settings) for authentication and query parameters.

## Developer Security & Best Practices

- **Manage credentials securely:** Store API keys, tokens, and database passwords in [Secrets & Variables](https://docs.getglow.ai/manage/workspace-settings/secrets-and-variables). Never hardcode credentials in prompts or code steps.
- **Scope MCP permissions:** Use least-privilege levels (such as **Build drafts** or **Read only**) for daily work.
- **Handle retries deliberately:** Reuse the original `idempotencyKey` and input when recovering an MCP test or build response. A webhook correlation ID does not deduplicate events; add receiver-side deduplication before retrying writes.

**Verify it works**

- **Run:** Connect an MCP client from Your account → MCP or run a Python snippet in a Code editor Step
- **You should see:** Your MCP client inspects the workspace live, or the Code Step outputs structured JSON to downstream Steps.

## What's Next?

- 👉 **[Model Context Protocol (MCP)](https://docs.getglow.ai/developers/mcp)**: Connect ChatGPT, Claude, Gemini, Cursor, VS Code, Zed, or Claude Code.
- **[Automation Versioning](https://docs.getglow.ai/build/core-concepts/versioning)**: Save checkpoints and restore earlier revisions.
- **[Code Editor Step](https://docs.getglow.ai/build/action-steps/code-execution)**: Write custom Python calculations and data reshaping.
- **[REST API & Webhooks](https://docs.getglow.ai/manage/workspace-settings/developer-settings)**: Trigger automations and fetch run history over HTTP.
- **[Variable Syntax](https://docs.getglow.ai/reference/variable-syntax)**: Reference step outputs and system variables.
