¡Aprende MCP! Para principiantes + Crear nuestro primer MCP DESDE CERO
1981 segments
Hoy te voy a explicar qué es el MCP
Model Context Protocol. El protocolo de
contextos de modelo. Básicamente es un
protocolo que está sonando muy fuerte
por todas las redes, por todos los
sitios y que se está poniendo muy de
moda. ¿Y por qué? Porque estamos
hablando nada más y nada menos que un
protocolo de comunicación que permite a
los modelos de lenguaje como puede ser
CHGPT, Cloue y todos estos interactuar
con el mundo exterior porque amigos
tenemos un problema con CH GPT, cloue y
cualquier inteligencia artificial que te
guste. Y es que tú muchas veces
seguramente dices, "Ah, vale, pues
quiero preguntarle una cosa." Su
conocimiento puede ser muy grande, pero
lo que puede llegar a hacer es más bien
limitado. Por ejemplo, tu HGPT no le
puedes pedir que te cree un repositorio
o una pull request directamente en
GitHub. Te puede decir cómo hacerlo,
pero no lo hace. Eso es porque está
limitada, su campo de acción está
limitado. En cambio, ¿qué pasa? Pues que
con los MCP, con este protocolo, lo que
podemos hacer es muy fácil. De hecho,
vamos a hacer un croquis para que lo
veamos todos s super bien. Tú imagínate
que tenemos aquí pues nuestro chat GPT o
Cloue o lo que vosotros queráis o por
ejemplo también puede ser GH copilot o
incluso Winsurf o Cursor, lo que
queráis. Aquí estamos hablando, aquí
estaríamos hablando justamente de los
clientes. Esto sería el cliente en
realidad, ¿vale? El cliente. ¿Por qué?
porque es la, digamos, la parte que está
como más pendiente de consumir, ¿no? Y
nosotros muchas veces lo que hacemos es
preguntarle algo. Nosotros decimos,
"Bueno, vamos a ponerle aquí un
desarrollador, ¿vale?" Y este
desarrollador que está en modo oscuro,
me hace mucha gracia que cuando se pone
en modo oscuro se le va la se le va la
olla. Claro, cuando tú le pides
información, pues la información que él
se sabe, pues perfecto, te la devuelve y
ya está. ¿Vale? Esto es como, por
ejemplo, si le haces una pregunta, le
haces una pregunta, ¿vale? Le dices una
pregunta y lo que te devuelve es la
respuesta. Esto está muy bien porque
esto es fácil. Ahora, ¿qué pasa si tú en
lugar de hacerle una pregunta, ¿vale?, y
una pregunta de la respuesta, lo que
dices, "No, no, yo lo que quiero es que
haga una acción, ¿vale? Por ejemplo, una
acción, yo qué sé, puede ser, mira, esto
vamos a decir que haga una acción. El
problema es que al hacer una acción no
es capaz, no tiene forma de de decir,
ostras, ¿cómo lo puedo hacer esto? ¿Cómo
puedo crear un repositorio? O cómo o
cosas incluso que son en tiempo real,
como por ejemplo, ¿qué tiempo hace hoy?
Vale, ¿qué tiempo hace? ¿Hay sol en mi
ciudad? ¿Hay sol? Claro, ahora mismo,
por ejemplo, CHGPT no es capaz de darte
cosas en tiempo real. Tendría que buscar
a internet, que al menos eso ya sería un
MCP, ¿no? Un model context protocol que
al menos puede buscar en internet. Pero
a mí me gustaría que tuviese como más
acciones diferentes. Vale, pues, ¿qué
pasa ahora? Pues que no es capaz de
hacerla. Para arreglar esto, lo que
vamos a hacer es otra cosa que vamos a
poner aquí en medio. Aquí vamos a tener,
mira, vamos a tener aquí la acción. Yo
le digo, "Vale, acción." Y lo que va a
hacer aquí, en este caso, en lugar de
devolvernos directamente, vamos a crear
nosotros lo que le vamos a llamar un
MCP, ¿vale? que lo vamos a poner eh aquí
en medio, lo vamos a poner de color
verde, un MCP. ¿Y qué es el MCP? Este,
el MCP que vamos a tener aquí, que este
va a ser pues el servidor. De hecho, la
comunicación, la comunicación realmente
sería el MCP, ¿vale? Y ahora os
explicaré, luego veremos por qué, ¿vale?
Pero esto sería más servir el MCP porque
es un protocolo de comunicación. Y aquí
lo que tendríamos es lo que lo que sea
que queramos hacer. Por ejemplo,
imagínate que es conectarse a la API de
GitHub, por ejemplo. Vale, imagínate que
lo estamos diciendo acción, crea una
pool request con una solución. Esto lo
vamos a ver hoy, ¿eh? O sea, no os
preocupéis que lo vamos a ver hoy
perfectamente de cómo hacer esto, ¿vale?
Vamos a ver cómo lo podemos crear
nosotros e incluso cómo podemos ya
utilizar servidores que otra gente ha
hecho, que eso es lo que lo hace todavía
más interesante de que la gente ahora va
a poder comerciar con estos MCPs. Bueno,
pues aquí lo tendríamos. tendría que
aquí pasa, aquí le pregunta, "Oye, ¿cómo
puedo hacer esto?" El servidor le trata,
le dice, "Vale, esto es conectándose a
la Gijcam, no sé qué." Le vamos a pasar
aquí toda la información con toda la
información que le tengamos que enviar.
Esto al final lo que hace es devolverle
todo lo que ha hecho, ¿vale? El servidor
se lo devuelve aquí, ¿vale? se lo
devuelve al cliente, en este caso, al
modelo, y el modelo una vez que ya tiene
esta respuesta, es que entonces se lo
pasa a devolver al al a nuestro usuario,
¿vale? O sea, voy a ponerlo justo aquí
para que se note. O sea, que tened en
cuenta que primero la acción, segundo lo
que hace el cliente en este caso es
mirar cuál es el MCP que tiene que
utilizar y pasarle la información.
Tercero, tendríamos aquí la respuesta,
¿vale? La respuesta del servidor. Y
finalmente lo que hace nuestro modelo o
nuestra inteligencia artificial es
tratar esa información y enviársela de
forma ya tratada, ¿vale? O sea, que ya
lo que va a decir es entender la
respuesta y decir, "Vale, esta es la
respuesta que quiere mi usuario."
Perfecto, pues le voy a dar una
respuesta tratada con. Y esto es
importante porque vais a ver que aunque
nosotros desde el servidor le pasemos un
Jason, ¿vale? Si nosotros en el servidor
hacemos, le pasamos un Jason, un voleano
o lo que sea, la inteligencia artificial
va a ser capaz de entender esta
respuesta y decir, "Ostras, si me está
devolviendo este Jason", significa tal,
sin necesidad de hacer ningún tipo de
programación, la inteligencia artificial
va a entender la respuesta del Jason y
la va a tratar para dársela bien al
usuario. ¿Vale? No te preocupes que todo
esto, todo esto que estamos haciendo hoy
lo vamos a ver todo, todo lo vamos a
hacer hoy y lo vamos a ver paso a paso y
desde cero, ¿vale? Tanto creándolo
nosotros desde cero como eh utilizar
MCPs que ya existen. ¿Vale? Muy bien.
Entonces, para que entendamos
rápidamente qué es MCP es Model Context
Protocol, un protocolo de comunicación.
Comunicación entre qué, pues entre los
modelos de inteligencia artificial y
servidores donde vamos a poder
conectarnos con APIs, con bases de
datos, con servicios externos, con el
sistema de archivos de nuestro
ordenador. Para que lo entiendas fácil,
el model Context Protocol sería como un
USB donde mientras que el USB para
conectar dispositivos a diferentes
periféricos y accesorios, el MCP es una
forma estandarizada para conectar
modelos de inteligencia artificial a
fuentes de datos y herramientas
externas. ¿Vale? Eso es lo más
importante. Ahora, la pregunta del
millón, ¿de dónde sale esto del Model
Contest Protocol? ¿De dónde ha salido
este protocolo? Este protocolo que
sepáis que lo creó la gente de
Anthropic, ¿vale? Que son los de Cloue y
ahora mismo es totalmente abierto. De
hecho, tenéis repositorios donde puedes
hacer y puedes mirar un montón de cosas.
Tienes SDC, los tienes en TypeScript, en
Python, en Java, en Codlin y en CSARP.
Vale, ahí los tienes. Type, Python,
Java, Colin y Csarp. Por ahora son los
SDK oficiales, así que puedes crear MCPs
en cualquier lenguaje de estos. Ahora,
en la documentación, la documentación es
impresionante, está muy bien, muy bien
explicada, la de Python, la de
TypeScript, todas está muy bien. Y en
todas te va a explicar cómo empezar
desde cero. Mira, aquí tenemos un poco
lo que os comentaba. Yo lo he hecho de
otra forma, pero aquí tendríais un poco
esto, ¿vale? Nosotros no vamos a pasar
por esto. Os lo voy a explicar yo, o
sea, lo haremos sobre la marcha, ¿vale?
para no perder mucho el tiempo. Pero
cuando veáis aquí que pone, por ejemplo,
para desarrolladores server y para
desarrolladores de cliente, para que
entendáis esto, para los clientes sería
CHGPT, Winsurf, Cursor, Visual Studio
Code, eh Clou, eso serían los clientes,
esos son los client developers. Nosotros
nos vamos a enfocar hoy en los server
developers porque lo más interesante es
que creamos nosotros los MCPs que vamos
a consumir, ¿vale? Entonces, no vamos a
hacer la parte del cliente porque ya
tenemos clientes como Visual Studio Code
y eso no no es necesario que lo hagamos
nosotros, pero por otro lado vamos a
hacer la parte del servidor. Eh, dice,
mira, me dice sistemas argentinos que
dice que hay más SDC. Como ya os he
comentado, estos son los oficiales de
Model Contest Protocol, pero hay muchos
más. Por ejemplo, hay de Rust, hay de
Go, pero no están aquí porque no son
oficiales. Hay algunos que están un
poquito que les falta una cosita.
funcionar más o menos funcionan bien
todos, pero los oficiales de Model
Contex Protocol que ellos están ahora
mismo manteniendo son estos de aquí,
¿vale? Entonces, esto, como os he dicho
al inicio, como lo creó la gente de
Anthropic, solo se podía utilizar con
cloud. Ahora, este protocolo, como se ha
hecho bastante abierto, pues se ha
convertido en un estándar que ya todo el
mundo lo está utilizando. De hecho, hoy
veremos cómo utilizarlo en Cloude, pero
también podríamos ver lo vamos a ver
cómo se utiliza con Visual Studio Code y
vas a ver que se utiliza exactamente lo
mismo. Y ahora la pregunta del millón,
¿por qué deberías aprender MCPs? A ver,
¿por qué aprender Model Context
Protocol? ¿Y por qué me debería quedar?
Mira, te voy a decir, ten en cuenta que
los MCPs una de las cosas más
importantes es que te va a permitir
crear agentes de inteligencia
artificial. ¿Por qué? Porque eso es el
futuro y además necesitamos que las
inteligencias artificiales sean
autónomas para hacer un montón de cosas
y para eso vamos a necesitar MCPs. Así
que como lo más normal para que una
agente funcione es que pueda de forma
independiente hacer cosas, vas a tener
que crear MCPs. Pero hay un montón de
cosas también. Necesitas al menos saber
lo que es porque cada vez hay más
integraciones. Hoy vamos a ver unas
cuantas, pero así vas a entender cómo
utilizarlos y cuándo utilizarlos. La
flexibilidad para poder cambiar entre
proveedores y vendedores de lenguajes. O
sea, podrías cambiar de CH GPT a Cloue
gracias a que tienes un MCP que de
alguna forma te va a servir como puente
entre ellos para no tener que ser
específico de Char GPT o cloue porque el
MCP va a ser compatible con los dos.
mejores prácticas para asegurar datos
dentro de tu infraestructura. Son los
MCPs son mucho más privados en el
sentido de que lo mantienes tú, vas a
poder llamar a APIs, vas a poder hacer
lo que quieras. Es un estándar abierto y
es un estándar de facto y la comunidad
cada vez es más grande. De hecho, para
que veáis cómo es la comunidad, fijaos
que hay páginas como esta de mcp.so
en las que tienes un montón de
servidores que la gente ya ha creado de
MCPs, por ejemplo, para conectarte con
los servicios de Clfler, para conectarte
directamente con la base de datos que
tienes en Neon, con, yo que sé, para
preguntarle directamente a Perplexity
desde la inteligencia artificial. Es que
hay un montón y cada vez hay más. De
hecho, hoy vamos a ver unos cuantos y
los vamos a utilizar para que veas cómo
de potente es. ¿Vale? Y aquí la idea
también, y esto también es interesante
para eh aprenderlo, es que va a haber
mucho mercado. Como puedes ver, aquí
estamos viendo que hay ya un catálogo de
MCPs. Y la idea, quién sabe, es que ya
están hablando de por qué no hacer MCPs
que sean de pago, ¿sabes? Que tengan una
suscripción. Todo ese tipo de cosas se
pueden hacer. Al final del curso os
comentaré cómo se está empezando ya a
trabajar en esto, porque incluso los
MCPs puedes iniciar sesión. es bastante
interesante y luego te lo comentaré,
¿vale? Mucho más adelante cuando ya
veamos los ejemplos más más típicos. Y
la mejor noticia de todas, ¿vale?, es
que Open AI, la gente de HGPT, ya ha
aceptado este protocolo como la forma
correcta de proveer de contexto y
herramientas a los LLM, o sea, ya para
el SDK de agentes de Open AI, el
oficial, ya ellos están utilizando
también MCPS, así que ya podéis ver que
no es una cosa que sea de un sitio en
concreto, sino que es que cada vez más y
más lo están utilizando. Es que ya se ha
convertido en el estándar de facto, así
que te tiene que sonar. Vale, ya tenemos
esto, ya tenemos la explicación. Vamos a
probar nuestro primer MCP para ver, oye,
¿cuál es la utilidad real de todo esto?
¿No? ¿Para qué sirve realmente los MCPs?
Bueno, si vamos directamente al
repositorio de la parte de servidores
del Model Context Protocol, aquí tenemos
un ritmi brutal, pero fíjate que tenemos
ya una selección de servidores de
referencia de Google Maps, Google Drive,
de Cir Party, hay un montón, ¿vale?
Podríamos elegir uno, el que el que
queramos, pero yo me voy a quedar y
vamos a probar. El primero que vamos a
probar va a ser uno que es bastante, hay
bastante sencillitos, ¿vale? Pero vas a
ver con esto ya cómo de potentes son.
Por ejemplo, hay aquí ya uno que es data
and file system, por ejemplo, un MCP que
lo que te permite es utilizar tu sistema
de archivos. Esto es un MCP que lo que
te da la posibilidad de hacer
operaciones en tu sistema de archivos.
Imagínate que estás hablando a
inteligencia artificial y le dices,
"Léeme este archivo, elimina este
archivo, mu mueve este fichero aquí, eh,
recupera los metadatos, todo este tipo
de cosas, ¿no? Vale, pues aquí lo
tendríamos. Ahora, para utilizar esto,
esto no hace falta programarlo porque ya
está hecho, ¿no? Y por lo tanto ya no
tendríamos que hacer absolutamente nada.
Hay dos formas normalmente de utilizar
MCPs, una utilizando Docker, ¿vale? Y
otra utilizando NPX, que suele ser un
poco la más sencilla de todas. Ahora
vamos a hacer una cosa. Voy a abrir
cursor. Ay, cursor Clou, perdón, cursor,
no, vale, aquí lo tenemos. Lo cierto es
que es raro porque aunque Cloue es el
primero, o sea, es de Antropic, lo
cierto es que es un poco complicadeta al
principio cómo entrar y cómo
configurarlo, ¿vale? Así que tendríamos
que hacer deamos aquí settings y aquí en
settings te aparecerá esta ventana y
aquí en developer vas a ver que tienes
cloud, puedes recibir información como
promps, bueno, eh archivos adjuntos
especializado en servidor utilizando los
model context protocol, ¿vale? Y te dice
get started o te dice edit config. Si tú
le das a edit config, lo que te hace es
que está muy bien, muy mal montado por
ahora, ¿eh? Vale, lo que hace es
directamente decirte el archivo en el
que tienes la configuración Jason.
Bueno, vamos a abrirlo con Visual Studio
Code y ya tenemos por aquí, ¿vale? Ya
tenemos aquí el archivo. Fíjate que es
un archivo Jason MCP Servers y aquí
tiene un objeto vacío. Justamente ese
objeto vacío es donde tengo que poner
este file system. Este de aquí me lo voy
a copiar todo para no cagarla, ¿vale?
Así que vamos a poner esto. Así hay unas
cositas aquí que tenemos que cambiar.
Vamos a ver cómo funciona esto. En MCP
Servers tendríamos el nombre del MCP,
que esto es un nombre decorativo. O sea,
esto tú le puedes poner aquí lo que tú
quieras, ¿vale? Pero bueno, está bien
que tenga sentido el nombre. En este
caso está utilizando el comando NPX.
Este argumento es para aceptar la
instalación de lo que haga falta. Y esto
sería el paquete que va a ejecutar,
¿vale? El Model Context Protocol Server
File System. Esto es un model context
protocol, digamos, oficial dentro de lo
que cabe, que te permite llegar y
utilizar el sistema de archivos de tu
ordenador. Aquí tendrías que pasarle los
directorios a los que les das permiso.
Importante, ¿no? Porque no va a tener
acceso a todo tu ordenador de repente,
sino que tú le vas a indicar a qué
directorios quieres que tenga permiso.
Yo le voy a indicar, por ejemplo, que le
vamos a dar permiso solo al escritorio.
¿Vale? Voy a guardar los cambios. Aquí
guardo los cambios. Y aquí en Cloud
ahora lo que voy a hacer porque ya os
digo que no está muy bien montado, luego
vais a ver que Visual Studio Code está
mucho mejor montado. Voy a cerrar Cloud,
voy a volver a abrirlo y ahora vamos a
ver un pequeño cambio. Fíjate que ahora
aquí ha aparecido como una caja de
herramientas y me pone 11 y me dice 11
herramientas MCP disponibles. Si tú le
das un clic, te va a indicar todas las
herramientas MCP que tiene, que ha
cargado, ¿no? crear directorios, ver el
sistema de ver la lista de de de
directorios, veritar un archivo, retomar
o tomar lo la información de un archivo,
listar un directorio, mover un archivo.
¿Ves? Aquí tenemos como las diferentes
herramientas que tiene un MCP. Luego
vamos a crear nosotros un MCP para que
veas cómo se crea esto y de dónde sale
esta información. Pero ahora ya que
tenemos esto, le puedo decir, "Venga,
pues ya, ¿qué archivos tengo en mi
escritorio?"
Vale, le preguntamos y lo que va a hacer
automáticamente la inteligencia
artificial va a decir, "Ostras, teniendo
en cuenta que tiene un MCP con el
contexto de de es del sistema de
archivos, fíjate que ya he entendido que
tiene que preguntar y utilizarlo. Te va
a pedir justamente permisos porque, y
ojo, cuidado con esto, tened mucho
cuidado con los MCPs que instaláis por
ahí. Hay muchos MCPs que lo que hacen es
robarte tokens, robarte información, que
te puede intentar enviar la información
de la conversación, un montón de cosas.
Tened cuidado con este tipo de cosas.
Siempre instalad MCPs que sean de
confianza, ¿vale? Porque se están
encontrando ahora como está tanto el
hype, mucha gente los está instalando y
ya te lo está avisando por aquí.
Entonces, le puedes decir, le puedes dar
permiso una vez o para todo el chat. Yo
le voy a decir para todo el chat, ¿vale?
O sea, la conversación que estamos
teniendo. Fíjate que ya ahora como tiene
que ejecutar otra herramienta, pues
también me está pidiendo permiso, ¿vale?
Otra vez. Ahora, siempre que sea la
misma conversación, ya no me pedirá otra
vez. Fíjate que aquí pues ya tenemos
todos los archivos y ya me lo está
indicando. Ahora ya tenemos aquí como
esa integración de algo externo que es
mi ordenador con esto que podría haber
sido CH GPT Visual Studio Code, hubiera
sido lo que queramos, pero fijaos que me
ha dado la información que tengo
justamente si voy aquí a mi desktop,
¿vale? ¿Veis aquí que tengo estos vídeos
y tal? Pues justamente ha encontrado
esto. Le podríamos pedir más cosas. Por
ejemplo, le podría decir, mira, voy a
hacer más pequeño esto. Y le puedo
decir, crea una carpeta vídeos y mete
ahí todos los ficheros
punp. ¿Y por qué te quiero enseñar esto?
Para que veas cómo de potente son los
MCPs, porque de alguna forma lo que está
haciendo es que ya estamos controlando
nuestro ordenador. Fíjate ahora. Claro,
como son diferentes herramientas las que
tengo que ejecutar, me va a pedir
permiso para cada herramienta, ¿vale?
Pero fíjate que ya está moviendo cada
uno de los ficheros. No va muy rápido,
pero lo va haciendo porque claro, como
que te lo va explicando, no sé qué, pero
fíjate que los está moviendo y los está
moviendo aquí en vídeos. justo lo que le
he pedido que haga de forma, yo se lo
estoy pidiendo de una forma, eh, claro,
se lo estoy hablando y luego vais a ver
cuando nosotros creemos nuestro MCP que
no le vamos a indicar cómo lo tiene que
hacer, sino que es mucho más declarativo
que eso. Con la inteligencia artificial
vas a ver cómo utilizar MCP
automáticamente. ¿Vale? Fíjate que
además, mucho más lejos que esto, una
vez que ya tienes acceso a lo que sería
tu sistema de archivos, puedes ir mucho
más allá, porque al final lo que puedes
hacer es, imagínate, le voy a decir,
crea el guion de un curso para explicar
los MCP, model Context
Protocol en formato row mardown y
guárdalo en el desktop con el nombre de
guion.md. ¿Qué estamos haciendo aquí?
Ahora ya estamos haciendo que tenga una
integración de, por un lado, estamos
generando con la inteligencia artificial
cierta información y por otro lado lo
que estamos haciendo aquí es
directamente que lo guarden nuestro
sistema de archivos. ¿Vale? Aquí es
donde ya os estoy comentando esto, que
es tan importante de cómo potenciar o
elevar el nivel de nuestra inteligencia
artificial, porque nuestra inteligencia
artificial digamos que tiene pues eh la
posibilidad de hacer cosas más estáticas
utilizando su inteligencia y todo esto,
pero lo que estamos haciendo aquí es que
tenga una integración mayor. Esto es con
nuestro ordenador, pero ya veréis más
adelante que podríamos tener incluso
incluso para otra otro tipo de cosas.
Todavía está escribiendo esto, por eso
está tardando, ¿eh? Vale, ahora me dice
claro, write file todavía no había
utilizado. Vale, entonces
allow desktop, veis, aquí tengo el guion
creado. Bueno, esto va a ser una
salvajada con un ejemplo tan sencillo.
Ya veis aquí lo que hemos hecho en un
momento. Mira, vamos a abrirlo con set
en un momento. Y ya lo tenemos aquí, el
guion que me lo ha creado directamente
en el ordenador. Vale, muy bien. Bueno,
pues perfecto. Esto es uno de los
ejemplos. Vamos con otro ejemplo
todavía. más brutal, porque normalmente
una cosa que vais a querer hacer es
poder hablar con una base de datos.
Claro, lo que pasa es que CHGPT o Cloud
o todos estos lo que hacemos muchas
veces es directamente pasarle los datos
porque no le podemos decir, "Oye,
directamente conéctate a la base de
datos y extrae la información, pero con
un MCP sí que lo podemos hacer." ¿Cómo
lo podemos hacer? Bueno, igual que
tenemos aquí el de File System, vamos a
ver que tenemos uno, por ejemplo, de
Postgress. Aquí veis que tenemos unos
cuantos de Slack, Schoolight, GitHub.
Vamos a ver este de Postgress, ¿vale? Y
este model context Protocol lo que tiene
es que se puede conectar a una base de
datos, a cualquiera, no hace falta que
sea local, se puede conectar a una base
de datos que esté en producción, o sea,
eso no hay ningún tipo de problema. Y os
voy a explicar una cosita por si tenéis
problemas con esto, ¿eh? Pero ahora os
comento, ahora os comento. Primero me
copio esto, ¿vale? Que este ya está
hecho. No os preocupéis que luego vamos
a crear nosotros uno desde cero para que
veáis cómo se crea, ¿vale? Para que
veáis cómo se tiene que hacer esto
nosotros mismos. O sea, que no os
preocupéis, pero primero os quiero
enseñar un poco esto para que tengamos
el contexto de para qué sirven. ¿Okay?
Vale, entonces nos vamos otra vez aquí a
cloud, vamos aquí al settings. A ver si
tengo por aquí. Vale, fijaos que ahora
en settings me aparece el de file
system, que aquí lo podríamos borrar,
pero bueno, lo vamos a dejar. Le vamos a
poner edit config otra vez. A ver,
Visual Studio Code. En este caso, ¿qué
qué necesitamos? Necesitamos aquí
ponerle el connection string de la base
de datos. Yo voy a levantar una base de
datos en DB Engine. A ver, mira, tengo
aquí una demo database que no me acuerdo
qué tendrá, así que voy a conectarme.
Creo que tengo Outer Base Studio, que es
como un cliente de bases de datos. Vale,
demo database. A ver, voy a copiarme el
connection string. Voy a entrar a ver
qué tiene, que no me acuerdo. Ah, mira,
tiene vídeos. Mira, es como son de
ejemplo. Está muy chulo este cliente de
tablas de base de datos. No sé si lo
conocéis. Lo han comprado la gente de
Clfler. Es totalmente gratuito. Funciona
con SQ, con MySQL, PostGress SQL. Está
bastante bien. Y una cosa muy
interesante es que además tiene
inteligencia artificial. Le puedes dar
aquí y puedes decirle recupera todos o
el nombre.
de todos los vídeos, ¿vale? Y con
inteligencia artificial que funciona en
local, se integra totalmente con Bueno,
a ver, este era bastante fácil, ¿eh?
Pero bueno, que está bastante bien, que
está muy integrado y funciona muy bien.
Bueno, esta es la base de datos que
tengo y a la que nos vamos a a conectar,
¿vale? Entonces, a ver si ahora soy
capaz de A ver, voy a aquí me voy a
copiar el connection string y aquí vamos
a cambiar esto por esto de aquí. Una
cosa importante, sí, espérate, porque el
dominio yo creo que tiene que ser, o
sea, el protocolo tiene que ser este.
Este es el connection string, pero
normalmente el connection string
tendrías obviamente con password, con
nombre de usuario. En este caso, el
nombre de usuario es Postgress, porque
es el nombre por defecto que le hace
porque lo tengo ahí de demo. Pero tened
en cuenta que aquí pues podría ser que
le podáis poner el password o lo que
sea, ¿vale? Pero en este caso yo no
tengo, más que nada porque no tengo,
pero no porque no se pueda hacer. Así
que ya teníamos npx, esto sería lo
mismo. NPX, el menos es para aceptar que
instale todas las dependencias que
necesite sin preguntarnos. Esto es
importante porque si no nos haría una
pregunta y entonces no podría seguir
ejecutándose. Este es el paquete que
queremos instalar, en este caso Server
Postgress. Y aquí tenemos que pasarle,
sería la cadena de conexión. Entonces,
ahora que ya tenemos esto, voy a cerrar
esto por aquí. Esto lo puedo quitar.
Esto importante que la base de datos
esté levantada porque si no funciona.
Ahora no aparece, tengo que cerrar.
Vamos a abrir ahora otra vez cloud y a
ver ahora fíjate que ahora me ha añadido
una herramienta más, solo una. En este
caso está bastante más limitado, ¿no? No
se puede. Mira, query run run a read
only SQL query, por ejemplo, no se puede
hacer inserts, pero podríais crear
vosotros un MCP que sí que puede hacer
inser. Entonces, le podríamos preguntar
ahora va a entender que si le digo,
"Vale, enseña todos los usuarios que hay
en la tabla, ¿vale?" Lo que va a hacer
ahora es conectarse con el MCP. Bueno,
que se lo he puesto en inglés. Ves, me
ha dicho cuál es la query y ya me dice,
"Vale, voy a utilizar el MCP." Venga,
pues venga. Y ahora, vale, dice, aquí
tienes los usuarios de la base de datos,
o sea, como si tuviéramos un cliente. Y
esto es exactamente lo mismo que si yo
conecto aquí y me voy al users, ¿vale?
Pues vais a ver que es exactamente la
misma información entre uno y otro. Es
la misma información, pero claro, con la
diferencia que le podemos hacer
preguntas mucho más interesantes. Is
there any migle among the users? Claro,
le podemos preguntar preguntas mucho más
concretas, ¿sabes? Le podemos decir,
"Mira, no hay ningún usuario que se
llame Miguel porque estos son los
usuarios." O yo que sé, le podemos
decir, "Dime las tablas disponibles en
la base de datos." Porque a veces, a
veces se equivoca con esto. ¿Por qué?
Porque no sabe. Mira, ahora se ha
equivocado. ¿Ves? Igualmente, cuando se
equivoca intentando ejecutar un comando,
vais a ver que reintenta de una forma
distinta. Esto es una cosa que gracias a
que la inteligencia artificial es
inteligente permite hacer este tipo de
cosas, ¿no? De que intenta ejecutar este
SQL con nuestro MCP, se ha dado cuenta
que está mal y lo vuelve a intentar con
otra sentencia diferente y me está
dando. Como podéis ver, estas tablas que
tenemos aquí son exactamente las mismas
tablas que tenemos por aquí. Así que
ahora ya le podríamos llegar a decir,
"Busca en la tabla vídeos el vídeo más
reciente y dame la
URL y sugiéreme y sugiere una posible,
bueno, y sugiere una descripción para
subir a mi YouTube. Esto es lo que es
interesante, no solo lo conectamos a la
base de datos, sino que empezamos a
reutilizar también la inteligencia
artificial. utiliza el MCP para sacar la
información. El vídeo más reciente es
introducción a Python. Esta es el URL,
fue creado hoy mismo y aquí te sugiero
una descripción. ¿Vale? Entonces, ya
estamos viendo aquí una mejor
integración. Este sería el MCP, por
ejemplo, de base de datos, pero nos
falta otro tipo de MCP. Hemos visto uno
para para conectarnos de forma local a
nuestro ordenador. Hemos visto
conectarnos a una base de datos que
puede ser remota. Y ahora vamos a ver el
tercer tipo de MCP. que es utilizar una
API, que es el que vamos a crear desde
cero, pero antes vamos a utilizar
justamente el de GitC porque es uno de
los más interesantes. Pasa una tabla,
mira, me dice, "¿Puedes decir que pase
una tabla a CSV y guardarlo en un
fichero?" Vamos a intentarlo. Pasa la
tabla vídeos a CSV y guárdalo como
fichero vídeos.CSV en el desktop. Vamos
a ver. Normalmente sí, o sea, ya te digo
yo que normalmente eh se puede conectar
un MCP con otro, ¿sabes? Los puedes ir
conectando uno con otro. Mira, vamos a
darle aquí. Normalmente sí que no habría
ningún tipo de problema de que esto lo
hiciera. Eh, ves, tengo acceso al
desktop. Ahora está creando aquí. Vale,
aquí tenemos la información. Ahora me
pregunta para escribir el archivo porque
en esta conversación no lo ha hecho.
Entonces, claro, o sea, lo más
interesante de los MCP justamente es que
de repente lo que estamos haciendo es
dotarle de superpoderes a nuestra
inteligencia artificial. Entonces, por
un lado, lo que ha hecho es conectarse a
la base de datos. Los ha convertido en
formato CSV porque lo ha hecho la
inteligencia artificial. Ha obtenido la
información de la base de datos gracias
a uno del MCP. Luego ha verificado si
tiene acceso al desktop, luego ha
escrito el archivo CSV en el desktop y
ya está, ya lo ha hecho. Y me dice
justamente, "Vale, lo tienes aquí."
Vamos a ver si justamente aquí lo
tenemos. Aquí podéis ver que me ha
creado el punto CSV con la información.
O sea, que sí, los MCPs lo bueno que
tiene es que justamente tú puedes ir
integrando uno con otro sin ningún tipo
de de problema. ¿Qué diferencia hay
entre un RA y un MCP? Pues justamente lo
estamos viendo, Chapius, tú con un RA no
puedes hacer este tipo de herramienta.
No puedes hacer una herramienta que sea
eh leer o escribir en una base de datos
o en tu sistema de archivos. es
totalmente distinto. Un rag al final es
proveerle de documentos, texto,
referencia, pero no es tanto de que
pueda interactuar con ciertas cosas,
¿vale?, que se podría hacer, pero el RAG
sería simplemente para proporcionarle
información y aquí lo que estamos viendo
es más como para darle darle superperes,
es una cosa diferente, ¿vale? Entonces,
ya hemos visto dos que no está nada mal,
pero vamos a ver un tercero que sería el
de GitHub, ¿vale? Vamos a ver un tercero
que es para utilizar GitHub y es que
vamos para aquí atrás, vamos aquí
GitHub, ta ta. Aquí podemos ver que ya
tenemos un montón de de todo lo que
vamos a poder hacer, crear repositorios,
crear pullquest. Con este os va a volar
la cabeza, ¿eh? Y de hecho, os comentaré
un spoiler. Mirad, esto es todo lo que
podéis hacer con este. Aquí tenemos este
de GitHC. Esto es con Docker. Vamos a
utilizar NPX, ¿vale? Una cosa importante
por si os da problemas esto de NPX,
¿vale? Si os da problemas al utilizar
esto de NPX, es posible que os diga, "No
consigo el comando npx." Y vosotros
digáis, "Pero, ¿cómo puede ser si yo
cuando voy a la terminal sí que me
funciona el NPX?" Vale, vale. Tenéis que
tener en cuenta una cosa, es que el npx
es un comando de note. Si estáis
utilizando FNM o NVM o cosas así, no
estáis instalando Node global y por lo
tanto solo está para vuestro usuario y
no va a estar accesible desde cloud o
desde ciertas herramientas, ¿vale? Si
queréis aseguraros, por si os da ese
problema y no queréis tener problemas,
que sepáis que Node lo podéis eh
instalar de forma h global, lo
descargáis de aquí, ejecutáis el package
y ya está y ya lo tenéis en el sistema
de forma global, ¿vale? Por si tenéis
este problema, que lo sepáis que se
soluciona así de fácil, por si estáis
utilizando FNM, que en mi caso, pues
normalmente os puede dar ese problema.
Vamos a vamos a copiarnos el MCP de
GitHub. Hacemos otra vez lo mismo, ¿no?
Vamos aquí settings. Aquí en en
settings, en developer ya tenemos dos.
Vamos a añadir un tercero. Para eso
vamos a abrirlo con Z mismo para que no
entre en conflicto con Visual Studio
Code. Vale, ya tenemos el de File
System, tenemos el de Postgress y ahora
aquí vamos a poner el de GitHub, ¿vale?
El de Gitub me va a dar problemas con
una cosita porque claro, aquí tengo que
poner el Ghubal Access Token, pero
bueno, os voy a explicar una cosa. A
ver, una, voy a ver una cosa. Si yo
pongo esto, vale, vale, perfecto. Vale,
genial. Es que así puedo copiar el
Ghaubal token sí que lo veáis. Vale, voy
a hacer esto así y aquí pues lo copiaré
y ya está. GH personal access token.
Claro, necesitamos un token para poder
controlar todos nuestros repositorios de
GHub. Tenéis que ir a vuestras settings.
me pide ahí el authentication
code. Tenéis que ir hasta URL.
Gijha.com/settings/personal-access/new.
Si no, vais a settings y aquí en
personal access tokens en el fine grain
tokens. Os recomiendo mucho este y no el
clásico. El clásico es que te da acceso
a todo sin ningún tipo de control y no
tiene mucho sentido. En cambio este tú
le puedes decir, "Mira, voy a crear uno
para que lo veáis." Vale, aquí podéis
ponerle el nombre, eh, por ejemplo, pues
yo que sé, MCP token, una descripción,
el owner, cuándo expira. Podéis hacer
que no expire nunca, no es recomendable,
pero bueno, lo podéis hacer. Y aquí le
podéis dar acceso a repositorios en
concreto. Imagínate que solo quieres
trabajar en unos repositorios en
concreto o a todos los repositorios,
solo a los repositorios públicos. Aparte
de esto, también aquí tienes los
permisos. por ejemplo, es que claro, en
GH puedes hacer de todo, así que ten
cuidado con esto. Pero normalmente lo
que más vais a querer es que pueda
hacer, por ejemplo, pull request. Aquí
le diríais, "Vale, le voy a dar acceso
de escritura en las pull request y a
partir de aquí pues lo que veáis que
tenga sentido." Igual con los permisos
de cuenta, yo que sé, para bloquear a
usuarios, por ejemplo, para ISUS
también. Aquí veis, tenéis ISUS, pues
también le vais a querer dar a lo mejor
para cerrar ISUS, lo que sea. Vale, yo
ya he creado un personal access token
con un montón de de permisos para no
tener que hacerlo ahora, pero esto es lo
que tendríais que hacer para conseguir
el vuestro, ¿vale? Una vez que lo
tenéis, pues nada, os vais aquí, Gij
Personal Access token, lo pegáis. Bueno,
menos mal que solo os sale una parte y
no sale toda. Voy a ver si sale
demasiado. Nada, queda un montón.
Entonces ahí lo pegáis, ¿vale? Lo
guardáis y una vez que lo guardáis vamos
a cerrar. Aquí ya lo tendríamos. Pues de
nuevo tenemos que cerrar esto y volver a
abrir. Vale, vamos a Cloude. Y ahora,
fijaos que ahora tenemos 38
herramientas. Esto es una locura. Mira,
dame toda la información del usuario de
GitHub, Midudep. Y ahora lo que va a
hacer es utilizar este MCP donde vamos a
tenerlo. Vale. Vale. Ahora va a hacer
buscar usuarios y esto es brutal porque
vais a ver la potencia que tiene, porque
no solo va a hacer una llamada, una app
y ya está, sino lo que va a hacer es,
fijaos, mira, me ha buscado el usuario,
luego está buscando 1000 repositorios,
¿vale? está buscando mis repositorios y
me dice, "Vale, ya he buscado
repositorios. Ahora, get fill contents
from GitHub." ¿Por qué? Porque va a, no
sé qué está leyendo, pero está Ah, para
leer el ritmi. Mmd. Tu
ritmi. Vale, mira, aquí ha dicho que no
ha encontrado. Bueno, pues igual se ha
equivocado. No pasa nada, no pasa nada.
Error. Vale, ta. Basándome en toda la
información, bueno, igual ha tenido un
error ahí. Bet sabe por qué, pero bueno,
aquí podéis ver un montón de información
que ha sacado. Según se puede deducir,
estos son sus repositorios,
especialidad, no sé qué, no sé, esto es
totalmente gratis, eh, esto no hay que
pagar absolutamente nada. Actividad en
la comunidad, presencia en redes,
actividad reciente, o sea, contribución
a comunidad, o sea, todo esto lo está
sacando justamente gracias a hacer la
petición dentro de GitHub. Pensad,
bueno, dices, bueno, es que esto lo ha
hecho porque tiene esta información.
Pues mira, vamos a hacer algo. ¿Cuántas
tengo por revisar del proyecto de la web
oficial de la velada 5? Fíjate que ni
siquiera le estoy dando exactamente el
nombre, ¿sabes? Le estoy dando como un
nombre así. ¿Cuántas issos tengo por
revisar? la web oficial de la velada 5
ya buscado, dice, la velada web oficial,
ya detectado por el histórico, ha
entendido que que es la velada web
oficial, pero fíjate que yo no le he
dado exactamente el nombre del
repositorio, sino que por el contexto ha
entendido que me refería a este
repositorio, porque ya ha sacado antes
los repositorios y digamos que con esa
memoria ha dicho, "Ostras, es esta."
Vale, pues tienes 25 IS, debo tener más.
Seguramente las ha paginado, ¿no? Pero
mira, ya me está dando aquí una
respuesta. Soporte para múltiples vídeos
de entrenamiento por luchador. Isus de
corrección como mejoras visuales y de
accesibilidad. Vale, todo esto está muy
bien el tema de las ISUS, pero quiero ir
un poco más allá porque me he dado
cuenta que la web de la web oficial de
la velada, si no me equivoco, en el pack
Jason, Astro está en la 5.6.0
Y resulta que Astro acaba de sacar la
5.7, pues le podíamos decir, y aquí es
donde te puede volar un poco la cabeza,
es que le podemos decir, "Vale, crea una
pull request en el repositorio de la web
oficial de la velada para actualizar
Astro a su última versión disponible y
haz todos los cambios que sean
necesarios." Esto es lo que es brutal,
¿no? El tema de que claro, como tenemos
todo la potencia de la inteligencia
artificial, tenemos la integración con
nuestro repositorio de GitHub, esto lo
que nos va a hacer es que, bueno, vais a
alucinar porque no solo nos va a crear
una p request, nos va a hacer todos los
cambios de código y además nos va a
generar una descripción para la P
request, o sea, lo va a hacer todo de
una. Y es gracias a que tenemos el MCP
que puede ir mirando el contenido del
repositorio, ver todos los cambios que
tenemos, lo todo lo que tiene que hacer.
Así que está recuperando todo. ¿Ves?
Ahora ha recuperado el contenido del
packat Jason. Ahora dice, "Vale, hacer
un forket de repositorio, que no va a
necesitar hacer esto, pero seguramente
ahora fallará." Vale, pero esto está
bien que falle para que veamos también.
Mira, parece que hubo un error. Vale,
dice, "Pero voy a intentar crear una
rama directamente en el repositorio
original." Vale, vale. Pues le decimos,
"Venga, hazlo." ¿Por qué? Se ha dado
cuenta que sí ha cometido un error, pero
está creando la rama y ahora está
haciendo una query en postgres por culpa
de que tenemos todavía esto está
intentando aquí ahora mismo a ver si
cuela, ¿sabes? Pero mira, vamos a asumir
que la última versión de Astro es la
5.8, lo cual yo creo que puede ser que
sea la 5.8, no lo sé. Vale, ahora me
está diciendo editar el archivo del file
system.
Vale, ahora me está cambiando. No sé si
la 5.8. Igual se ha ido la olla. Parece
que no tengo permisos para editar
archivos directamente en el repositorio.
Obviamente no los tienes, ¿vale? Así que
me tendrías que crear la pull request y
ya está. A ver si me lo me la creas o
no. A ver si es capaz. La 5.7 es la
última. ¿Por qué? ¿Por qué habrá hecho
la
5.8? Bueno, a ver, vamos a ver hasta
dónde llega. Eh, mira, actualicemos el
archivo para que sea compatible as 3.8.
Vale, ahora está creando no sé qué.
Vale, en as ya no sé en 5.8.
fijaos en esto. Ha detectado que en la
última versión de Astro ya no es
experimental lo de SVG, lo cual es
verdad, lo cual es totalmente cierto. O
sea, que tenía tiene toda la razón en
eso. Lo de 5.8 se lo ha inventado un
poco. Vale, vamos a actualizar el
archivo Rmi para reflejar la
actualización a 5.8. Yo no sé dónde ha
alucinado. Ahí, ahí ha alucinado, pero
esperaos que vamos a ver el tema de la
PR, que es tremendo, ¿eh? Vamos a
actualizar el archivo RI para reflejar
la actualización a 5.8. Bueno, aquí se
le está yendo también un poco de las
manos porque me está tocando el Ritmi
cuando no sería necesario que me toque
el RM, pero bueno, está bien si lo
quiere hacer. Vamos a ver si quiera el
APR. A ver si lo si lo hace. Mira. Ah,
claro, es que fijaos que es que está
generando todo el ritme. Claro, está
generando, fijaos todo el ritmy. Por eso
está tardando aquí, porque está
generando todo el ritm. Madre mía, mira,
Zoom Fork, o sea, está generándolo todo
otra vez. Me imagino que a lo mejor ha
añadido alguna mención de que estamos
utilizando Astro 5.8 por lo que sea,
¿eh? Vale, venga. Tol stack. Ah, mira,
notas de la versión. Abril 2025.
Actualizado Astra, la versión 5.8.
Actualizado simap 3.5 Versel. Venga, que
van a crear un archivo change lock. Esto
es lo malo cuando le dejas la a a le
dejas los mandos, ¿eh? Venga, va a crear
la pull request, que al final esto es lo
que hace Devin. Esto es exactamente lo
que hace Devin, ¿eh? Venga, he creado
una P request. ¿Será verdad o no?
¿Creéis que ha hecho una pull request?
Vamos a verlo. Vamos a verlo. Ojo,
actualización de Astro, la última
versión
5.8.0. Fijaos lo que ha hecho.
Descripción. Esta PR actualiza Astro y
sus dependencias a las últimas versiones
disponibles para mejorar rendimiento.
Seguridad y agregar nuevas
funcionalidades. Cambios principales.
Mejoras técnicas. Beneficios. Tipo de
cambio. Captura de pantalla. Checklist.
Todos los cómics. Todos los cómics que
tenía que hacer. Obviamente, ya os digo
yo, ha hecho cosas que no debía hacer.
Ha hecho aquí un chalck que no le he
pedido. Aquí en el RMI no sé por qué ha
tenido que tocar el Rme. Esto sí que
está bien porque esto ya no es
experimental. Esto sí que es raro porque
me ha añadido lo del Image que yo no le
he pedido. Vale. E lo de Astro 5.8 yo
juraría que no existe. Astro 5.8 yo
juraría que no existe. ¿Qué es lo que
pasa con esto? Latest 5.7.2. Vale, ahora
alguien dirá, "Está mal, o sea, quiero
decir, se ha equivocado." Pero, ¿y si
hubiera tenido un MCP para poder
preguntarle a MPM cuál es la última
versión de Astro? ¿Entendéis ya por
dónde van los tiros? El tema es que no
ha sido capaz, porque no tiene esa
información, no ha sido capaz de saber
cuál es la última versión de Astro. Pero
si por lo que sea hubiéramos tenido un
MCP que se hubiera podido podido
conectar a MPM y preguntar la última
versión de Astro, pues ya hubiéramos
cerrado un poco justamente ese problema.
Esto es justo lo que viene a solucionar
el MCP. datos en tiempo real que la
inteligencia artificial no puede tener,
buscarlo le podría ser muy difícil, pero
un MCP concreto que le conectase con ese
servicio, pues ya lo tendría
solucionado, o sea, lo hubiera hecho. De
hecho, ha intentado con SQL, con lo de
Posgre, ha intentado sacar es esa
información, ¿no? Eh, ya veis que no es
perfecto. ¿Qué hizo en la base de datos?
En la base de datos lo que ha intentado
es buscar la última versión de Astro. Ha
dicho, "Ostras, no sé cuál es la última
versión de Astro. Voy a intentar
utilizar el MCP de la base de datos para
ver si ahí aparece la última versión de
Astro. No, no es peligroso que se
conecte a NPM, ¿no? Si es solo de para
tratar información, no tiene por qué. Y
al final siempre tú deberías ver cómo
cómo están las cosas, ¿no? Lo nuestro
que vamos a crear nuestro primer MCP.
Vamos a crear nuestro primer MCP. Vamos
a crear el primero. Le voy a llamar eh
start, ¿vale? Por decir algo, start. Voy
a iniciar el proyecto con pnpm init para
que me cree un pack jason. En este caso,
bueno, vamos a utilizar Visual Studio
Code, eh, que está interesante porque el
este lo vamos a cargar no solo en Cloud,
sino en Visual Studio Code para que
veamos cómo se hace. Vale, voy a crear
un main. TS. Vamos a utilizar
Typescapip, luego veréis cómo cómo vamos
a hacer esto. Y en el package Jason
vamos a poner que el tipo sea tipo
módulo. Pues vais a ver que se pueden
hacer MCPs con Typescript, con
JavaScript, con Python, con lo que
queráis, pero TyScript no hay ningún
tipo de problema. Y lo que vamos a
necesitar seguro es la dependencia de
Model Context Protocol SDK, el del SDK
oficial de Typesc, este que tenemos por
aquí. Si miramos aquí en la instalación,
esta dependencia necesitamos instalarla
en nuestro proyecto. Así que vamos a ir
aquí, voy a ejecutar PNPM ADT y voy a
añadir esta dependencia para que esté
aquí en el pack Jason. Vale, ya la
tenemos aquí. Pero también tenemos que
añadir una segunda dependencia que la
que nos va a permitir es validar la
entrada del usuario. Y para eso vamos a
instalar Z Thot, que ya sabéis, mira, el
otro día estamos hablando de ello, que
sirve para validar entradas y salidas o
para validar esquemas de datos. ¿Vale?
Muy bien. Ahora, ¿qué vamos a hacer?
Vamos a importar mcp server de modelce
context protocol/sdk/server/mcp.js.
JS y ahora vamos a importar Z desde ZOT.
Muy bien. Primero tenemos que crear el
servidor. El servidor crea es la
interfaz principal para con el protocolo
MCP. Maneja la comunicación entre
cliente y servidor, ¿vale? Así que
creamos el servidor MCP server y aquí le
vamos a decir el nombre del MCP. En este
caso ahora le voy a poner demo, luego ya
lo haremos un poquito más complicado y
le vamos a poner la versión 1. Vale,
esto es lo mínimo, lo mínimo necesario.
Luego vais a ver que podemos pasarle
pues más, hay más opciones que le podéis
pasar, pero esto es lo mínimo necesario
para poder utilizar nuestro MCP. Ya
tenemos el servidor. Ahora tenemos
diferentes cosas que puede tener un MCP.
Hemos visto, cuando hemos ido aquí a
Cloue, hemos visto que todos tenía,
veis, a este 38 herramientas. Esto es lo
más interesante e importante que tiene,
aunque puede tener promps, puede tener
recursos, puede tener otras cosas, pero
lo más lo más importante que puede tener
son herramientas. Así que vamos a crear
una primera herramienta para nuestro
nuestro MCP, definir las herramientas. Y
las herramientas le permite al LMM
realizar acciones a través de tu
servidor a diferencia. Bueno, Vale, ya
está. Tu servidor, ya está. Vamos a
poner server punto. Fijaos aquí que
tenemos prom, resource y tool. Estos son
los tres que os decía. tienen proms, que
son promps que además pues puede hacerte
preguntas que pueden ser reutilizables.
Los recursos que serían solo de lectura,
por si quieres devolver la
configuración, si quieres devolver una
cosa en concreto y tienes herramientas.
¿Qué herramienta suele ser lo más
típico? Porque no solo puede ser de
escritura, sino que puede ser de
lectura, pero que tenga algún tipo de
estado o que tenga que dependa de algo
externo o que tenga que hacer un
cálculo. O sea, que normalmente vamos a
utilizar herramientas. Lo que tenemos
que decirle aquí es el nombre de la
herramienta. Imaginad que vamos a hacer
una herramienta sencilla pero potente
para recuperar el tiempo, ¿vale? Pues le
vamos a decir fetch weather. Y ahora le
podemos decir una descripción tool to
fetch the weather of a city. Vale, ahora
le tendríamos que decir qué parámetros
necesita esta herramienta para
funcionar. Así que le vamos a pasar un
objeto y le vamos a decir que tiene una
ciudad, que en este caso sería una
cadena de texto que va a ser el nombre
de la ciudad. ¿Vale? Esto lo podríais
describir o no lo podéis describir, esto
es como queráis, esto es más opcional,
pero lo mejor es que cuanto más
información le deis, mejor contexto
tendrá la inteligencia artificial para
entenderlo. Y finalmente tenemos el
callback para poder recuperar la ciudad
que va a introducir el usuario y aquí
hacer lo que lo que queramos que haga.
Ahora lo más sencillo, luego lo haremos
mejor con llamadas a APIs y haciendo
cosas, pero lo más sencillo aquí sería
devolver una rey donde vamos a tener el
contenido, ¿vale? El contenido que esto
tiene que devolver, que de nuevo es una
rey donde tiene que tener todos los
mensajes que está devolviendo. Vamos a
decirle que devuelve de tipo texto y el
texto va a ser
el clima de City es soleado. Luego lo
arreglaremos, ¿vale? Pero por ahora
vamos a decir que tenga esto. Espérate.
No se puede asignar promesa. ¿Por qué no
se puede asignar esto? Server tour, que
he hecho yo aquí ahora que no le gusta
esto. Puede ser que la descripción no le
guste. Ajá.
Espérate, alguna cosa se me ha escapado
aquí. Se me ha escapado alguna cosa.
¿Cómo que un express? No sé paraar city.
Promise content. A ver, el content lo
estoy poniendo bien, ¿no? Es que he
puesto que sea una rey y me he
equivocado, ¿eh? Esto yo creo que esto
tiene que ser. Es que aquí he puesto a
rey y esto no es un arrey. Esto no es un
arrey. El arrey es
dentro. Vale, esto fuera. Puede ser. Ah,
pues no. Ay, la madre que lo parió. Se
esperaba una asignación de A ver,
espérate que ahora como me ha me ha
creado esto. Uno aquí, ¿vale? Este aquí,
este conten va aquí, este va aquí, este
va aquí, este va aquí. Ahora sí, ahora
sí. Es que me ha creado ahí uno de más y
ya me ha vuelto loco. Ahora sí que lo
tenemos. Vale. Vale. Es importante que
cada herramienta tenga un título. Esto
sería el título de la herramienta. El
título de la herramienta es lo que
veremos cuando vemos aquí. Fijaos, este
es el título de la herramienta. Esta es
la descripción de la herramienta. ¿Vale?
Pues esto es el título, esta es la
descripción de la herramienta, estos son
los parámetros que puede recibir la
herramienta, que esto, fíjate que no
tenemos que hacer absolutamente nada.
Esto de forma interna, la inteligencia
artificial va a saber dónde está la
ciudad cuando el usuario nos lo pase. No
le tenemos que decir absolutamente nada,
¿vale? Así que le decimos city, que
tiene que ser de una cadena de texto, le
describimos, esto es el nombre de la
ciudad y esto es lo que tenemos que
hacer con esa información. Ahora es
sencillo porque simplemente lo que
estamos haciendo aquí es devolver el
clima de la ciudad es soleado, pero
luego veremos que esto se puede ir
complicando. Ahora lo último que nos
queda es escuchar las conexiones del
cliente y aquí lo que hacemos es tener
un transporte que ahora mismo el
transporte va a ser STD IO Server
Transport, ¿vale? Esto va a ser el
estándar de entrada y de salida porque
lo estamos utilizando local. Como lo
estamos utilizando en local y queremos
que se ejecute no en internet, sino que
lo ejecutemos en nuestra máquina, lo que
estamos haciendo es simplemente decirle
que queremos el estándar de entrada y de
salida de nuestro ordenador y que
transporte esa información por ahí,
¿vale? No se tiene que conectar a
internet, no tiene que hacer
absolutamente nada porque este MCP lo
tenemos en nuestra máquina. Y ahora lo
que vamos a hacer es que nuestro
servidor se va a conectar a este
transporte de datos, ¿vale? Así que
tenemos la importación de las
dependencias, la creación del servidor,
definir las herramientas que queremos
tener y finalmente escuchar las
dependenci las las conexiones a este a
este servidor por parte del cliente,
¿vale? Así que ya teníamos esto. Esto
sería todo lo que tenemos que hacer. Y
para ejecutar esto ahora aquí podríamos
hacer TSX, o sea, npx TSX. TSX, ¿por
qué? Porque es un archivo que es de
TypeScript y para poder ejecutar
TypeScript sin necesidad de hacer ningún
tipo de compilación en tu código de de
NOs, podemos hacer esto. TSX y el nombre
del fichero de Typescript. Esto lo que
hace es que te ejecuta directamente al
vuelo un archivo Typescript sin ningún
tipo de compilación, sin que tengas que
hacer absolutamente nada. Así que NPX lo
vamos a utilizar para ejecutar TSX al
vuelo, ¿vale? Sin necesidad de tener que
instalarlo con una dependencia. npx TSX.
Le ponemos la I para que no nos pregunte
si lo tiene que instalar.
Main.ts. Pero, ¿cuál? Si yo ejecuto
esto, ay, perdón, esto va aquí. Si yo
ejecuto esto, se queda así. ¿Por qué?
Porque eso es que está funcionando bien.
Eso es porque el servidor se ha
levantado, pero no está haciendo nada,
¿vale? No está haciendo ningún tipo de
de cosa, sino que yo he levantado esto,
ahora está escuchando los cambios, las
conexiones, pero nadie se está
conectando. Así que para poder utilizar
realmente esto, no hace falta levantar
tú manualmente el servidor. No se tiene
que hacer así con los MCP. La forma
correcta de hacer esto es que vamos a ir
otra vez a cloud, ¿vale? Y vamos a ir de
nuevo aquí a los settings. Vamos de
nuevo aquí al developer que tenemos file
system, Postgress, GitCup, que son todos
los que hemos ido viendo antes. Y aquí
en la configuración voy a abrir ahora
mismo el Visual Studio Code. Ahora te
enseñaré otras formas de hacerlo porque
esta es para que veamos. la
madre que me parió. Ay, que se me ha
colado el personal access token. Voy a
quitarlo antes de que sea demasiado
tarde. Voy a quitarlo. Ahora podé podéis
ir para atrás y podéis ver ahí el
personal access token. Cago en la leche.
Bueno, ya está quitado. No pasa nada, no
ha pasado nada. No ha pasado nada. Ya
está, ya está. No ha pasado nada, no ha
pasado nada. Uy, uy. Ay, claro, alguien
podía haber ido para atrás y para
adelante y ver el que tenía antes y ya
está. Bueno, no pasa nada, ¿eh? Y de
hecho lo voy a quitar, ya que no vamos a
utilizar Ghub. Ya lo quito y ya está.
Vale, ahora lo que vamos a hacer es
teníamos el de file system, el de
Postgress, pues vamos a añadir uno nuevo
que le vamos a llamar weather, ¿vale?
Porque es del tiempo. El comando que
tenemos que utilizar para levantarlo,
hemos visto que es npx. Los argumentos
que tenemos que pasarle es el -i para
que no nos pregunte si te qui instalar
nada. Y aquí le vamos a decir que
utilice tsx. Y aquí deberíamos decirle
dónde está este main.ts, donde está
localmente nuestro mcp. En nuestro caso,
lo que podemos hacer aquí es hacer
PwD. Ya me da aquí toda la ruta, así que
aquí podemos añadir la
[Música]
ruta/main.ts. Vale, con esto lo que
vamos a hacer es levantar el servidor de
nuestro MCP. Con este comando le tenemos
que pasar toda la ruta absoluta porque
cuando Cloud no sabe dónde tenemos el
archivo, le tenemos que dar la ruta
entera, ¿vale? Y ahora ya con esto
cerramos esto, entramos otra vez a Cloud
y vamos a ver si ahora nos da algún
problema. Espero que no. Vale, tenemos
13. Vamos a buscar por aquí fetch
weather, tool to fetch the weather of a
city. Vale. Y si le digo qué tiempo hace
en Barcelona. Vamos a ver. debería
decirme que está soleado. ¿Por qué?
Porque ahora mismo le estamos poniendo
hard coding que está soleado. Vale,
allow. Vale, ya le hemos dado permiso. Y
me dice, "Actualmente el clima en
Barcelona es soleado." Vale, me ha dicho
que es soleado porque justamente yo le
estoy diciendo que está soleado. Si yo
aquí le cambiase esto, pues obviamente
me funcionaría mejor, ¿no? Me diría,
"Ah, vale, pues así." Ahora la pregunta
del millón que seguro te estás haciendo.
Vaya rollo tener que ir a Cloude, tener
que refrescar y hacer. No te preocupes,
tranquilo, tengo una solución para ti.
No hace falta que utilices Cloue
mientras estás desarrollando una
herramienta como esta para estar
haciendo pues pruebas de tu MCP, ¿vale?
De hecho, hay una herramienta mucho
mejor que es la de Inspector, un MCP
Inspector que te permite testear y
depurar servidores de Model Context
Protocol de forma mucho más sencilla.
Por ejemplo, en lugar de tener que venir
aquí a Cloud, tener que cambiar todo
esto y tal, vamos a cerrar esto. Vamos a
ir aquí a Visual Studio Code y aquí
vamos a ejecutar npx y vamos a model
contex
protocol/inspector y ahora le vamos a
decir cómo tiene que levantarse este MCP
que hemos visto ya que es npx- TSX y
ahora el archivo que queremos levantar
main.ts. En este caso no hace falta que
pongamos toda la ruta porque estamos en
el mismo en la misma carpeta, ¿vale? Por
eso no hace falta. Le damos a enter y
esto lo que va a hacer es levantar el
inspector del MCP en este puerto, en
6274 que podemos venir aquí, nos dice
cuál es el transporte. En este caso SD D
O estándar in and out. El comando npx
argumentos ITSX. Vale, nos
conectamos y ya nos hemos conectado.
Aquí tenemos ahora mismo solo las
herramientas activadas. ¿Por qué? Porque
de lo otro no tenemos, solo tenemos las
herramientas. Podemos listar las
herramientas y aquí tenemos el fetch
weather que le damos, le podemos poner
aquí la
ciudad, ejecutamos y aquí tendríamos la
llamada. Al hacer la llamada pues
podemos ver que la respuesta, el clima
de Barcelona es soleado. Si pongo aquí
México y ejecutamos la herramienta,
¿vale? Podríamos ver la llamada y aquí
el clima de México es soleado, o sea,
esta es una herramienta mucho más
interesante para probar fácilmente
nuestros MCP sin necesidad de tener que
ir a cloud y tal. ¿Vale? Entonces, vamos
a hacer algo. Vamos a hacer que sea más
interesante nuestro MCP conectándose a
una API. Y una vez que se conecta la
API, vamos a utilizar un tercer cliente.
Vamos a utilizar en Visual Studio Code
nuestro MCP, porque no solo se puede
utilizar en Cloud, se puede utilizar en
Cursor, en Winsh, en Visual Studio Code.
Y te voy a enseñar cómo. Pero por ahora
antes lo que vamos a hacer es vamos a ir
aquí. De hecho, fijaos que también hay
un restart que también es s superútil.
Así que vamos a ir por aquí. Vamos a
limpiar esto. Y aquí, que yo aquí había
hecho esto, que está hecho a mano, que
está un poco de aquella manera, lo que
podemos hacer es, en lugar de hacerlo a
mano, simplemente lo que podemos hacer
es preguntar en una API, ¿qué API
podemos utilizar? A ver, hay un montón
de APIs de del tiempo, pero hay una que
no hace falta utilizar APIy, que es Open
Meteo, que está bastante bien. Por
ejemplo, aquí tenéis para recuperar eh
el forecast actual de esta latitud y
esta longitud y ya mira, te devuelve
todo esto, toda la información.
Perfecto. Tiene cierto límite, pero
bueno, para lo que nosotros queremos
hacer ya está bien. Lo malo que no
acepta el hecho de tener que pasarle una
ciudad directamente. Para eso lo que
tienes que hacer aquí en las APIs que
tienes
disponibles, tiene una API de
geolocalización en la que tú le pasas
aquí el nombre de la ciudad, le puedes
pasar incluso el idioma, pero ves,
tienes Barcelona y aquí con esta
información te da la latitud y la
longitud de esa ciudad, ¿vale? Pues lo
que vamos a hacer es copiarnos esta URL
y aquí lo primero que vamos a sacar es
la respuesta de hacer un fetching de
datos. Ya veis que aquí es que podéis
llamar a una API, os podéis conectar a
lo que vosotros queráis. Yo aquí voy a
utilizar esta ciudad y esta ciudad la
utilizo en esta API para recuperar la
información de la latitud y la longitud.
Mira, vamos a hacer un poco de vive
coding. La respuesta. Esperamos la
respuesta a la promesa. Lo transformamos
en Jason y aquí me está buscando el
weather description. Esto no es lo que
quiero. Yo lo que quiero es sacar de
esto de aquí. Esto es lo que nos
devuelve. es una rey, así que le vamos a
decir que si la longitud es cero, le
vamos a dar que no se encuentre
información para la ciudad. Importante
que informemos al a nuestra inteligencia
artificial de, oye, si no hay ninguna
ciudad que corresponda con esto, le
hacemos un content, no se encontró
información para la ciudad, ¿vale? Así
que ya está, con eso al menos ya lo
tenemos solucionado. A partir de esto,
ahora que sí que sabemos que tenemos
latitud y longitud, lo sacamos del
primero y ahora sí podemos sacar el
forecast. Vamos aquí a esta API del
forecast. Fijaos que si le pasas la
latitud y la longitud, aparte de más
información, le puedes decir cuánto
tiene que sacar de diferentes días, si
tiene que sacar el current weather, que
le voy a voy a sacar current weather,
precipitación y si es día de noche
podemos si está
lloviendo el Bueno, con eso yo creo que
ya es suficiente, ¿vale? Y ta ta aquí
relad char, ¿vale? Aquí tenemos esta
API. Esta API nos está devolviendo esta
información donde aquí, fijaos que sí
que tiene la temperatura y tal, pero
importante, no hace falta que nosotros
tratemos estos datos. Normalmente lo que
haríamos es tener que tratar los datos
de ver si hace frío, si hace calor.
Nosotros no nos tenemos que preocuparnos
de eso. Vas a ver, el tema es que con
esta API me voy a ir aquí. Vamos a
llamar hasta API, ¿vale? Weather
response await con un fetch. Y aquí lo
que vamos a hacer es cambiar esta
latitud, esta latitud de aquí por la que
tenemos y esta longitud de aquí por la
que tenemos. Vale, tenemos la respuesta,
la transformamos en Jason y ahora lo
único que necesitamos es devolver esta
información. ¿Cómo podemos devolver esta
información que es un Jason? Podríamos
sacar los datos y tratarlos y
devolvérselos en formato texto, pero no
tengo ganas porque para eso es una
inteligencia artificial. Así que le
vamos a devolver el Jason entero. Le
vamos a decir, "No, no, búscate la vida
y entiende tú lo que te estoy
devolviendo, que ya con los nombres de
las propiedades tendrás suficiente y ya
deberías saber de qué te estoy
hablando." Así que si no se encontró
información, pues sí, le estoy dando
aquí la pista. Oye, no se ha encontrado
información, pero si tengo información,
sacamos la información de la latitud, la
longitud, vamos a recuperar la
temperatura por horas y vamos a
recuperar la temperatura actual, si está
lloviendo, si no está lloviendo y tal y
le vamos a devolver el Jason entero, así
directamente. Toma, para ti. ¿Por qué?
Porque no hace falta que nosotros le
tengamos que explicar todo esto y se lo
tengamos que poner un texto. Va a ser
capaz con el contexto de este objeto
entender si está lloviendo, si la
temperatura es esta o es otra. O sea, lo
vas a ver perfectamente. De hecho, vamos
a probarlo. Nos vamos a ir aquí a
nuestro inspector. Vamos a reiniciar a
ver si funciona perfectamente. Vale,
vamos a limpiar esto. Vamos a hacer un
list tools. Tenemos el fetch weather.
Vale, voy a poner aquí ahora mismo
Barcelona, que se supone que está
lloviendo. Ejecutamos la herramienta y
nos peta. Vale, nos ha petado porque no
puede estructurar la propiedad latitud
de cero. Vale, esto es porque, pero
bueno, para que veáis que depurar es
super importante. ¿Por qué pasa esto?
Porque me he equivocado en la respuesta
del de este de aquí, el geocoding este.
¿Ves que tiene un resols? Yo esto me lo
he saltado. Entonces, ¿qué pasa? que
esto no es data 0, esto es
data.0, ¿vale? Así que nada, volvemos
aquí al inspector, hacemos un restart y
ahora aquí vamos a hacer otra vez
Barcelona R to Tool. Ahora sí caído
bien. Vamos a ver la respuesta. Y aquí
podemos ver que la respuesta que está
dando es todo el texto que le está hoy
pasando. Pero claro, tened en cuenta una
cosa, el inspector del MCP no tiene
inteligencia artificial, no va a ser
capaz de saber tratar los datos, ¿vale?
O sea, no tiene ni idea, no tiene
inteligencia artificial este MCP, este
inspector solo sabe lo que le pasas y lo
que devuelve. Para poder utilizar
correctamente con inteligencia
artificial, ¿qué necesitamos? tener que
ir a Cloud, que ya lo tenemos
configurado, no pasa nada. ¿Qué tiempo
hace hoy en Barcelona? Y este sí,
obviamente sí que tiene inteligencia
artificial para saber tratar la
respuesta de nuestro MCP. Vale, dice,
"¿Puedo consultar una fuente externa?"
Fíjate que ya te he detectado que tiene
que utilizar el MCP. Le digo que sí, que
le permito para este chat, ¿vale? Está
pensando porque está haciendo la llamada
a la API, ya le ha devuelto la
información. Dice, "Actualmente en
Barcelona hace 14.3 3 con una ligera
precipitación de 0.2 y algo de lluvia.
Es de día y según los datos la
temperatura ha sido moderadora durante
el día alcanzando un máximo. O sea,
fijaos cómo ha sido brutal el hecho de
todo lo que te está contando a partir de
esto que tenemos aquí, ¿no? Que esto es
lo que yo le he pasado con el objeto,
que no le he dicho, no le he explicado
absolutamente nada, ha entendido el
contexto y me lo ha tratado mucho mejor.
Además, me está diciendo para el resto
del día se espera que la temperatura
baje gradualmente hasta llegar a unos
10º a medianoche. ¿Por qué? Porque con
el contexto de este arrey de las
temperaturas estas, lo que está haciendo
es justamente sí, yo estoy en Barcelona
y os puedo confirmar que es verdad. Así
que es tremendo lo que ha hecho. Ahora,
lo mejor de todo es que esto no solo lo
podéis utilizar en Cloud, que
seguramente os estáis preguntando, ¿esto
lo puedo utilizar en más sitios o solo
lo puedo utilizar aquí? ¿No? O sea, al
final la idea de de esto es poder
utilizarlo en más sitios. pues no te
preocupes porque lo puedes utilizar en
más sitios. Por ejemplo, en Visual
Studio Code, una cosa que podéis hacer
aquí es abrir el chat que se abre así,
¿vale? Importante, para poder
utilizar MCPs en Visual Studio Code
tenéis que activar el modo agente, que
es, a ver si lo os lo enseño, este modo
de aquí. El modo agente no está activado
por defecto. Para activarlo tenéis que
ir a la configuración del usuario,
buscáis a gente y aquí veréis que pone
chat agent enable. Si no lo tenéis
activado, lo podéis activar. Es
gratuito, no tenéis que no no tiene
ningún pago extra ni nada. De hecho,
dije que Pilot ahora es gratuito, así
que ahí lo tenéis, ¿vale? Ahí lo podéis
utilizar. Una vez que tengáis el modo
agente, vais a ver que en el modo
agente, fijaos aquí que aparecen
cositas. Aquí tendríamos las
herramientas, ¿vale? está señal las
herramientas y aquí esto es porque está
detectando que hay nuevas herramientas
disponibles. Esto es porque habrá
detectado un cambio de configuración y
ha dicho, ostras, ¿y por qué ha
detectado un cambio de configuración?
Bueno, esto es lo más interesante
todavía de Visual Studio Code. Y es que
Visual Studio Code va a recuperar
automáticamente para ti la configuración
de los MCPs que utilices en Cursor, en
Winsurf, en Cloude y en todos estos,
¿vale? Así que le puedes echar un
vistazo aquí porque cuando lo hagas,
fíjate que ahora me ha aumentado a 18 y
es que si le damos aquí tenemos console
ninja, servidor mp desde Winsurf,
servidor MCP desde Cloud, el file system
desde Cloud, o sea, los ha importado
automáticamente, ha detectado todos los
MCPs que tienes configurados y se los ha
traído. tú los puedes desactivar, cosa
que te recomiendo bastante para evitar
problemas, ¿vale? Por ejemplo, este
también vamos a activar solo el que he
creado, que es este de escritorio cloud,
pero imaginemos que los desactivamos
todos, ¿vale? Porque dices, "No, no
quiero activar ninguno. Yo lo que quiero
es utilizar justamente los que tengo en
Visual Studio Code." No pasa nada, sino
que de hecho en Visual Studio Code yo
creo que a día de hoy, bueno, cursor
está bastante mejor, pero no puedo
entrar en todos los editores, ¿vale? El
tema es que Visual Studio Code, para
añadirlo no tiene una UI en condiciones,
¿vale? Pero sí que tiene aquí si vais a
agregar servidor te aparece así de esta
forma. Esta a mí no me suele gustar
mucho, ¿vale? Que sea así como lo podéis
hacer, no hay ningún problema, podéis
hacerlo manual, o sea, así con este
input. Yo lo que os recomiendo es
hacerlo con el settings, que vais al
JSON y aquí abajo vais a ver que os
aparecerá MCP servers, porque ya he
detectado que tenemos estos y una vez
que tenéis esos, pues ya automáticamente
lo que podéis hacer es lo el que queráis
utilizar. En este caso vamos a utilizar
este de weather que tenemos aquí. Pu pu
pu y vais a ver que tiene una cosa muy
chula. Vale, los ponemos aquí y lo que
tiene es que ya detecta que es un MCP.
Le podéis dar aquí a iniciar y ya te
dice si está en ejecución, si lo puedes
detener, reiniciar en el caso que hagas
algún cambio y cuántas herramientas se
ha traído. De hecho, ahora vamos aquí.
¿Veis que pone una de 19? Le damos aquí
y es porque está activando la que
tenemos global en Code, ¿vale? Así que
tened en cuenta esto para poder
activarlo y si hacéis algún cambio que
lo podáis reiniciar. Ahora, aquí mismo
podéis decirle qué tiempo hace en
Madrid, por ejemplo, ¿vale? Y va a pasar
exactamente lo mismo, ¿vale? Exactamente
lo mismo. Vamos a tener aquí que nos va
a decir, "Voy a consultar el tiempo
Madrid para ti. Esto es lo que va a
ejecutar City Madrid. Le vamos a dar a
continuar, va a trabajar, le va a
preguntar a nuestra API y ya está,
¿vale? O sea, exactamente igual como lo
está haciendo Cloude. También lo podéis
hacer en Visual Studio Code. Y fijaos
pues que también está funcionando, ha
consultado el tiempo en Madrid, es la
hora, no sé qué, no sé cuánto. Y esto lo
ha hecho gracias a nuestro MCP.
Ahora, una cosa o para que veáis también
cómo utilizar Visual Studio Code MCPs
eh, que no son vuestros como los que
hemos codeado. Hay un MCP que os
recomiendo que le echéis un vistazo
porque os puede volar la cabeza muy
fuerte. Es uno de los mejores MCPs que
existen y es el de Playgridge. El MCP de
Playgright, además que tiene una
documentación buenísima. Aquí tenéis la
configuración de cómo hacerlo
manualmente, ¿vale? Pero por ejemplo, y
esto para que lo sepáis que es bastante
interesante, también se puede añadir un
MCP en Visual Studio Code a partir de la
línea de comandos. Podéis ir aquí a la
terminal y podéis ejecutar esto. Code
ATMCP y este objeto de aquí, ¿vale? Esto
normalmente lo van a poner en la
documentación para que no tengáis que
hacer absolutamente nada. Y la pregunta
del millón es, ¿por qué este MCP es
espectacular? Bueno, pues fijaos, vamos
a ir a Visual Studio Code y os va a
volar la cabeza. Mirad que ahora tengo
22 herramientas, o sea, ya se ha
reiniciado automáticamente, ¿no? Y aquí
podemos ver en las herramientas Playgrid
para cerrar páginas, no sé qué. Esta
herramienta lo que os va a permitir es
poder navegar a través de páginas web y
hacer lo que queráis. Por ejemplo,
imaginad que estáis eh trabajando en, yo
que sé, en un local host. Es que podría
ser en un local host, pero bueno, yo que
sé. Voy a poner, voy a buscar, voy a
poner la velada, la TP, la velada web
live, ¿vale? Code punto, vale, voy a
entrar en la web de la velada, ¿vale?
Imaginad, imaginad que estamos aquí la
web de la velada y lo que queremos, eh,
ponemos el modo agente, importante
porque si no ponéis el modo agente no te
aparecen las herramientas. Vale, me ha
activado ahora otra vez todas las
herramientas. Voy a desactivarlas para
asegurarnos que solo utilizamos
Playgrid. Vale, vale. Playgridge. Y
quitamos la del file system que también
la queremos. Pues le podríamos decir,
visita la página web de Midudep y quiero
que me digas el H1 que tiene la página y
los últimos cursos que ha publicado. O
sea, esto es brutal. Lo que le vamos a
decir es que visite a una, esto que
estáis viendo es totalmente gratuito, es
que vaya a una página web y que le que
la visite, que navegue la página web y
que les traiga información. Y lo estamos
haciendo totalmente de forma hablada, o
sea, no le est no estamos programando
nada. lo que va a hacer ahora, de hecho,
fijaos, me ha abierto un navegador, está
navegando la página, está buscando la
información que le he pedido y se la he
pedido directamente de forma así, o sea,
se la estoy pidiendo sin ningún tipo de
código ni nada, o sea, está haciendo
scrapping y fíjate el H1 conviértete en
desarrollador full stack, últimos cursos
publicados, iniciación en scrapping con
Python. Además, hay un curso aparece
como disponible próximamente. Lo que ha
hecho es entrar a la página web, ¿vale?
y directamente sacarme esta información.
Pero podríamos ir más allá porque le
podríamos decir, entra a la página de
infolavelada.com, revisa que los
patrocinadores que aparecen sean los
mismos que tenemos en la página. Mira,
voy a quitar, voy a quitar este. Agregar
contexto. Eh, vamos a poner
sponsors. Está
constante. Eh, editores abiertos. Vamos
a poner este sponsors, ¿vale? Entra a la
página infolabelada.com. Resumos que
tenemos en la página que tenemos en el
proyecto. En el proyecto en
sponsors.ts. ¿Vale? Y esto lo que va a
hacer es navegar en la página, revisar
esa información. No sé si en info
hablada, yo creo que sí que lo tenemos.
Vamos a ver si me abre. Mira, ¿ves? Ha
entrado ya en la página. Aquí están los
patrocinadores. Vamos a ver si es capaz
de entender esto. A ver si es capaz de
entender esto. Pero básicamente lo que
está haciendo ahora es extraer esa
información, navegando esa información.
¿Ves? Patrocinadores en info la velada,
patrocinadores en nuestro archivo
sponsor. La buena noticia es que los
patrocinadores son exactamente los
mismos y en el mismo orden. Todos los
patrocinadores que aparecen infobolada
están correctamente representados en el
archivo sponsors.t de nuestro proyecto.
También noté que en la página hay
información adicional. O sea, ya habéis
visto cómo de es esto, porque hemos
hecho con el MCP, ha ido a la página
web, ha extraído información y lo ha
comparado con información que tenemos en
nuestro editor. Imagínate que nos falte
uno. Imagínate que nos falta Grefusa.
Grefusa. Imagínate que nos falta este.
Vale, le voy a decir eh le voy a decir
otra vez lo mismo, ¿vale? Pero le voy a
decir que entra la info,
revisa, eh, y si falta alguno, añádelo
al archivo
sponsors.ts con la información que
puedas extraer la página. Claro, es que
esto lo que está haciendo es aumentar
totalmente las posibilidades de de de lo
que tenemos, porque además podríamos
decirle, "Inicia sesión aquí, prueba
esto, eh, controla." También podríais
utilizarlo de forma local, o sea, podéis
ir a local host en lugar de decirle que
vaya a Infolabelada, le podemos decir,
"Oye, quiero que vayas a local host y no
sé qué." Mira, ahora lo está
comparantado. Dice, "Cambio de orden en
archivos sponsors, URL diferente, ganas
de vicio. Mira, ahora está detectando
además que hay cambios en algún fichero,
algún cambio y tal." se ha
quedado pensado aquí. No sé si es que
está pensando o se ha quedado Se ha
quedado pensado. Se ha quedado Se ha
quedado ahí. Se ha equivocado. Se ha
equivocado. No sé qué le ha pasado, pero
se ha quedado congelado. O igual todavía
está pensando. Vete a saber. O igual me
han echado de Cloud ya. Ah, no, sigue,
sigue. Pero sí, sí se ha congelado un
momento, pero pero mira, dice, "Voy a
actualizar el archivo sponsors con estas
correcciones." O sea, como le hemos
dicho, que actualice, pues fijaos todo
lo que está haciendo. El hecho de no
solo ir a la página web, sino que estás
trayendo información. Me ha añadido
Grefusa, que faltaba. ¿Veis que Grafusa
lo he quitado? lo ha añadido porque no
estaba y ya tenemos ahí unos cuantos
cambios, así que ha traído información y
ya hemos actualizado. O sea, tremendo.
Pues nada, amigos, esto es una
introducción a lo que serían los MCPs,
un curso de iniciación donde hemos visto
cómo utilizarlos, cómo crear uno desde
cero para conectarte a API, pero es que
ahí puedes hacer lo que te dé la gana y,
incluso, como puedes utilizar en Visual
Studio Code para aumentar las
posibilidades de tu inteligencia
artificial y ser todavía más productivo.
Así que espero que te haya gustado. Si
te ha gustado, deja tu like. Bueno,
todavía no lo he puesto en YouTube, pero
cuando ponga en YouTube, deja tu like,
compártelo y nada, que espero que os
haya gustado mucho esta introducción. A
mí me parece una cosa que de verdad me
genera muchas ganas porque creo que de
verdad puede hacerse cosas muy muy
buenas. Que sepáis que este curso lo
vamos a subir en la academia también,
¿vale? y lo haremos cortadito y con
certificado. Así que si eres suscriptor
del canal de Twitch podrás entrar a la
academia y muy pronto podréis
suscribiros a Academia, pues pagando una
suscripción normal y corriente.
Ask follow-up questions or revisit key timestamps.
El video explica el Protocolo de Contexto del Modelo (MCP), un estándar de comunicación que permite a los modelos de lenguaje como ChatGPT y Claude interactuar con el mundo exterior, superando sus limitaciones de acción. Creado por Anthropic y ahora un estándar abierto, el MCP funciona como un "USB" para conectar IAs a APIs, bases de datos, sistemas de archivos y servicios externos. Esto facilita la creación de agentes de IA autónomos y ofrece flexibilidad entre proveedores de lenguaje, mayor privacidad y una creciente comunidad. El video demuestra el uso de MCPs para interactuar con el sistema de archivos local (leer, mover, crear), consultar bases de datos (PostgreSQL), automatizar tareas en GitHub (crear pull requests) y navegar/extraer información de páginas web (usando Playwright). También se muestra cómo desarrollar un MCP personalizado desde cero para conectarse a una API de clima y cómo depurarlo utilizando herramientas como MCP Inspector y diferentes clientes como Claude y Visual Studio Code. La adopción de MCPs por parte de OpenAI subraya su importancia como el estándar de facto para proporcionar contexto y herramientas a los LLM.
Videos recently processed by our community