Skip to content

Plone MCP (Model Context Protocol) Server #4213

Description

@danalvrz

Important

If you are not a member of the Volto Team or Developers Team in the Plone GitHub organization, then do not work on or comment on this issue.

PLIP (Plone Improvement Proposal)

Responsible Persons

Proposer: Dante Álvarez (kitconcept GmbH), @danalvrz

Seconder: Timo Stollenwerk (kitconcept GmbH), @tisto

Abstract

This proposal outlines the implementation of a Model-Context Protocol (MCP) server as a core feature for Plone. This server acts as a standardized interface, enabling Large Language Models (LLMs) and other AI agents to interact with a Plone site in a structured way. It exposes Plone's capabilities as a set of tools to the AI world.

Motivation

By adopting this MCP server, we allow users things such as:

  • Conversational Content Creation/Editing: Users can instruct an AI assistant in natural language.
  • Automated Content Auditing & Management.

Assumptions

This implementation relies on the functionality of plone.restapi, as the MCP server uses it as its underlying connection to the backend.

Proposal & Implementation

We propose the creation of a new package plone-mcp, which will contain and manage the MCP server application.

Deliverables

  • A new, distributable plone-mcp package.
  • Documentation.

MVP (Minimal Viable Product)

Basic authentication, adding content objects, adding blocks, and basic workflow transitions:

  • As a user, I can add the Plone MCP to my local Desktop AI client (Claude Code, ChatGPT)
  • As an anonymous user, I can authenticate to an existing Plone instance with username and password
  • As a logged-in user, I can add a Page to a Plone site
  • As a logged-in user, I can add a slate block to a page
  • As a logged-in user, I can add an image block to a page
  • As a logged-in user, I can add a teaser block to a page
  • As a logged-in user, I can add a grid block to a page
  • As a logged-in user, I can publish a private page
  • As a logged-in user, I can retract a published page

Later

  • As a logged-in user, I can add a News Item to a Plone site
  • As a logged-in user, I can add an Event to a Plone site
  • As a logged-in user, I can add an Image to a Plone site
  • As a logged-in user, I can add a File to a Plone site
  • As a logged-in user, I can add a Redirect to a Plone site
  • As a logged-in user, I can add a listing block to a page
  • As a logged-in user, I can add a search block to a page
  • As a logged-in user, I can add a table block to a page
  • As a logged-in user, I can add a video block to a page
  • As a logged-in user, I can add a maps block to a page

Risks

  • Security: As a powerful new entry point into the system, the MCP server endpoint must be rigorously secured.
  • Performance: High-frequency requests from an AI agent could place a significant load on Plone sites.

Participants

@tisto
@danalvrz
@rohnsha0
@Tishasoumya-02

Decisions (that we need to make)

  • Language: Do we want to use JS or Python for the implementation of the MCP server?
  • Naming: plone-mcp, plone-mcpserver, or something different?
  • MVP feature set: tbd
  • How do we distribute the MCP server?
    • Repo checkout, building, and running it locally
    • Docker Container running
    • Cloudflare or similar URL -> talk to the AI team about it

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions