Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
/test/tmp/
/test/version_tmp/
/tmp/
**/logs/

# Used by dotenv library to load environment variables.
# .env
Expand Down
45 changes: 45 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Metrics/BlockLength:
Max: 100

Metrics/ClassLength:
Max: 1000

Metrics/MethodLength:
Max: 200

Metrics/CyclomaticComplexity:
Max: 20

Metrics/PerceivedComplexity:
Max: 30

Metrics/AbcSize:
Max: 30

Style/SymbolArray:
EnforcedStyle: brackets

Layout/EndOfLine:
EnforcedStyle: lf

Layout/ParameterAlignment:
EnforcedStyle: with_first_parameter

Layout/TrailingEmptyLines:
EnforcedStyle: final_newline

Layout/IndentationWidth:
Width: 2

Layout/IndentationConsistency:
EnforcedStyle: indented_internal_methods

Layout/EmptyLinesAroundExceptionHandlingKeywords:
Enabled: false

Layout/EmptyLineBetweenDefs:
EmptyLineBetweenClassDefs: false
EmptyLineBetweenModuleDefs: false
AllowAdjacentOneLineDefs: false
DefLikeMacros: ["should", "should_for", "context", "context_for", "setup"]
Enabled: true
58 changes: 58 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Model Context Protocol servers

Este repositorio es una colección de implementaciones de servidores Model Context Protocol (MCP) desarrollados por Buk. Los MCPs permiten a los modelos de IA acceder a servicios externos y ejecutar acciones en ellos de forma estructurada y segura.

## ¿Qué es un MCP?

Model Context Protocol (MCP) es un protocolo que permite a los modelos de IA interactuar con sistemas externos, proporcionando una interfaz estandarizada para acceder a datos y ejecutar acciones en diferentes servicios y plataformas.

## Tecnologías utilizadas

Los servidores de este repositorio están desarrollados con:

- [Ruby MCP SDK](https://github.com/modelcontextprotocol/ruby-sdk): SDK oficial para la implementación de servidores MCP en Ruby.
- Ruby 3.2+: Versión mínima requerida para ejecutar los servidores.

## Implementaciones disponibles

- [Jenkins MCP](jenkins/): Permite interactuar con servidores Jenkins para obtener información sobre builds y logs de ejecución.

## Requisitos generales

- Ruby 3.2 o superior
- Bundler
- Acceso a los servicios correspondientes para cada implementación

## Instalación general

1. Clona este repositorio:

```bash
git clone https://github.com/bukhr/mcps.git
cd mcps
```

2. Para cada servidor MCP que desees utilizar, sigue las instrucciones específicas en su respectiva carpeta.

## Configuración

Cada servidor MCP tiene su propia configuración específica. Consulta el README en cada carpeta de implementación para obtener instrucciones detalladas.

## Contribución

Agradecemos las contribuciones a este proyecto. Si deseas contribuir:

1. Crea un fork del repositorio
2. Crea una rama para tu funcionalidad (`git checkout -b feature/nueva-funcionalidad`)
3. Desarrolla tu implementación siguiendo el estilo del código existente
4. Asegúrate de incluir pruebas para tu código
5. Actualiza la documentación según sea necesario
6. Envía un Pull Request con tus cambios

## Licencia

Este proyecto está licenciado bajo la [Licencia MIT](LICENSE).

## Contacto

Para preguntas o soporte relacionado con este repositorio, puedes contactar al equipo de Ingeniería de Buk.
23 changes: 23 additions & 0 deletions src/jenkins/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# frozen_string_literal: true

source 'https://rubygems.org'

gem 'base64', '~> 0.2'
gem 'dotenv', '~> 2.8'
gem 'faraday', '~> 2.7'
gem 'json', '~> 2.6'
gem 'logger', '~> 1.5'
gem 'mcp', '~> 0.1'
gem 'puma', '>= 5.0.0'
gem 'rackup', '>= 2.1.0'
gem 'rake', '~> 13.0'

group :development, :test do
gem 'minitest', '~> 5.18'
gem 'minitest-reporters', '~> 1.6'
gem 'mocha', '~> 2.1'
gem 'pry', '~> 0.14'
gem 'rubocop', '~> 1.50'
gem 'shoulda-context', '~> 2.0'
gem 'webmock', '~> 3.18'
end
114 changes: 114 additions & 0 deletions src/jenkins/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
ansi (1.5.0)
ast (2.4.3)
base64 (0.3.0)
bigdecimal (3.3.1)
builder (3.3.0)
coderay (1.1.3)
crack (1.0.1)
bigdecimal
rexml
dotenv (2.8.1)
faraday (2.14.0)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-net_http (3.4.2)
net-http (~> 0.5)
hashdiff (1.2.1)
json (2.16.0)
json-schema (6.0.0)
addressable (~> 2.8)
bigdecimal (~> 3.1)
json_rpc_handler (0.1.1)
language_server-protocol (3.17.0.5)
lint_roller (1.1.0)
logger (1.7.0)
mcp (0.4.0)
json-schema (>= 4.1)
json_rpc_handler (~> 0.1)
method_source (1.1.0)
minitest (5.26.1)
minitest-reporters (1.7.1)
ansi
builder
minitest (>= 5.0)
ruby-progressbar
mocha (2.8.2)
ruby2_keywords (>= 0.0.5)
net-http (0.8.0)
uri (>= 0.11.1)
nio4r (2.7.5)
parallel (1.27.0)
parser (3.3.10.0)
ast (~> 2.4.1)
racc
prism (1.6.0)
pry (0.15.2)
coderay (~> 1.1)
method_source (~> 1.0)
public_suffix (6.0.2)
puma (7.1.0)
nio4r (~> 2.0)
racc (1.8.1)
rack (3.2.4)
rackup (2.2.1)
rack (>= 3)
rainbow (3.1.1)
rake (13.3.1)
regexp_parser (2.11.3)
rexml (3.4.4)
rubocop (1.81.7)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.47.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.48.0)
parser (>= 3.3.7.2)
prism (~> 1.4)
ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5)
shoulda-context (2.0.0)
unicode-display_width (3.2.0)
unicode-emoji (~> 4.1)
unicode-emoji (4.1.0)
uri (1.1.1)
webmock (3.26.1)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)

PLATFORMS
arm64-darwin-23
ruby

DEPENDENCIES
base64 (~> 0.2)
dotenv (~> 2.8)
faraday (~> 2.7)
json (~> 2.6)
logger (~> 1.5)
mcp (~> 0.1)
minitest (~> 5.18)
minitest-reporters (~> 1.6)
mocha (~> 2.1)
pry (~> 0.14)
puma (>= 5.0.0)
rackup (>= 2.1.0)
rake (~> 13.0)
rubocop (~> 1.50)
shoulda-context (~> 2.0)
webmock (~> 3.18)

BUNDLED WITH
2.5.14
Loading