Using Claude Desktop to Create Dashboards for APEX


Another AI-centric tool that has raised a lot of interest is Claude Desktop. Like Cline, Claude Desktop uses the same reasoning engine at the core - Claude Code - to assist with development tasks. While they share the same engine, there are use cases for each.
Claude Desktop is a self-contained, simple interface. You interact with it outside of the scope of your IDE and code in a more general manner. While it can still generate some powerful solutions, Claude Desktop seems to be closer to an alternative to ChatGPT vs. a true AI coding assistant.
Cline is the better choice if you’re looking for an AI assistant that lives in your IDE. It’s there to help you write, review, and comment on code. It was designed for that single purpose from the ground up.
Another difference between Cline and Claude Desktop is how LLMs are integrated. Cline allows you to pick almost any LLM and use that. Thus, as Oracle, we have access to a handful, and can use any of them with Cline at no additional cost. Claude Desktop takes a different approach. You can use it for free for a limited number of questions per day, or you can sign up for one of the paid tiers.
Put another way - If I wanted to give an AI tool to my non-technical staff so that they could query an Oracle Database via MCP Server, it would be Claude Desktop without hesitation. Its simple, easy to understand interface and robust rendering capabilities make it an easy choice for the non-technical crowd.
Getting Started
Before we can use Claude Desktop, we need to configure it with the MCP Server and then connect to it. These steps take just minutes each.
Configuring Claude Desktop
Configuring Claude Desktop is as simple as configuring Cline. Simply follow the instructions in the SQLcl MCP Server documentation.
Once configured, you can validate that the MCP Server is running by navigating to Settings > Developer. You should see something like this:
Connecting to the MCP Server
Once configured, connecting to Oracle is done the same way that connecting to Cline is: just ask.
The SQL Developer connection apex_admin_user
was created as a part of my last blog entry. Please have a look there if you missed it.
Creating Dashboards
Now that we’re connected, let’s skip the easy stuff and jump right into asking Claude to build us some dashboards.
Page Views
For our first dashboard, let’s use the data found in APEX_WORKSPACE_ACTIVITY_LOG
- or page views. APEX will automatically track all page views - full and partial - in this view. Since our user has the APEX_ADMINISTRATOR_ROLE
role, it will be able to see data across all of the workspaces. Keep in mind APEX will automatically purge data from the underlying table, so at best, you’ll have roughly two weeks of data.
Let’s start with the following prompt:
please create an analytics dashboard that summarizes page views for application 10000. include things like most popular page, avg render time, etc. make it look very slick and allow me to drill into details from the charts.
Like Cline, it required some back-and-forth to find the right view. Once it found it, it ran four queries to compute the data points that would ultimately end up in the dashboard. Remember - this dashboard is nothing more than static HTML with some Javascript.
Speaking of the dashboard it created, let’s have a look at it:
It’s pretty amazing that with just a couple of sentences, Claude was able to generate a professional looking dashboard that contains a variety of insights as to the page view data, including a combination of metrics, charts and a searchable report.
You can also drill into most of the data points. Since that’s harder to illustrate, feel free to try the dashboard for yourself here: https://claude.ai/public/artifacts/c022f815-7e81-4a16-b6f3-3cae15e82fd2
User Behaviors
Next, let’s create a dashboard that reports on data that APEX doesn’t: user behavior. It would be interesting to analyze the same data set to see how users actually use the applications - specifically, which page flows are the most popular, which pages get used the most, etc.
Thus, let’s use this prompt to create it:
using the same page view data, come up with an assessment of common usage patterns based on session id. provide this data in a dashboard that provides insights as to what users do and what could be done to make the application better
This time, Claude didn’t need to think as much, as the source of the data was still in context from the previous dashboard. It got right to work and instantly created another dashboard that looks like this:
Wow! This one really impressed me, as not only did it provide a comprehensive dashboard with actionable data, but it also picked out some of the common user flows and trends in my applications and identified them.
Keep in mind that the dataset here is from an instance of APEX that I build and test things on. Thus, the usage patterns are more indicative of that versus actual usage across many users. Some of the recommendations reflect this.
Have a look at this one in action here: https://claude.ai/public/artifacts/5baab2fb-f0fe-4065-85d9-0d3844bae3bc
Where does APEX fit in?
You may be thinking, “I thought this was an APEX blog, why are we creating Javascript applications all of a sudden?
Short answer - we can’t yet have AI generate APEX applications since there is not a published API to do so. Yet.
APEX Lang - not the existing APEX_LANG
API, but the upcoming domain specific language with a similar name - will change that once it’s released. APEX Lang exposes all facets of an APEX application via APIs, allowing either users or AIs to call APIs to build and modify applications. Once it’s released, it will fundamentally change how we build and maintain APEX applications.
Summary
Claude Desktop enables anyone to generate content-rich, interactive dashboards without writing a single line of code. With minimal guidance, it even added insights and metrics to the dashboards, making them more than a bunch of reports & charts. Even if I simply harvested the SQL that Claude generated and used that in an APEX application, that’s a win.
I’m going to keep playing around with Claude Desktop and see what else I can come up with. Next, I’m going to dive into hooking up these dashboards to a RESTful endpoint hosted by ORDS so that they will always be accurate. Then I’ll look at how to secure the endpoint and perhaps allow for some updates to RESTful APIs.
Title photo by Mykhailo Amirdzhanian on Unsplash.
Subscribe to my newsletter
Read articles from Scott Spendolini directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Scott Spendolini
Scott Spendolini
"Bumpy roads lead to beautiful places" Senior Director @ Oracle 🧑💻 #orclapex fan since '99 🛠️ https://spendolini.blog 💻 Oracle Ace Alumni ♠️ Bleed Syracuse Orange 🍊 Golf when I can ⛳️ Austin, TX 🎸🍻 Views are my own 🫢