|
| 1 | +{ |
| 2 | + "name": "OrchardCore.Setup.Mcp", |
| 3 | + "displayName": "Orchard Core MCP Website - Setup", |
| 4 | + "description": "Sets up a new MCP Server for OrchardCore tenant.", |
| 5 | + "author": "Orchard Core", |
| 6 | + "website": "https://orchardcore.net", |
| 7 | + "version": "1.0.0", |
| 8 | + "issetuprecipe": true, |
| 9 | + "categories": [ "service" ], |
| 10 | + "tags": [ "mcp server" ], |
| 11 | + "steps": [ |
| 12 | + { |
| 13 | + "name": "feature", |
| 14 | + "enable": [ |
| 15 | + "OrchardCore.HomeRoute", |
| 16 | + "OrchardCore.Admin", |
| 17 | + "OrchardCore.Diagnostics", |
| 18 | + "OrchardCore.DynamicCache", |
| 19 | + "OrchardCore.Features", |
| 20 | + "OrchardCore.Navigation", |
| 21 | + "OrchardCore.Recipes", |
| 22 | + "OrchardCore.Resources", |
| 23 | + "OrchardCore.Roles", |
| 24 | + "OrchardCore.Security", |
| 25 | + "OrchardCore.Settings", |
| 26 | + "OrchardCore.Themes", |
| 27 | + "OrchardCore.Users", |
| 28 | + "OrchardCore.Alias", |
| 29 | + "OrchardCore.Autoroute", |
| 30 | + "OrchardCore.Html", |
| 31 | + "OrchardCore.ContentFields", |
| 32 | + "OrchardCore.ContentPreview", |
| 33 | + "OrchardCore.Contents", |
| 34 | + "OrchardCore.ContentTypes", |
| 35 | + "OrchardCore.Flows", |
| 36 | + "OrchardCore.Liquid", |
| 37 | + "OrchardCore.Media", |
| 38 | + "OrchardCore.Menu", |
| 39 | + "OrchardCore.Seo", |
| 40 | + "OrchardCore.Templates", |
| 41 | + "OrchardCore.Title", |
| 42 | + "OrchardCore.Widgets", |
| 43 | + "OrchardCore.Layers", |
| 44 | + "OrchardCore.Markdown", |
| 45 | + "CrestApps.OrchardCore.AI.Mcp.Server", |
| 46 | + "CrestApps.OrchardCore.AI.ToolInstances", |
| 47 | + "TheAdmin", |
| 48 | + "TheTheme" |
| 49 | + ] |
| 50 | + }, |
| 51 | + { |
| 52 | + "name": "themes", |
| 53 | + "admin": "TheAdmin", |
| 54 | + "site": "TheTheme" |
| 55 | + }, |
| 56 | + { |
| 57 | + "name": "ContentDefinition", |
| 58 | + "ContentTypes": [ |
| 59 | + { |
| 60 | + "Name": "Page", |
| 61 | + "DisplayName": "Page", |
| 62 | + "Settings": { |
| 63 | + "ContentTypeSettings": { |
| 64 | + "Creatable": true, |
| 65 | + "Listable": true, |
| 66 | + "Draftable": true, |
| 67 | + "Versionable": true, |
| 68 | + "Securable": true, |
| 69 | + "ThumbnailPath": "~/OrchardCore.ContentTypes/placeholder.png" |
| 70 | + }, |
| 71 | + "FullTextAspectSettings": { |
| 72 | + "IncludeFullTextTemplate": false, |
| 73 | + "IncludeBodyAspect": true, |
| 74 | + "IncludeDisplayText": true |
| 75 | + } |
| 76 | + }, |
| 77 | + "ContentTypePartDefinitionRecords": [ |
| 78 | + { |
| 79 | + "PartName": "Page", |
| 80 | + "Name": "Page", |
| 81 | + "Settings": {} |
| 82 | + }, |
| 83 | + { |
| 84 | + "PartName": "AutoroutePart", |
| 85 | + "Name": "AutoroutePart", |
| 86 | + "Settings": { |
| 87 | + "ContentTypePartSettings": { |
| 88 | + "DisplayName": "Autoroute", |
| 89 | + "Position": "1" |
| 90 | + }, |
| 91 | + "AutoroutePartSettings": { |
| 92 | + "AllowCustomPath": true, |
| 93 | + "Pattern": "{{ ContentItem.DisplayText | slugify }}", |
| 94 | + "ShowHomepageOption": true, |
| 95 | + "AllowUpdatePath": false, |
| 96 | + "AllowDisabled": false, |
| 97 | + "AllowRouteContainedItems": false, |
| 98 | + "ManageContainedItemRoutes": false, |
| 99 | + "AllowAbsolutePath": false |
| 100 | + } |
| 101 | + } |
| 102 | + }, |
| 103 | + { |
| 104 | + "PartName": "WidgetsListPart", |
| 105 | + "Name": "WidgetsListPart", |
| 106 | + "Settings": { |
| 107 | + "ContentTypePartSettings": { |
| 108 | + "DisplayName": "WidgetsList", |
| 109 | + "Position": "2" |
| 110 | + }, |
| 111 | + "WidgetsListPartSettings": { |
| 112 | + "Zones": [ |
| 113 | + "Content" |
| 114 | + ] |
| 115 | + } |
| 116 | + } |
| 117 | + }, |
| 118 | + { |
| 119 | + "PartName": "TitlePart", |
| 120 | + "Name": "TitlePart", |
| 121 | + "Settings": { |
| 122 | + "ContentTypePartSettings": { |
| 123 | + "Position": "0" |
| 124 | + }, |
| 125 | + "TitlePartSettings": { |
| 126 | + "RenderTitle": false |
| 127 | + } |
| 128 | + } |
| 129 | + } |
| 130 | + ] |
| 131 | + }, |
| 132 | + { |
| 133 | + "Name": "MarkdownText", |
| 134 | + "DisplayName": "MarkdownText", |
| 135 | + "Settings": { |
| 136 | + "ContentTypeSettings": { |
| 137 | + "Creatable": false, |
| 138 | + "Listable": false, |
| 139 | + "Draftable": false, |
| 140 | + "Versionable": false, |
| 141 | + "Stereotype": "Widget", |
| 142 | + "Securable": false, |
| 143 | + "ThumbnailPath": "~/OrchardCore.ContentTypes/placeholder.png" |
| 144 | + }, |
| 145 | + "FullTextAspectSettings": { |
| 146 | + "IncludeFullTextTemplate": false, |
| 147 | + "IncludeBodyAspect": true, |
| 148 | + "IncludeDisplayText": true |
| 149 | + } |
| 150 | + }, |
| 151 | + "ContentTypePartDefinitionRecords": [ |
| 152 | + { |
| 153 | + "PartName": "MarkdownText", |
| 154 | + "Name": "MarkdownText", |
| 155 | + "Settings": {} |
| 156 | + }, |
| 157 | + { |
| 158 | + "PartName": "MarkdownBodyPart", |
| 159 | + "Name": "MarkdownBodyPart", |
| 160 | + "Settings": { |
| 161 | + "ContentTypePartSettings": { |
| 162 | + "DisplayName": "MarkdownBody", |
| 163 | + "Position": "0", |
| 164 | + "Editor": "Wysiwyg" |
| 165 | + }, |
| 166 | + "MarkdownBodyPartSettings": { |
| 167 | + "SanitizeHtml": true, |
| 168 | + "RenderLiquid": false |
| 169 | + }, |
| 170 | + "MarkdownBodyPartWysiwygEditorSettings": { |
| 171 | + "Options": "{\r\n toolbar: [\r\n \u0022guide\u0022, \u0022|\u0022,\r\n \u0022undo\u0022, \u0022redo\u0022, \u0022|\u0022,\r\n \u0022bold\u0022, \u0022italic\u0022, \u0022strikethrough\u0022, \u0022|\u0022,\r\n \u0022heading\u0022, \u0022|\u0022,\r\n \u0022code\u0022, \u0022quote\u0022, \u0022|\u0022,\r\n \u0022link\u0022, \u0022|\u0022,\r\n \u0022shortcode\u0022, \u0022|\u0022,\r\n \u0022image\u0022, \u0022|\u0022,\r\n \u0022unordered-list\u0022, \u0022ordered-list\u0022, \u0022table\u0022, \u0022|\u0022,\r\n \u0022horizontal-rule\u0022, \u0022|\u0022,\r\n \u0022preview\u0022, \u0022side-by-side\u0022, \u0022fullscreen\u0022\r\n ],\r\n spellChecker: false\r\n}" |
| 172 | + } |
| 173 | + } |
| 174 | + } |
| 175 | + ] |
| 176 | + } |
| 177 | + ], |
| 178 | + "ContentParts": [] |
| 179 | + }, |
| 180 | + { |
| 181 | + "name": "Content", |
| 182 | + "data": [ |
| 183 | + { |
| 184 | + "ContentItemId": "[js: uuid()]", |
| 185 | + "ContentType": "Page", |
| 186 | + "DisplayText": "Home Page", |
| 187 | + "Latest": true, |
| 188 | + "Published": true, |
| 189 | + "Owner": "[js: parameters('AdminUserId')]", |
| 190 | + "Author": "[js: parameters('AdminUsername')]", |
| 191 | + "Page": {}, |
| 192 | + "AutoroutePart": { |
| 193 | + "SetHomepage": true, |
| 194 | + "Disabled": false, |
| 195 | + "RouteContainedItems": false, |
| 196 | + "Absolute": false, |
| 197 | + "Path": "home-page" |
| 198 | + }, |
| 199 | + "WidgetsListPart": { |
| 200 | + "Widgets": { |
| 201 | + "Content": [ |
| 202 | + { |
| 203 | + "ContentItemId": "[js: uuid()]", |
| 204 | + "ContentItemVersionId": null, |
| 205 | + "ContentType": "MarkdownText", |
| 206 | + "DisplayText": null, |
| 207 | + "Latest": false, |
| 208 | + "Published": false, |
| 209 | + "ModifiedUtc": null, |
| 210 | + "PublishedUtc": null, |
| 211 | + "CreatedUtc": null, |
| 212 | + "Owner": "[js: parameters('AdminUserId')]", |
| 213 | + "Author": "[js: parameters('AdminUsername')]", |
| 214 | + "MarkdownText": {}, |
| 215 | + "MarkdownBodyPart": { |
| 216 | + "Markdown": "# Orchard Core MCP Server\r\n\r\nWelcome to the **Orchard Core MCP Server** \u2014 a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server that allows AI clients to connect to and interact with Orchard Core.\r\n\r\nConnect your favorite MCP-compatible AI client and let it discover and use the capabilities provided by Orchard Core.\r\n\r\n## \uD83D\uDD0C MCP Endpoint\r\n\r\nThe Orchard Core MCP Server is available at:\r\n\r\n\u0060\u0060\u0060text\r\nhttps://mcp.orchardcore.net/mcp\r\n\u0060\u0060\u0060\r\n\r\n**Transport:** Streamable HTTP\r\n\r\n---\r\n\r\n## GitHub Copilot CLI\r\n\r\nAdd the Orchard Core MCP Server to **GitHub Copilot CLI**:\r\n\r\n\u0060\u0060\u0060bash\r\ncopilot mcp add orchard-core https://mcp.orchardcore.net/mcp\r\n\u0060\u0060\u0060\r\n\r\nThen start Copilot:\r\n\r\n\u0060\u0060\u0060bash\r\ncopilot\r\n\u0060\u0060\u0060\r\n\r\nTo verify that the MCP server is connected, run:\r\n\r\n\u0060\u0060\u0060text\r\n/mcp\r\n\u0060\u0060\u0060\r\n\r\nThe \u0060orchard-core\u0060 server should appear in the list of configured MCP servers.\r\n\r\n---\r\n\r\n## Claude Code\r\n\r\nAdd the Orchard Core MCP Server to **Claude Code** using:\r\n\r\n\u0060\u0060\u0060bash\r\nclaude mcp add --transport http orchard-core https://mcp.orchardcore.net/mcp\r\n\u0060\u0060\u0060\r\n\r\nThen start Claude:\r\n\r\n\u0060\u0060\u0060bash\r\nclaude\r\n\u0060\u0060\u0060\r\n\r\nYou can verify the connection with:\r\n\r\n\u0060\u0060\u0060text\r\n/mcp\r\n\u0060\u0060\u0060\r\n\r\nThe Orchard Core MCP Server should appear in the list of available MCP servers.\r\n\r\n---\r\n\r\n## \uD83D\uDE80 Getting Started\r\n\r\nOnce connected, your AI client can discover the capabilities exposed by the Orchard Core MCP Server.\r\n\r\nTry asking:\r\n\r\n\u003E What Orchard Core tools are available?\r\n\r\nor:\r\n\r\n\u003E Show me the available Orchard Core resources.\r\n\r\nYou can then interact with Orchard Core using natural language, depending on the tools and capabilities enabled by the server.\r\n\r\n---\r\n\r\n## \uD83D\uDD10 Security\r\n\r\nThe MCP endpoint is publicly accessible, so any capabilities exposed through it should be carefully considered before being made available without authentication.\r\n\r\nFor production Orchard Core deployments, ensure that sensitive or administrative functionality is properly protected through authentication and authorization.\r\n\r\nAlways use HTTPS when connecting to the server:\r\n\r\n\u0060\u0060\u0060text\r\nhttps://mcp.orchardcore.net/mcp\r\n\u0060\u0060\u0060\r\n\r\n---\r\n\r\n## MCP Compatibility\r\n\r\nThe server implements the **Model Context Protocol (MCP)** over **Streamable HTTP**.\r\n\r\n**Endpoint:**\r\n\r\n\u0060\u0060\u0060text\r\nhttps://mcp.orchardcore.net/mcp\r\n\u0060\u0060\u0060\r\n\r\nIt can be used with MCP-compatible clients such as **GitHub Copilot CLI** and **Claude Code**.\r\n\r\nConnect your AI client and start working with Orchard Core through natural language.\r\n" |
| 217 | + }, |
| 218 | + "WidgetMetadata": { |
| 219 | + "RenderTitle": false |
| 220 | + } |
| 221 | + } |
| 222 | + ] |
| 223 | + } |
| 224 | + }, |
| 225 | + "TitlePart": { |
| 226 | + "Title": "Home Page" |
| 227 | + } |
| 228 | + } |
| 229 | + ] |
| 230 | + }, |
| 231 | + { |
| 232 | + "name": "AIToolInstances", |
| 233 | + "instances": [ |
| 234 | + { |
| 235 | + "ItemId": "[js: uuid()]", |
| 236 | + "Source": "search-index-documentation", |
| 237 | + "Name": "search_orchardcore_gallery", |
| 238 | + "Description": "Search the Gallery to discover community modules and themes that extend Orchard Core with reusable features, integrations, and site designs.", |
| 239 | + "OwnerId": "[js: parameters('AdminUserId')]", |
| 240 | + "Author": "[js: parameters('AdminUsername')]", |
| 241 | + "Properties": { |
| 242 | + "SearchIndexDocumentationToolSettings": { |
| 243 | + "BaseUrl": "https://gallery.orchardcore.net/", |
| 244 | + "IndexUrl": "https://gallery.orchardcore.net/search/search_index.json" |
| 245 | + } |
| 246 | + } |
| 247 | + }, |
| 248 | + { |
| 249 | + "ItemId": "[js: uuid()]", |
| 250 | + "Source": "search-index-documentation", |
| 251 | + "Name": "search_orchardcore_docs", |
| 252 | + "Description": "Search the Official Orchard Core Documentations", |
| 253 | + "OwnerId": "[js: parameters('AdminUserId')]", |
| 254 | + "Author": "[js: parameters('AdminUsername')]", |
| 255 | + "Properties": { |
| 256 | + "SearchIndexDocumentationToolSettings": { |
| 257 | + "BaseUrl": "https://docs.orchardcore.net/", |
| 258 | + "IndexUrl": "https://docs.orchardcore.net/en/latest/search/search_index.json" |
| 259 | + } |
| 260 | + } |
| 261 | + }, |
| 262 | + { |
| 263 | + "ItemId": "[js: uuid()]", |
| 264 | + "Source": "search-index-documentation", |
| 265 | + "Name": "search_crestapps_orchardcore_docs", |
| 266 | + "Description": "Browse the official CrestApps \u2013 Orchard Core Documentation to discover community-driven modules that extend Orchard Core with powerful capabilities, including AI-powered solutions and much more.", |
| 267 | + "OwnerId": "[js: parameters('AdminUserId')]", |
| 268 | + "Author": "[js: parameters('AdminUsername')]", |
| 269 | + "Properties": { |
| 270 | + "SearchIndexDocumentationToolSettings": { |
| 271 | + "BaseUrl": "https://orchardcore.crestapps.com/", |
| 272 | + "IndexUrl": "https://orchardcore.crestapps.com/search-index.json" |
| 273 | + } |
| 274 | + } |
| 275 | + } |
| 276 | + ] |
| 277 | + }, |
| 278 | + { |
| 279 | + "name": "settings", |
| 280 | + "McpServerSettings": { |
| 281 | + "AuthenticationType": "None", |
| 282 | + "Tools": [ |
| 283 | + "search_orchardcore_gallery", |
| 284 | + "search_orchardcore_docs", |
| 285 | + "search_crestapps_orchardcore_docs" |
| 286 | + ] |
| 287 | + } |
| 288 | + } |
| 289 | + ] |
| 290 | +} |
0 commit comments