MCP: puente hacia la productividad

Raúl López — Product Engineer

MCP: puente hacia la productividad

Hacia un equipo IT aumentado — agentes con acceso seguro a tus sistemas.

Platform Engineering Agents Human in the loop

¿Quién soy?

Raúl Julián López Caña

Raúl Julián López Caña

Product Engineer en Galp

Freelance Platform · DX · AI tooling

Recorrido

01

Contexto

De asistente a agente · El reto · El mapa del ecosistema

02

Construyendo un MCP

Qué es · MCP propio · Capabilities como módulos

03

Experiencia real

Catálogo · E2E · Debugging · Impacto

04

Cierre y Q&A

Equipo IT aumentado · espacio para conversar

De asistente a agente

¿Cómo hacemos que la IA trabaje con nosotros?

El cuello de botella ya no es el modelo: es el acceso a tus sistemas.

Asistente

Responde preguntas. Tú orquestas el resto.

Agente

Razona, ejecuta acciones y encadena tareas.

El reto

Aumentar la productividad del equipo IT

Cómo — qué hay que descubrir
Procesos knowhow · deploy · backoffice ops · ...
Tecnologías 3rd parties · CI/CD · Dev Stack · ...
Sistemas infraestructure · database · APIs · ...
Integraciones Jira · Confluence · Slack · Notion · ...
Para qué
Reducir el tiempo entre necesidad y entrega de valor.

MCP: new friend on the block

Model Context Protocol — conectar agentes con sistemas de forma estándar.

LLM

Cerebro

Agente

Decide qué hacer

MCP

Le permite hacerlo

MCP ≠ Agente

Expone capacidades y contexto. No decide por sí mismo. No sustituye al agente.

Mapa de contexto del MCP

Codebase · repos · PRs · CI
APIs · contratos · servicios
Monitoring · logs · métricas
Database · datos · esquema
Docs · wikis · runbooks
La IA es tan autónoma como autónomo sea su acceso a tus sistemas.

Una capa MCP propia

Agente Nuestro MCP APIs Database Codebase Project Mgmt. Monitoring

Beneficios

  • 01
    Abstracción El agente no ve cada detalle de sistema
  • 02
    Seguridad Un único punto para políticas
  • 03
    Observabilidad Qué tools se usan y cómo
  • 04
    Escalabilidad Nueva capability sin tocar el agente
  • 05
    Gobernanza Qué operaciones están disponibles

Capabilities = módulos

Cada módulo es una capability con la que el agente puede interactuar.

module

project-mgmt

exports 2 tools
  • fnsearch-tickets()
  • fnupdate-ticket()
module

codebase

exports 2 tools
  • fnsearch-code()
  • fncreate-pr()
module

observability

exports 2 tools
  • fnsearch-logs()
  • fnget-metrics()
module

database

exports 1 tool · RO
  • fnquery(ro)
module

docs

exports 2 tools
  • fnsearch()
  • fnget-document()

MCP key concepts

Conceptos clave

MCP Client

Host que se conecta y consume el MCP.

Claude Code Cursor Tu app

MCP Server

Expone capabilities al client.

Tools Acciones que el modelo puede invocar
Prompts Plantillas reutilizables de instrucción
Resources Contexto legible · docs · datos · URIs

SDK TypeScript v2

1 · Crear servidor MCP src/index.ts
createServer(() => {
  const server = new McpServer({
    name: 'custom-mcp',
    version: '1.0.0'
  });

  registerDocsCapabilities(server);

  return server;
});
2 · Tool en una capability capabilities/docs/index.ts
export function registerDocsCapabilities(server: McpServer) {
  server.registerTool(
    'docs-query',
    {
      description: 'Search docs by topic',
      inputSchema: z.object({
        query: z.string().describe('Topic to search')
      })
    },
    async ({ query }) => {
      const [confluence, notion] = await Promise.all([
        confluenceQuery(query),
        notionQuery(query)
      ]);

      return {
        content: [{
          type: 'text',
          text: JSON.stringify({ confluence, notion })
        }]
      };
    }
  );
}
3 · Definir un prompt capabilities/docs/prompts.ts
server.registerPrompt(
  'summarize-doc',
  {
    title: 'Summarize document',
    description: 'Summarize a doc for the team',
    argsSchema: z.object({
      uri: z.string().describe('Document URI')
    })
  },
  ({ uri }) => ({
    messages: [{
      role: 'user' as const,
      content: {
        type: 'text' as const,
        text: `Summarize ${uri} in 3 bullets.`
      }
    }]
  })
);

User · Agent · MCP

User Agent MCP ¿Qué es un thestral y cómo lo añado? tools/list() encuentra tools disponibles docs-query("thestral") archivos relevantes openapi-get-ops() OpenApiOps[] database-get-catalog() DatabaseEntry[] respuesta compuesta

Qué hemos conectado

APIsdescubrir · encadenar
DBsread-only
Docswikis · repos
Obs.logs · traces
PMtickets · deps
Coderepos · PRs

E2E de una feature

Negocio detecta una nueva necesidad.
01ContextoEntrada
02DocsMCP
03RefineMCP
04CodeAgente
05TestsAgente
06ReleaseObjetivo
No una tarea aislada: un flujo completo.
Demo · ≤2 min

Walkthrough
Capabilities por etapa del flujo

Debugging

El cliente reporta que X está fallando.

Investigar

trazaslogs
MCP

Contrastar

códigoPRs
MCP

Hipótesis

formularproponer
Construye una hipótesis y la contrasta entre sistemas.
Demo · ≤2 min

Correlación
logs ↔ traces ↔ código

Impacto

Antes

Seis herramientas, copiar contexto, depender de quien “conoce el sistema”.

JiraGitHubGrafanaWikiDB
Después

Una conversación con el agente que ya tiene las capabilities.

Investiga X, correlaciona logs y abre un ticket con la hipótesis.
×5 más rápido

Velocidad de desarrollo

Ciclos más cortos de idea a entrega.

autonomía

Equipo más empoderado

Descubrir el sistema sin depender del “experto”.

×10 diagnóstico

Más velocidad al diagnosticar

De síntoma a hipótesis en una conversación.

Ops backoffice

Backoffice más ágil

Mejora en operativas comunes del día a día.

Conclusión

No sustituir al equipo IT: construir un equipo IT aumentado.

No un agente más inteligente: acceso seguro a tus sistemas que le permita hacer más.

Gracias / Q&A

Gracias por asistir al evento. ¿Alguna pregunta?

Abrimos el canal: dudas sobre MCP, agentes o cómo llevarlo a vuestros sistemas.

Canal abierto MCP Agentes Productividad