> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.itential.com/itential-platform/6/developer-guide/service-brokers/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server. # Service brokers > How to associate an Itential Platform service with a broker to implement a shared interface. This guide explains how to associate an Itential Platform service with a broker. ## What brokering does Associating a service with an IP broker means the service agrees to implement the broker's interface — that is, the service supplies a particular set of functions declared by the broker. For example, a broker named `trope` might support functions `foo`, `bar`, and `baz`. A service that implements the `trope` broker must define all three functions. If it does not, an error will occur at runtime when the brokering system calls a missing function. Brokering allows services to be used conceptually to perform operations. Consider an example called the `device` broker with functions such as `addDevice`, `getDevice`, and `deleteDevice`. If three different services talk to three different network managers and all can perform these operations, you can associate them all with the `device` broker. You can then reference the concept of a device — rather than a specific service — to perform those operations. ## Associate a broker To associate a service with one or more brokers, add it to the `brokers` array in `pronghorn.json`. Add the `brokers` array at the root of the configuration if it does not exist. In the following example, the `device` and `method` brokers are added: ```json { "id": "@itential/adapter-example", "export": "EXAMPLE", "title": "EXAMPLE", "src": "src.js", "type": "Adapter", "brokers": [ "device", "method" ], "roles": [ "admin" ], "topics": {}, "views": [], "methods": [] } ``` When the service is installed in Itential Platform, the broker associations are added to the service configuration automatically: ```json { "loggerProps": { "description": "Logging", "log_max_files": 100, "log_max_file_size": 1048576, "log_level": "info", "log_directory": "./logs", "log_filename": "example.log", "console_level": "warn" }, "isEncrypted": false, "model": "@itential/adapter-example", "name": "example_adapter", "type": "Adapter", "properties": { "id": "example_adapter", "type": "EXAMPLE", "properties": {}, "groups": [], "brokers": [ "device", "method" ] } } ``` > How to associate an Itential Platform service with a broker to implement a shared interface.