Authenticate using a TeamCity API token (generated in user profile under Access Tokens) or HTTP Basic auth; include as 'Authorization: Bearer YOUR_TOKEN' or 'Authorization: Basic ENCODED' header
POST to 'http://TEAMCITY_HOST/app/rest/buildQueue' with Content-Type 'application/json' and a body containing 'buildType: {id: YOUR_BUILD_TYPE_ID}'
To run on a specific branch, include 'branchName' in the body object at the top level alongside 'buildType'
Override parameters by including a 'properties' object with a 'property' array of '{name, value}' objects in the request body
Poll GET '/app/rest/builds/id:{build-id}' (using the 'id' from the queue response) checking the 'state' and 'status' fields
Known gotchas
TeamCity uses both 'id' and 'internalId' for build types; the REST API typically expects the string 'id' (e.g. 'MyProject_Build'), not the numeric internal ID
Parameters set via the API override build configuration parameters but do not override agent-level parameters; misunderstanding this hierarchy leads to unexpectedly ignored overrides
TeamCity's REST API returns XML by default; always include 'Accept: application/json' and 'Content-Type: application/json' headers, otherwise parsing errors occur
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp