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.

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.

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