Kris and I have recently had the privilege (and a lot of fun!) of interacting with thousands of people. Talking, listening, and sharing about our MCP Server technology!
If this post is the moment you’re hearing ‘MCP’ for the first time, or learning that Oracle Database has an MCP Server, I recommend you check out these resources:
Why is MCP so hot 🔥🔥🔥 right now?
I think if you look at what MCP enabled, it becomes self-evident. AI powered tasks, or Agentic workflows are now possible of doing so much more than they used to because MCP gives access to things like, your email, your file system, your Git repo, your Spotify playlist, and yes, your Oracle Database.
And if you ask Claude desktop to visualize the uptake of MCP as a protocol compared to other protocols and interfaces, you can see that it’s reached nearly half the market in terms of adoption in only 6 months compared to YEARS for HTTP. That’s a logarithmic vs exponential scale of explosive growth.

Also cited as reasons by Claude:
- AI boom timing: Perfect timing with explosive AI growth
- Major backing: Supported by Anthropic, OpenAI, Google, Microsoft (and Oracle!)
- Clear need: Solves critical AI integration challenges
- Open standard: Non-proprietary, encouraging widespread adoption
- Platform support: Early integration by Replit, Sourcegraph, Vertex AI
Rambling #1: AI has changed everything.
We heard the same about ‘the blockchain’ and various other pieces of technology over the years, so it’s totally reasonable to roll one’s eyes when they hear this. But with AI and more specifically what can be done via these Large Language Models (LLMs) evolving, it’s no longer an exaggeration.
My kids use it to help study for their exams. I use it to help me optimize my weigh-lifting PR attempts. And really anyone walking around with access to a computer should probably be thinking, hey can this HELP me?
Note, I’m saying, ‘HELP me’ not ‘DO my work for me.’
Rambling #2: What you put in, impacts what you get out.
For prompt engineers, they already know this to be true. The more time and thought you put into your prompts, the better.
But I want to talk about this in a more use-case specific manner.
Be the Pilot.
I’m not a passenger on this magical plane ride my Agent is taking me on. I’m in charge. If I don’t like the plan or any of the actions defined to make that plan ‘happen,’ it’s on me to interject.
Your experience and business knowledge matters, a lot.
Know enough to know when the LLM is hallucinating or lying about hallucinating.
Don’t trust, and always verify.
Just because the code compiles, we don’t ‘ship it.’ Just because the chart has pretty colors, doesn’t mean we present it to the CEO. We need own that material, and understand it.
Frequently Asked Questions
Kris and I have literally spoken with at least 2,200 people since the product launch. And I’m getting booked with customer sessions faster than I can say ‘yes.’ With this experience, we’ve seen a pretty good pattern of questions and doubts, so let’s tackle those.
1. Does this work with 11g or or 12c?
Probably. We only test the supported versions of Oracle Database, which are currently 19c, 21c, and 23ai. But there is no dependency on 23ai features, and our JDBC driver will happily let you connect to those older database, so you’re probably ‘good,’ but not ‘good’ in the sense that you’re running a version of the database that’s AT LEAST a dozen years old.
2. Can I use it to…
- …tune SQL
- fix SQL
- test SQL
- or anything else on or around my database
The answer is most likely ‘yes,’ depending on how good your prompt and LLM are. We’re seeing great interactions between agents and our Oracle Database, but they are only as good as what you give them.

I would say, have HIGH expectations, and THINK BIG. Don’t ask how many rows my table has, ask how fast is my table growing.
3. How is this going to work in a system that’s not well documented or even ‘named?’
You have a schema with poor object names, no comments, or even any foreign key constraints. How is the Agent supposed to find that ‘sales’ data you asked it to work with?
The agent is going to use an LLM to construct queries to find what you asked for, and it will try hard, and for long periods of time before it ‘gives up,’ or you can simply tell it where the data is.
I’ve seen the LLM make an informed, reasonable guess that the table it needs is X, and then watch is sample 10 rows of the table to see if it has what it thinks it does.
I’ve also seen it take advantage of the DESC command to learn more about a table. In other words, it’ll do the same things you would do if you were given a fresh schema to play around in.

4. General questions about the role of the MCP Server
Our MCP Server DOES NOT
- generate queries from natural language
- come up with plans or decide what to do ‘next’
- interpret results
Our MCP Server DOES
- provide an agent TOOLS to
- connect to a database
- run queries or scripts or commands
- give the agent advice on how to use those tools
- identify itself to the database via connection properties (V$SESSION.MODULE for example)
- log it’s activity in a table (DBTOOLS$MCP_LOG)
5. Wait, so does SQLcl get installed on everyone’s machine?
Just for the folks that want to use the MCP Server feature. Our first MCP Server is a ‘local server’ implementation, meaning it uses STDIO and JSON-RPC for your agent to communicate back and forth with SQLcl.
We’re working on a ‘remote server’ MCP implementation that uses HTTP vs STDIO, stay tuned for news and updates!
6. Why is the MCP Server saying it’s using LLM ABC when I know it’s really using XYZ
The Agent is instructed to identify itself when generating code to be executed via our MCP Server.
However, it sometimes misunderstands what it’s been asked, or it thinks it’s only an example or suggestion, vs something to be taken ‘literally.’ It’s almost like when I’m talking to my kids and I give them instructions.
They ignore me, and then I have to tell them again.

We’re looking to amend our MCP Tool descriptions so this more clear for the Agents. But yeah, you need to keep an eye on the agents! We’ve also noticed some Agents are VERY VERY GOOD ABOUT THIS.
7. Why do you have both run-sql and run-sqlcl tools?
Because we tried to do just the one tool, but it was confusing too many of the agents. So we effectively published the same tool twice, so the agents could do everything we wanted them to be able to do:
- run SQL or PL/SQL statement or scripts
- run DDL/DML/Database commands
- run SQLcl commands like DESC, INFO, or LOAD
8. Can we use the SQLcl that ships in your SQL Developer Extension for VS Code as a MCP Server for VS Code agents other than Copilot?
No. The SQLcl that’s part of our VS Code extension is only available to VS Code (and it’s Ask / Copilot interface).
You’ll need to install SQLcl separately on your machine, and then manually configure your agent to use it as an MCP Server.
However, the connection store (list of connections), is on your machine, once, for use by any instance of our VS Code extension or SQLcl.
9. What’s the catch?
No one is actually asking this, but I think they are thinking about it. There’s no ‘free lunch,’ but we’re getting close. You STILL must remain engaged with these Agents. Apply your skills and experience to guide, steer, and shut them down as needed. You own the work they produce at the end of the day.
10. Is it safe?
It can be made safe. Follow the Database Security best practices. There’s a reason we put this up top in our Docs –

So when we get a question today like, ‘hey can we limit a user to 5 queries,’ our answer is ‘yes, it is quite simple to implement this via a resource manager plan’ – because the Database already supports this.