I Built an MCP Server for Sitefinity
So I've been using Claude Code a LOT for Sitefinity development lately, and the one thing that kept driving me nuts is that it doesn't know anything about your actual Sitefinity instance. What modules are loaded? What dynamic types exist? What was the last error in your log? You end up copy-pasting error logs into chat windows and describing your content types by hand. Saying "no, it's called NewsArticle not NewsItem" for the third time. It kills the flow.
I wanted to just say "hey, what was the last error on staging?" and get an actual answer. So I built an MCP server that does exactly that.
SitefinityCommunity.Mcp on GitHub
Now, Sitefinity does ship with their own MCP server. But it's entirely focused on generating widgets for the decoupled renderer (Next.js and ASP.NET Core). That's fine if all you need is to scaffold a new widget, but it doesn't help you with any of the actual development workflow stuff. You can't ask it to pull the last error from your staging server, or search your logs for a specific exception, or tell you what fields are on a dynamic type. It's a code generation tool, not a developer tool. I develop primarily in MVC, not the newer decoupled/SitefinityCore stuff, so their MCP server doesn't really apply to my workflow at all. I needed something that actually knows about my running Sitefinity instances and can help me debug and build against them.
The inspiration was Laravel Boost. If you haven't seen it, it's Laravel's official MCP server and it's fantastic. 15+ tools, a massive documentation knowledge base with semantic search, composable AI guidelines for the whole ecosystem. It makes AI-assisted Laravel development feel like the AI actually understands the framework. I use it on my Laravel projects and immediately wanted the same thing for Sitefinity. Obviously Progress isn't gonna build that (see above), so here we are.
For those unfamiliar, MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools and data. Think of it like giving your AI a set of APIs it can call on its own. Claude Desktop, Cursor, Windsurf, VS Code with Copilot... they all support it now.
What it gives you
As of writing this there are 14 tools in the server (full list here), but the ones I use constantly are the log tools. Instead of RDP-ing into a server and digging through files, you can ask Claude to get_last_error and it pulls back the most recent error with the full stack trace. Or search_logs for "NullReferenceException" across everything. Or just read_error_log for today's errors, parsed and readable. There are 6 log tools total including read_trace_log, list_log_files, and read_log_file for when you need to get specific.
The site intelligence tools are the other big one. list_dynamic_types shows all your content types, and get_type_fields tells you exactly what fields are on a type. This is a game changer for code generation... instead of guessing if it's PublishDate or PublishedDate or DatePublished, Claude just looks it up first. You also get check_status, get_site_info, and list_modules for the basics.
There's also get_page_details which is a personal favorite... give it a page route and it returns everything about that page including all the widgets/controls on it, placeholder details, the works. Then list_routes for spotting conflicts, plus list_environments and set_default_environment for switching between instances.
Multi-environment is the key
This was a must-have. You configure multiple Sitefinity instances (local dev, staging, production) and switch between them with set_default_environment. So you can check the production error log, then immediately switch to staging to see if the same issue exists there. No reconfiguring anything.
Local and Remote modes
Two ways to connect depending on your setup. Local Mode connects directly to Sitefinity's log files and config, good for dev when you have direct file access. Remote Mode uses a companion NuGet package (SitefinityCommunity.Mcp.Plugin) that you install into your Sitefinity instance. It exposes a secure API that the MCP server calls, protected with API key auth. Remote mode is what you want for staging and production. The plugin is lightweight and doesn't mess with anything beyond adding a few API endpoints.
It's all open source and community-built (the official Sitefinity team moves at their own pace... you know how it is). Stars and issues are welcome, and we're actively accepting PRs. If you've got ideas for more tools or want to add something you wish existed, open an issue or just send a pull request.