TeamCity MCP Server
Servidor MCP para JetBrains TeamCity com 87 ferramentas para builds, testes, agentes e gerenciamento de pipelines CI/CD.
Documentação
TeamCity MCP Server
Um servidor Model Control Protocol (MCP) que conecta assistentes de codificação com IA ao servidor CI/CD JetBrains TeamCity, expondo operações do TeamCity como ferramentas MCP.
[!NOTE] Status do projeto (junho de 2026): estável, manutenção discreta. Este projeto cumpre o que se propôs a fazer e não está mais em desenvolvimento ativo. Ele ainda funciona e permanece instalável; issues e PRs podem receber respostas lentas ou nenhuma resposta, e correções de segurança são feitas com melhor esforço.
A JetBrains agora oferece integração oficial de IA para o TeamCity — um MCP integrado e a CLI do TeamCity com uma skill de agente instalável — que é a opção padrão melhor para a maioria dos fluxos de trabalho. Veja Como isso se compara às ferramentas oficiais da JetBrains abaixo antes de adotar.
Visão Geral
O TeamCity MCP Server permite que desenvolvedores que usam assistentes de codificação com IA (Claude Code, Cursor, Windsurf) interajam com o TeamCity diretamente do seu ambiente de desenvolvimento por meio de ferramentas MCP.
Atualizando da versão 1.x? A versão 2.0.0 moveu 15 ferramentas do modo Dev para o modo Full, incluindo gerenciamento de fila, verificações de compatibilidade de agentes e monitoramento de saúde do servidor. Se você dependia dessas ferramentas no modo Dev, alterne para
MCP_MODE=fullou use a alternância de modo em tempo de execução (v2.1.0+). Consulte CHANGELOG.md para detalhes.
Recursos
🚀 Dois Modos Operacionais
-
Modo Dev (padrão): Operações seguras de CI/CD (31 ferramentas, ~14 mil tokens de contexto)
- Disparar builds e monitorar o status
- Buscar logs de build e inspecionar falhas de teste
- Listar projetos, configurações e fila
- Ler parâmetros e investigar problemas
-
Modo Full: Gerenciamento completo da infraestrutura (87 ferramentas, ~26 mil tokens de contexto)
- Todos os recursos do modo Dev, além de:
- Criar e clonar configurações de build
- Gerenciar etapas de build, gatilhos e dependências
- Configurar raízes VCS e agentes
- CRUD completo para parâmetros (config de build, projeto e parâmetros de saída)
- Gerenciamento de fila e administração do servidor
Alternância de modo em tempo de execução (v2.1.0+): Alterne entre modos em tempo de execução usando as ferramentas get_mcp_mode e set_mcp_mode — sem necessidade de reinicialização. Clientes MCP que suportam notificações verão a lista de ferramentas ser atualizada automaticamente.
Consulte a Matriz de Modos das Ferramentas para a lista completa das 87 ferramentas e sua disponibilidade por modo.
🎯 Principais Capacidades
- Disparar e monitorar builds, buscar logs e inspecionar falhas de teste
- Autenticação baseada em token para o TeamCity; valores sensíveis ocultados nos logs
- Arquitetura moderna: implementação simples e direta com um cliente singleton
- Consciente de desempenho: inicialização rápida com sobrecarga mínima
- Base de código limpa com limites de módulo claros
Como isso se compara às ferramentas oficiais da JetBrains
A partir de junho de 2026, a JetBrains oferece integração de IA de primeira parte para o TeamCity: um endpoint MCP integrado e a CLI do TeamCity, que inclui uma skill de agente instalável. Juntas, essas são o caminho recomendado pela JetBrains e cobrem os fluxos de trabalho comuns de IA — leitura de logs, diagnóstico de falhas e reexecução de builds — sem instalação e com suporte oficial.
O teamcity-mcp é anterior a essas ferramentas e se sobrepõe a elas. De modo geral, as ferramentas oficiais são a melhor opção padrão hoje; a vantagem restante do teamcity-mcp é um conjunto mais amplo de operações de escrita e gerenciamento expostas como um servidor MCP. Essa lacuna é real, mas está diminuindo, e as ferramentas da JetBrains evoluem rapidamente — então, em vez de fixar uma comparação recurso por recurso aqui (ela ficaria desatualizada rápido), consulte a documentação atual e escolha o que se adequa:
- Anúncio do TeamCity 2026.1 — visão geral da integração oficial de IA
- Documentação de integração de agentes de IA — o MCP integrado
- CLI do TeamCity — o caminho do terminal + skill de agente
Se você se sente confortável com a CLI da JetBrains, talvez não precise deste projeto. Ele permanece licenciado sob MIT e instalável para o que as ferramentas integradas ainda não alcançam — faça um fork se quiser levá-lo adiante por conta própria.
Instalação
Pré-requisitos
- Node.js >= 20.10.0 (versões LTS 20, 22, 24 testadas no CI)
- TeamCity Server 2020.1+ com acesso à API REST
- Token de autenticação do TeamCity
Início Rápido
# Clone the repository
git clone https://github.com/Daghis/teamcity-mcp.git
cd teamcity-mcp
# Install dependencies
npm install
# Configure environment
cp .env.example .env
# Edit .env with your TeamCity URL and token
# Run in development mode
npm run dev
Pacote npm
Execute o servidor MCP via npx (requer Node 20.x). Defina suas variáveis de ambiente do TeamCity inline ou por meio de um .env no diretório de trabalho.
# One-off run (inline envs)
TEAMCITY_URL="https://teamcity.example.com" \
TEAMCITY_TOKEN="<your_token>" \
MCP_MODE=dev \
npx -y @daghis/teamcity-mcp
# Or rely on .env in the current directory
npx -y @daghis/teamcity-mcp
Claude Code
- Adicione o MCP (contando com
.envpara configuração):claude mcp add teamcity -- npx -y @daghis/teamcity-mcp
- Com variáveis de ambiente (se não estiver usando .env):
claude mcp add teamcity -e TEAMCITY_URL="https://teamcity.example.com" -e TEAMCITY_TOKEN="tc_<your_token>" -- npx -y @daghis/teamcity-mcp
- Com argumentos de CLI (recomendado para Windows):
claude mcp add teamcity -- npx -y @daghis/teamcity-mcp --url "https://teamcity.example.com" --token "tc_<your_token>" --mode dev
- Adicione
-s userpara instalar para o usuário em vez de apenas para o projeto (padrão) - Uso de contexto (Opus 4.1, estimativas):
- Dev (padrão): ~14 mil tokens para ferramentas MCP
- Full (
MCP_MODE=full): ~26 mil tokens para ferramentas MCP
Usuários do Windows
No Windows, a configuração MCP do Claude Code pode não mesclar corretamente as variáveis de ambiente. Use argumentos de CLI como alternativa:
{
"mcpServers": {
"teamcity": {
"command": "npx",
"args": [
"-y",
"@daghis/teamcity-mcp",
"--url",
"https://teamcity.example.com",
"--token",
"YOUR_TOKEN"
]
}
}
}
Ou use um arquivo de configuração para maior segurança (token não visível na lista de processos):
{
"mcpServers": {
"teamcity": {
"command": "npx",
"args": ["-y", "@daghis/teamcity-mcp", "--config", "C:\\path\\to\\teamcity.env"]
}
}
}
Configuração
O ambiente é validado centralmente com Zod. Variáveis suportadas e padrões:
# Server Configuration
PORT=3000
NODE_ENV=development
LOG_LEVEL=info
# TeamCity Configuration (aliases supported)
TEAMCITY_URL=https://teamcity.example.com
TEAMCITY_TOKEN=your-auth-token
# Optional aliases:
# TEAMCITY_SERVER_URL=...
# TEAMCITY_API_TOKEN=...
# MCP Mode (dev or full)
MCP_MODE=dev
# Optional advanced TeamCity options (defaults shown)
# Connection
# TEAMCITY_TIMEOUT=30000
# TEAMCITY_MAX_CONCURRENT=10
# TEAMCITY_KEEP_ALIVE=true
# TEAMCITY_COMPRESSION=true
# Extra headers attached to every TeamCity request — useful when TeamCity
# sits behind a reverse proxy that gates access on custom headers (e.g.
# Cloudflare Zero Trust service tokens). One env var per header; the part
# after `TEAMCITY_HEADER_` is used verbatim as the HTTP header name.
# Example (note the literal hyphens — most shells need quoting):
# TEAMCITY_HEADER_CF-Access-Client-Id=<id>
# TEAMCITY_HEADER_CF-Access-Client-Secret=<secret>
# Retry
# TEAMCITY_RETRY_ENABLED=true
# TEAMCITY_MAX_RETRIES=3
# TEAMCITY_RETRY_DELAY=1000
# TEAMCITY_MAX_RETRY_DELAY=30000
# Pagination
# TEAMCITY_PAGE_SIZE=100
# TEAMCITY_MAX_PAGE_SIZE=1000
# TEAMCITY_AUTO_FETCH_ALL=false
# Circuit Breaker
# TEAMCITY_CIRCUIT_BREAKER=true
# TEAMCITY_CB_FAILURE_THRESHOLD=5
# TEAMCITY_CB_RESET_TIMEOUT=60000
# TEAMCITY_CB_SUCCESS_THRESHOLD=2
Esses valores são normalizados em src/config/index.ts e consumidos por src/teamcity/config.ts por meio de getters auxiliares.
Exemplos de Uso
Depois de integrado ao seu assistente de codificação com IA:
"Build the frontend on feature branch"
"Why did last night's tests fail?"
"Deploy staging with the latest build"
"Create a new build config for the mobile app"
Respostas das Ferramentas e Paginação
- Respostas: As ferramentas agora retornam conteúdo MCP consistente. Para operações de listar/obter, o
content[0].textcontém uma string JSON. Formato de exemplo:{ "items": [...], "pagination": { "page": 1, "pageSize": 100 } }ou{ "items": [...], "pagination": { "mode": "all", "pageSize": 100, "fetched": 250 } }. - Paginação: A maioria das ferramentas list_* aceita
pageSize,maxPageseall:pageSizecontrola os itens por página.all: truebusca várias páginas atémaxPages.- O
countlegado emlist_buildsé mantido para compatibilidade, maspageSizeé preferido.
Validação e Erros
- Validação de entrada: As entradas das ferramentas são validadas com esquemas Zod; entrada inválida retorna um payload de erro estruturado no conteúdo da resposta (string JSON) com
success: falseeerror.code = VALIDATION_ERROR. - Formatação de erros: Os erros são formatados de forma consistente por meio de um handler global. Em produção, as mensagens podem ser sanitizadas; valores sensíveis (por exemplo, tokens) são ocultados nos logs.
Uso da API
import { TeamCityAPI } from '@/api-client';
// Get the API client instance
const api = TeamCityAPI.getInstance();
// List projects
const projects = await api.listProjects();
// Get build status
const build = await api.getBuild('BuildId123');
// Trigger a new build
const newBuild = await api.triggerBuild('BuildConfigId', {
branchName: 'main',
});
Nota: Os helpers legados exportados de
src/teamcity/index.tspermanecem apenas para compatibilidade e incluem implementações de placeholder. Prefira as ferramentas MCP (consulte a referência vinculada acima) ou oTeamCityAPImostrado aqui ao automatizar fluxos de trabalho.
Desenvolvimento
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Lint code
npm run lint
# Format code
npm run format
# Type check
npm run typecheck
# Build for production
npm run build
# Analyze bundle for Codecov
npm run build:bundle
Análise de bundle no CI
O fluxo de trabalho do CI executa npm run build:bundle e envia o JSON coverage/bundles gerado usando codecov/codecov-action com o plugin javascript-bundle.
Estrutura do Projeto
teamcity-mcp/
├── src/ # Source code
│ ├── tools.ts # All 87 MCP tool definitions
│ ├── server.ts # MCP server setup
│ ├── api-client.ts # TeamCity API singleton
│ ├── config/ # Configuration with Zod validation
│ ├── teamcity/ # Domain logic (build, agent, config managers)
│ ├── teamcity-client/ # Auto-generated OpenAPI client
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Logger, MCP helpers, pagination
├── tests/ # Unit and integration tests
├── docs/ # Documentation
└── scripts/ # Build and maintenance scripts
Documentação da API
O servidor MCP expõe ferramentas para operações do TeamCity. Cada ferramenta corresponde a endpoints específicos da API REST do TeamCity:
Gerenciamento de Builds
TriggerBuild- Enfileirar um novo buildGetBuildStatus- Verificar o progresso do buildFetchBuildLog- Recuperar logs de buildListBuilds- Pesquisar builds por critérios
Análise de Testes
ListTestFailures- Obter testes com falhaGetTestDetails- Informações detalhadas do testeAnalyzeBuildProblems- Identificar motivos de falha
Configuração (Somente Modo Full)
create_build_config- Criar novas configurações de build do TeamCity com suporte completo para:- Raízes VCS (Git, SVN, Perforce) com autenticação
- Etapas de build (script, Maven, Gradle, npm, Docker, PowerShell)
- Gatilhos (VCS, agendamento, finish-build, maven-snapshot)
- Parâmetros e configurações baseadas em modelos
- Consulte a Referência de Ferramentas MCP para detalhes de argumentos e opções adicionais.
clone_build_config- Duplicar configurações existentes em qualquer projeto, preservando etapas, gatilhos e parâmetros.update_build_config- Ajustar nomes, descrições, regras de artefatos e estado de pausa de uma configuração.manage_build_steps- Adicionar, atualizar, remover ou reordenar etapas de build por meio de uma única superfície de ferramenta.manage_build_triggers- Adicionar ou excluir gatilhos de build com suporte completo a propriedades.create_vcs_rooteadd_vcs_root_to_build- Definir raízes VCS e anexá-las às configurações de build.
Veja também: docs/TEAMCITY_MCP_TOOLS_GUIDE.md para fluxos de trabalho expandidos e exemplos alinhados com a implementação MCP atual.
Contribuindo
Aceitamos contribuições! Consulte CONTRIBUTING.md para detalhes.
Segurança
Gerenciamento de Tokens
- Configure
TEAMCITY_TOKENpor meio de variável de ambiente ou arquivo de configuração (veja.env.example); nunca faça commit de tokens reais - Use um token com as permissões mínimas necessárias; tokens somente leitura funcionam para a maioria das operações do modo Dev
- Somente autenticação baseada em token; o servidor MCP não suporta usuário/senha
- Os logs ocultam valores sensíveis, incluindo tokens
Seleção de Modo
- Prefira o modo Dev a menos que o modo Full seja explicitamente necessário — isso limita o raio de impacto de qualquer configuração incorreta ou injeção de prompt
- O modo Full habilita operações destrutivas (exclusão de projetos, gerenciamento de agentes) que não podem ser facilmente desfeitas
Segurança de Rede
- Sempre use HTTPS para conexões com o TeamCity; o servidor não impõe isso, mas recomenda fortemente
- O servidor MCP se conecta apenas à URL do TeamCity configurada; nenhuma outra chamada de rede é feita
Considerações sobre Assistentes de IA
- Assistentes de IA podem ser manipulados por meio de injeção de prompt em logs de build, saída de testes ou outros dados do TeamCity
- O conjunto limitado de ferramentas do modo Dev reduz o impacto desses ataques
- Todas as ações aparecem no log de auditoria do TeamCity sob o usuário associado ao token
- Logs de build e detalhes de falhas de teste podem conter informações sensíveis (segredos, caminhos, URLs internas) que se tornam visíveis para o assistente de IA
Segurança do Repositório
Este repositório tem a verificação de segredos do GitHub e a proteção contra push habilitadas. Consulte SECURITY.md para relatar vulnerabilidades.
Suporte
- GitHub Issues: Relate bugs ou solicite recursos
- Documentação: Consulte a pasta
docs/neste repositório
Agradecimentos
- JetBrains TeamCity pela excelente plataforma de CI/CD
- Anthropic pela especificação do Model Control Protocol
- A comunidade open-source pelo suporte contínuo
- Consulte THIRD_PARTY_NOTICES.md para licenças de terceiros
Feito com ❤️ para desenvolvedores que amam fluxos de trabalho eficientes de CI/CD