get_joomla_articlesLABSCO SUMMARY
The CMS stops being a place you have to go.
Publishing on Joomla is mostly navigation — find the article, find the state dropdown, find the category. Over the Web Services API each of those becomes one instruction, and the update path expects the same introtext and fulltext split the editor does.
What it is
A writer's interface to a Joomla site, going through the Joomla Web Services API rather than the administrator screens. It works on articles and the categories they sit in: read what is there, create, update, change state, delete.
What you get
- Every article on the site, and every content category, retrievable as a list
- New articles created into a category you name
- Article state moved between published, unpublished, trashed and archived
- Articles updated with both introtext and fulltext, split by a Read more break
- Articles deleted
Requirements
Python 3.11+ and uv, and a Joomla site on a currently supported release with the Web Services API plugin enabled. Authentication is a Joomla API token generated on a user profile, handed to the server alongside the site address as environment variables.
Setup effort
Build from source — git clone https://github.com/nasoma/joomla-mcp-server.git
USE CASES
Publishing a piece you just wrote
Create the article into the right category and set its state, without opening the administrator interface.
Taking something down quickly
Move an article to unpublished, trashed or archived — the difference between them preserved rather than collapsed into delete.
Revising a live article
Update it with the introtext and fulltext it needs, keeping the Read more break the front end depends on.
Taking stock of the site
List the articles and the categories they sit in, to see what exists before adding to it.
6 tools
Listed in project docs. Your client may show a different list.
get_joomla_categoriescreate_articlemanage_article_statedelete_articleupdate_articleBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation.
Requires
- Python 3.11+
- BEARER_TOKEN in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
In Joomla Admin: Users > Manage > edit Super User > Joomla API Token tab > Generate, and copy the token
git clone https://github.com/nasoma/joomla-mcp-server.git
cd joomla-mcp-server
uv syncadd the mcpServers entry to claude_desktop_config.json
MCP Clients
Claude Desktop
{
"mcpServers": {
"Joomla Articles MCP": {
"command": "<YOUR_PATH_TO_UV>",
"args": [
"--directory",
"<YOUR_PATH_TO_PROJECT>",
"run",
"main.py"
],
"env": {
"JOOMLA_BASE_URL": "<YOUR_JOOMLA_BASE_URL>",
"BEARER_TOKEN": "<YOUR_BEARER_TOKEN>"
}
}
}
}