← Back
JetBrains TV October 15, 2026 37m

Introducing the SQL MCP Server | Jerry Nixon | .NET Day 2026

Not yet indexed — Search & Ask will be available once this episode finishes processing.

Read full transcript 31 segments
  1. With us is Jerry Nixon, With us is Jerry Nixon, who will talk about who will talk about who will talk about SQL MCP server. SQL MCP server. SQL MCP server. Welcome, Jerry. How Welcome, Jerry. How Welcome, Jerry. How are you this are you this are you this morning? morning? morning? Thanks, guys. Glad Thanks, guys. Glad Thanks, guys. Glad to be here. Yes, it's to be here. Yes, it's to be here. Yes, it's morning for me now. The sun is morning for me now. The sun is morning for me now. The sun is just rising, so just rising, so just rising, so it's wonderful. I live in it's wonderful. I live in it's wonderful. I live in beautiful Colorado beautiful Colorado . It will be a "blue" . It will be a "blue" . It will be a "blue" day, as we say, day, as we say, day, as we say, when everything around is when everything around is when everything around is beautiful. Hello, beautiful. Hello, beautiful. Hello, Isaac. How is it? Isaac. How is it? Isaac. How is it? Everything is fine. Everything is going Everything is fine. Everything is going Everything is fine. Everything is going well. It's well. It's well. It's completely dark here now. So, completely dark here now. So, completely dark here now. So, yes, yes, yes, yes. yes, yes, yes, yes. yes, yes, yes, yes. That is, it could be That is, it could be That is, it could be one at night or seven in the one at night or seven in the one at night or seven in the morning. That's the morning. That's the morning. That's the beauty of the West beauty of the West beauty of the West Coast. Coast. Coast. Yes, great. Where are you, Yes, great. Where are you, Yes, great. Where are you, Michael? Michael? Michael? Isaac and I live Isaac and I live Isaac and I live about 15 minutes apart about 15 minutes apart about 15 minutes apart . This is . This is . This is quite funny. We quite funny. We quite funny. We both joined both joined both joined JetBrains at almost the JetBrains at almost the JetBrains at almost the same time and live same time and live same time and live very close to each other. very close to each other. Class. Man, I can't Class. Man, I can't tell you how excited I am about tell you how excited I am about this. Everyone is this. Everyone is creating agents now and creating agents now and creating agents now and developing their own developing their own developing their own agent strategy, agent strategy, agent strategy, so this will be a great so this will be a great so this will be a great talk. talk. Perfectly. Well, we'll Perfectly. Well, we'll bring your slides up bring your slides up bring your slides up on the screen and you're ready to on the screen and you're ready to on the screen and you're ready to go. go. go. OK. Let me OK. Let me OK. Let me start with who I start with who I start with who I am, besides the fact that I am, besides the fact that I am, besides the fact that I live in Colorado. My live in Colorado. My live in Colorado. My name is Jerry Nixon, and name is Jerry Nixon, and name is Jerry Nixon, and I work at Microsoft on the I work at Microsoft on the Data Platforms and AI team. We are Data Platforms and AI team. We are specifically dealing with specifically dealing with specifically dealing with SQL Server. That is, the entire SQL Server. That is, the entire SQL Server. That is, the entire Microsoft SQL family, Microsoft SQL family, Microsoft SQL family, from Azure Database in the from Azure Database in the from Azure Database in the cloud to managed cloud to managed cloud to managed instances on instances on instances on virtual machines virtual machines virtual machines and on-premises SQL Server. It's an and on-premises SQL Server. It's an and on-premises SQL Server. It's an incredible place to incredible place to incredible place to work, and work, and work, and honestly, it's a great honestly, it's a great honestly, it's a great place for place for place for developers. I'm now developers. I'm now

  2. developers. I'm now on the on the on the development development development experience team, and it's great to experience team, and it's great to experience team, and it's great to see see this giant this giant this giant SQL ship slowly SQL ship slowly SQL ship slowly and very seriously and very seriously and very seriously turning its turning its turning its face towards face towards face towards developers. So it's developers. So it's developers. So it's very exciting. It's very exciting. It's very exciting. It's always nice always nice always nice to see Andres and to see Andres and to see Andres and Sam, especially Sam. Sam, especially Sam. Sam, especially Sam. I always seem to I always seem to I always seem to come on after Sam come on after Sam come on after Sam when he talks when he talks when he talks about Uno or something, and it about Uno or something, and it about Uno or something, and it was cool to see it was cool to see it was cool to see it work on work on work on TV. This is a TV. This is a TV. This is a difficult position. He's a difficult position. He's a difficult position. He's a great speaker, great speaker, great speaker, so we'll see. I so we'll see. I so we'll see. I just listened to him just listened to him just listened to him talk about talk about talk about how fast .NET is how fast .NET is how fast .NET is and that it's getting even and that it's getting even and that it's getting even faster. And that's also faster. And that's also faster. And that's also wonderful. And how wonderful. And how wonderful. And how can we make .NET even can we make .NET even can we make .NET even better? Well, let's add a better? Well, let's add a better? Well, let's add a database. And while we're database. And while we're database. And while we're adding a database, adding a database, adding a database, let's add the fastest let's add the fastest let's add the fastest database in the universe database in the universe . So, this will be SQL. And . So, this will be SQL. And . So, this will be SQL. And when we take a step when we take a step when we take a step back and back and back and change our perspective change our perspective change our perspective on SQL a little bit, we start on SQL a little bit, we start on SQL a little bit, we start to see that it to see that it to see that it truly becomes a truly becomes a truly becomes a database for database for database for developers. It developers. It developers. It truly becomes a truly becomes a truly becomes a database with all these database with all these database with all these new tools new tools , updated , updated , updated drivers, fresh drivers, fresh drivers, fresh frameworks, and frameworks, and frameworks, and all the all the all the engine capabilities to keep everything engine capabilities to keep everything running super fast running super fast with incredible with incredible with incredible scalability. But scalability. But scalability. But today we won't today we won't today we won't talk about all that.

  3. talk about all that. talk about all that. We will talk and We will talk and We will talk and focus focus focus mainly on SQL MCP server. mainly on SQL MCP server. mainly on SQL MCP server. And I want to draw And I want to draw And I want to draw your attention to the SQL MCP server your attention to the SQL MCP server your attention to the SQL MCP server here, third from the top. And here, third from the top. And here, third from the top. And I just want to I just want to I just want to draw your draw your draw your attention to the Data API Builder at the attention to the Data API Builder at the attention to the Data API Builder at the top of that top of that top of that same column. same column. same column. The reason is that we're The reason is that we're The reason is that we're going to talk about going to talk about going to talk about both, and I'll explain it both, and I'll explain it both, and I'll explain it a little later, but a little later, but a little later, but they really set the stage they really set the stage they really set the stage for a full for a full for a full journey with apps journey with apps journey with apps and agents. So when and agents. So when and agents. So when you think about you think about data-driven applications, when you data-driven applications, when you think about think about think about data-driven agents, data-driven agents, data-driven agents, that's when we start that's when we start that's when we start thinking about Data API Builder thinking about Data API Builder thinking about Data API Builder and SQL MCP server. So, and SQL MCP server. So, and SQL MCP server. So, let's get started. let's get started. let's get started. Let's look Let's look Let's look at this from an at this from an at this from an architect's perspective. Can architect's perspective. Can architect's perspective. Can we we we not talk about not talk about not talk about technology for a while, but just technology for a while, but just technology for a while, but just about concepts? I about concepts? I about concepts? I think we can. And think we can. And think we can. And let's start with where it let's start with where it let's start with where it all all all begins, when you begins, when you begins, when you create an app. create an app. create an app. If you want to If you want to If you want to make your app make your app make your app great, the first thing you great, the first thing you great, the first thing you do is add a do is add a do is add a database. I want database. I want database. I want you to add Microsoft SQL. you to add Microsoft SQL. you to add Microsoft SQL. If you don't add a If you don't add a If you don't add a Microsoft SQL database, well Microsoft SQL database, well , we have a solution for , we have a solution for , we have a solution for that too, and I'll that too, and I'll that too, and I'll talk about it soon. However, once talk about it soon. However, once talk about it soon. However, once you do this, you do this, you do this, it adds a lot of code it adds a lot of code it adds a lot of code to to to your application's codebase. This is your application's codebase. This is your application's codebase. This is good code. This is an good code. This is an good code. This is an important code. This is the important code. This is the important code. This is the same code for same code for same code for interacting with data.

  4. interacting with data. This is a problematic type of This is a problematic type of code. And the reason is not code. And the reason is not code. And the reason is not only that it only that it only that it ties all your ties all your ties all your database work database work database work to the application, which means that to the application, which means that to the application, which means that any change any change any change results in results in results in redoing everything. This redoing everything. This redoing everything. This also means that also means that also means that inside your inside your inside your application you need to application you need to application you need to install a install a install a database driver. And I just database driver. And I just database driver. And I just talked about how we've talked about how we've talked about how we've significantly improved the significantly improved the significantly improved the database driver. And database driver. And database driver. And last week we last week we last week we announced a number of announced a number of announced a number of new features around new features around new features around all the improvements all the improvements all the improvements we've recently made to the we've recently made to the we've recently made to the driver. Serious driver. Serious driver. Serious investment to investment to investment to make it faster make it faster make it faster than ever and more than ever and more than ever and more scalable, scalable, scalable, as well as fixing as well as fixing as well as fixing a ton of old a ton of old a ton of old issues to issues to issues to ensure this is the ensure this is the ensure this is the most most most stable driver stable driver stable driver you've ever you've ever you've ever seen. This is great, seen. This is great, seen. This is great, except we except we except we will be constantly will be constantly will be constantly updating it. And updating it. And updating it. And since we since we since we keep keep keep updating it, you updating it, you updating it, you should also keep should also keep should also keep your your your driver updated. If you driver updated. If you driver updated. If you have bound a have bound a have bound a database driver and all the database driver and all the database driver and all the database logic database logic database logic inside inside inside your application, this your application, this your application, this means that you means that you means that you have also bound an have also bound an have also bound an update schedule, which update schedule, which update schedule, which will depend will depend will depend on the database driver in one way or another on the database driver in one way or another on the database driver in one way or another . You might . You might . You might think, "Everything think, "Everything think, "Everything works now, I don't works now, I don't works now, I don't need to need to need to change anything." But change anything." But change anything." But remember that remember that remember that the reason for making the reason for making the reason for making changes to database drivers changes to database drivers changes to database drivers is often security is often security . Therefore, to assume that . Therefore, to assume that . Therefore, to assume that if it worked 2 if it worked 2 if it worked 2 years ago, then nothing years ago, then nothing years ago, then nothing needs to be changed is needs to be changed is needs to be changed is ignoring ignoring ignoring the obvious and the obvious and the obvious and neglecting the neglecting the neglecting the responsibilities you responsibilities you responsibilities you have as an architect have as an architect have as an architect and engineer. So, what should and engineer. So, what should and engineer. So, what should we do? Well, we'll we do? Well, we'll we do? Well, we'll separate them. We will separate them. We will separate them. We will do this so that do this so that do this so that we have an API layer where we have an API layer where we have an API layer where we can we can we can install the install the install the database driver. We can database driver. We can database driver. We can move our Entity move our Entity move our Entity Framework code, for example, to an API, Framework code, for example, to an API, Framework code, for example, to an API, completely completely completely separating all the separating all the separating all the work and work and work and distributing distributing distributing responsibility between responsibility between responsibility between two different two different two different places. This is convenient from a

  5. places. This is convenient from a maintenance, maintenance, development, and development, and development, and update perspective, as update perspective, as update perspective, as the API is updated the API is updated the API is updated independently of our independently of our independently of our application. However, you application. However, you application. However, you may not think may not think may not think about this when starting the about this when starting the about this when starting the application itself. This is application itself. This is application itself. This is much more common much more common much more common than you might than you might than you might imagine. In fact, you'd imagine. In fact, you'd imagine. In fact, you'd be surprised be surprised be surprised how often an API how often an API how often an API turns out to be hard- turns out to be hard- turns out to be hard- wired to the wired to the wired to the database. By the way, this is a database. By the way, this is a database. By the way, this is a great approach great approach great approach because it because it because it allows the allows the allows the database owner, perhaps a database owner, perhaps a database owner, perhaps a DB administrator DB administrator DB administrator or developer, to or developer, to or developer, to perform these functions. perform these functions. perform these functions. To be able To be able To be able to look at the to look at the to look at the database and say: database and say: database and say: eventually it will need to be eventually it will need to be eventually it will need to be provided for provided for provided for access. I will access. I will access. I will need to need to need to open it up for open it up for open it up for applications that applications that applications that will be written, will be written, will be written, are being written now, or are being written now, or are being written now, or create my own. And create my own. And create my own. And I need to I need to I need to develop a strategy develop a strategy develop a strategy that is consistent that is consistent that is consistent and clear. That's why it's and clear. That's why it's and clear. That's why it's worth moving the API worth moving the API worth moving the API closer to the database so that it doesn't closer to the database so that it doesn't closer to the database so that it doesn't matter which matter which matter which applications interact with it applications interact with it applications interact with it . I will create a . I will create a . I will create a secure API so that no secure API so that no secure API so that no one accesses this database one accesses this database directly. This is directly. This is important. And it always important. And it always important. And it always happens through an API happens through an API that I can that I can that I can control, and it's a control, and it's a control, and it's a consistent source of, consistent source of, consistent source of, well, requests, right?

  6. well, requests, right? well, requests, right? So suddenly you can So suddenly you can So suddenly you can start thinking about start thinking about start thinking about security much more security much more security much more clearly. They are both clearly. They are both clearly. They are both wonderful. It doesn't matter wonderful. It doesn't matter wonderful. It doesn't matter which side you which side you which side you are on. But on are on. But on are on. But on whichever side whichever side whichever side you're on, you're on, you're on, that block of code, that block of code, that block of code, let's say, all the let's say, all the let's say, all the minimal APIs that you minimal APIs that you minimal APIs that you write, all the classes, write, all the classes, write, all the classes, all the database context all the database context all the database context for Entity Framework, for Entity Framework, for Entity Framework, all the DTOs that you have, all the all the DTOs that you have, all the all the DTOs that you have, all the unit tests for unit tests for unit tests for them, of course, and the CI/CD them, of course, and the CI/CD them, of course, and the CI/CD integrations that you'll integrations that you'll need for all of that. Wouldn't it be need for all of that. Wouldn't it be great if great if great if that was, well, a that was, well, a that was, well, a quarter, maybe a quarter, maybe a quarter, maybe a third of your code? third of your code? third of your code? If you could just If you could just If you could just delete it. And that delete it. And that delete it. And that is the goal of Data is the goal of Data is the goal of Data API Builder. Data API Builder says, API Builder. Data API Builder says, API Builder. Data API Builder says, "Listen, if you're "Listen, if you're "Listen, if you're just doing just doing just doing simple CRUD or simple CRUD or database operations, we could database operations, we could do it do it do it in our sleep. So why not in our sleep. So why not in our sleep. So why not let the SQL let the SQL let the SQL Server team do it for you? Server team do it for you? " So we built Data API " So we built Data API " So we built Data API Builder so that you could Builder so that you could Builder so that you could potentially, you know, there's some potentially, you know, there's some thinking involved here. thinking involved here. Look at Look at Look at a third of your a third of your a third of your codebase and codebase and codebase and delete it. Just delete it. Just delete it. Just imagine from a imagine from a imagine from a maintenance perspective, maintenance perspective, maintenance perspective, just imagine from a maintenance just imagine from a maintenance just imagine from a maintenance perspective and the perspective and the perspective and the frequency of updates, how much frequency of updates, how much frequency of updates, how much easier everything would be easier everything would be easier everything would be if you could if you could if you could use what's use what's use what's provided to you in a provided to you in a provided to you in a container that's container that's container that's supported by Microsoft, supported by Microsoft, supported by Microsoft, right? So there is a right? So there is a right? So there is a serious opportunity here serious opportunity here serious opportunity here for you to significantly for you to significantly for you to significantly simplify the overall simplify the overall simplify the overall architecture. I architecture. I architecture. I will talk about this in more will talk about this in more will talk about this in more detail later, detail later, detail later, but let me but let me but let me emphasize this first emphasize this first emphasize this first . Data API Builder . Data API Builder . Data API Builder is open source.

  7. is open source. is open source. Microsoft opened the Microsoft opened the Microsoft opened the source code from the very source code from the very source code from the very beginning 4 years ago. And beginning 4 years ago. And beginning 4 years ago. And that means it's that means it's that means it's free. You free. You free. You can can can use it use it use it with SQL or non-SQL with SQL or non-SQL with SQL or non-SQL databases. You can databases. You can databases. You can use it use it use it in Azure, on-premises, or in Azure, on-premises, or in Azure, on-premises, or even in another even in another even in another cloud environment. cloud environment. cloud environment. And this makes it even more And this makes it even more And this makes it even more compelling to consider compelling to consider compelling to consider whether whether whether your architecture should your architecture should your architecture should consider consider consider replacing significant replacing significant replacing significant amounts of code. Yes, I amounts of code. Yes, I amounts of code. Yes, I know, you are an engineer, I am an know, you are an engineer, I am an know, you are an engineer, I am an engineer too. We engineer too. We engineer too. We love writing love writing love writing code like this, but it's worth code like this, but it's worth code like this, but it's worth remembering that it's remembering that it's remembering that it's boring code. This is the type of boring code. This is the type of boring code. This is the type of code where bugs code where bugs code where bugs sneak in because we sneak in because we sneak in because we don't double-check it don't double-check it don't double-check it . We're just . We're just . We're just copying it from copying it from copying it from our previous our previous our previous project. We project. We project. We rename all the DTOs rename all the DTOs rename all the DTOs and classes and then and classes and then and classes and then just move on just move on just move on . This is normal. It's . This is normal. It's . This is normal. It's not the worst thing you can not the worst thing you can not the worst thing you can do, but do, but do, but think about why it's think about why it's think about why it's even necessary, even necessary, even necessary, right? If you right? If you right? If you say, "Oh, yeah, it's say, "Oh, yeah, it's say, "Oh, yeah, it's just one or just one or just one or two lines and you're two lines and you're two lines and you're done." What if it done." What if it done." What if it were zero rows? were zero rows? were zero rows? So, just So, just So, just think about it, that's what think about it, that's what think about it, that's what we're after. And we're after. And we're after. And don't think that Data API don't think that Data API don't think that Data API builder is just a simple builder is just a simple builder is just a simple CRUD replacement. We'll CRUD replacement. We'll CRUD replacement. We'll talk about all the talk about all the talk about all the features we features we features we have and have added to have and have added to have and have added to it. If you were it. If you were it. If you were building your own API building your own API building your own API and had all the time and and had all the time and and had all the time and budget in the world. We budget in the world. We budget in the world. We did what did what did what you would do.

  8. you would do. you would do. Let me Let me Let me just tell you this just tell you this . And since this is an . And since this is an . And since this is an open source project, you open source project, you open source project, you can look at can look at can look at our code and see that our code and see that our code and see that we didn't do anything we didn't do anything we didn't do anything exotic, but exotic, but exotic, but instead did instead did instead did exactly what you did, exactly what you did, exactly what you did, using the using the using the same libraries. We same libraries. We same libraries. We simply have an simply have an simply have an advantage because of advantage because of Microsoft's security oversight. We also Microsoft's security oversight. We also have the advantage of have the advantage of have the advantage of relationships with relationships with relationships with the developers of the developers of the developers of key key key open source libraries that open source libraries that open source libraries that you would use, and you would use, and you would use, and they helped us they helped us they helped us implement this, right? So implement this, right? So implement this, right? So we have a lot of things we have a lot of things that we just give to that we just give to that we just give to you for free. So you for free. So you for free. So let's not let's not let's not talk about agents talk about agents talk about agents or applications, or applications, or applications, let's let's let's talk about talk about talk about agents instead. When an agent agents instead. When an agent agents instead. When an agent needs to access the needs to access the needs to access the database, it also database, it also database, it also tries tries tries to talk to it to talk to it to talk to it directly, but in this directly, but in this directly, but in this case it actually case it actually case it actually cannot. And the reason cannot. And the reason cannot. And the reason he can't is because he can't is because he can't is because we we we don't work with don't work with don't work with models. We work models. We work models. We work with agents. Agents with agents. Agents are a shell around the are a shell around the are a shell around the model that provides it with model that provides it with model that provides it with instructions, security, instructions, security, instructions, security, etc., as well as all its etc., as well as all its etc., as well as all its capabilities. And agents capabilities. And agents capabilities. And agents do not come with a do not come with a do not come with a database driver database driver database driver automatically. No, they are not automatically. No, they are not automatically. No, they are not supplied. This is supplied. This is supplied. This is done intentionally. done intentionally. done intentionally. The reason is that The reason is that The reason is that they instead they instead they instead communicate through a communicate through a communicate through a common gateway, and that common gateway, and that common gateway, and that common gateway is the MCP.

  9. common gateway is the MCP. common gateway is the MCP. So, a local or So, a local or So, a local or remote MCP server remote MCP server is really what you is really what you is really what you want to add want to add want to add in the middle. This is very in the middle. This is very in the middle. This is very similar to an API. You can similar to an API. You can similar to an API. You can write it in .NET. write it in .NET. write it in .NET. You can...and you You can...and you You can...and you open it just like open it just like open it just like REST. In fact REST. In fact , if you think of , if you think of , if you think of it as a special it as a special it as a special kind of REST kind of REST kind of REST specifically for specifically for specifically for agents, then you agents, then you agents, then you will understand MCP. It has will understand MCP. It has will understand MCP. It has a few a few agent-specific capabilities, but nothing agent-specific capabilities, but nothing too serious. Um, too serious. Um, too serious. Um, and you can have both and you can have both and you can have both local and local and local and remote servers. remote servers. remote servers. Local servers are Local servers are Local servers are those installed on those installed on those installed on your machine. They are your machine. They are your machine. They are designed for a designed for a designed for a development cycle that is convenient and development cycle that is convenient and development cycle that is convenient and compact. They are compact. They are compact. They are usually a bit more usually a bit more usually a bit more powerful, to be honest powerful, to be honest , because they are , because they are , because they are used used used inside the inside the inside the development cycle. And they, um, development cycle. And they, um, development cycle. And they, um, they complement the they complement the they complement the remote servers remote servers remote servers that you deploy in that you deploy in that you deploy in your production your production your production environment for environment for environment for use by use by use by agents agents agents deployed by deployed by deployed by your users your users , not developers. , not developers. , not developers. So when we think So when we think So when we think of MCP, we now of MCP, we now of MCP, we now think of SQL MCP- think of SQL MCP- server. SQL MCP Server server. SQL MCP Server is also a is also a is also a free, free, open- open- open- source MCP server that you can source MCP server that you can source MCP server that you can simply deploy into simply deploy into simply deploy into your environment and your environment and your environment and immediately provide immediately provide immediately provide database access database access database access from your agent, so from your agent, so from your agent, so you can tell the you can tell the you can tell the agent, "I want to agent, "I want to agent, "I want to perform a CRUD operation perform a CRUD operation —create, read, —create, read, —create, read, update, or update, or update, or delete—on my delete—on my delete—on my database, with its database, with its database, with its tables, tables, tables, views, or views, or views, or stored stored stored procedures." Well, you'll procedures." Well, you'll procedures." Well, you'll have to write all of this have to write all of this have to write all of this yourself yourself yourself unless you unless you unless you use SQL MCP- use SQL MCP- server. And what's great server. And what's great server. And what's great about SQL MCP Server is that about SQL MCP Server is that about SQL MCP Server is that it's a Data API Builder.

  10. it's a Data API Builder. it's a Data API Builder. As I just showed, As I just showed, As I just showed, we have the Data API Builder that we have the Data API Builder that we have the Data API Builder that exposes exposes exposes endpoints, and now we endpoints, and now we endpoints, and now we also have the SQL MCP server, which also have the SQL MCP server, which also have the SQL MCP server, which is just the Data API Builder with a is just the Data API Builder with a is just the Data API Builder with a third third third endpoint. Still endpoint. Still endpoint. Still free, still free, still free, still protected by Microsoft, still protected by Microsoft, still protected by Microsoft, still supported by supported by supported by Microsoft, still has all the Microsoft, still has all the Microsoft, still has all the things you things you things you expect. And it expect. And it expect. And it is still a ready replacement in is still a ready replacement in is still a ready replacement in your environment. your environment. your environment. So you don't have to So you don't have to So you don't have to write a bunch of write a bunch of write a bunch of meaningless code. meaningless code. meaningless code. Can you write a .NET Can you write a .NET Can you write a .NET MCP server? Of course MCP server? Of course MCP server? Of course you can. Is it worth it to you can. Is it worth it to you can. Is it worth it to add add add so much so much so much maintenance to maintenance to maintenance to your enterprise your enterprise your enterprise to ensure a to ensure a to ensure a certain shelf certain shelf certain shelf life for the life for the life for the application you are application you are application you are building? building? building? It's up to you. It's up to you. It's up to you. It seems like the It seems like the It seems like the default answer should default answer should default answer should be "no" until you be "no" until you be "no" until you have a good have a good have a good reason to say "yes reason to say "yes ." So, let's ." So, let's ." So, let's talk about what talk about what talk about what it can do and what it can do and what it can do and what makes it makes it makes it safe. And when you safe. And when you safe. And when you think about REST API, I think about REST API, I think about REST API, I want a secure and want a secure and want a secure and high-performance high-performance high-performance API. When I think about a API. When I think about a API. When I think about a GraphQL API, I want a GraphQL API, I want a GraphQL API, I want a secure and secure and secure and high-performance high-performance high-performance API. But when I think API. But when I think API. But when I think about MCP server, although about MCP server, although about MCP server, although security is security is security is the most important, the most important, the most important, performance is performance is important. There are important. There are important. There are other types of other types of other types of safeguards safeguards safeguards we should think about we should think about we should think about that we might not that we might not that we might not have in a typical have in a typical have in a typical application API.

  11. application API. application API. Starting from the fact that Starting from the fact that natural language to SQL conversion is natural language to SQL conversion is not required. A not required. A not required. A typical MCP server typical MCP server typical MCP server receives a request receives a request receives a request generated by an agent. generated by an agent. generated by an agent. So, the user So, the user So, the user asks a question to asks a question to asks a question to the agent or model. the agent or model. the agent or model. How many products do How many products do How many products do I have in West I have in West I have in West Virginia? And now Virginia? And now Virginia? And now he needs to he needs to he needs to query the query the query the inventory table, and inventory table, and inventory table, and possibly the possibly the possibly the products table. And how does he products table. And how does he products table. And how does he do it? It writes do it? It writes do it? It writes a query inside an SQL a query inside an SQL query in the T-SQL language. query in the T-SQL language. query in the T-SQL language. It passes this to the MCP server, It passes this to the MCP server, It passes this to the MCP server, which performs a query on the which performs a query on the which performs a query on the database, after database, after database, after which the result which the result which the result is returned to the agent is returned to the agent is returned to the agent as data. And, to put it simply as data. And, to put it simply as data. And, to put it simply , MCP is just a , MCP is just a , MCP is just a transmission channel. This transmission channel. This transmission channel. This may sound may sound may sound appealing, but it is appealing, but it is appealing, but it is not our approach at all, not our approach at all, not our approach at all, because it is full of because it is full of because it is full of problems. And the reason problems. And the reason problems. And the reason I say this is: I say this is: I say this is: converting converting converting natural language to SQL natural language to SQL natural language to SQL puts the burden of puts the burden of puts the burden of creating the SQL query creating the SQL query creating the SQL query on the agent. And agents, no matter how on the agent. And agents, no matter how on the agent. And agents, no matter how smart smart smart they are, don't they are, don't they are, don't handle handle handle complex complex complex queries very well, especially queries very well, especially queries very well, especially when they're confusing. when they're confusing.

  12. So, a complex SQL query is usually query is usually query is usually built on built on built on concepts that we concepts that we concepts that we get theoretically get theoretically get theoretically from the documentation. And from the documentation. And from the documentation. And the agent then also writes the agent then also writes the agent then also writes this query, based this query, based this query, based on his training. on his training. However, let me However, let me point out: while we point out: while we point out: while we train these agents train these agents train these agents or models on the full or models on the full or models on the full array of human array of human array of human knowledge, the truly knowledge, the truly knowledge, the truly great queries great queries great queries are hidden behind the are hidden behind the are hidden behind the firewalls of our firewalls of our firewalls of our best companies. And best companies. And best companies. And they don't put them they don't put them they don't put them on GitHub. And, as a result, on GitHub. And, as a result, on GitHub. And, as a result, training data is a training data is a training data is a very simplified set of very simplified set of very simplified set of information. Although you information. Although you information. Although you might find one might find one might find one or two—you know, " or two—you know, " diamonds in the dirt." diamonds in the dirt." diamonds in the dirt." But this is not the way to But this is not the way to But this is not the way to train a model on train a model on train a model on one or two one or two one or two great queries. Not only does it take a great queries. Not only does it take a great queries. Not only does it take a thorough thorough thorough understanding of a query, understanding of a query, understanding of a query, you also need to have a you also need to have a you also need to have a thorough understanding of the thorough understanding of the thorough understanding of the database schema. So database schema. So database schema. So even if there were a even if there were a even if there were a great request, it's even great request, it's even great request, it's even less likely that less likely that less likely that the company would make the company would make the company would make its internal scheme public. its internal scheme public. its internal scheme public. I say all this to I say all this to I say all this to emphasize: there are emphasize: there are emphasize: there are many variables that many variables that many variables that greatly complicate greatly complicate greatly complicate the task and create the task and create the task and create significant obstacles for the significant obstacles for the significant obstacles for the usual model when usual model when usual model when writing a query. Uh, writing a query. Uh, writing a query. Uh, being able to being able to being able to write a good SQL write a good SQL query. But let's query. But let's query. But let's assume that she assume that she assume that she can. Let's assume it's can. Let's assume it's can. Let's assume it's relatively simple.

  13. relatively simple. relatively simple. Now, is it safe Now, is it safe Now, is it safe to let my to let my to let my models write all models write all models write all the queries for me? Well, the queries for me? Well, the queries for me? Well, here's another downside—the here's another downside—the stochastic nature of stochastic nature of stochastic nature of all models. So, the all models. So, the all models. So, the word " word " stochastic" stochastic" stochastic" comes from the English comes from the English comes from the English word "chaos", and word "chaos", and word "chaos", and this is how it works. If you this is how it works. If you this is how it works. If you ask a model ask a model ask a model a question that has a question that has a question that has three possible three possible three possible answers, there is a answers, there is a answers, there is a certain probability of which one certain probability of which one certain probability of which one is the is the is the most correct. most correct. most correct. Let's assume, Let's assume, Let's assume, for simplicity, that I'm for simplicity, that I'm for simplicity, that I'm asking about the asking about the asking about the easiest way to easiest way to easiest way to my house. And there are three my house. And there are three my house. And there are three paths I could paths I could paths I could take, with an take, with an take, with an 85%, 90%, and 95% probability of which one is the 85%, 90%, and 95% probability of which one is the 85%, 90%, and 95% probability of which one is the best. Great, best. Great, best. Great, which one will she choose? which one will she choose? which one will she choose? She will choose the one where 95%. She will choose the one where 95%. She will choose the one where 95%. Obviously, this would be the Obviously, this would be the Obviously, this would be the best option. best option. best option. Let's assume, just Let's assume, just Let's assume, just for the sake of understanding, that all for the sake of understanding, that all for the sake of understanding, that all three options had a three options had a three options had a probability of 90%. They probability of 90%. They probability of 90%. They were statistically were statistically were statistically identical. So, identical. So, identical. So, if that's the case, how does if that's the case, how does if that's the case, how does the model choose between the the model choose between the the model choose between the three? You could three? You could three? You could say that she say that she say that she just takes the first one, just takes the first one, just takes the first one, but remember: once but remember: once but remember: once these probabilities these probabilities these probabilities are determined, their are determined, their are determined, their order is unknown. So order is unknown. So order is unknown. So how does it work when all how does it work when all how does it work when all the options are statistically the options are statistically the options are statistically identical? It identical? It identical? It uses a uses a uses a random random random number generator, choosing, number generator, choosing, number generator, choosing, you know, randomly, which you know, randomly, which you know, randomly, which gives it a gives it a gives it a stochastic nature stochastic nature , which makes , which makes , which makes the interaction with you the interaction with you the interaction with you feel more feel more feel more natural, more natural, more natural, more conversational, and it's not conversational, and it's not conversational, and it's not always the same always the same always the same answer every time. That's answer every time. That's answer every time. That's not bad, but now not bad, but now not bad, but now think about think about think about writing an SQL query.

  14. writing an SQL query. writing an SQL query. Whenever I ask Whenever I ask Whenever I ask to write an SQL query, I to write an SQL query, I to write an SQL query, I get three get three get three potential answers potential answers . Let's go back to 85, 90, . Let's go back to 85, 90, . Let's go back to 85, 90, and 95 percent, and 95 percent, and 95 percent, determining which one is determining which one is determining which one is best. We have best. We have best. We have the concept of " the concept of " temperature" temperature" temperature" inside the model, and I inside the model, and I inside the model, and I can increase it. And can increase it. And can increase it. And while you've probably while you've probably while you've probably never never never seen it, it's seen it, it's seen it, it's only available at the API level. But the only available at the API level. But the only available at the API level. But the reason I'm reason I'm reason I'm raising the temperature is because raising the temperature is because it it it allows me to narrow down the allows me to narrow down the allows me to narrow down the statistical statistical statistical differences in the differences in the differences in the responses or responses or responses or probabilities, so probabilities, so probabilities, so even though I have 85, 90, 95, even though I have 85, 90, 95, even though I have 85, 90, 95, they actually they actually they actually boil down to boil down to boil down to all looking like 90. all looking like 90. all looking like 90. So the reason why this So the reason why this So the reason why this happens is happens is happens is because nothing because nothing because nothing is perfectly is perfectly is perfectly identical. You will identical. You will identical. You will never have a scenario never have a scenario never have a scenario where the three options have where the three options have where the three options have exactly the same exactly the same exactly the same probabilities, but they are probabilities, but they are probabilities, but they are pretty close. So I pretty close. So I pretty close. So I turn up the heat turn up the heat turn up the heat and make sure they and make sure they and make sure they stay stay stay close. Thus close. Thus close. Thus , I am , I am , I am left with the option of left with the option of left with the option of stochastic stochastic stochastic behavior. Now, behavior. Now, behavior. Now, while one option is while one option is while one option is clearly better, another is clearly better, another is clearly better, another is clearly worse, and the third is clearly worse, and the third is clearly worse, and the third is in the middle, my in the middle, my in the middle, my temperature, which is temperature, which is temperature, which is the default the default the default of 0.8 in all of of 0.8 in all of of 0.8 in all of these models that we these models that we these models that we use, use, use, makes them makes them makes them look exactly the look exactly the look exactly the same. Let's same. Let's same. Let's take a step back.

  15. take a step back. take a step back. What are we asking the agent What are we asking the agent What are we asking the agent to do? We ask to do? We ask to do? We ask him to write a request. him to write a request. him to write a request. And would you like And would you like And would you like the best query or the the best query or the the best query or the near best? And near best? And near best? And now we come to the now we come to the now we come to the problem: these models are problem: these models are problem: these models are not trying to not trying to not trying to destroy my destroy my destroy my business, delete my business, delete my business, delete my database or my database or my database or my tables. They're just tables. They're just tables. They're just trying to write a trying to write a trying to write a query, but they have a bunch of query, but they have a bunch of query, but they have a bunch of settings around settings around settings around them, all these them, all these them, all these internal behaviors, internal behaviors, internal behaviors, and all these limitations in and all these limitations in and all these limitations in their learning. And what, their learning. And what, their learning. And what, what will I ultimately what will I ultimately what will I ultimately get from them? I'll get from them? I'll get from them? I'll get a good one, I'll get a good one, I'll get a good one, I'll get an acceptable get an acceptable get an acceptable request. Everything will be request. Everything will be request. Everything will be okay. This works with the okay. This works with the okay. This works with the database. However, I database. However, I database. However, I test it a thousand test it a thousand test it a thousand times because I'm a good times because I'm a good times because I'm a good tester, but there's tester, but there's tester, but there's still no guarantee still no guarantee still no guarantee that the 1001st time will be that the 1001st time will be that the 1001st time will be identical. So, I can't identical. So, I can't identical. So, I can't test my test my test my models, look at models, look at models, look at their behavior, and their behavior, and their behavior, and say they're say they're say they're doing the right thing, because I do doing the right thing, because I do doing the right thing, because I do n't know if n't know if n't know if they'll they'll they'll do the same thing the next time. do the same thing the next time. do the same thing the next time. Let me give you an Let me give you an Let me give you an example. If I example. If I example. If I take a coin, take a coin, take a coin, flip it and get flip it and get heads or tails, and heads or tails, and heads or tails, and I get heads 1, 10, 100, I get heads 1, 10, 100, I get heads 1, 10, 100, 1000 times in a row. 1000 times in a row. 1000 times in a row. I now have 1000 "eagles" I now have 1000 "eagles" I now have 1000 "eagles" in a row. This is very in a row. This is very in a row. This is very unusual, but let's unusual, but let's unusual, but let's just imagine. What are just imagine. What are just imagine. What are the chances that I will get the chances that I will get heads or tails on the heads or tails on the heads or tails on the next next next toss, toss, toss, given the previous given the previous given the previous 1000 tosses? Still exactly 1000 tosses? Still exactly 1000 tosses? Still exactly 50%. So even 50%. So even 50%. So even if you check it if you check it if you check it a thousand times, it's a a thousand times, it's a a thousand times, it's a stochastic stochastic stochastic mechanism that always mechanism that always mechanism that always looks for probabilities, looks for probabilities, looks for probabilities, not a deterministic not a deterministic not a deterministic driver. And therefore, as a result driver. And therefore, as a result driver. And therefore, as a result , allowing , allowing , allowing an agent to write a request is a an agent to write a request is a no-no. The SQL MCP server no-no. The SQL MCP server no-no. The SQL MCP server solves this problem by solves this problem by solves this problem by creating a query for the creating a query for the creating a query for the agent. He hands over agent. He hands over agent. He hands over the recipe and asks, " the recipe and asks, " How much of this do How much of this do How much of this do you want?" So, he you want?" So, he you want?" So, he specifies the table, specifies the table, specifies the table, operation, operation, operation, predicate type, and then the MCP

  16. predicate type, and then the MCP predicate type, and then the MCP server writes the query for server writes the query for server writes the query for me. This solves the me. This solves the me. This solves the main nightmare, which main nightmare, which main nightmare, which is essentially SQL is essentially SQL injection of the modern injection of the modern injection of the modern era. Okay, we era. Okay, we era. Okay, we also have also have also have built-in pagination built-in pagination built-in pagination and a lot of and a lot of and a lot of rate limiting to rate limiting to rate limiting to ensure that ensure that ensure that no matter what the no matter what the no matter what the agent does, agent does, first, the agent doesn't get first, the agent doesn't get first, the agent doesn't get overloaded, overloaded, second, the MCP server doesn't second, the MCP server doesn't second, the MCP server doesn't get overloaded, get overloaded, get overloaded, but most importantly—we but most importantly—we but most importantly—we want to make sure want to make sure want to make sure that the database doesn't get that the database doesn't get that the database doesn't get overloaded. The overloaded. The overloaded. The next serious next serious next serious issue to issue to issue to consider is leaking consider is leaking consider is leaking your data schema to the your data schema to the your data schema to the agent. So, we have an agent. So, we have an agent. So, we have an abstraction mechanism abstraction mechanism abstraction mechanism whereby the schema whereby the schema whereby the schema contained in your contained in your contained in your database becomes database becomes database becomes abstracted to the abstracted to the abstracted to the agent, and it doesn't agent, and it doesn't agent, and it doesn't need to know how need to know how need to know how your database is structured your database is structured your database is structured . First of all, he . First of all, he . First of all, he can't know this. can't know this. can't know this. Let's say you have a Let's say you have a Let's say you have a regular database, regular database, regular database, it might have 100, it might have 100, it might have 100, maybe 1000 tables, maybe 1000 tables, maybe 1000 tables, typically about 2000 typically about 2000 typically about 2000 tables, right? That's tables, right? That's tables, right? That's quite a lot. But quite a lot. But quite a lot. But let's assume it's a let's assume it's a let's assume it's a smaller database. You smaller database. You smaller database. You now extract now extract now extract every table, every every table, every every table, every relationship, every relationship, every relationship, every column, every column, every column, every data type, as well as data type, as well as data type, as well as semantic descriptions semantic descriptions semantic descriptions of your tables to of your tables to of your tables to make sure make sure make sure the model understands. That's the model understands. That's the model understands. That's good. But you have already good. But you have already good. But you have already exhausted the exhausted the exhausted the context window, because in an context window, because in an context window, because in an instant, such a instant, such a instant, such a volume of information appeared that it does volume of information appeared that it does volume of information appeared that it does not even include the not even include the not even include the data itself. It data itself. It data itself. It doesn't even include any of doesn't even include any of doesn't even include any of your business your business transactions. So, we transactions. So, we transactions. So, we need to find a need to find a need to find a way to gradually " way to gradually " dosage" information dosage" information dosage" information about the schema, and that's exactly what about the schema, and that's exactly what about the schema, and that's exactly what we do in SQL MCP- we do in SQL MCP- server. Finally, we server. Finally, we server. Finally, we want to be want to be want to be able to able to able to secure this. Therefore, secure this. Therefore, secure this. Therefore, we use we use we use RBAC authorization RBAC authorization RBAC authorization as well as regular as well as regular as well as regular OAuth authentication OAuth authentication OAuth authentication so that you can continue to so that you can continue to so that you can continue to use what you

  17. use what you use what you already have in your already have in your already have in your topology. But we topology. But we topology. But we also want to also want to also want to make sure that if make sure that if make sure that if you can't you can't you can't secure it in the secure it in the secure it in the database, right? We are not database, right? We are not database, right? We are not talking about talking about talking about deleting a database deleting a database deleting a database or deleting a table. or deleting a table. or deleting a table. You've already solved this You've already solved this You've already solved this problem problem problem with security in with security in with security in your database, your database, your database, right? This is ridiculous right? This is ridiculous , right? Agents are not , right? Agents are not , right? Agents are not trying to trying to trying to harm us, they harm us, they harm us, they just make mistakes just make mistakes just make mistakes because we give them either because we give them either because we give them either too much information too much information too much information or not enough. We want or not enough. We want or not enough. We want all security to be all security to be all security to be configured in the configured in the configured in the database, but sometimes that's database, but sometimes that's database, but sometimes that's not possible. Sometimes not possible. Sometimes not possible. Sometimes you simply don't have you simply don't have you simply don't have the authority to make the authority to make the authority to make changes to your changes to your changes to your database. As a result, SQL database. As a result, SQL database. As a result, SQL MCP Server has the same MCP Server has the same MCP Server has the same built-in built-in built-in functionality that functionality that functionality that allows you to add allows you to add row-level, column-level, row-level, column-level, group-level, custom group-level, custom group-level, custom predicates—anything predicates—anything predicates—anything you might want to you might want to you might want to implement implement implement inside the database. inside the database. inside the database. If you can't If you can't If you can't do this, you do this, you do this, you can implement can implement can implement it in SQL MCP server. it in SQL MCP server. it in SQL MCP server. This flexibility is This flexibility is This flexibility is simply amazing. This simply amazing. This simply amazing. This allows you allows you allows you to use the Data API to use the Data API to use the Data API builder, which is essentially the builder, which is essentially the builder, which is essentially the same as the SQL MCP same as the SQL MCP server. Data API builder with server. Data API builder with server. Data API builder with MCP enabled is our MCP enabled is our MCP enabled is our SQL MCP server. It SQL MCP server. It SQL MCP server. It allows you to integrate allows you to integrate allows you to integrate it, helping it, helping it, helping all your applications all your applications all your applications reduce code, reduce code, reduce code, expand functionality expand functionality , and immediately , and immediately , and immediately implement agent implement agent implement agent solutions in your solutions in your solutions in your enterprise. This enterprise. This enterprise. This creates great creates great creates great value. There are a few value. There are a few value. There are a few things worth things worth things worth discussing.

  18. discussing. discussing. SQL MCP SQL MCP server capabilities. Remember: server capabilities. Remember: server capabilities. Remember: this is a free this is a free , open source project brought to you and , open source project brought to you and supported by Microsoft. supported by Microsoft. supported by Microsoft. We use We use We use it internally. This is the it internally. This is the it internally. This is the engine behind engine behind engine behind Microsoft Fabric and Microsoft Fabric and Microsoft Fabric and graphics API graphics API endpoints. It is an endpoints. It is an endpoints. It is an integral integral integral part of the part of the part of the Raven and Raven and Raven and Fabric infrastructure. Many Fabric infrastructure. Many Fabric infrastructure. Many internal systems internal systems internal systems rely on SQL MCP rely on SQL MCP server. We created server. We created server. We created it for ourselves. And then it for ourselves. And then it for ourselves. And then made it made it made it open to provide to open to provide to open to provide to you. So when you you. So when you you. So when you think about secrets, think about secrets, think about secrets, we deploy it as a we deploy it as a we deploy it as a container. So, you container. So, you container. So, you will need to enter will need to enter will need to enter your username your username your username and password, say, and password, say, and password, say, for your database. for your database. for your database. If you do this, you If you do this, you If you do this, you can can can use use use environment variables as environment variables as environment variables as expected in a expected in a expected in a Kubernetes environment, or Kubernetes environment, or Kubernetes environment, or use a use a use a secret manager secret manager secret manager such as Azure Key Vault, such as Azure Key Vault, such as Azure Key Vault, which we support which we support which we support natively. It's worth natively. It's worth natively. It's worth noting that Azure Key noting that Azure Key noting that Azure Key Vault is unique to Vault is unique to Vault is unique to Azure. However, this does not Azure. However, this does not Azure. However, this does not mean that SQL MCP server mean that SQL MCP server mean that SQL MCP server or Data API builder or Data API builder or Data API builder require Azure. You require Azure. You require Azure. You can run this can run this can run this locally or in another locally or in another locally or in another cloud. You just cloud. You just cloud. You just might not be able to might not be able to might not be able to use use use some some some Azure-specific features, like Azure Azure-specific features, like Azure Azure-specific features, like Azure Key Vault. Or you can Key Vault. Or you can Key Vault. Or you can use a use a use a managed instance, managed instance, managed instance, which is definitely the which is definitely the which is definitely the best option, best option, best option, right? We can right? We can right? We can get rid of all our get rid of all our get rid of all our passwords by simply passwords by simply passwords by simply using a using a using a managed managed managed identity for a identity for a identity for a managed managed managed instance, MI. So instance, MI. So instance, MI. So managed managed managed identity is identity is identity is probably the best probably the best probably the best choice, without a doubt.

  19. choice, without a doubt. choice, without a doubt. Now we point to the Now we point to the Now we point to the database. Let database. Let database. Let me make a few me make a few me make a few remarks. We can remarks. We can remarks. We can point to multiple point to multiple point to multiple databases at the same time. databases at the same time. databases at the same time. So, if I have a So, if I have a So, if I have a database in the cloud, a database in the cloud, a database in the cloud, a database on-premises, database on-premises, database on-premises, and I want to be and I want to be and I want to be able to able to able to query both in a query both in a query both in a single compound single compound single compound query and return query and return query and return a single useful a single useful a single useful content from multiple content from multiple content from multiple data sources, I data sources, I data sources, I absolutely can absolutely can absolutely can do that. What a great do that. What a great do that. What a great way to simplify way to simplify way to simplify your enterprise your enterprise your enterprise databases into a single databases into a single databases into a single API, API, API, giving the impression of giving the impression of giving the impression of integration even integration even integration even as they as they as they remain in their own remain in their own remain in their own unique unique unique databases. This is really databases. This is really databases. This is really powerful. Each of these powerful. Each of these powerful. Each of these databases does not have to databases does not have to databases does not have to be a be a be a Microsoft SQL database. Microsoft SQL database. Microsoft SQL database. Of course, in my opinion, it would be Of course, in my opinion, it would be Of course, in my opinion, it would be important for important for important for them to be. But this them to be. But this them to be. But this means that we means that we means that we fully support fully support fully support any variant of SQL, as well any variant of SQL, as well any variant of SQL, as well as PostgreSQL. So, as PostgreSQL. So, as PostgreSQL. So, we also support we also support we also support all the options you all the options you all the options you can imagine in can imagine in can imagine in PostgreSQL, which is nice. We PostgreSQL, which is nice. We PostgreSQL, which is nice. We know that you know that you know that you probably work in a probably work in a probably work in a company where not everything company where not everything company where not everything depends on you. depends on you. depends on you. Some technologies Some technologies Some technologies choose for you. choose for you. choose for you. Okay, we'll talk Okay, we'll talk Okay, we'll talk about that when we get about that when we get about that when we get to authentication, because to authentication, because to authentication, because we need a broad we need a broad we need a broad story, not story, not story, not an assumption that everyone is an assumption that everyone is an assumption that everyone is using purely using purely using purely Microsoft across the stack.

  20. Microsoft across the stack. Microsoft across the stack. This is normal. We This is normal. We This is normal. We also support also support also support Cosmos, which is cool because you Cosmos, which is cool because you Cosmos, which is cool because you can add useful NoSQL content to can add useful NoSQL content to can add useful NoSQL content to that composite that composite that composite query query query that that that is returned, as well as is returned, as well as is returned, as well as MySQL and MariaDB. So that's MySQL and MariaDB. So that's MySQL and MariaDB. So that's pretty cool. So, pretty cool. So, pretty cool. So, think about all these think about all these think about all these database options, and database options, and database options, and also the fact that you also the fact that you also the fact that you can have multiple of can have multiple of can have multiple of them at the same time. them at the same time. them at the same time. The fastest or The fastest or The fastest or easiest way easiest way easiest way to keep to keep to keep your database fast your database fast your database fast is to make is to make is to make fewer queries to it. There is fewer queries to it. There is fewer queries to it. There is no way to avoid this no way to avoid this . So, the easiest . So, the easiest . So, the easiest way to make fewer way to make fewer requests is to simply requests is to simply cache. Where should the cache. Where should the cache. Where should the cache be? Inside your cache be? Inside your cache be? Inside your MCP. Remember: if MCP. Remember: if MCP. Remember: if you are building an API, you you are building an API, you you are building an API, you will be building will be building will be building it with these features it with these features . We have already created it . We have already created it . We have already created it for you and are simply for you and are simply for you and are simply providing it to you. You providing it to you. You providing it to you. You can can can use use use managed Redis as an managed Redis as an managed Redis as an option, but you option, but you option, but you can also just can also just can also just run Redis in a run Redis in a run Redis in a container or container or container or install it install it anywhere. Again, the micro anywhere. Again, the micro anywhere. Again, the micro or SQL MCP server or the or SQL MCP server or the or SQL MCP server or the Data API Builder Data API Builder Data API Builder is delivered as a is delivered as a is delivered as a container. So you container. So you container. So you can safely can safely can safely just add this to just add this to just add this to your distributed your distributed your distributed application. However, application. However, application. However, if this is not for you and if this is not for you and if this is not for you and you don't like you don't like you don't like containers, you can containers, you can containers, you can use this as a use this as a use this as a sidecar to sidecar to sidecar to interact without interact without interact without containers in your containers in your containers in your architecture. So, Redis architecture. So, Redis architecture. So, Redis provides us with a provides us with a provides us with a second-level cache. We second-level cache. We second-level cache. We also have a first also have a first also have a first level cache. The entire level cache. The entire level cache. The entire caching process is managed caching process is managed caching process is managed "behind the scenes" "behind the scenes" "behind the scenes" by Fusion Cache. This is a by Fusion Cache. This is a by Fusion Cache. This is a great example of great example of great example of how the author and how the author and how the author and maintainer of Fusion Cache maintainer of Fusion Cache maintainer of Fusion Cache joined us joined us joined us to help with to help with to help with the implementation the implementation the implementation inside SQL MCP inside SQL MCP servers. Let me servers. Let me servers. Let me ask: do ask: do ask: do all all all the developers come to the developers come to the developers come to help you help you help you build the API according to the build the API according to the build the API according to the specifications, and do specifications, and do specifications, and do they consult they consult they consult you with every you with every you with every version update? I

  21. version update? I version update? I want you to see the want you to see the want you to see the serious benefits of serious benefits of serious benefits of using this using this using this solution and solution and solution and implementing it in implementing it in implementing it in your application. Microsoft your application. Microsoft your application. Microsoft Foundry is where Foundry is where Foundry is where Microsoft houses all of Microsoft houses all of Microsoft houses all of our AI models. This our AI models. This our AI models. This covers all GPT covers all GPT covers all GPT or OpenAI models, Anthropic models, or OpenAI models, Anthropic models, or OpenAI models, Anthropic models, Rock models, everything you Rock models, everything you Rock models, everything you can think of, can think of, can think of, right? They are all in right? They are all in right? They are all in Foundry, including Foundry, including Foundry, including MAI or Microsoft AI models. MAI or Microsoft AI models. MAI or Microsoft AI models. This is a great way This is a great way This is a great way to abstract away and not to abstract away and not to abstract away and not depend on depend on depend on where the where the where the models actually come from. models actually come from. models actually come from. The nice thing is that we have The nice thing is that we have The nice thing is that we have full integration, full integration, full integration, so you can easily so you can easily so you can easily create an agent in create an agent in create an agent in Foundry using Foundry using Foundry using any model and any model and any model and then point then point then point it to the SQL MCP server it to the SQL MCP server it to the SQL MCP server to communicate with your to communicate with your to communicate with your databases. By the way, databases. By the way, databases. By the way, this is hosted by you. this is hosted by you. this is hosted by you. You decide where You decide where You decide where the container will be and where the the container will be and where the application service will be. You application service will be. You decide how decide how decide how big or small it big or small it big or small it should be. It's great should be. It's great should be. It's great that you have the flexibility that you have the flexibility that you have the flexibility to make decisions like this. to make decisions like this. to make decisions like this. We also have other We also have other We also have other integrations. We integrations. We integrations. We integrate with Aspire, integrate with Aspire, integrate with Aspire, we integrate with Azure we integrate with Azure we integrate with Azure App Services, so we have App Services, so we have App Services, so we have Easy Auth. There's a lot Easy Auth. There's a lot Easy Auth. There's a lot going on here, probably going on here, probably going on here, probably too much to too much to too much to discuss, but the discuss, but the discuss, but the most important one I most important one I most important one I don't want to leave out is OAuth.

  22. don't want to leave out is OAuth. don't want to leave out is OAuth. So, our security, So, our security, So, our security, of course, we allow for a of course, we allow for a of course, we allow for a lack of security. lack of security. lack of security. You could say, without You could say, without You could say, without authentication. This authentication. This authentication. This might make sense in a might make sense in a might make sense in a secure secure secure virtual network ( virtual network ( VNet). However, VNet). However, VNet). However, you will most likely you will most likely you will most likely use OAuth use OAuth use OAuth to interact with to interact with to interact with your secure your secure your secure system. And it will system. And it will system. And it will depend on you. You depend on you. You depend on you. You go to the website and go to the website and go to the website and log in using log in using log in using OAuth. You receive a OAuth. You receive a OAuth. You receive a token and can token and can token and can pass it on. pass it on. pass it on. This is how you This is how you This is how you connect to a REST connect to a REST connect to a REST API, so to speak. But API, so to speak. But API, so to speak. But for agents, things are a bit for agents, things are a bit for agents, things are a bit different. Because different. Because different. Because agents work agents work agents work differently, we had to differently, we had to differently, we had to implement an additional implement an additional implement an additional feature to solve a feature to solve a feature to solve a new problem in the new problem in the new problem in the context of AI. And that's what it is context of AI. And that's what it is context of AI. And that's what it is . . . Namely: whose name do you Namely: whose name do you Namely: whose name do you want to see in the want to see in the want to see in the audit logs of the audit logs of the audit logs of the database itself? database itself? database itself? If someone deletes a If someone deletes a If someone deletes a product from the database product from the database , do you want the SQL , do you want the SQL , do you want the SQL MCP server to have an MCP server to have an MCP server to have an audit log audit log audit log indicating that it was MCP that indicating that it was MCP that indicating that it was MCP that deleted the product? Do deleted the product? Do deleted the product? Do you want it to you want it to you want it to say "Agent say "Agent say "Agent removed this product" removed this product" removed this product" or do you want to see or do you want to see or do you want to see the user? Do the user? Do the user? Do you want you want Jerry's name in the audit logs so you Jerry's name in the audit logs so you can see who can see who can see who did it, not what did it, not what did it, not what did it. To did it. To did it. To achieve this, we achieve this, we achieve this, we use use use "on "on "on behalf of" authentication or end-to-end behalf of" authentication or end-to-end behalf of" authentication or end-to-end authentication, where authentication, where authentication, where I log in using I log in using I log in using OAuth as usual, take OAuth as usual, take OAuth as usual, take my token, pass it on my token, pass it on my token, pass it on , and it , and it , and it gets forwarded through gets forwarded through gets forwarded through all the services. It's a very all the services. It's a very all the services. It's a very powerful tool, powerful tool, powerful tool, and this is probably the and this is probably the and this is probably the right way to right way to right way to do it. This do it. This do it. This requires a few requires a few requires a few extra steps extra steps extra steps to get everything working, to get everything working, to get everything working, but in the end, changes and but in the end, changes and but in the end, changes and operations in your operations in your operations in your database are properly database are properly database are properly tied to tied to tied to the user who the user who the user who initiated them. So,

  23. initiated them. So, initiated them. So, even if an agent even if an agent even if an agent does something does something does something unexpected, the ultimate unexpected, the ultimate unexpected, the ultimate responsibility responsibility responsibility lies with the person who lies with the person who lies with the person who made the initial made the initial made the initial request. So, request. So, request. So, being able to do this being able to do this being able to do this provides great benefits. provides great benefits. provides great benefits. You can implement You can implement You can implement OAuth however you want. OAuth however you want. OAuth however you want. If you If you If you use Microsoft use Microsoft use Microsoft Entra, we of course Entra, we of course Entra, we of course support it. If support it. If support it. If you have your own you have your own you have your own OAuth provider, we OAuth provider, we OAuth provider, we support that too, support that too, support that too, as OAuth is a as OAuth is a as OAuth is a great standard. We great standard. We great standard. We can can can use all use all use all roles. We can roles. We can roles. We can set up the transfer of set up the transfer of set up the transfer of your token. We your token. We your token. We use SQL use SQL sessions, take all the sessions, take all the sessions, take all the details of your queries details of your queries details of your queries and include them and include them and include them in the database as well. So in the database as well. So in the database as well. So how detailed how detailed how detailed or simple you want to or simple you want to or simple you want to make it is make it is up to you. up to you. Speaking of simple Speaking of simple or detailed, sometimes in an or detailed, sometimes in an or detailed, sometimes in an architectural sense architectural sense architectural sense you want to deploy you want to deploy you want to deploy your application and you your application and you your application and you think: we think: we think: we actually have a service- actually have a service- oriented oriented oriented architecture, we have architecture, we have architecture, we have a lot of things, a lot of a lot of things, a lot of a lot of things, a lot of databases. Most databases. Most databases. Most of them deserve their of them deserve their of them deserve their own API. That's own API. That's own API. That's good. We good. We good. We can totally do that can totally do that can totally do that since it's such a since it's such a since it's such a small, ephemeral small, ephemeral small, ephemeral container, making container, making container, making it timeless and it timeless and it timeless and easy to easy to easy to use. You use. You use. You can place them can place them can place them anywhere and it almost doesn't anywhere and it almost doesn't anywhere and it almost doesn't matter. They matter. They matter. They can can can go completely into sleep go completely into sleep go completely into sleep mode when not mode when not mode when not in use.

  24. in use. in use. They can They can They can wake up when wake up when wake up when they are needed. You they are needed. You they are needed. You can can can use a use a use a second-level cache if second-level cache if second-level cache if you want your you want your you want your containers containers containers to run "warm to run "warm " rather than "cold". " rather than "cold". " rather than "cold". We also We also We also support this. So it's support this. So it's support this. So it's nice to know that all of nice to know that all of nice to know that all of this can be adapted this can be adapted this can be adapted to your to your to your behavior pattern. Another behavior pattern. Another behavior pattern. Another architectural architectural architectural concept you concept you concept you can have is can have is can have is using a backend using a backend using a backend for the frontend (BFF). for the frontend (BFF). Of course, we Of course, we support this support this support this by allowing by allowing by allowing each independent endpoint to scale each independent endpoint to scale based on the domain based on the domain or type of or type of or type of users users users they serve. It's they serve. It's they serve. It's entirely up entirely up entirely up to you. Finally, if to you. Finally, if to you. Finally, if you use you use you use command separation and command separation and command separation and create a read- create a read- create a read- only database replica only database replica only database replica , which is now , which is now , which is now built-in almost built-in almost built-in almost everywhere, we support that too everywhere, we support that too everywhere, we support that too : you : you : you can disable all can disable all can disable all writes on writes on writes on one endpoint and one endpoint and one endpoint and allow only allow only allow only reads, or the reads, or the reads, or the opposite—disable opposite—disable opposite—disable all reads all reads all reads on the other. So, in on the other. So, in on the other. So, in this case, the this case, the this case, the top API writes top API writes top API writes but does not read. And the lower but does not read. And the lower but does not read. And the lower API reads but does not API reads but does not API reads but does not write. This is a great write. This is a great write. This is a great way to ensure way to ensure way to ensure extreme extreme extreme database speed database speed database speed because the heavy, because the heavy, computationally intensive queries computationally intensive queries are isolated in the are isolated in the are isolated in the lower API, and lower API, and we handle the replication that mirrors the data we handle the replication that mirrors the data through through through background logs, so it background logs, so it background logs, so it doesn't impact doesn't impact doesn't impact performance. So, performance. So, performance. So, this is again just a this is again just a this is again just a nice nice nice opportunity. Since opportunity. Since opportunity. Since you're a developer, just you're a developer, just you're a developer, just know that it's know that it's know that it's built in. We have a built in. We have a built in. We have a cross-platform cross-platform cross-platform command command command line interface (CLI) that line interface (CLI) that lets you do everything and lets you do everything and automate the entire automate the entire automate the entire process. We also process. We also process. We also have built-in Swagger have built-in Swagger have built-in Swagger for testing REST for testing REST requests. We have Nitro, requests. We have Nitro, requests. We have Nitro, formerly known as

  25. formerly known as formerly known as Banana Cake Pop, Banana Cake Pop, Banana Cake Pop, which allows you which allows you which allows you to run to run to run all your GraphQL tests all your GraphQL tests all your GraphQL tests right in VS Code. You right in VS Code. You right in VS Code. You can download the can download the can download the local MCP server local MCP server local MCP server directly to directly to directly to us. We have an us. We have an us. We have an extension extension extension called Omnibus that can be called Omnibus that can be called Omnibus that can be found for Data API Builder, found for Data API Builder, found for Data API Builder, and we also have, and I'll and we also have, and I'll and we also have, and I'll show you in a moment, a show you in a moment, a show you in a moment, a cool new cool new cool new MSSQL extension. It's MSSQL extension. It's MSSQL extension. It's not that new. We've had not that new. We've had not that new. We've had it for years, it for years, it for years, but it's got a but it's got a but it's got a new feature that new feature that new feature that lets you view, lets you view, interact with, interact with, and design your database schema and design your database schema . Interact with it, . Interact with it, . Interact with it, design it, and design it, and design it, and then you can then you can then you can switch to switch to switch to using the same using the same using the same schema for schema for schema for your API operation and its your API operation and its your API operation and its design. So this is design. So this is design. So this is really really cool really really cool really really cool stuff. In this case, stuff. In this case, stuff. In this case, I use DAB init in the I use DAB init in the I use DAB init in the CLI to simply specify a CLI to simply specify a CLI to simply specify a single JSON file. single JSON file. single JSON file. Here's how you Here's how you Here's how you control it. A single JSON control it. A single JSON file provided to file provided to file provided to the container is how the container is how the container is how you manage everything. It you manage everything. It you manage everything. It tells you how tells you how tells you how to connect to my to connect to my to connect to my database. In this database. In this database. In this case, I am providing an case, I am providing an case, I am providing an environment variable environment variable environment variable to connect to to connect to to connect to my SQL Server. Then I my SQL Server. Then I my SQL Server. Then I say: let's add customers say: let's add customers . You don't just . You don't just . You don't just show everything in a row.

  26. show everything in a row. show everything in a row. You choose the tables, You choose the tables, You choose the tables, stored procedures, stored procedures, stored procedures, and views that and views that and views that you like and you like and you like and want to open. want to open. want to open. Then you decide Then you decide Then you decide which lines you want to which lines you want to which lines you want to open. Then you open. Then you open. Then you decide which decide which decide which columns you want to columns you want to columns you want to open. So in open. So in open. So in this case I this case I this case I expose everything and expose everything and expose everything and open access to open access to open access to anonymous anonymous anonymous users, users, users, allowing them allowing them allowing them to create, read, to create, read, to create, read, update, and update, and update, and delete, and then delete, and then delete, and then run it. This is a run it. This is a run it. This is a local local local developer loop. That's what I developer loop. That's what I developer loop. That's what I started with. It works. started with. It works. started with. It works. I have a I have a full REST, GraphQL, full REST, GraphQL, and MCP server running on my local machine, ready and MCP server running on my local machine, ready and MCP server running on my local machine, ready to go. Isn't that right? to go. Isn't that right? to go. Isn't that right? So it's very convenient. So it's very convenient. So it's very convenient. You may not have a You may not have a You may not have a customer table, customer table, customer table, so you create your so you create your so you create your own that makes own that makes own that makes sense to you. So, sense to you. So, sense to you. So, a quick overview: SQL MCP a quick overview: SQL MCP Server is built Server is built Server is built around around around security mechanisms to ensure that your MCP security mechanisms to ensure that your MCP Server does not become the Server does not become the Server does not become the weak link in the weak link in the weak link in the security of your security of your security of your agent path. Is agent path. Is agent path. Is n't that right? This is important. We n't that right? This is important. We n't that right? This is important. We care about our data. care about our data. care about our data. We care about the We care about the We care about the integrity of our integrity of our integrity of our data. We care about the data. We care about the data. We care about the quality of our data. quality of our data. quality of our data. We care about We care about We care about the performance of our the performance of our the performance of our data. We want data. We want data. We want everything to be protected. everything to be protected. everything to be protected. So we have a great So we have a great So we have a great database with a great database with a great database with a great level of security. However level of security. However , once we , once we , once we open that door, open that door, open that door, we need to we need to we need to make sure we are make sure we are make sure we are protected from protected from protected from things like SQL injections.

  27. things like SQL injections. things like SQL injections. They may not be on They may not be on They may not be on our minds, but our minds, but our minds, but prompt injection is what prompt injection is what prompt injection is what we're thinking about. we're thinking about. we're thinking about. So, we want to So, we want to So, we want to limit all limit all limit all possibilities, giving possibilities, giving possibilities, giving the agent enough the agent enough the agent enough functionality to functionality to functionality to perform all the perform all the tasks we need. This is an interesting tasks we need. This is an interesting point—finding a point—finding a point—finding a balance in exactly balance in exactly balance in exactly how much how much how much opportunity to provide opportunity to provide and how much and how much and how much to restrict. So if to restrict. So if to restrict. So if you were solving this you were solving this you were solving this problem, especially problem, especially natural language to SQL conversion, natural language to SQL conversion, you would almost certainly you would almost certainly you would almost certainly write something write something write something similar to what we similar to what we similar to what we did in SQL MCP- did in SQL MCP- server. We create an server. We create an entity abstraction layer, and then a query building engine that takes query building engine that takes instructions from instructions from instructions from the agent, instead of the agent, instead of the agent, instead of requiring requiring requiring it to understand and it to understand and it to understand and write SQL. And then write SQL. And then write SQL. And then we generate T-SQL, we generate T-SQL, we generate T-SQL, execute it in the execute it in the execute it in the database, and return database, and return database, and return only the received data to the agent only the received data to the agent only the received data to the agent . This is important . This is important . This is important because when we create a because when we create a because when we create a query, we do it query, we do it query, we do it deterministically. It's the deterministically. It's the deterministically. It's the same every time, same every time, same every time, no matter what. And no matter what. And no matter what. And this is just another nuance. this is just another nuance. this is just another nuance. We can never We can never We can never achieve perfect achieve perfect achieve perfect security. Unless you security. Unless you security. Unless you just turn off your just turn off your just turn off your database. This is the only database. This is the only database. This is the only way to make your way to make your way to make your data completely data completely data completely secure. But while secure. But while secure. But while we're interacting with it, we're interacting with it, we're interacting with it, we can close we can close we can close windows and doors to windows and doors to windows and doors to narrow down any narrow down any narrow down any possible possible possible security risks. SQL MCP server, security risks. SQL MCP server, security risks. SQL MCP server, believe me, we thought long and believe me, we thought long and believe me, we thought long and hard about everything hard about everything hard about everything to not to not to not only protect the data, only protect the data, only protect the data, but also protect the agent but also protect the agent but also protect the agent and its context and its context and its context window from window from window from overflow overflow overflow by providing a schema or its by providing a schema or its by providing a schema or its abstraction in parts abstraction in parts . In addition to . In addition to . In addition to protective equipment, there are several other protective equipment, there are several other protective equipment, there are several other important aspects of the

  28. important aspects of the important aspects of the engine itself. engine itself. First, using First, using First, using multiple data sources multiple data sources multiple data sources opens up new opens up new opens up new possibilities for possibilities for possibilities for designing solutions, designing solutions, designing solutions, especially if we especially if we especially if we are creating are creating are creating database-driven services database-driven services database-driven services . We have a . We have a . We have a first and second first and second first and second level cache to level cache to level cache to offload the offload the offload the database, especially for database, especially for database, especially for simple queries that simple queries that simple queries that might be massively might be massively might be massively received by received by received by users every morning users every morning when they need to when they need to when they need to fill in the same fill in the same fill in the same dropdown menu. Well, dropdown menu. Well, dropdown menu. Well, let's just let's just let's just cache this so that it cache this so that it cache this so that it works instantly. works instantly. works instantly. You become a hero You become a hero You become a hero because the database because the database because the database responds faster responds faster responds faster than ever. The than ever. The than ever. The database may be less database may be less database may be less powerful than before powerful than before powerful than before because it is being requested by because it is being requested by far fewer people. This far fewer people. This provides significant advantages. provides significant advantages. provides significant advantages. We also have a whole We also have a whole We also have a whole suite of suite of suite of health checks in our health health checks in our health health checks in our health endpoint endpoint endpoint , as well as , as well as , as well as OpenTelemetry support, OpenTelemetry support, OpenTelemetry support, so you can have a so you can have a so you can have a single dashboard single dashboard single dashboard of monitoring and of monitoring and of monitoring and viewing by simply viewing by simply viewing by simply connecting the SQL MCP connecting the SQL MCP connecting the SQL MCP server to your server to your server to your current solution. current solution. current solution. Just imagine this Just imagine this . We talked about all the . We talked about all the . We talked about all the background databases, and background databases, and background databases, and we're adding new ones. So we're adding new ones. So we're adding new ones. So you can you can you can use use any database, any database, any architecture, any any architecture, any cloud, right? This is cloud, right? This is cloud, right? This is incredible. And in incredible. And in any language you any language you any language you want to write it in.

  29. want to write it in. want to write it in. There are no There are no There are no libraries, no libraries, no libraries, no frameworks. frameworks. frameworks. It comes to you It comes to you It comes to you as a container that as a container that as a container that you can run in you can run in you can run in Kubernetes, ACA, or ACI, or Kubernetes, ACA, or ACI, or Kubernetes, ACA, or ACI, or simply as a sidecar simply as a sidecar container for your container for your container for your web application. All of this is web application. All of this is web application. All of this is open source and open source and open source and free. Probably free. Probably free. Probably one of the coolest one of the coolest one of the coolest things to things to things to say. Not at all what say. Not at all what say. Not at all what I expected. So I expected. So I expected. So let me let me let me show you show you show you this quickly. This, this is a designer, this quickly. This, this is a designer, this quickly. This, this is a designer, yes. yes. yes. We're a little short on We're a little short on We're a little short on time if you want to time if you want to time if you want to answer answer answer questions. Uh, so, questions. Uh, so, questions. Uh, so, I really want to. Yes, I really want to. Yes, I really want to. Yes, you are right. you are right. you are right. Okay, okay, Okay, okay, Okay, okay, okay, I'm not going to okay, I'm not going to okay, I'm not going to talk about that, but I'll talk about that, but I'll talk about that, but I'll just say that this is an API just say that this is an API designer, and this was my designer, and this was my designer, and this was my last slide last slide anyway. anyway. anyway. Okay, great. And you Okay, great. And you Okay, great. And you have a link there for have a link there for have a link there for those who want to those who want to those who want to learn more. So learn more. So learn more. So this, this is perfect. this, this is perfect. this, this is perfect. That's right. That's right. That's right. Yes, Jerry. We have a Yes, Jerry. We have a Yes, Jerry. We have a question from question from question from Tak. Yes. Yes, no, it Tak. Yes. Yes, no, it Tak. Yes. Yes, no, it was great. So, Donny was great. So, Donny was great. So, Donny J 266 asked, " J 266 asked, " J 266 asked, " Can we Can we Can we use this use this use this for for for schema optimization, batch schema optimization, batch schema optimization, batch inserts, inserts, inserts, database maintenance, database maintenance, database maintenance, and tasks along and tasks along and tasks along with query analysis? with query analysis? with query analysis? Is this part of Is this part of Is this part of it?" it?" it?" If you want to If you want to If you want to perform perform schema manipulation, you certainly schema manipulation, you certainly wouldn't do it with a wouldn't do it with a production database. You would production database. You would do this with your do this with your developer database or developer database or perhaps UAT. And we have perhaps UAT. And we have perhaps UAT. And we have another MCP server for another MCP server for another MCP server for that. This is an that. This is an that. This is an MSSQL extension in VS Code that gives you MSSQL extension in VS Code that gives you MSSQL extension in VS Code that gives you complete freedom of action. You complete freedom of action. You complete freedom of action. You can execute can execute can execute any SQL in the any SQL in the any SQL in the database this way.

  30. database this way. database this way. So, if you So, if you So, if you need: What happens need: What happens need: What happens if we add this if we add this if we add this column? What happens if column? What happens if column? What happens if we delete this we delete this we delete this table? All of this makes table? All of this makes table? All of this makes sense in the development cycle sense in the development cycle . This definitely doesn't make . This definitely doesn't make . This definitely doesn't make sense for your sense for your sense for your production database. production database. production database. This, this is the MCP server for This, this is the MCP server for This, this is the MCP server for your working your working your working database. database. Great, thank you. Great, thank you. Yes. Yes. Yes. Yes. Uh, and also Yes. Uh, and also Yes. Uh, and also Sorry for talking Sorry for talking Sorry for talking about VS Code. An extension about VS Code. An extension about VS Code. An extension for authors is on the for authors is on the for authors is on the way. way. way. Oh, that's nice to hear. Oh, that's nice to hear. Oh, that's nice to hear. That's nice to hear. Well That's nice to hear. Well That's nice to hear. Well , we'll close with one , we'll close with one , we'll close with one last question last question last question while our next while our next while our next speaker prepares speaker prepares speaker prepares to share his to share his to share his screen. So, you know, screen. So, you know, data privacy and security data privacy and security is always a pretty is always a pretty is always a pretty hot topic right now. hot topic right now. If a company, If a company, say, avoids say, avoids say, avoids vectors because they don't want vectors because they don't want vectors because they don't want their data or queries their data or queries their data or queries used used used to train models, is to train models, is to train models, is there some approach in there some approach in there some approach in your tools your tools your tools to secure their to secure their to secure their data? data? data? Yes, that's a valid Yes, that's a valid Yes, that's a valid observation. What I observation. What I observation. What I mean is that now that mean is that now that mean is that now that we have the vector data type, we have the vector data type, we have the vector data type, to add data to a to add data to a to add data to a vector, you need to vector, you need to vector, you need to use a model use a model . And yes, you can . And yes, you can . And yes, you can use use use remote models, remote models, remote models, for example within for example within for example within Microsoft, but you can Microsoft, but you can Microsoft, but you can also use also use also use local models.

  31. local models. local models. For example, For example, For example, the Department of Defense the Department of Defense is obviously a is obviously a is obviously a Microsoft customer. They don't want Microsoft customer. They don't want Microsoft customer. They don't want any any any information to be able to information to be able to information to be able to go outside go outside go outside their network. Therefore, their network. Therefore, their network. Therefore, they can they can they can run models run models run models internally or internally or internally or directly in the directly in the directly in the database itself. database itself. database itself. So, SQL MCP server, which is So, SQL MCP server, which is So, SQL MCP server, which is currently in currently in preview mode, can preview mode, can host an host an host an ONNX model in a database-driven ONNX runtime environment ONNX model in a database-driven ONNX runtime environment . . Perfectly. Well, thanks for Perfectly. Well, thanks for Perfectly. Well, thanks for all the info on SQL all the info on SQL all the info on SQL Server and MPC MCP servers, Server and MPC MCP servers, Server and MPC MCP servers, Jerry. I really appreciate Jerry. I really appreciate Jerry. I really appreciate you being with us today. you being with us today. you being with us today. Thank you, Baku. Thank Thank you, Baku. Thank Thank you, Baku. Thank you. you. you. Yes. Yes. Yes. See you later.

No summary available yet.

View original episode ↗