<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Databases | The .NET Blog</title><link>https://thedotnetblog.com/es/tags/databases/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>es</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Fri, 10 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/es/tags/databases/index.xml" rel="self" type="application/rss+xml"/><item><title>SQL MCP Server — La forma correcta de darle acceso a bases de datos a los agentes de IA</title><link>https://thedotnetblog.com/es/news/emiliano-montesdeoca/sql-mcp-server-data-api-builder/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/es/news/emiliano-montesdeoca/sql-mcp-server-data-api-builder/</guid><description>SQL MCP Server de Data API builder da a los agentes de IA acceso seguro y determinista a bases de datos sin exponer esquemas ni depender de NL2SQL. RBAC, caché, soporte multi-base de datos — todo incluido.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Este post fue traducido automáticamente. Para la versión original, &lt;a href="https://thedotnetblog.com/es/news/emiliano-montesdeoca/sql-mcp-server-data-api-builder/"&gt;haz clic aquí&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Seamos honestos: la mayoría de los servidores MCP de bases de datos disponibles hoy son aterradores. Toman una consulta en lenguaje natural, generan SQL al vuelo y lo ejecutan contra tus datos de producción. ¿Qué podría salir mal? (Todo. Todo podría salir mal.)&lt;/p&gt;
&lt;p&gt;El equipo de Azure SQL acaba de &lt;a href="https://devblogs.microsoft.com/azure-sql/introducing-sql-mcp-server/"&gt;presentar SQL MCP Server&lt;/a&gt;, y toma un enfoque fundamentalmente diferente. Construido como una característica de Data API builder (DAB) 2.0, da a los agentes de IA acceso estructurado y determinista a operaciones de base de datos — sin NL2SQL, sin exponer tu esquema, y con RBAC completo en cada paso.&lt;/p&gt;
&lt;h2 id="por-qué-no-nl2sql"&gt;¿Por qué no NL2SQL?&lt;/h2&gt;
&lt;p&gt;Esta es la decisión de diseño más interesante. Los modelos no son deterministas, y las consultas complejas son las más propensas a producir errores sutiles. Las consultas exactas que los usuarios esperan que la IA genere son también las que necesitan más escrutinio cuando se producen de forma no determinista.&lt;/p&gt;
&lt;p&gt;En su lugar, SQL MCP Server usa un enfoque &lt;strong&gt;NL2DAB&lt;/strong&gt;. El agente trabaja con la capa de abstracción de entidades de Data API builder y su constructor de consultas integrado para producir T-SQL preciso y bien formado de manera determinista. Mismo resultado para el usuario, pero sin el riesgo de JOINs alucinados o exposición accidental de datos.&lt;/p&gt;
&lt;h2 id="siete-herramientas-no-setecientas"&gt;Siete herramientas, no setecientas&lt;/h2&gt;
&lt;p&gt;SQL MCP Server expone exactamente siete herramientas DML, sin importar el tamaño de la base de datos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;describe_entities&lt;/code&gt; — descubrir entidades y operaciones disponibles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;create_record&lt;/code&gt; — insertar filas&lt;/li&gt;
&lt;li&gt;&lt;code&gt;read_records&lt;/code&gt; — consultar tablas y vistas&lt;/li&gt;
&lt;li&gt;&lt;code&gt;update_record&lt;/code&gt; — modificar filas&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete_record&lt;/code&gt; — eliminar filas&lt;/li&gt;
&lt;li&gt;&lt;code&gt;execute_entity&lt;/code&gt; — ejecutar procedimientos almacenados&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aggregate_records&lt;/code&gt; — consultas de agregación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es inteligente porque las ventanas de contexto son el espacio de pensamiento del agente. Inundarlas con cientos de definiciones de herramientas deja menos espacio para el razonamiento. Siete herramientas fijas mantienen al agente enfocado en &lt;em&gt;pensar&lt;/em&gt; en lugar de &lt;em&gt;navegar&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Cada herramienta puede habilitarse o deshabilitarse individualmente:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;runtime&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;path&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;dml-tools&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;describe-entities&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;create-record&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;read-records&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;update-record&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;delete-record&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;execute-entity&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;aggregate-records&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="empezando-en-tres-comandos"&gt;Empezando en tres comandos&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab init &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --database-type mssql &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --connection-string &lt;span class="s2"&gt;&amp;#34;@env(&amp;#39;sql_connection_string&amp;#39;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab add Customers &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --source dbo.Customers &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --permissions &lt;span class="s2"&gt;&amp;#34;anonymous:*&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Eso es un SQL MCP Server funcionando y exponiendo tu tabla Customers. La capa de abstracción de entidades significa que puedes crear alias para nombres y columnas, limitar campos por rol, y controlar exactamente lo que ven los agentes — sin exponer detalles internos del esquema.&lt;/p&gt;
&lt;h2 id="la-historia-de-seguridad-es-sólida"&gt;La historia de seguridad es sólida&lt;/h2&gt;
&lt;p&gt;Aquí es donde la madurez de Data API builder da frutos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RBAC en cada capa&lt;/strong&gt; — cada entidad define qué roles pueden leer, crear, actualizar o eliminar, y qué campos son visibles&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integración con Azure Key Vault&lt;/strong&gt; — cadenas de conexión y secretos gestionados de forma segura&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Microsoft Entra + OAuth personalizado&lt;/strong&gt; — autenticación de nivel producción&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Content Security Policy&lt;/strong&gt; — los agentes interactúan a través de un contrato controlado, no SQL crudo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La abstracción del esquema es particularmente importante. Los nombres internos de tus tablas y columnas nunca se exponen al agente. Defines entidades, alias y descripciones que tienen sentido para la interacción con IA — no tu diagrama ERD de la base de datos.&lt;/p&gt;
&lt;h2 id="multi-base-de-datos-y-multi-protocolo"&gt;Multi-base de datos y multi-protocolo&lt;/h2&gt;
&lt;p&gt;SQL MCP Server soporta Microsoft SQL, PostgreSQL, Azure Cosmos DB y MySQL. Y como es una característica de DAB, obtienes endpoints REST, GraphQL y MCP simultáneamente desde la misma configuración. Mismas definiciones de entidades, mismas reglas RBAC, misma seguridad — en los tres protocolos.&lt;/p&gt;
&lt;p&gt;La auto-configuración en DAB 2.0 puede incluso inspeccionar tu base de datos y construir la configuración dinámicamente, si te resulta cómodo menos abstracción para prototipado rápido.&lt;/p&gt;
&lt;h2 id="mi-opinión"&gt;Mi opinión&lt;/h2&gt;
&lt;p&gt;Así es como debería funcionar el acceso empresarial a bases de datos para agentes de IA. No &amp;ldquo;hey LLM, escríbeme algo de SQL y YOLO contra producción.&amp;rdquo; En su lugar: una capa de entidades bien definida, generación determinista de consultas, RBAC en cada paso, caché, monitoreo y telemetría. Es aburrido de la mejor manera posible.&lt;/p&gt;
&lt;p&gt;Para desarrolladores .NET, la historia de integración es limpia — DAB es una herramienta .NET, el MCP Server se ejecuta como contenedor, y funciona con Azure SQL, que la mayoría ya estamos usando. Si estás construyendo agentes de IA que necesitan acceso a datos, empieza aquí.&lt;/p&gt;
&lt;h2 id="para-cerrar"&gt;Para cerrar&lt;/h2&gt;
&lt;p&gt;SQL MCP Server es gratuito, de código abierto y se ejecuta en cualquier lugar. Es el enfoque prescriptivo de Microsoft para dar acceso seguro a bases de datos a los agentes de IA. Consulta el &lt;a href="https://devblogs.microsoft.com/azure-sql/introducing-sql-mcp-server/"&gt;post completo&lt;/a&gt; y la &lt;a href="https://aka.ms/sql/mcp"&gt;documentación&lt;/a&gt; para empezar.&lt;/p&gt;</content:encoded></item><item><title>SQL MCP Server, Copilot en SSMS y un Database Hub con agentes de IA: Lo que realmente importa de SQLCon 2026</title><link>https://thedotnetblog.com/es/news/emiliano-montesdeoca/agentic-ai-microsoft-databases-what-matters/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/es/news/emiliano-montesdeoca/agentic-ai-microsoft-databases-what-matters/</guid><description>Microsoft soltó un montón de anuncios de bases de datos en SQLCon 2026. Esto es lo que realmente importa si estás construyendo apps con IA sobre Azure SQL.</description><content:encoded>&lt;p&gt;Microsoft acaba de arrancar &lt;a href="https://www.microsoft.com/en-us/sql-server/blog/2026/03/18/advancing-agentic-ai-with-microsoft-databases-across-a-unified-data-estate/"&gt;SQLCon 2026 junto con FabCon en Atlanta&lt;/a&gt;, y hay mucho que desempacar. El anuncio original cubre de todo, desde planes de ahorro hasta funciones de compliance empresarial. Yo me voy a saltar las diapositivas de precios enterprise y enfocarme en lo que importa si eres un desarrollador construyendo cosas con Azure SQL e IA.&lt;/p&gt;
&lt;h2 id="sql-mcp-server-está-en-public-preview"&gt;SQL MCP Server está en public preview&lt;/h2&gt;
&lt;p&gt;Este es el titular para mí. Azure SQL Database Hyperscale ahora tiene un &lt;strong&gt;SQL MCP Server&lt;/strong&gt; en public preview que te permite conectar de forma segura tus datos SQL a agentes de IA y Copilots usando el &lt;a href="https://modelcontextprotocol.io/"&gt;Model Context Protocol&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si has estado siguiendo la ola de MCP — y honestamente, es difícil no verla ahora mismo — esto es importante. En lugar de construir pipelines de datos personalizados para alimentar a tus agentes de IA con contexto de tu base de datos, tienes un protocolo estandarizado para exponer datos SQL directamente. Tus agentes pueden consultar, razonar y actuar sobre información de base de datos en tiempo real.&lt;/p&gt;
&lt;p&gt;Para los que estamos construyendo agentes de IA con Semantic Kernel o el Microsoft Agent Framework, esto abre un camino de integración limpio. ¿Tu agente necesita verificar inventario? ¿Buscar un registro de cliente? ¿Validar un pedido? MCP le da una forma estructurada de hacerlo sin que tengas que escribir código a medida para cada escenario.&lt;/p&gt;
&lt;h2 id="github-copilot-en-ssms-22-ya-está-en-ga"&gt;GitHub Copilot en SSMS 22 ya está en GA&lt;/h2&gt;
&lt;p&gt;Si pasas algo de tiempo en SQL Server Management Studio — y seamos honestos, la mayoría todavía lo hacemos — GitHub Copilot ya está disponible de forma general en SSMS 22. La misma experiencia de Copilot que ya usas en VS Code y Visual Studio, pero para T-SQL.&lt;/p&gt;
&lt;p&gt;El valor práctico es directo: asistencia por chat para escribir queries, refactorizar stored procedures, resolver problemas de rendimiento y manejar tareas de administración. Nada revolucionario en concepto, pero tenerlo ahí mismo en SSMS significa que no necesitas cambiar de contexto a otro editor solo para obtener ayuda de IA con tu trabajo de base de datos.&lt;/p&gt;
&lt;h2 id="los-índices-vectoriales-recibieron-una-mejora-seria"&gt;Los índices vectoriales recibieron una mejora seria&lt;/h2&gt;
&lt;p&gt;Azure SQL Database ahora tiene índices vectoriales más rápidos y capaces con soporte completo de insert, update y delete. Eso significa que tus datos vectoriales se mantienen actualizados en tiempo real — sin necesidad de reindexar por lotes.&lt;/p&gt;
&lt;p&gt;Esto es lo nuevo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cuantización&lt;/strong&gt; para tamaños de índice más pequeños sin perder demasiada precisión&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Filtrado iterativo&lt;/strong&gt; para resultados más precisos&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integración más ajustada con el optimizador de queries&lt;/strong&gt; para rendimiento predecible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si estás haciendo retrieval-augmented generation (RAG) con Azure SQL como tu almacén vectorial, estas mejoras son directamente útiles. Puedes mantener tus vectores junto con tus datos relacionales en la misma base de datos, lo que simplifica tu arquitectura significativamente comparado con ejecutar una base de datos vectorial separada.&lt;/p&gt;
&lt;p&gt;Las mismas mejoras vectoriales también están disponibles en SQL database en Fabric, ya que ambos corren sobre el mismo motor SQL por debajo.&lt;/p&gt;
&lt;h2 id="database-hub-en-fabric-gestión-agéntica"&gt;Database Hub en Fabric: gestión agéntica&lt;/h2&gt;
&lt;p&gt;Este es más orientado al futuro, pero es interesante. Microsoft anunció el &lt;strong&gt;Database Hub en Microsoft Fabric&lt;/strong&gt; (acceso anticipado), que te da una vista unificada de Azure SQL, Cosmos DB, PostgreSQL, MySQL y SQL Server vía Arc.&lt;/p&gt;
&lt;p&gt;El ángulo interesante no es solo la vista unificada — es el enfoque agéntico para la gestión. Agentes de IA monitorean continuamente tu estate de bases de datos, te muestran qué cambió, explican por qué importa y sugieren qué hacer. Es un modelo human-in-the-loop donde el agente hace el trabajo pesado y tú tomas las decisiones.&lt;/p&gt;
&lt;p&gt;Para equipos que gestionan más de un puñado de bases de datos, esto podría genuinamente reducir el ruido operacional. En lugar de saltar entre portales y revisar métricas manualmente, el agente te trae la señal.&lt;/p&gt;
&lt;h2 id="qué-significa-esto-para-desarrolladores-net"&gt;Qué significa esto para desarrolladores .NET&lt;/h2&gt;
&lt;p&gt;El hilo que conecta todos estos anuncios es claro: Microsoft está integrando agentes de IA en cada capa del stack de bases de datos. No como un truco, sino como una capa práctica de herramientas.&lt;/p&gt;
&lt;p&gt;Si estás construyendo apps .NET respaldadas por Azure SQL, esto es lo que yo haría:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Prueba el SQL MCP Server&lt;/strong&gt; si estás construyendo agentes de IA. Es la forma más limpia de darles acceso a base de datos sin plomería personalizada.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Activa Copilot en SSMS&lt;/strong&gt; si no lo has hecho — ganancia de productividad gratis para el trabajo diario con SQL.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Investiga los índices vectoriales&lt;/strong&gt; si estás haciendo RAG y actualmente tienes un almacén vectorial separado. Consolidar en Azure SQL significa un servicio menos que gestionar.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="para-cerrar"&gt;Para cerrar&lt;/h2&gt;
&lt;p&gt;El anuncio completo tiene más — planes de ahorro, asistentes de migración, funciones de compliance — pero la historia para desarrolladores está en el MCP Server, las mejoras vectoriales y la capa de gestión agéntica. Estas son las piezas que cambian cómo construyes, no solo cómo presupuestas.&lt;/p&gt;
&lt;p&gt;Revisa el &lt;a href="https://www.microsoft.com/en-us/sql-server/blog/2026/03/18/advancing-agentic-ai-with-microsoft-databases-across-a-unified-data-estate/"&gt;anuncio completo de Shireesh Thota&lt;/a&gt; para la foto completa, y &lt;a href="https://aka.ms/database-hub"&gt;regístrate para el acceso anticipado del Database Hub&lt;/a&gt; si quieres probar la nueva experiencia de gestión.&lt;/p&gt;</content:encoded></item></channel></rss>