ygorpinto/mcp_bitbucket_pipelines
If you are the rightful owner of mcp_bitbucket_pipelines and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server for interacting with Bitbucket Pipelines, allowing language models to manage Bitbucket pipelines.
Bitbucket Pipelines MCP Server
Um servidor MCP (Model Context Protocol) que fornece tools para interagir com o Bitbucket Pipelines. Este servidor implementa o padrão MCP e pode ser usado por modelos de linguagem como o Claude para gerenciar pipelines do Bitbucket.
Tools Disponíveis
1. mcp_bitbucket_list_pipelines
Lista pipelines com suporte a paginação.
Parâmetros:
{
page?: number; // Número da página (default: 1)
pagelen?: number; // Itens por página (default: 10)
}
2. mcp_bitbucket_trigger_pipeline
Dispara um novo pipeline.
Parâmetros:
{
target: {
ref_type: string; // Tipo de referência (ex: "branch", "tag")
type: string; // Tipo do alvo
ref_name: string; // Nome da referência (ex: "main", "develop")
selector?: { // Opcional
type: string;
pattern: string;
}
},
variables?: Array<{ // Opcional
key: string;
value: string;
secured?: boolean;
}>
}
3. mcp_bitbucket_get_pipeline_status
Obtém o status de um pipeline específico.
Parâmetros:
{
uuid: string; // UUID do pipeline
}
4. mcp_bitbucket_stop_pipeline
Para a execução de um pipeline.
Parâmetros:
{
uuid: string; // UUID do pipeline
}
Configuração
Variáveis de Ambiente
Crie um arquivo .env
com as seguintes variáveis:
# Obrigatórias
BITBUCKET_ACCESS_TOKEN=seu_token_aqui
BITBUCKET_WORKSPACE=seu_workspace
BITBUCKET_REPO_SLUG=seu_repositorio
# Opcionais
BITBUCKET_API_URL=https://api.bitbucket.org/2.0 # URL da API (default: https://api.bitbucket.org/2.0)
Instalação e Execução
Com Docker (Recomendado)
- Clone o repositório:
git clone [url-do-repositorio]
cd bitbucket-pipelines-mcp
- Configure as variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações
- Inicie o servidor:
docker-compose up -d
- Para verificar o status do servidor:
# Torne o script executável
chmod +x docker-mcp-test.js
# Execute o script
node docker-mcp-test.js
- Para interagir com o servidor usando o script cliente:
# Torne o script executável
chmod +x docker-mcp-client.js
# Execute o script
node docker-mcp-client.js
- Para interagir manualmente com o servidor:
# Exemplo de chamada direta
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"name":"Test Client","version":"1.0.0","protocolVersion":"0.3.0","capabilities":{},"clientInfo":{"name":"Test Client","version":"1.0.0"}}}' | docker exec -i bitbucket-pipelines-mcp_mcp-server_1 node dist/index.js
Instalação Local
- Clone o repositório:
git clone [url-do-repositorio]
cd bitbucket-pipelines-mcp
- Instale as dependências:
npm install
- Configure as variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações
- Compile o projeto:
npm run build
- Inicie o servidor:
npm start
Integração com o Cursor
Método 1: Editando o arquivo mcp.json
diretamente (Recomendado)
A maneira mais direta e eficiente de integrar com o Cursor é editar o arquivo mcp.json
principal:
- Certifique-se de que o servidor Docker MCP está rodando:
npm run docker:up
-
Localize o arquivo
mcp.json
no diretório de configuração do Cursor:- Linux:
~/.cursor/mcp.json
- macOS:
~/Library/Application Support/Cursor/mcp.json
- Windows:
%APPDATA%\Cursor\mcp.json
- Linux:
-
Edite o arquivo
mcp.json
e adicione a seguinte configuração na seção principal:
"bitbucket-pipelines": {
"command": "docker",
"args": [
"exec",
"-i",
"bitbucket-pipelines-mcp_mcp-server_1",
"node",
"dist/index.js"
]
}
-
Salve o arquivo e reinicie o Cursor.
-
Agora você pode usar as ferramentas do Bitbucket Pipelines diretamente no Cursor, chamando-as usando:
@bitbucket-pipelines
Método 2: Usando um arquivo de configuração separado
Para usar o Bitbucket Pipelines MCP diretamente no Cursor IDE, siga estas etapas:
- Certifique-se de que o servidor Docker MCP está rodando:
npm run docker:up
- Crie um arquivo
mcp.config.json
na raiz do projeto com o seguinte conteúdo:
{
"name": "bitbucket-pipelines-mcp",
"description": "Bitbucket Pipelines MCP Server para interagir com o Bitbucket Pipelines",
"version": "1.0.0",
"command": {
"binary": "docker",
"args": ["exec", "-i", "bitbucket-pipelines-mcp_mcp-server_1", "node", "dist/index.js"]
},
"tools": [
{
"name": "mcp_bitbucket_list_pipelines",
"description": "Lista pipelines com suporte a paginação"
},
{
"name": "mcp_bitbucket_trigger_pipeline",
"description": "Dispara um novo pipeline"
},
{
"name": "mcp_bitbucket_get_pipeline_status",
"description": "Obtém o status de um pipeline específico"
},
{
"name": "mcp_bitbucket_stop_pipeline",
"description": "Para a execução de um pipeline"
}
]
}
- Copie este arquivo para o diretório de configuração do Cursor:
# Para Linux
mkdir -p ~/.config/Cursor/mcp/
cp mcp.config.json ~/.config/Cursor/mcp/bitbucket-pipelines-mcp.json
# Para macOS
mkdir -p ~/Library/Application\ Support/Cursor/mcp/
cp mcp.config.json ~/Library/Application\ Support/Cursor/mcp/bitbucket-pipelines-mcp.json
# Para Windows
mkdir -p %AppData%\Cursor\mcp\
copy mcp.config.json %AppData%\Cursor\mcp\bitbucket-pipelines-mcp.json
-
Reinicie o Cursor para aplicar as alterações.
-
Agora você pode usar as ferramentas do Bitbucket Pipelines diretamente no Cursor, chamando-as com:
@modelcontextprotocol/bitbucket-pipelines-mcp
- Para acessar uma ferramenta específica, use:
@modelcontextprotocol/bitbucket-pipelines-mcp/mcp_bitbucket_list_pipelines
Uso com MCP
Este servidor implementa o Model Context Protocol (MCP), permitindo que modelos de linguagem interajam com o Bitbucket Pipelines. O servidor usa a interface StdioServerTransport, que permite a comunicação através do stdin/stdout.
Exemplo de uso com o SDK do MCP
import { Client } from '@modelcontextprotocol/sdk/client';
import { ChildProcessTransport } from '@modelcontextprotocol/sdk/client/child-process';
async function main() {
// Inicializa o cliente MCP
const client = new Client({
transport: new ChildProcessTransport({
command: 'node',
args: ['dist/index.js'],
env: {
BITBUCKET_ACCESS_TOKEN: 'seu_token',
BITBUCKET_WORKSPACE: 'seu_workspace',
BITBUCKET_REPO_SLUG: 'seu_repositorio'
}
})
});
// Lista as ferramentas disponíveis
const tools = await client.listTools();
console.log('Ferramentas disponíveis:', tools);
// Listar pipelines
const pipelines = await client.callTool('mcp_bitbucket_list_pipelines', { page: 1, pagelen: 5 });
console.log('Pipelines:', pipelines);
// Fechar o cliente
await client.close();
}
main().catch(console.error);
Desenvolvimento
Scripts Disponíveis
npm run build
: Compila o projeto TypeScriptnpm start
: Inicia o servidornpm run dev
: Inicia o servidor em modo de desenvolvimento usando ts-nodenpm test
: Executa os testes
Estrutura do Projeto
.
├── src/
│ ├── index.ts # Ponto de entrada do servidor MCP
│ └── tools/
│ └── bitbucket-pipelines.ts # Implementação das tools MCP
├── package.json # Dependências e scripts
└── tsconfig.json # Configuração do TypeScript
Implementando o Model Context Protocol
Este projeto utiliza o @modelcontextprotocol/sdk
para implementar um servidor MCP. As principais características são:
- Comunicação via stdio: O servidor se comunica através de stdin/stdout, o que permite integração fácil com LLMs.
- Formato padrão de tools: Todas as ferramentas seguem o formato definido pelo protocolo MCP.
- Tratamento robusto de erros: O protocolo MCP padroniza como os erros são comunicados ao cliente.
Contribuindo
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature
) - Commit suas mudanças (
git commit -am 'Adiciona nova feature'
) - Push para a branch (
git push origin feature/nova-feature
) - Crie um Pull Request
Testando com Comandos Diretos
Você pode testar o servidor manualmente usando os seguintes comandos:
Inicialização
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"name":"Test Client","version":"1.0.0","protocolVersion":"0.3.0","capabilities":{},"clientInfo":{"name":"Test Client","version":"1.0.0"}}}' | docker exec -i bitbucket-pipelines-mcp_mcp-server_1 node dist/index.js
Listar Ferramentas
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | docker exec -i bitbucket-pipelines-mcp_mcp-server_1 node dist/index.js
Chamar uma Ferramenta
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mcp_bitbucket_list_pipelines","input":{"page":1,"pagelen":5}}}' | docker exec -i bitbucket-pipelines-mcp_mcp-server_1 node dist/index.js