Model Context Protocol (MCP) Client Feature, Improve Title Part settings - This week in Orchard (25/04/2025)
This time, you can see a fascinating demo about the Model Context Protocol (MCP) Client Feature! But first, let's take a look at our other topics, like improving Title Part settings by hiding the Pattern field if it doesn't apply and adding a badge if the user's email address is not confirmed.
Orchard Core updates
Improve Title Part settings by hiding the Pattern field if it doesn't apply
The pattern of a Title Part is only taken into account if the part is set to GeneratedDisabled or GeneratedHidden. This change hides the Pattern field in the Title Part settings if it is not applicable and removes outdated hint text.
Let's edit the content definition of the Blog Post content type by navigating under Design -> Content Definition -> Content Types and hitting Edit near the Blog Post content type. Find the attached Title Part, and select Title is generated and input is disabled from the Options drop-down. We also provided a pattern used to render the title of this content type. As you can see, in our case, the Title of our Blog Post will be equal to the text entered into the Subtitle Text Field by default. However, if we select the Title is editable or Title is editable and required option from the Options drop-down, the Pattern text box will be hidden.
Add a badge if the user's email address is not confirmed
If you open the admin UI of Orchard Core and navigate to Access Control -> Users, you will see a page where you can manage the existing users on your site. As you can see, there is now a simple badge to indicate the email status if it hasn't been confirmed yet. Users with permission can verify the email address of the selected user by selecting the Confirm email option from the Actions dropdown button.
Demos
Model Context Protocol (MCP) Client Feature
At the beginning of this year, we mentioned a new module created by Mike Alhayek, which is an implementation of OpenAI that allows you to interact with any AI model. He worked a lot on that solution, and from time to time, he added many new features to it, which we mentioned here and here. This time, we will highlight the recently added Model Context Protocol (MCP) Client and Model Context Protocol (Local MCP) Client features. Here is the GitHub repository for this project, along with its corresponding NuGet package.
Until now, there was no way to get real-time data. If you want to know things like the weather or the time for a specific place, we don't have functionality as flexible as it could be. However, you can define a function that calls an API to get real-time data, and then you can use that data.
The Model Context Protocol (MCP) is an open standard that allows seamless integration between large language model (LLM) applications and external tools or data sources. Whether you're building an AI-enhanced IDE, a chat interface, or custom AI workflows, MCP makes it easy to supply LLMs with the context they need. What we can see today is an integration with MCP!
There are two features that you can use that allow the integration:
- Model Context Protocol (MCP) Client Feature: The Model Context Protocol (MCP) Client Feature enables your application to connect to remote MCP servers using standard HTTP requests. One of the supported transport types is Server-Sent Events (SSE), which allows real-time data flow between LLMs and external services.
- Model Context Protocol (Local MCP) Client Feature: The Local MCP Client Feature allows your application to connect to MCP servers running locally, typically in containers. It uses Standard Input/Output (Stdio) for communication — ideal for offline tools or running local services.
If you enable these features, you will find a new MCP Connections option on the menu, under the Artificial Intelligence section. Here, you can define the MCP Connections by clicking on the Add Connection button and choosing from the available sources, which could be:
- Server-Sent Events: Uses Server-Sent Events over HTTP to receive streaming responses from a remote model server. Great for real-time output from hosted models.
- Standard Input/Output: Uses standard input/output streams to communicate with a locally running model process. Ideal for local subprocess integration.
If you choose Server-Sent Events, you can connect to a remote server by specifying its endpoint. And if you select the Standard Input/Output one, you can connect to a local machine. In this case, we can say that you have a Docker container on which you want to run the server, and you can make that connection.
Here, you can see a Standard Input/Output connection to a Docker server. This can provide real-time information by using the mcp/time command argument. Suppose you define this MCP Connection and have a Docker container running locally (by using Docker Desktop, for example). In that case, you can navigate to Profiles and tell a given profile what connection you also want to expose. In this case, we said to expose the Global Time Capabilities MCP Connection for this chat.
After, if we navigate to our chat, we can ask questions like what the current time is in London. It will call the MCP server running locally on Docker and provide us with the time.
But MCPs do a lot more than that! If you are interested in what other things you can achieve by using MCPs (like creating issues under the specified repositories), head to YouTube for this exciting recording!
News from the community
Orchard Dojo Newsletter
Lombiq's Orchard Dojo Newsletter has 455 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course.
Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here!