Issues

Using Local LLMs wth Umbraco MCP

Perhaps you have wanted to dip your toes into the Umbraco MCP experience without an AI subscription, or perhaps Claude is down and you want to use Umbraco MCP. Did you know that you do not need AI subscriptions to use a local LLM? That's right, you can run local LLMs on your own hardware for free. You are only limited by your own hardware and the complexity of the model you choose. The Umbraco MCP is compatible with local LLMs just like remote ones, such as Claude. The Umbraco MCP is platform agnostic, it doesn't care which model is accessing it, as long as MCP standards are followed, it will work just fine. This article will show you how to use LM Studio with Umbraco MCP on your own computer.

1. Installing LM Studio

  1. First, you'll need to download LMStudio. https://lmstudio.ai/ It is free, and supports multiple platforms, including Windows, Mac, and Linux.
  2. Run through the install process. In this example, once it is installed, you will want to download the Nemotron model by NVIDIA. This is a lightweight model build for efficient agentic operations. To install it, click the Model Search icon, it looks like a robot face with a magnifying glass. Now search for "nemotron", and download "Nemotron 3 Nano 4B". Close the window.
  1. Next, click the My Models icon on the left, which icon looks like a series of windows. We are going to expand the Context length. Select the Nemotron model and click the load button in the right pane. Change the Context Length from 4096 to at least 66434. This will give it enough context space to do some MCP processing.

2. Install a Sample Umbraco Site

I'm going to install a sample umbraco site like so, but you can skip this if you want to run MCP against another site.

Follow instructions here: https://docs.umbraco.com/umbraco-cms/tutorials/starter-kit/install-the-starter-kit

  1. Install the latest .NET SDK. https://dotnet.microsoft.com/en-us/download
  2. Install Umbraco.Templates, if you don't have it already: dotnet new install Umbraco.Templates
  3. Open a command terminal, navigate to desired root location that will contain the project folder, run:
  4. dotnet new umbraco --name MyUmbracoSite
  5. cd MyUmbracoSite
  6. dotnet add package Umbraco.TheStarterKit
  7. dotnet build
  8. dotnet run
  9. Go to https://localhost:xxxx/ to view the Starter Kit site, and set up your installation. Set up your user account, set a hostname, publish any unpublished nodes, etc.
  10. Your starter site is ready: https://localhost:xxxx/

3. Enable MCP For Umbraco Site

We need to configure the Umbraco site to allow MCP.

  1. Add api user account with client secret. To do this, in the backoffice, go to Users > Create > Api User.
  2. Create the user with whatever rights you want.
  1. You need to add client credentials. Click the Add button under the user account page > Client Credentials. Add an id and a secret. Remember these, you'll need them later.

4. Install Umbraco MCP

For the sample site (or your desired local Umbraco site). Make sure you have installed node version 22 or higher. https://nodejs.org/en/download

  1. Open a command terminal, navigate to your website project folder, run:
  2. mkdir mcp
  3. cd mcp
  4. Create a .env file in this folder, with content like this: (the UMBRACO_CLIENT_ID, UMBRACO_CLIENT_SECRET, and UMBRACO_BASE_URL must match your client credentials and running local website.)
UMBRACO_CLIENT_ID=umbraco-back-office-my-mcp
UMBRACO_CLIENT_SECRET=mysecretapikey12345
UMBRACO_BASE_URL=https://localhost:44385
NODE_TLS_REJECT_UNAUTHORIZED=0
UMBRACO_INCLUDE_TOOL_COLLECTIONS=data-type,document-type,document,media-type,media
  1. npx @umbraco-cms/mcp-dev@latest

MCP is now running!

5. Use Umbraco MCP

  1. Open LM Studio.
  2. Click the Developer icon on the left sidebar.
  1. Click the mcp.json button. Paste in your MCP rules, like so:
{
  "mcpServers": {
    "umbraco-mcp": {
      "command": "npx",
      "args": [
        "@umbraco-cms/mcp-dev@17"
      ],
      "env": {
        "NODE_TLS_REJECT_UNAUTHORIZED": "0",
        "UMBRACO_CLIENT_ID": "umbraco-back-office-my-mcp",
        "UMBRACO_CLIENT_SECRET": "mysecretapikey12345",
        "UMBRACO_BASE_URL": "https://localhost:44385",
        "UMBRACO_INCLUDE_TOOL_COLLECTIONS": "document,document-type",
        "UMBRACO_EXCLUDE_SLICES": "content:delete",
        "UMBRACO_READONLY": "true"
      }
    }
  }
}

These settings should take precedent over the default ones in .env, I believe. Note how restricted we are, we are only loading a few tool collections. Scaling back on these options will speed up / lower the overhead of MCP. The fewer tools the more performant. If you just want to query nodes and document types, this is fine. You can change UMBRACO_INCLUDE_TOOL_COLLECTIONS as necessary to enable writing data later.

  1. Click Save. It should save. Close the mcp.json dialog window.
  1. Open a chat window by clicking the chat icon on the left sidebar. Load the nemotron model.
  2. Enable the mcp/umbraco-mcp plugin for your chat window. [img:mcp-enabled]
  3. Configuration is done! Ask it anything you want. For example:

Give me a hierarchical tree representation of the content in the Umbraco website.

  1. It will ask for permission to proceed. Grant access.
  1. Ask it something else, like:

fetch the Knitted West product and tell me the price

You may get something like this.

At this point, if we wanted, we could update the mcp.json in LM Studio to permit write access, or expand the tools we wish to use.

Also note that Nemotron, while impressive, is fairly primitive, and can get easily confused with unspecific instructions. You will get better results if you give specific instructions, reference node ids, etc. Remember it is designed to be an agentic worker - it expects very clear instructions. You can also use smarter models, such as Gemma or Qwen. You are only limited by the models and your hardware. Happy MCPing!

Aaron Sawyer

Aaron has been a Web developer for 14 years, and currently serves as Digital Solutions Architect with Marathon Consulting, a Virginia-based company that specializes in websites, apps, and IT solutions. Aaron is actively involved with the Umbraco community, speaks at Umbraco events, and is on the Umbraco CMS Advisory board. In his off time, he enjoys hiking, biking, kayaking, retro computers, and Star Wars.

comments powered by Disqus