By Kayode Ajayi — SEO & Digital Marketing Strategist, Purple Crib Studios | March 2026
Artificial intelligence isn't just a chatbot you bolt onto a homepage. When done right, it becomes the nervous system of your entire website — routing requests, generating content, automating workflows, and talking to your CMS in real time. That's exactly what I built for Purple Crib Studios: a multi-layer NPC/MCP server system, fully integrated with Odoo, powered by Claude AI, and structured across four distinct conversational layers.
This post is the full technical breakdown — architecture, build steps, functions, deployment, and everything in between. Whether you're a developer, a technical founder, or an agency owner who wants to understand what this system is actually capable of, this guide will walk you through it from first principles to production.

📋 Table of Contents
- What is an NPC/MCP Server System?
- Why Odoo? The Case for an AI-Native CMS
- System Architecture Overview
- The Four Layers Explained
- Step-by-Step Build Process
- Odoo Integration Deep Dive
- Full MCP Function List
- Prompt Engineering Structure
- Memory Handling & Multi-Chat Orchestration
- Deployment & Configuration
- Quick-Win Checklist
- Final Thoughts
- FAQ
1. What is an NPC/MCP Server System?
MCP (Model Context Protocol) is Anthropic's open standard for connecting AI models to external tools, data sources, and APIs. Think of it as a universal adapter between a language model and the real world — allowing Claude (or any compatible AI) to call functions, read databases, write content, and trigger workflows without leaving the conversation.
NPC (Non-Player Character) in this context refers to the conversational agent persona that interfaces with users on the frontend. An NPC layer is not just a chatbot — it's a role-playing, context-aware agent that knows who it's talking to, what stage of the user journey they're on, and what tools it has access to. The NPC layer is the face. The MCP layer is the brain and hands.
Together, they form a system where a user can have a natural conversation with your website, and behind the scenes, your AI is reading your CMS, writing blog posts, updating records, checking SEO scores, generating reports, and orchestrating workflows — all in real time.
For Purple Crib Studios, this means a client can visit the site, ask about a service, get a personalised response based on live Odoo data, book a call, and trigger a post-interaction workflow — without any human intervention.
2. Why Odoo? The Case for an AI-Native CMS
Most AI automation projects live in the cloud (Zapier, Make, n8n) and bolt on to your website as a separate service. The problem is latency, fragmentation, and context loss. Every API hop is a potential failure point.
Odoo changes this. Because Odoo is a fully integrated ERP + CMS + CRM + eCommerce platform, the MCP server can:
- Read and write blog posts directly via the Odoo website module
- Access CRM records in real time
- Trigger email sequences from the Marketing module
- Pull product and service data without a separate API
- Inject schema markup, update SEO fields, and manage redirects natively
This tight integration eliminates the "glue layer" most AI systems need. The AI and the CMS share the same data model — making the system faster, more reliable, and significantly easier to maintain. Purple Crib Studios runs on Odoo, which made it the natural home for this architecture.
For broader context on Odoo's API capabilities, see the official Odoo developer documentation.
3. System Architecture Overview
At the highest level, the system is composed of five components:
- Claude AI (via Anthropic API) — The core language model powering all reasoning, generation, and decision-making.
- MCP Tool Layer — A set of registered functions (tools) that Claude can call to interact with Odoo, the web, Notion, and other services.
- NPC Persona Layer — A prompt-engineered conversational identity that gives the system a consistent voice, role, and behaviour.
- Memory & Context Layer — A mechanism for preserving state, user preferences, and session history across multiple chat interactions.
- Odoo Backend — The operational core where all content, CRM, SEO, and website data lives.
Data flows in a loop: User → NPC Layer → Claude → MCP Tool Layer → Odoo/Web/Notion → Response → NPC Layer → User. Every response is grounded in live data. Every action is logged and traceable.
4. The Four Layers Explained
Layer 1: The NPC Persona (Conversational Identity)
This is the system prompt layer — the instructions that define who the AI is, how it speaks, what it knows about the business, and how it handles edge cases. The NPC persona for Purple Crib Studios is configured as a knowledgeable, professional digital marketing assistant who:
- Knows all services offered (SEO, GMB, web design, content, AI strategy)
- Has access to current pricing, case studies, and service descriptions from Odoo
- Routes sensitive queries (pricing negotiations, complaints) to a human handoff protocol
- Maintains tone consistency whether the user is casual or technical
Layer 2: The MCP Tool Registry (What the AI Can Do)
This layer defines every action the AI is authorised to take. Tools are registered with a name, description, input schema, and output format. Claude reads these tool definitions and decides autonomously which ones to call based on the conversation context. Current registered tools include Odoo blog management, schema injection, SEO auditing, web search, Notion read/write, and more.
Layer 3: The Session Orchestration Layer (Multi-Chat Memory)
Because Claude has no native cross-session memory, this layer handles persistence. User preferences, completed tasks, conversation history highlights, and project state are stored in a structured memory format (either in Notion or injected back into the system prompt at the start of each new session). This allows the AI to say "Last time we discussed your GMB optimisation — here's where we left off" without storing raw transcripts.
Layer 4: The Execution & Feedback Layer (Action + Verification)
The final layer handles tool execution, error catching, result verification, and reporting back to the user. When the AI calls a tool (e.g., creating a blog post in Odoo), this layer confirms the action succeeded, captures the returned data (post ID, URL, audit score), and feeds it back into the conversation. It also handles retry logic and graceful failure messaging.
5. Step-by-Step Build Process
Phase 1: Architecture Planning
- Map out all the tasks you want the AI to be able to perform (blog creation, SEO auditing, CRM updates, etc.)
- Identify which Odoo modules are in scope (Website, Blog, CRM, Email Marketing)
- Define the NPC persona — name, role, tone, boundaries, escalation rules
- Decide on the memory strategy (Notion-based, database-based, or prompt injection)
- Plan the tool registry — list every MCP tool by name and purpose
Phase 2: Odoo Configuration
- Ensure your Odoo instance has the Website, Blog, and CRM modules active
- Set up blog sections (e.g., "SEO and AI Trends", "GMB", "Our Blog")
- Create blog tags for content categorisation
- Configure the
odoo-websiteMCP server with your instance URL and credentials - Test basic read operations (list_blogs, list_blog_posts) before attempting writes
Phase 3: MCP Server Setup
- Connect the
odoo-websiteMCP server in your Claude environment (claude.ai or API) - Connect supporting servers: Notion (for memory/docs), web_search (for live research), Ahrefs (for SEO data)
- Verify each tool is discoverable by running a
tool_searchquery - Test each tool individually before chaining them in workflows
Phase 4: NPC Persona Prompt Engineering
- Write the system prompt defining the AI's identity, knowledge scope, and behaviour
- Include business context (services, pricing, target audience, tone guidelines)
- Define tool usage rules (when to use which tool, what to do when a tool fails)
- Add memory injection instructions (how to read and write user preferences)
- Test the persona across multiple conversation types (inquiry, complaint, technical request)
Phase 5: Memory Layer Build
- Create a structured Notion page as the memory store
- Define memory categories: user preferences, project state, completed actions, pending tasks
- Build the read/write protocol — how the AI accesses memory at session start, updates it during, and saves on exit
- Add the
memory_user_editstool for Claude's own memory management
Phase 6: Testing & Iteration
- Run end-to-end tests across all four layers
- Test failure modes (tool unavailable, Odoo returns error, memory not found)
- Verify schema injection, AI readiness scores, and blog post formatting
- Iterate on the NPC persona based on real conversation quality
Phase 7: Deployment
- Lock the system prompt (NPC persona) and version it
- Document all registered tools and their expected behaviour
- Set up monitoring for tool call failures and Odoo write errors
- Create a maintenance schedule for schema updates and persona refreshes
6. Odoo Integration Deep Dive
The Odoo MCP server (odoo-website) provides direct access to Odoo's website, blog, and content modules. Here's how each integration point works:
Blog Management
The AI can create, update, publish, and unpublish blog posts directly. Every post created by the system follows a strict template: numbered TOC with anchor links, FAQ section (6–8 Q&As), author bio (Kayode Ajayi), internal backlinks to Purple Crib service pages, external authoritative backlinks, schema markup, and SEO meta fields. This ensures every AI-generated post is both human-readable and AI-search-optimised.
Schema Injection
After creating a post, the system automatically injects Article + FAQPage + Speakable + BreadcrumbList JSON-LD schema. This makes every post immediately visible to AI search engines including Google AI Overviews, Perplexity, and ChatGPT. The inject_schema_blog_post tool handles this in a single call.
SEO Auditing
The ai_readiness_audit tool scores each post from 0–100 based on schema coverage, meta tag completeness, heading hierarchy, content depth, FAQ presence, and speakable markup. The system reports this score after every post creation and flags posts that score below 70 for manual review.
WebMCP Optimisation
Purple Crib Studios is among the first Nigerian businesses to implement WebMCP — making the website natively readable by AI agents. This means when an AI assistant is asked about digital marketing services in Lagos, the site's content is structured in a way the AI can parse, extract, and cite directly. The Odoo backend serves as the content source, while WebMCP provides the structured access layer.
Learn more about WebMCP in the official WebMCP documentation.
7. Full MCP Function List
🗣️ User Interaction
- ask_user_input — Presents structured choice widgets to users for guided decision-making
- message_compose — Drafts emails, Slack messages, or texts with multiple strategic tone variants
- memory_user_edits — Reads/writes persistent user preferences and project state across sessions
✍️ Content Generation
- create_blog_post — Creates full, SEO-optimised blog posts in Odoo with all required fields
- update_blog_post — Edits existing posts (content, SEO fields, publish status)
- update_seo — Updates meta title, description, and keywords on any post or page
- generate_faq_suggestions — AI-generates 5–8 FAQ pairs optimised for AI search extraction
- bulk_update_seo — Updates SEO fields across multiple posts simultaneously
🤖 Automation
- publish_blog_post — Publishes a draft post live
- unpublish_blog_post — Takes a live post offline
- bulk_publish — Publishes multiple posts at once
- create_redirect — Creates 301/302 URL redirects
- inject_schema_bulk — Injects Article + Speakable + BreadcrumbList schema across all posts at once
📊 Data Processing
- ai_readiness_audit — Scores any post or page for AI search visibility (0–100)
- audit_seo — Full SEO audit across all posts/pages
- audit_core_web_vitals — Google PageSpeed Insights integration
- get_website_stats — Returns total posts, pages, published counts, and status overview
- web_search — Live web search for current information and research
- web_fetch — Fetches complete content of any URL
🔍 SEO & Blogging
- inject_schema_blog_post — Injects full JSON-LD schema (Article + FAQPage + Speakable + BreadcrumbList) into a post
- inject_open_graph — Adds og: and Twitter Card meta tags
- inject_organization_schema — Injects Organization/LocalBusiness schema on homepage
- check_ai_bot_access — Checks if robots.txt blocks AI search crawlers
- create_blog_tag — Creates new content tags
- list_blog_posts / search_blog_posts — Retrieves post inventory for auditing
⚙️ Odoo Integration
- list_blogs — Lists all blog sections
- get_blog_post — Retrieves full post content and metadata
- get_website_settings — Reads site name, domain, social links, theme
- update_website_settings — Updates site-wide configuration
- list_menus / create_menu / update_menu — Navigation management
- list_pages / create_page / update_page — Full page lifecycle management
- get_view / update_view / create_inherit_view — QWeb template management
- upload_image — Uploads images to Odoo media library
📝 Knowledge Management (Notion)
- notion-search — Semantic search across entire Notion workspace
- notion-create-pages — Creates structured documentation pages
- notion-update-page — Updates existing Notion pages
- notion-fetch — Retrieves full page/database content
- notion-get-users — Team member lookup for task assignment
8. Prompt Engineering Structure
The system prompt (NPC persona) is structured in six blocks:
- Identity Block — Who the AI is, what it's called, and its primary role
- Knowledge Block — Business context: services, pricing, target audience, USPs
- Behaviour Block — Tone rules, response length guidelines, formatting preferences
- Tool Usage Block — Which tools to use when, default parameters, error handling rules
- Memory Block — How to read user memory at session start, what to save on exit
- Escalation Block — When to hand off to a human, what information to capture before doing so
Each block is clearly delimited with XML-style tags in the prompt, which improves Claude's ability to parse and follow each section independently. This structure reduces prompt confusion and makes updates modular — you can change the Behaviour Block without touching the Tool Usage Block.
For deeper reading on prompt engineering best practices, see Anthropic's official prompt engineering guide.
9. Memory Handling & Multi-Chat Orchestration
One of the most technically interesting challenges in building this system was memory. By default, each Claude conversation starts fresh. For a production AI system, that's unacceptable — you need continuity.
The solution used here is a three-tier memory architecture:
- Ephemeral Memory — In-conversation context (standard Claude window). Used for the current session only.
- Session Memory — Structured summaries injected into the system prompt at the start of each new session. These come from the Notion memory store.
- Persistent Memory — Long-term facts stored via the
memory_user_editstool. These follow the user across all conversations automatically.
The Notion workspace serves as the primary memory database. After each significant session, the AI writes a structured summary (completed tasks, pending items, user preferences, project state) to a designated Notion page. At the start of the next session, a snapshot of this page is injected into the system prompt, giving the AI full context without requiring the user to re-explain their situation.
10. Deployment & Configuration
The system runs on Claude.ai (claude.ai Pro or Team) with the following MCP servers connected:
- odoo-website — Primary content and CMS operations
- Notion — Memory store and documentation
- Ahrefs — SEO data and keyword research
- web_search + web_fetch — Live research
- image_search — Visual content discovery
For teams wanting to run this as a standalone service (API-based), the system can be deployed using the Anthropic Messages API with MCP server configurations passed in each request. The NPC persona becomes the system parameter. Tool definitions are passed in the tools array. Memory injection happens at the start of the messages array.
See the Anthropic Messages API documentation for full technical reference.
11. Quick-Win Checklist
If you're implementing a similar system, start here:
- ☑ Connect the
odoo-websiteMCP server and testlist_blogs - ☑ Write your NPC system prompt using the 6-block structure above
- ☑ Create a Notion memory page with clearly defined sections
- ☑ Run
ai_readiness_auditon your 5 most important posts — fix anything below 70 - ☑ Inject schema on all existing blog posts using
inject_schema_bulk - ☑ Verify
robots.txtisn't blocking AI crawlers withcheck_ai_bot_access - ☑ Test your NPC persona across at least 10 different conversation types before going live
- ☑ Document every registered tool with expected inputs, outputs, and failure behaviour
12. Final Thoughts
Building this system took multiple sessions, a lot of iteration, and a clear architectural vision from the start. The result is an AI that doesn't just answer questions — it manages content, optimises for search, maintains documentation, and operates as a genuine extension of the team.
The integration with Odoo turned out to be the biggest competitive advantage. Because the AI has direct read/write access to the CMS, there's no data lag, no API translation layer, and no context loss between the conversation and the action. The AI does what it says it's going to do, and you can verify it instantly in the Odoo backend.
If you're running an Odoo-based business and want to explore what this kind of system could do for your operation, get in touch with Purple Crib Studios. We build and deploy AI automation systems like this for businesses across Nigeria and beyond.
FAQ
What is an MCP server and why does it matter for Odoo?
An MCP (Model Context Protocol) server is a standardised interface that allows AI models like Claude to call external functions and APIs. For Odoo, this means the AI can create blog posts, update SEO settings, inject schema markup, and read CMS data directly — without any manual copy-paste or API middleware.
Do I need coding skills to build an NPC/MCP system?
The core system can be built with minimal code using Claude.ai's built-in MCP connector and existing server integrations. Advanced customisation (custom tools, API-based deployment) requires moderate JavaScript/Python skills, but the architecture described here is accessible to technically-minded non-developers.
How is this different from a regular chatbot?
A regular chatbot follows a decision tree. This system uses a large language model with tool-calling capabilities — it reasons about what to do, selects the right tools autonomously, executes actions, verifies results, and adapts based on the outcome. It's significantly more capable, flexible, and harder to "break" with unexpected questions.
Can this system work on Odoo Community (not Enterprise)?
Yes, with limitations. The odoo-website MCP server uses Odoo's standard JSON-RPC API, which is available in both Community and Enterprise. Some advanced features (custom dashboards, certain CRM automation) may require Enterprise modules.
How does the AI maintain context across multiple sessions?
Through a combination of Notion-based session summaries (injected at session start), persistent memory via the memory_user_edits tool, and structured system prompts that carry forward key project state. The AI doesn't remember everything — it remembers the right things.
What happens if a tool call fails?
The Execution Layer (Layer 4) handles failures gracefully. If an Odoo write fails, the AI reports the error, explains what happened, and offers to retry or suggest an alternative approach. Critical failures (e.g., schema injection on a published post) are flagged for human review.
Is this system secure?
Tool access is scoped to the MCP servers connected to the session. The AI cannot access systems or data outside of the registered tools. Sensitive operations (deleting posts, changing site-wide settings) can be gated behind confirmation steps in the NPC persona prompt.
What does WebMCP optimisation add to this system?
WebMCP makes the Odoo website natively parseable by AI agents. This means when a user asks Claude, ChatGPT, or Perplexity about services offered by Purple Crib Studios, the AI can read and cite the structured content directly from the website — making the business more visible in AI-generated answers, not just traditional search results.
About the Author
Kayode Ajayi is an SEO & Digital Marketing Strategist and founder of Purple Crib Studios. He specialises in AI search optimisation, WebMCP implementation, and building AI-powered marketing systems for businesses in Nigeria and globally. He is one of Nigeria's early adopters of WebMCP technology and the architect of the NPC/MCP system described in this article.
Ready to Build Your Own AI-Powered Odoo System?
Purple Crib Studios designs and deploys custom NPC/MCP automation systems for Odoo-based businesses. From architecture to deployment — we handle the full build.
Book a Free Strategy Call →