← [Home](Home) # API Reference All tools accept an optional `connection` parameter to target a specific named connection. If omitted, the default connection is used. ## Articles ### `joomla_articles_list` List articles with optional filtering. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `category_id` | number | No | Filter by category ID | | `state` | `"0"` / `"1"` / `"-2"` | No | 1=published, 0=unpublished, -2=trashed | | `search` | string | No | Search in title | | `limit` | number | No | Max results (default 20) | | `offset` | number | No | Pagination offset | ### `joomla_article_get` Get a single article by ID. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Article ID | ### `joomla_article_create` Create a new article. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `title` | string | Yes | Article title | | `articletext` | string | Yes | Article body (HTML) | | `catid` | number | Yes | Category ID | | `state` | number | No | 1=published, 0=unpublished (default 0) | | `language` | string | No | Language code (default `"*"`) | | `featured` | number | No | 1=featured, 0=not | | `metadesc` | string | No | Meta description | | `metakey` | string | No | Meta keywords | ### `joomla_article_update` Update an existing article. Only provided fields are changed. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Article ID | | `title` | string | No | New title | | `articletext` | string | No | New body (HTML) | | `catid` | number | No | New category ID | | `state` | number | No | State value | | `featured` | number | No | Featured flag | | `metadesc` | string | No | Meta description | ### `joomla_article_delete` Delete an article. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Article ID | ## Categories ### `joomla_categories_list` List content categories. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `extension` | string | No | Extension name (default `"com_content"`) | | `search` | string | No | Search in title | ### `joomla_category_create` Create a new category. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `title` | string | Yes | Category title | | `parent_id` | number | No | Parent category ID (default 1 = root) | | `extension` | string | No | Extension (default `"com_content"`) | | `description` | string | No | Category description | | `state` | number | No | 1=published, 0=unpublished | | `language` | string | No | Language code (default `"*"`) | ### `joomla_category_update` Update a category. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Category ID | | `title` | string | No | New title | | `description` | string | No | New description | | `state` | number | No | State value | ### `joomla_category_delete` Delete a category. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Category ID | ## Users ### `joomla_users_list` List Joomla users. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `search` | string | No | Search in name/username/email | | `group_id` | number | No | Filter by user group ID | | `state` | `"0"` / `"1"` | No | 0=blocked, 1=active | | `limit` | number | No | Max results | ### `joomla_user_get` Get a single user by ID. ### `joomla_user_create` Create a user with auto-generated secure password. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | string | Yes | Full name | | `username` | string | Yes | Username | | `email` | string | Yes | Email address | | `groups` | number[] | No | Group IDs (default `[2]` = Registered) | | `block` | number | No | 0=active, 1=blocked (default 0) | Returns the generated password in the response. Share securely with the user. ### `joomla_user_update` Update a user. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | User ID | | `name` | string | No | Full name | | `email` | string | No | Email | | `groups` | number[] | No | Group IDs | | `block` | number | No | 0=active, 1=blocked | ### `joomla_user_delete` Delete a user. ### `joomla_user_groups_list` List all user groups. No parameters. ## Contacts ### `joomla_contacts_list` List contacts with optional search. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `search` | string | No | Search in name | ### `joomla_contact_get` Get a single contact by ID. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Contact ID | ### `joomla_contact_create` Create a new contact. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | string | Yes | Contact name | | `alias` | string | No | URL alias | | `catid` | number | No | Category ID | | `email_to` | string | No | Email address | | `telephone` | string | No | Phone number | | `address` | string | No | Street address | | `suburb` | string | No | City/suburb | | `state` | string | No | State/province | | `postcode` | string | No | Postal code | | `country_id` | number | No | Country ID | | `published` | number | No | 1=published, 0=unpublished | | `language` | string | No | Language code (default `"*"`) | ### `joomla_contact_update` Update an existing contact. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Contact ID | | `name` | string | No | Contact name | | `email_to` | string | No | Email address | | `telephone` | string | No | Phone number | | `address` | string | No | Street address | | `published` | number | No | 1=published, 0=unpublished | ### `joomla_contact_delete` Delete a contact. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Contact ID | ## Menus ### `joomla_menus_list` List menu types. No parameters. ### `joomla_menu_items_list` List menu items for a menu type. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `menutype` | string | Yes | Menu type alias (e.g. `"mainmenu"`) | ### `joomla_menu_item_get` Get a single menu item by ID. ### `joomla_menu_item_create` Create a new menu item. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `title` | string | Yes | Menu item title | | `menutype` | string | Yes | Menu type alias (e.g. `"mainmenu"`) | | `type` | string | Yes | Item type (`"component"`, `"url"`, `"alias"`, `"separator"`, `"heading"`) | | `link` | string | No | URL or component link | | `parent_id` | number | No | Parent menu item ID (default 1 = root) | | `published` | number | No | 1=published, 0=unpublished | | `access` | number | No | Access level ID | | `language` | string | No | Language code (default `"*"`) | ### `joomla_menu_item_update` Update a menu item. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Menu item ID | | `title` | string | No | New title | | `link` | string | No | New link URL | | `published` | number | No | 1=published, 0=unpublished | | `parent_id` | number | No | New parent ID | ### `joomla_menu_item_delete` Delete a menu item. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Menu item ID | ## Plugins ### `joomla_plugins_list` List plugins. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `type` | string | No | Filter by plugin folder (e.g. `"system"`, `"content"`) | | `state` | `"0"` / `"1"` | No | 0=disabled, 1=enabled | | `search` | string | No | Search in name | ### `joomla_plugin_update` Enable or disable a plugin. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Plugin ID | | `enabled` | number | Yes | 1=enable, 0=disable | ## Modules ### `joomla_modules_list` List site or admin modules. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `client_id` | `"0"` / `"1"` | No | 0=site, 1=admin | ## Templates ### `joomla_templates_list` List site or admin templates. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `client_id` | `"0"` / `"1"` | No | 0=site, 1=admin | ## Tags ### `joomla_tags_list` List tags with optional search. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `search` | string | No | Search in title | ### `joomla_tag_get` Get a single tag by ID. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Tag ID | ### `joomla_tag_create` Create a tag. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `title` | string | Yes | Tag title | | `parent_id` | number | No | Parent tag ID | ### `joomla_tag_update` Update a tag. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Tag ID | | `title` | string | No | New tag title | | `published` | number | No | 1=published, 0=unpublished | ### `joomla_tag_delete` Delete a tag. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Tag ID | ## Custom Fields ### `joomla_fields_list` List custom fields for a context (default `"com_content.article"`). | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `context` | string | No | Context (default `"com_content.article"`) | ### `joomla_field_get` Get a single custom field by ID. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Field ID | ### `joomla_field_create` Create a custom field. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `title` | string | Yes | Field title | | `name` | string | Yes | Field name (system identifier) | | `type` | string | Yes | Field type (text, textarea, list, radio, checkboxes, etc.) | | `context` | string | No | Context (default `"com_content.article"`) | | `label` | string | No | Display label | | `description` | string | No | Field description | | `required` | number | No | 1=required, 0=optional | | `state` | number | No | 1=published, 0=unpublished | ### `joomla_field_delete` Delete a custom field. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Field ID | ## Banners ### `joomla_banners_list` List banners. No parameters. ### `joomla_banner_get` Get a single banner by ID. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Banner ID | ### `joomla_banner_create` Create a new banner. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | string | Yes | Banner name | | `catid` | number | No | Category ID | | `clickurl` | string | No | Click URL | | `custombannercode` | string | No | Custom HTML/code | | `state` | number | No | 1=published, 0=unpublished | ### `joomla_banner_delete` Delete a banner. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Banner ID | ### `joomla_banner_clients_list` List banner clients. No parameters. ## Newsfeeds ### `joomla_newsfeeds_list` List newsfeeds. No parameters. ### `joomla_newsfeed_get` Get a single newsfeed by ID. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Newsfeed ID | ### `joomla_newsfeed_create` Create a new newsfeed. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | string | Yes | Feed name | | `link` | string | Yes | Feed URL | | `catid` | number | Yes | Category ID | | `numarticles` | number | No | Number of articles to display | | `published` | number | No | 1=published, 0=unpublished | | `language` | string | No | Language code (default `"*"`) | ### `joomla_newsfeed_delete` Delete a newsfeed. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Newsfeed ID | ## Messages ### `joomla_messages_list` List private messages. No parameters. ### `joomla_message_get` Get a single private message by ID. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Message ID | ### `joomla_message_send` Send a private message to a Joomla user. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `user_id_to` | number | Yes | Recipient user ID | | `subject` | string | Yes | Message subject | | `message` | string | Yes | Message body | ### `joomla_message_delete` Delete a private message. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Message ID | ## Media ### `joomla_media_list` List media files in a folder. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `path` | string | No | Folder path relative to media root | ### `joomla_media_file_get` Get metadata for a specific media file. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `path` | string | Yes | File path relative to media root (e.g. `"images/logo.png"`) | ### `joomla_media_file_delete` Delete a media file. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `path` | string | Yes | File path relative to media root | ### `joomla_media_folder_create` Create a new media folder. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `path` | string | Yes | Full folder path to create (e.g. `"images/photos/2026"`) | ## Redirects ### `joomla_redirects_list` List URL redirects. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `search` | string | No | Search in old URL | | `state` | `"0"` / `"1"` / `"2"` / `"-2"` | No | 0=disabled, 1=enabled, 2=archived, -2=trashed | ### `joomla_redirect_create` Create a URL redirect. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `old_url` | string | Yes | Source URL to redirect from | | `new_url` | string | Yes | Destination URL to redirect to | | `status_code` | `"301"` / `"302"` | No | 301=permanent, 302=temporary (default 301) | | `published` | number | No | 1=enabled, 0=disabled | ### `joomla_redirect_delete` Delete a URL redirect. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | number | Yes | Redirect ID | ## Content History ### `joomla_content_history_list` List version history for a content item. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `type_alias` | string | Yes | Content type alias (e.g. `"com_content.article"`) | | `item_id` | number | Yes | Item ID | ## Checkin ### `joomla_checkin` Check in (unlock) a content item that is checked out. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `context` | string | Yes | Context (e.g. `"com_content.article"`) | | `id` | number | Yes | Item ID to check in | ## Associations ### `joomla_associations_list` List multilingual associations for a content item. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `context` | string | Yes | Context (e.g. `"com_content.article"`) | | `id` | number | Yes | Item ID to get associations for | ## Configuration ### `joomla_config_get` Get application configuration. No parameters. ### `joomla_config_update` Update application configuration values. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `settings` | object | Yes | Key-value pairs of settings to update | ## Languages ### `joomla_languages_list` List installed content languages. No parameters. ## Generic ### `joomla_api_request` Make a raw API request to any Joomla Web Services endpoint. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `method` | `"GET"` / `"POST"` / `"PATCH"` / `"DELETE"` | Yes | HTTP method | | `endpoint` | string | Yes | API path (e.g. `"/content/articles"`) | | `body` | object | No | Request body for POST/PATCH | | `params` | object | No | Query parameters | ### `joomla_list_connections` List all configured connections. No parameters. ## Revision History | Date | Version | Author | Notes | | --- | --- | --- | --- | | 2026-04-23 | 0.0.1 | jmiller | Initial API reference (36 tools) | | 2026-05-07 | 0.1.0 | jmiller | Expanded to 67 tools — full CRUD for contacts, banners, newsfeeds, tags, fields, menu items, messages, media, redirects, associations, checkin, content history | --- *Repo: [joomla-api-mcp](https://git.mokoconsulting.tech/MokoConsulting/joomla-api-mcp) · [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/Home)* | Revision | Date | Author | Description | |---|---|---|---| | 1.0 | 2026-05-09 | Moko Consulting | Initial version |