{"id":4385,"date":"2026-01-16T14:22:49","date_gmt":"2026-01-16T13:22:49","guid":{"rendered":"https:\/\/nubisoft.io\/blog\/?p=4385"},"modified":"2026-01-26T15:39:53","modified_gmt":"2026-01-26T14:39:53","slug":"integrating-wordpress-with-ai-tools-using-an-mcp-server","status":"publish","type":"post","link":"https:\/\/nubisoft.io\/blog\/integrating-wordpress-with-ai-tools-using-an-mcp-server\/","title":{"rendered":"Integrating WordPress with AI tools using an MCP server"},"content":{"rendered":"<div class=\"lazyblock-project-overview-Z46LSo wp-block-lazyblock-project-overview\">\n  <div class=\"lazyblocks-project-overview-wrapper wp-block-lazyblock-project-overview\">\n    <div class=\"lazyblocks-project-overview-hero-container\" style=\"--project-overview-background-color:#ffffff; --project-overview-text-color:#333033;\">\n      <div class=\"lazyblocks-project-overview-hero-image-wrapper\">\n        <img decoding=\"async\" class=\"lazyblocks-project-overview-hero-image\" src=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2025\/12\/gesundheit_bewegt-1-e1766484926997.png\" alt=\"gesundheit_bewegt-1-e1766484926997.png\">\n      <\/div>\n          <\/div>\n\n          <div class=\"lazyblocks-project-overview-content-wrapper\">\n        <h5 class=\"lazyblocks-project-overview-header\">Project overview<\/h5>\n        <div class=\"lazyblocks-project-overview-details-wrapper\">\n\n                      <div class=\"lazyblocks-project-overview-single-detail-header\">Client<\/div>\n            <div class=\"lazyblocks-project-overview-single-detail-content\">Gesundheit Bewegt<\/div>\n          \n                      <div class=\"lazyblocks-project-overview-single-detail-header\">Industry<\/div>\n            <div class=\"lazyblocks-project-overview-single-detail-content\">Healthcare<\/div>\n          \n                      <div class=\"lazyblocks-project-overview-single-detail-header\">Task<\/div>\n            <div class=\"lazyblocks-project-overview-single-detail-content\">Our task was to enable AI to work directly within the client\u2019s WordPress environment by designing and implementing a secure MCP-based execution layer.<\/div>\n          \n                      <div class=\"lazyblocks-project-overview-single-detail-header\">Collaboration<\/div>\n            <div class=\"lazyblocks-project-overview-single-detail-collaboration-status\" style=\"--status-color-dot: \n                          #0DD3FF\n            ;\">\n              since 2025            <\/div>\n          \n\n                      <div class=\"lazyblocks-project-overview-single-detail-header\">Scope<\/div>\n            <div class=\"lazyblocks-project-overview-single-detail-scope-wrapper\">\n\n                              \n                  <div class=\"lazyblocks-project-overview-single-detail-scope-category\">\n                    AI                  <\/div>\n\n                                              \n                  <div class=\"lazyblocks-project-overview-single-detail-scope-category\">\n                    WordPress                  <\/div>\n\n                                              \n                  <div class=\"lazyblocks-project-overview-single-detail-scope-category\">\n                    Integration                  <\/div>\n\n                              \n            <\/div>\n          \n\n                      <div class=\"lazyblocks-project-overview-single-detail-header\">Technologies<\/div>\n            <div class=\"lazyblocks-project-overview-single-detail-technologies-wrapper\">\n\n                              \n                  <div class=\"lazyblocks-project-overview-single-detail-technologies-tag\">\n                    JavaScript                  <\/div>\n\n                                              \n                  <div class=\"lazyblocks-project-overview-single-detail-technologies-tag\">\n                    HTML                  <\/div>\n\n                                              \n                  <div class=\"lazyblocks-project-overview-single-detail-technologies-tag\">\n                    WordPress                  <\/div>\n\n                                              \n                  <div class=\"lazyblocks-project-overview-single-detail-technologies-tag\">\n                    MCP                  <\/div>\n\n                              \n            <\/div>\n          \n        <\/div>\n      <\/div>\n      <\/div>\n<\/div>\n\n<div class=\"lazyblock-text-ZJg2PN wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <h2><span style=\"font-weight: 400;\">Introduction<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Gesundheit Bewegt approached us with a challenge: <\/span><\/p>\n<blockquote>\n<p>how can generative AI be connected to a large, diverse knowledge base that has been developed and expanded on WordPress over many years?<\/p>\n<\/blockquote>\n<p>The main problem was that the AI tools used by the team had no direct access to the platform, which made their use limited, slow, and prone to manual errors.<\/p>\n<p><span style=\"font-weight: 400;\">Our task was to find a controlled and secure way to make the platform\u2019s content and core operations available to large language models \u2013 without changing the existing architecture or workflow.<\/span><\/p>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-text-1aWobr wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <h2><span style=\"font-weight: 400;\">Client <\/span><\/h2>\n<p><a href=\"https:\/\/www.gesundheit-bewegt.com\/\" target=\"_blank\" rel=\"noopener\">Gesundheit Bewegt<\/a> is a German company specializing in digital workplace health promotion programs. Its core product is an extensive online platform that combines training videos, courses, challenges, recipes, educational materials, and activity-tracking tools.<\/p>\n<p>The platform is built around professionally created content developed by domain experts, helping employers take a structured approach to supporting the physical and mental health of their teams.<\/p>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-text-5n6JU wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <h2><span style=\"font-weight: 400;\">Problem \u2013 how to use AI with a large content base?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The Gesundheit Bewegt team was already using large language model tools, including Claude, to support editorial and conceptual work. The issue was that AI operated outside the WordPress ecosystem and had no direct access to the content stored on the platform.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As a result, the workflow was fragmented and inefficient. When creating new campaigns, thematic programs, or educational materials, editors had to manually search for content in the CMS, copy it into AI tools, and only then work with it. This process was slow, made it harder to work with full context, and increased the risk of overlooking valuable existing materials.<\/span><\/p>\n<blockquote>\n<p><strong>From a business perspective, the key requirement was to enable AI to operate directly within WordPress-based editorial workflows.<\/strong><\/p>\n<\/blockquote>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-inner-Z1DiAmk wp-block-lazyblock-inner\">\n<div style=\"--inner-block-max-width:800px;\" class=\"lazyblock-inner-block-section wp-block-lazyblock-inner\">\n    \n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"507\" src=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/fragmented-content-workflow-ai-tools-1024x507.webp\" alt=\"Diagram showing a fragmented and error-prone content workflow with manual search, copy-paste, and external AI tools outside the CMS. Illustrates inefficiencies in traditional WordPress content creation using AI.\" class=\"wp-image-4477\" srcset=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/fragmented-content-workflow-ai-tools-1024x507.webp 1024w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/fragmented-content-workflow-ai-tools-300x149.webp 300w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/fragmented-content-workflow-ai-tools-768x380.webp 768w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/fragmented-content-workflow-ai-tools-1200x594.webp 1200w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/fragmented-content-workflow-ai-tools.webp 1248w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">A fragmented content workflow forces users to manually move data between sources, tools, and the CMS, increasing complexity and risk of errors.<\/figcaption><\/figure>\n\n\n<\/div>\n<\/div>\n\n<div class=\"lazyblock-text-klWKn wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <h2><span style=\"font-weight: 400;\">Challenge \u2013 technical constraints and solution security<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Delivering such a solution involved several important technical challenges.\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">This platform had been developed over years and relied on many custom content types, plugins, and extensions that went far beyond WordPress\u2019s default CMS mechanisms. There was no off-the-shelf market solution that could securely connect AI tools directly to such a customized environment.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">At the same time, security and access control were critical. AI could not be given unrestricted access to the entire content database \u2013 user roles, permissions, and internal platform structure had to be respected.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">An additional constraint was the team\u2019s existing way of working. Their AI tools were already configured and used daily, so the solution could not force them to switch models, tools, or usage patterns.<\/span><\/li>\n<\/ul>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-text-IDtnK wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <h2><span style=\"font-weight: 400;\">Solution &#8211; a dedicated MCP server for the WordPress environment<\/span><\/h2>\n<h3><span style=\"font-weight: 400;\">Why not RAG?<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">At an early stage, we considered a classic RAG-based approach, which would require building an additional index \u2013 most commonly a vector database \u2013 based on content stored in WordPress. In the case of a dynamic CMS, where content is continuously added, edited, and reorganized, such an approach <strong>requires regular reindexing<\/strong>. This introduces additional operational overhead, ongoing maintenance costs, and the risk of AI working on outdated information. Given the scale and growth rate of the Gesundheit Bewegt platform, this significantly limited the flexibility of the solution.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Equally important were the functional limitations of RAG.<\/strong> This approach supports read-only use cases such as semantic search, summarization, and text generation based on existing knowledge, but it <\/span><b>does not allow for executing real operations in the source system<\/b><span style=\"font-weight: 400;\">. The team, however, wanted to improve their existing editorial workflow, where AI would not only analyze content but also perform concrete actions in WordPress, such as creating new posts, assigning categories, or publishing content.<\/span><\/p>\n<blockquote>\n<p><span style=\"font-weight: 400;\">For these reasons, RAG did not meet the key requirements of the project. We had to look for an alternative.<\/span><\/p>\n<\/blockquote>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-inner-ZomHT8 wp-block-lazyblock-inner\">\n<div style=\"--inner-block-max-width:800px;\" class=\"lazyblock-inner-block-section wp-block-lazyblock-inner\">\n    \n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"507\" src=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/rag-vs-mcp-wordpress-ai-comparison-1024x507.webp\" alt=\"Comparison chart of RAG and MCP approaches for AI integration with WordPress, highlighting read-only indexed knowledge versus live CMS data and read-write operations. Explains how MCP aligns AI workflows with CMS logic.\" class=\"wp-image-4478\" srcset=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/rag-vs-mcp-wordpress-ai-comparison-1024x507.webp 1024w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/rag-vs-mcp-wordpress-ai-comparison-300x149.webp 300w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/rag-vs-mcp-wordpress-ai-comparison-768x380.webp 768w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/rag-vs-mcp-wordpress-ai-comparison-1200x594.webp 1200w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/rag-vs-mcp-wordpress-ai-comparison.webp 1248w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">RAG and MCP address different layers of AI integration, combining knowledge retrieval with live, workflow-aware CMS operations.<\/figcaption><\/figure>\n\n\n<\/div>\n<\/div>\n\n<div class=\"lazyblock-text-1azPFn wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <h3><span style=\"font-weight: 400;\">What instead of RAG?<\/span><\/h3>\n<p>Instead of adding another knowledge layer alongside WordPress, we chose a solution that operates directly on the source system. This approach eliminates the need for data synchronization and allows the team to work without changing their existing workflows, while still providing AI with access to up-to-date data and platform functionality.<\/p>\n<p>To solve this, we implemented an MCP (Model Context Protocol) server between WordPress and the AI tools. It exposes a controlled set of WordPress operations to AI, instead of limiting access to read-only content.<\/p>\n<p><span style=\"font-weight: 400;\">The delivered solution was built on the <\/span><a href=\"https:\/\/developer.wordpress.org\/news\/2025\/11\/introducing-the-wordpress-abilities-api\/\" target=\"_blank\" rel=\"noopener\"><b>abilities-api<\/b><\/a><span style=\"font-weight: 400;\"> and <\/span><a href=\"https:\/\/github.com\/WordPress\/mcp-adapter\" target=\"_blank\" rel=\"noopener\"><b>mcp-adapter<\/b><\/a><span style=\"font-weight: 400;\"> mechanisms. As a result, language models can not only analyze content but also perform specific actions within the CMS \u2013 fully aligned with the platform\u2019s existing roles, permissions, and structural constraints.<\/span><\/p>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-text-vxI0F wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <h3><span style=\"font-weight: 400;\">MCP server implementation details in a complex WordPress setup<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">At the core of the solution were <\/span><b>abilities<\/b><span style=\"font-weight: 400;\"> \u2013 precisely defined WordPress operations exposed to AI as a controlled execution layer. Each ability acts as a strict contract, defining allowed inputs, outputs, and permission checks, which makes it possible to validate and authorize requests before any WordPress logic is executed.<\/span><\/p>\n<blockquote>\n<p><span style=\"font-weight: 400;\"> Instead of granting broad access to the CMS or database, we exposed a limited set of capabilities that map directly to real editorial tasks.<\/span><\/p>\n<\/blockquote>\n<p><span style=\"font-weight: 400;\">These abilities support both read and write operations. AI can retrieve and analyze content using live WordPress data, but it can also <strong>perform concrete actions such as creating posts, assigning categories and taxonomies, and publishing content<\/strong>. This approach allows AI to operate within real editorial workflows and works reliably even in environments with custom post types, non-standard data structures, and content builders.<\/span><\/p>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-inner-X2i1x wp-block-lazyblock-inner\">\n<div style=\"--inner-block-max-width:800px;\" class=\"lazyblock-inner-block-section wp-block-lazyblock-inner\">\n    \n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"507\" src=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/mcp-server-wordpress-abilities-1024x507.webp\" alt=\"An overview of AI-powered MCP Abilities for WordPress, showcasing secure execution layers for content analysis, post creation, and automated publishing.\" class=\"wp-image-4479\" srcset=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/mcp-server-wordpress-abilities-1024x507.webp 1024w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/mcp-server-wordpress-abilities-300x149.webp 300w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/mcp-server-wordpress-abilities-768x380.webp 768w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/mcp-server-wordpress-abilities-1200x594.webp 1200w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/mcp-server-wordpress-abilities.webp 1248w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">MCP exposes a controlled set of WordPress actions that AI can execute safely, without direct database or admin access.<\/figcaption><\/figure>\n\n\n<\/div>\n<\/div>\n\n<div class=\"lazyblock-text-Z1HKGvY wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <p><span style=\"font-weight: 400;\">For integration with AI tools, we used the <\/span><a href=\"https:\/\/github.com\/Automattic\/mcp-wordpress-remote\" target=\"_blank\" rel=\"noopener\"><b>mcp-wordpress-remote<\/b><\/a><span style=\"font-weight: 400;\"> library, which enables the MCP server to connect with environments such as Claude Desktop or VS Code Copilot. This keeps the solution model-agnostic and avoids locking the platform into a single AI provider.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Security and access control were implemented using WordPress application passwords assigned to a dedicated technical user. Each ability enforces its own authorization logic based on roles and permissions, allowing precise control not only over which content types AI can access, but also over <\/span><b>which actions it is allowed to perform<\/b><span style=\"font-weight: 400;\"> within the WordPress environment.\u00a0<\/span><\/p>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-text-WNh0p wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <h2><span style=\"font-weight: 400;\">Outcome<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Deploying the MCP server made AI a practical part of daily editorial work in WordPress.\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Instead of functioning as an external drafting or research tool, AI can now perform specific CMS operations \u2013 such as creating posts, assigning categories, and publishing content \u2013 within clearly defined permissions.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The solution operates directly on live WordPress data and functions, without creating a separate knowledge base or requiring content synchronization. This meant that the team continued to use the same workflow and AI tools, but they no longer had to copy content manually or deal with the extra work involved in running two systems at once.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">By exposing only explicitly defined operations through MCP abilities and enforcing role- and capability-based authorization, the integration remains secure and predictable. The architecture adapts to custom content types and complex WordPress structures, scales with the platform\u2019s growth, and stays independent of a specific AI model or vendor.<\/span><\/li>\n<\/ul>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-inner-Ucf9I wp-block-lazyblock-inner\">\n<div style=\"--inner-block-max-width:800px;\" class=\"lazyblock-inner-block-section wp-block-lazyblock-inner\">\n    \n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"507\" src=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/ai-inside-wordpress-cms-workflow-mcp-1024x507.webp\" alt=\"\" class=\"wp-image-4480\" srcset=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/ai-inside-wordpress-cms-workflow-mcp-1024x507.webp 1024w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/ai-inside-wordpress-cms-workflow-mcp-300x149.webp 300w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/ai-inside-wordpress-cms-workflow-mcp-768x380.webp 768w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/ai-inside-wordpress-cms-workflow-mcp-1200x594.webp 1200w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2026\/01\/ai-inside-wordpress-cms-workflow-mcp.webp 1248w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">By embedding AI directly into the CMS workflow, MCP eliminates manual copy-paste and enables real, validated content operations.<\/figcaption><\/figure>\n\n\n<\/div>\n<\/div>\n\n<div class=\"lazyblock-text-1Ff10x wp-block-lazyblock-text\">\n  <div style=\"--size-margin-text-block: 70px;\" class=\"lazyblocks-text-wrapper wp-block-lazyblock-text\">\n    <div class=\"lazyblocks-text-columns-wrapper\">\n              <div class=\"lazyblocks-text-column\n                \" style=\"--size-padding-text-block: 20px;\">\n          <h2><span style=\"font-weight: 400;\">Lessons learned<\/span><\/h2>\n<ol>\n<li><b>Designing and implementing MCP servers for WordPress-based systems <\/b><b><br \/><\/b><span style=\"font-weight: 400;\">We gained hands-on experience adapting the MCP protocol to complex CMS environments, including working with custom content types and non-standard data structures.<\/span><span style=\"font-weight: 400;\"><br \/><br \/><\/span><\/li>\n<li><b>Securely exposing the CMS to AI tools<\/b><b><br \/><\/b><span style=\"font-weight: 400;\">We developed an approach for controlling AI access to WordPress content based on roles, permissions, and dedicated authorization mechanisms \u2013 rather than granting broad access to the knowledge base.<\/span><span style=\"font-weight: 400;\"><br \/><br \/><\/span><\/li>\n<li><b>Integrating existing AI workflows with production systems<\/b><b><br \/><\/b><span style=\"font-weight: 400;\">We gained experience connecting already configured AI tools (e.g., Claude Desktop, Copilot) to existing platforms without forcing changes in models or team processes.<\/span><\/li>\n<\/ol>\n<blockquote>\n<p><span style=\"font-weight: 400;\">If you\u2019re facing a similar challenge \u2013 running a content-heavy WordPress platform and looking to integrate AI securely \u2013 share your contact details. We\u2019d be happy to talk through possible approaches and see whether we can help.<\/span><\/p>\n<\/blockquote>        <\/div>\n      \n      \n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"lazyblock-contact-form-1MrrJl wp-block-lazyblock-contact-form\">\n\n    <div class=\"lazyblock-contact-form-contact-section wp-block-lazyblock-contact-form\">\n        <div class=\"lazyblock-contact-form-contact-section-inner\">\n\n                            <dialog id=\"ns-pop-up-dialog\" class=\"lazyblock-contact-form-dialog\">\n                                <div class=\"lazyblock-contact-form-contact-wrapper\">\n\n                    <div class=\"lazyblock-contact-form-contact-title-wrapper\">\n                        <h2 class=\"lazyblock-contact-form-contact-title\">\n                            Who are we?                        <\/h2>\n                        <p class=\"lazyblock-contact-form-contact-description\">\n                            At NubiSoft, we partner with medical software companies to develop their products by providing specialized IT solutions. If you\u2019re considering adding new features and need assistance, feel free to contact us.                        <\/p>\n\n                    <\/div>\n                    <script type=\"text\/javascript\" src=\" https:\/\/m.nubisoft.io\/form\/generate.js?id=3\"><\/script>\n                                            <button class=\"lazyblock-contact-form-close-button\">\n                        <\/button>\n                                    <\/div>\n                \n                <\/dialog>\n                <button class=\"lazyblock-contact-form-button\" id=\"ns-pickup-button\">\n                    Contact us                <\/button>\n\n            \n        <\/div>\n    <\/div>\n\n<\/div>\n\n<div class=\"lazyblock-posts-23lHxi wp-block-lazyblock-posts\">\n\n\n<div style=\"--size-margin-posts-block: 70px;\" class=\"lazyblocks-posts-wrapper wp-block-lazyblock-posts\">\n                                <h3 class=\"lazyblocks-posts-header\">People who read this article also read:<\/h3>                     \n\n        <div class=\"lazyblocks-posts-container\">\n\n                            <div class=\"lazyblocks-posts-single-wrapper\">\n                                        <a class=\"lazyblocks-posts-image-wrapper\" style=\"--post-thumbail-url: url('https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2025\/10\/cover-photo-from-objectdb-to-document.png');\" href=\"https:\/\/nubisoft.io\/blog\/from-object-to-document-database\/\">\n\n\n                                                    <img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"287\" src=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2025\/10\/cover-photo-from-objectdb-to-document.png\" class=\"lazyblocks-posts-image wp-post-image\" alt=\"A case study title slide for Nubisoft featuring &quot;Legacy Database Modernization: From Object to Document Database&quot; with a green &quot;Case study&quot; button and abstract background.\" srcset=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2025\/10\/cover-photo-from-objectdb-to-document.png 1248w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2025\/10\/cover-photo-from-objectdb-to-document-300x149.png 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/>                                            <\/a>\n\n                    <div class=\"lazyblocks-posts-info-wrapper\">\n                                                    <div class=\"lazyblocks-posts-category-wrapper\">\n                                <a href=\"https:\/\/nubisoft.io\/blog\/category\/case-study\/\" rel=\"category tag\">Case study<\/a> <a href=\"https:\/\/nubisoft.io\/blog\/category\/healthcare\/\" rel=\"category tag\">Healthcare<\/a> <a href=\"https:\/\/nubisoft.io\/blog\/category\/infrastructure\/\" rel=\"category tag\">Infrastructure<\/a> <a href=\"https:\/\/nubisoft.io\/blog\/category\/system-architecture\/\" rel=\"category tag\">System Architecture<\/a>                            <\/div>\n                        \n                        <span class=\"lazyblocks-posts-read-time\">1 min read<\/span>                    <\/div>\n\n\n                    <div class=\"lazyblocks-posts-title-wrapper\">\n                        <h2 class=\"lazyblocks-posts-title\"><a href=\"https:\/\/nubisoft.io\/blog\/from-object-to-document-database\/\">Migrating a Legacy Object Database to a Document Architecture<\/a><\/h2>\n                        <a class=\"lazyblocks-posts-read-more\" href=\"https:\/\/nubisoft.io\/blog\/from-object-to-document-database\/\">Read more<\/a>\n                    <\/div>\n                <\/div>\n                            <div class=\"lazyblocks-posts-single-wrapper\">\n                                        <a class=\"lazyblocks-posts-image-wrapper\" style=\"--post-thumbail-url: url('https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/12\/Healthcare-System-Modernization_title-150x150.png');\" href=\"https:\/\/nubisoft.io\/blog\/healthcare-system-modernization-two-proven-strategies\/\">\n\n\n                                                    <img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"287\" src=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/12\/Healthcare-System-Modernization_title-1024x507.png\" class=\"lazyblocks-posts-image wp-post-image\" alt=\"A title slide with NubiSoft logo introducing &quot;Two Strategies for: Healthcare System Modernization&quot; against a dark background with subtle circular elements.\" srcset=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/12\/Healthcare-System-Modernization_title-1024x507.png 1024w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/12\/Healthcare-System-Modernization_title-300x149.png 300w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/12\/Healthcare-System-Modernization_title-768x380.png 768w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/12\/Healthcare-System-Modernization_title-1200x594.png 1200w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/12\/Healthcare-System-Modernization_title.png 1248w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/>                                            <\/a>\n\n                    <div class=\"lazyblocks-posts-info-wrapper\">\n                                                    <div class=\"lazyblocks-posts-category-wrapper\">\n                                <a href=\"https:\/\/nubisoft.io\/blog\/category\/healthcare\/\" rel=\"category tag\">Healthcare<\/a> <a href=\"https:\/\/nubisoft.io\/blog\/category\/infrastructure\/\" rel=\"category tag\">Infrastructure<\/a> <a href=\"https:\/\/nubisoft.io\/blog\/category\/software-development\/\" rel=\"category tag\">Software Development<\/a> <a href=\"https:\/\/nubisoft.io\/blog\/category\/system-architecture\/\" rel=\"category tag\">System Architecture<\/a>                            <\/div>\n                        \n                        <span class=\"lazyblocks-posts-read-time\">1 min read<\/span>                    <\/div>\n\n\n                    <div class=\"lazyblocks-posts-title-wrapper\">\n                        <h2 class=\"lazyblocks-posts-title\"><a href=\"https:\/\/nubisoft.io\/blog\/healthcare-system-modernization-two-proven-strategies\/\">Healthcare System Modernization: Two Proven Strategies<\/a><\/h2>\n                        <a class=\"lazyblocks-posts-read-more\" href=\"https:\/\/nubisoft.io\/blog\/healthcare-system-modernization-two-proven-strategies\/\">Read more<\/a>\n                    <\/div>\n                <\/div>\n                            <div class=\"lazyblocks-posts-single-wrapper\">\n                                        <a class=\"lazyblocks-posts-image-wrapper\" style=\"--post-thumbail-url: url('https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/02\/Blog-template-150x150.png');\" href=\"https:\/\/nubisoft.io\/blog\/nubisofts-role-in-advancing-health-e-services\/\">\n\n\n                                                    <img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"287\" src=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/02\/Blog-template-1024x507.png\" class=\"lazyblocks-posts-image wp-post-image\" alt=\"\" srcset=\"https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/02\/Blog-template-1024x507.png 1024w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/02\/Blog-template-300x149.png 300w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/02\/Blog-template-768x380.png 768w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/02\/Blog-template-1200x594.png 1200w, https:\/\/nubisoft.io\/blog\/wp-content\/uploads\/2024\/02\/Blog-template.png 1248w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/>                                            <\/a>\n\n                    <div class=\"lazyblocks-posts-info-wrapper\">\n                                                    <div class=\"lazyblocks-posts-category-wrapper\">\n                                <a href=\"https:\/\/nubisoft.io\/blog\/category\/case-study\/\" rel=\"category tag\">Case study<\/a> <a href=\"https:\/\/nubisoft.io\/blog\/category\/healthcare\/\" rel=\"category tag\">Healthcare<\/a>                            <\/div>\n                        \n                        <span class=\"lazyblocks-posts-read-time\">1 min read<\/span>                    <\/div>\n\n\n                    <div class=\"lazyblocks-posts-title-wrapper\">\n                        <h2 class=\"lazyblocks-posts-title\"><a href=\"https:\/\/nubisoft.io\/blog\/nubisofts-role-in-advancing-health-e-services\/\">NubiSoft\u2019s Role in Advancing Health E-Services<\/a><\/h2>\n                        <a class=\"lazyblocks-posts-read-more\" href=\"https:\/\/nubisoft.io\/blog\/nubisofts-role-in-advancing-health-e-services\/\">Read more<\/a>\n                    <\/div>\n                <\/div>\n                    <\/div>\n    <\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>In this case study, we show how we integrated a content-heavy WordPress platform with AI using an MCP server, enabling live CMS access and real editorial actions.<\/p>\n","protected":false},"author":13,"featured_media":4547,"comment_status":"open","ping_status":"open","sticky":false,"template":"post-2024.php","format":"standard","meta":{"_case_study_excerpt":"","footnotes":""},"categories":[80,221],"tags":[488,512,577],"class_list":["post-4385","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-case-study","category-healthcare","tag-ai","tag-healthcare-en","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/posts\/4385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/comments?post=4385"}],"version-history":[{"count":19,"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/posts\/4385\/revisions"}],"predecessor-version":[{"id":4509,"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/posts\/4385\/revisions\/4509"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/media\/4547"}],"wp:attachment":[{"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/media?parent=4385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/categories?post=4385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nubisoft.io\/blog\/wp-json\/wp\/v2\/tags?post=4385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}