mcp_bitbucket_pipelines

ygorpinto/mcp_bitbucket_pipelines

3.2

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)

  1. Clone o repositório:
git clone [url-do-repositorio]
cd bitbucket-pipelines-mcp
  1. Configure as variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações
  1. Inicie o servidor:
docker-compose up -d
  1. 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
  1. 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
  1. 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

  1. Clone o repositório:
git clone [url-do-repositorio]
cd bitbucket-pipelines-mcp
  1. Instale as dependências:
npm install
  1. Configure as variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações
  1. Compile o projeto:
npm run build
  1. 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:

  1. Certifique-se de que o servidor Docker MCP está rodando:
npm run docker:up
  1. 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
  2. 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"
  ]
}
  1. Salve o arquivo e reinicie o Cursor.

  2. 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:

  1. Certifique-se de que o servidor Docker MCP está rodando:
npm run docker:up
  1. 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"
    }
  ]
}
  1. 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
  1. Reinicie o Cursor para aplicar as alterações.

  2. Agora você pode usar as ferramentas do Bitbucket Pipelines diretamente no Cursor, chamando-as com:

@modelcontextprotocol/bitbucket-pipelines-mcp
  1. 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 TypeScript
  • npm start: Inicia o servidor
  • npm run dev: Inicia o servidor em modo de desenvolvimento usando ts-node
  • npm 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:

  1. Comunicação via stdio: O servidor se comunica através de stdin/stdout, o que permite integração fácil com LLMs.
  2. Formato padrão de tools: Todas as ferramentas seguem o formato definido pelo protocolo MCP.
  3. Tratamento robusto de erros: O protocolo MCP padroniza como os erros são comunicados ao cliente.

Contribuindo

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Commit suas mudanças (git commit -am 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. 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