# Develop

> Build on Proxus. Read and change its data over HTTP, subscribe to live values over MQTT, write C# functions and connect AI agents.

Source: https://proxus.io/docs/develop

Proxus has several ways in for your own code. Each one serves a different job, so pick by what you want to do,
not by the technology you know best.

## Which interface to use

| You want to | Use | Runs on |
| --- | --- | --- |
| List, create or change devices, profiles, rules, targets and other settings from a script | [REST API](https://proxus.io/docs/develop/rest-api) (OData) | hub, port 8443 (HTTPS; 8080 for local access) |
| Read stored tag values for a report, a notebook or another system | [Telemetry API](https://proxus.io/docs/develop/telemetry-api) | hub, port 8443 (HTTPS; 8080 for local access) |
| Receive live tag values the moment they are read | [MQTT and the UNS topics](https://proxus.io/docs/develop/mqtt) | each edge gateway, port 8883 (TLS; 1883 without) |
| Calculate, filter or enrich values inside Proxus, poll a web service, raise your own alarms | [Functions SDK](https://proxus.io/docs/develop/functions-sdk) (C#) | edge gateway |
| Load values recorded before the device was connected | [Historical import](https://proxus.io/docs/develop/historical-import) | edge gateway, port 8083 |
| Let an AI assistant read the plant model and live state | [MCP server](https://proxus.io/docs/develop/mcp) | hub, `/mcp` |

## How they fit together

Everything you do through the hub's interfaces runs as a Proxus user. The same roles and permissions that apply in
the hub's screens apply to your code, so create a user with only the rights the integration needs. See
[Users and roles](https://proxus.io/docs/administer/users-and-roles).

## Start here
