We cannot deny that the concept of MCP Servers has been one of the hottest topics this year so far. With MCP (Model Context Protocol) servers allowing AI tools to interact directly with applications and services, we've had the opportunity to get a glimpse at some of the possibilities at this years Codegarden, thanks to the Umbraco MCP Server developed by Phil Whittaker and Matthew Wise. Their work stood out so much, that Umbraco has decided to introduce the Umbraco MCP Server as part of its own offerings! π
Being able to ask an AI how many blogposts you have, or ask them to update a property on your document, is already astonishing... but what if we could take it further? Just like my colleague Matt Brailsford, who has been experimenting with an MCP Server for Umbraco Commerce, what if we could do the same for Umbraco Engage but building on-top of the existing Umbraco MCP server? π€
Sometimes there's only one way to find out how things work and to find out what's possible, and that's to get coding! π»
The Goal
Before we even started exploring the concept of an Umbraco Engage MCP, I would first have to set some goals for myself. Keep in mind that as of a couple weeks ago I've never even heard of the term MCP, so let's make our first goal simply to find out how the official Umbraco MCP Server works, how we can connect an AI tool like Claude to it, and to understand the practical capabilities of AI driven content management.
Once that is done, let's see if we can give it some knowledge about some API Endpoints commonly used in the Umbraco Engage back-office, and see if it can get the AI to interact with that as well.
And lastly, let's find out if we can make use of both Engage & Umbraco API Endpoints in the same prompt to see to what extend an LLM can use different contexts & tools to achieve a goal!
Proof of Concept
Because of the amazing boilerplate code already provided in the Umbraco MCP repository, I was able to quite quickly clone some existing functionalities. Using Orval to generate TypeScript clients from Swagger documentation meant I could quickly expose Engage's analytics and A/B testing capabilities to the MCP server. Because Umbraco Engage 16 already introduces the Engage Management API, this was a piece of cake! β‘
Due to time constraints, I've decided to keep it at a Proof of Concept for now and only connect several endpoints, including general package information, analytics, and A/B testing retrieval, so let's take a look at some examples of what it can do! π
π Analytics Summaries
Prompt: "Can you tell me the top 5 most visited pages and their pageviews over the last 30, 90, and 365 days?"
Result: Claude figured out that there are get-analytics endpoints available, and how to use them. It builds up the various queries to dynamically request page information in three different timeframes, and comes back with not only a list of most visited pages, but also some key insights about these pages.
πA/B Test Insights
Prompt: "Can you take a look at the top 3 A/B tests that are running on my application, their performance, and make an estimated guess what part of the content may be the reason for a performance difference between variants in that test"
Prompt: "What are the actual content differences between the pages that are being A/B tested?"
Result: Claude figured out that there are multiple endpoints related to A/B Tests, and to initially use the one that retrieves an overview of all projects & tests. After that, it used the details endpoint to sequentially retrieve individual statistics to find out the statistics of the individual tests. With those details, it then used the Umbraco Management API endpoints to retrieve the content corresponding to those tests to compare the differences in content between the different segments, and provide insights on that.
What's Next?
As you can tell, this is only scratching the surface of what is possible with the use of AI & MCP Servers, especially with only a sliver of all the functionalities within Engage being made available to the MCP.
Within Umbraco we will continue our research into what's possible with MCP Support for both the core CMS and for our commercial products, and with your valuable feedback we can shape the future together! π
I would love to hear your thoughts & ideas of what you would be interested in using such a tool for!
- What insights are you interested in getting out of an AI that you cannot easily get out of the dashboards?
- What tasks would you like to automate or integrate with other platforms?
- What kinds of questions or actions would you like to see it being able to handle?
For now, I will leave you all with this teaser, but feel free to contact me over at my socials available at the Contact page, as I'd love to hear your thoughts and feedback! π