> This page is for Agent Handler.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# TeamCity

**Authentication:** API key. See [Magic Link](/merge-agent-handler/build/authentication/magic-link) for the runtime auth flow, or [Application credentials](/merge-agent-handler/administer/application-credentials) to bring your own OAuth app.

## Available Tools

#### list_agents

List build agents with their connection and enabled state. Returns agent IDs for trigger_build's agent_id and...

#### get_agent

Get one build agent by ID, including version, IP, pool and enabled state. Use list_agents to find valid IDs.

#### set_agent_enabled

Enable or disable a build agent. A disabled agent stays connected but takes no new builds, which is how you drain an...

#### list_agent_pools

List agent pools, which group build agents and scope them to projects. Returns pool IDs to pass as list_agents' pool...

#### list_builds

List builds with server-side filtering by configuration, project, branch, status, state, agent, user, tag or date....

#### get_build

Get one build by ID, including status, timings, agent and what triggered it. Use list_builds to find valid IDs. Pass...

#### get_build_log

Get a bounded slice of a build's log as plain text. Defaults to the LAST 200 lines, where failures appear. Build...

#### get_build_statistics

Get a build's recorded statistics as name/value pairs, such as BuildDuration, ArtifactsSize, AllTestsDuration and...

#### list_build_artifacts

List files and directories in a build's artifacts. Omit path for the artifact root, then pass a directory name to...

#### list_build_tags

List the tags on a build. Use list_builds to find build IDs.

#### add_build_tags

Add one or more tags to a build. Existing tags are kept, this appends rather than replaces. Use list_build_tags to...

#### set_build_pin

Pin or unpin a build. A pinned build is exempt from TeamCity's cleanup rules, so it is how you preserve a release...

#### set_build_comment

Set or replace the comment on a build, for example to record why it was kept or what it shipped. Use list_builds to...

#### cancel_build

Cancel a RUNNING build, optionally re-queueing an identical one. For a build still waiting in the queue use...

#### list_build_types

List build configurations with server-side filtering by project, name, or paused state. This is how you find the...

#### get_build_type

Get a single build configuration by ID. Use list_build_types to find valid IDs. Pass fields='\$long' for the full...

#### create_build_type

Create a build configuration in a project. name and project_id are both required, use list_projects to find a valid...

#### delete_build_type

Permanently delete a build configuration and its build history. Use list_build_types to confirm the ID first. To...

#### set_build_type_paused

Pause or resume a build configuration. A paused configuration starts no new builds from triggers, but can still be...

#### list_build_type_parameters

List a build configuration's build parameters, including those inherited from its project or template. Use these...

#### set_build_type_parameter

Create or update a single build parameter on a build configuration. Use list_build_type_parameters to see existing...

#### list_build_type_steps

List a build configuration's build steps, with each step's runner type and whether it is disabled. Use...

#### list_build_type_triggers

List a build configuration's build triggers (VCS, schedule, dependency) and whether each is disabled. Use...

#### list_build_type_branches

List branches known to a build configuration, flagging the default and which are active. This is how you find a...

#### list_build_type_vcs_roots

List the VCS roots attached to a build configuration, with their checkout rules. Returns VCS root IDs for...

#### list_changes

List VCS changes (commits) with their messages and authors. Pass build to see what went into a specific build, or...

#### get_change

Get one VCS change by ID, including the list of files it touched. Use list_changes to find valid IDs.

#### list_investigations

List investigations, who has taken ownership of which failures. Filter by assignee, build configuration, project,...

#### create_investigation

Assign an investigation so a named user owns a failure. Requires assignee_username plus a scope (build_type_id or...

#### delete_investigation

Delete an investigation, releasing ownership of the failure. Pass the investigation id from list_investigations...

#### list_mutes

List muted tests and build problems, failures deliberately hidden from build status. Filter by project, reporter,...

#### create_mute

Mute failing tests or build problems so they stop failing builds. Requires a scope (project_id or build_type_id) and...

#### delete_mute

Unmute a test or build problem so its failures count again. Use list_mutes to find the mute ID.

#### list_problem_occurrences

List non-test build failures (compilation errors, exit codes, dependency failures) with their failure messages. Pass...

#### list_problems

Look up build problems by their server-wide identity, to answer 'what is failing or muted in this project'. Requires...

#### list_projects

List TeamCity projects with server-side filtering by name, archived state, or parent. Use parent_project for direct...

#### get_project

Get a single TeamCity project by ID. Use list_projects to find valid IDs. Pass fields='\$long' for the full object...

#### create_project

Create a TeamCity project. Only name is required. Use list_projects to find a parent_project_id, or omit it to...

#### delete_project

Permanently delete a TeamCity project along with all of its build configurations and build history. Use...

#### list_project_parameters

List a project's build parameters, which its build configurations inherit. Use list_projects to find valid project...

#### set_project_parameter

Create or update a single build parameter on a project. Use list_project_parameters to see existing names, and...

#### delete_project_parameter

Delete a single build parameter from a project. Use list_project_parameters to see existing names.

#### trigger_build

Queue a new build. build_type_id is required, get it from list_build_types. For branch_name use...

#### list_queued_builds

List builds waiting in the build queue, with each one's queue position and why it has not started. Filter by build...

#### get_queued_build

Get one queued build by ID, including its queue position, wait reason and estimated start. Use the ID returned by...

#### cancel_queued_build

Remove a build from the queue before it starts. For a build already running use cancel_build instead. Use...

#### set_queue_paused

Pause or resume the entire TeamCity build queue server-wide. While paused no queued build starts, though builds can...

#### get_server_info

Get TeamCity server version, build number, start time and web URL. Use to confirm connectivity or check the server...

#### list_test_occurrences

List individual test runs, filtered by build, configuration, status, or branch. This is the main way to see which...

#### get_test_occurrence

Get one test run including its failure details and stack trace. Pass the compound id from list_test_occurrences...

#### list_tests

Look up tests by their server-wide identity, to answer 'what is failing or muted in this project'. Requires a...

#### list_users

List TeamCity users filtered by username, name, email or group. Returns the usernames needed by...

#### get_user

Get one TeamCity user by ID or username, including role assignments and group memberships. Provide user_id or...

#### list_vcs_roots

List VCS roots (configured repository connections) filtered by name, provider type or project. Use...

#### get_vcs_root

Get one VCS root by ID. Use list_vcs_roots to find valid IDs. Add 'properties(property(name,value))' to fields to...

#### trigger_vcs_check

Ask TeamCity to check a VCS root for new commits now, instead of waiting for its polling interval. Use this after...