PHPackages                             magebitcom/magento2-mcp-cms-tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. magebitcom/magento2-mcp-cms-tools

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

magebitcom/magento2-mcp-cms-tools
=================================

CMS-domain MCP tools for Magebit\_Mcp (read + write over CMS pages and blocks)

v1.0.0(2w ago)0100↓28.6%1MITPHPPHP &gt;=8.1

Since May 6Pushed 2w agoCompare

[ Source](https://github.com/magebitcom/magento2-mcp-cms-tools)[ Packagist](https://packagist.org/packages/magebitcom/magento2-mcp-cms-tools)[ RSS](/packages/magebitcom-magento2-mcp-cms-tools/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (2)Dependencies (2)Versions (4)Used By (0)

Magento2 MCP - CMS Tools
========================

[](#magento2-mcp---cms-tools)

This is a sub-module for the [Magento2 MCP module](https://github.com/magebitcom/magento2-mcp-module)

---

CMS-domain MCP tools for `Magebit_Mcp`. Reads and writes against CMS pages and blocks.

Each tool is a thin wrapper over a Magento service contract (`PageRepositoryInterface`, `BlockRepositoryInterface`, `GetPageByIdentifierInterface`, `GetBlockByIdentifierInterface`) and composes its read response from field resolvers that 3rd-party modules can extend.

Install
-------

[](#install)

```
composer require magebitcom/magento2-mcp-cms-tools
bin/magento module:enable Magebit_McpCmsTools
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
```

Ships with `Magebit_Mcp` as its only Magebit dependency. If you only want the base MCP transport (no CMS tools), install `Magebit_Mcp` alone; this module is designed to be optional.

Tool catalog
------------

[](#tool-catalog)

### Read tools

[](#read-tools)

ToolWhat it does`cms.page.list`Paginated CMS-page search; filter by identifier (exact / glob / array), title substring, is\_active, store\_id, website\_id (expanded to store-view ids), creation\_time range, update\_time range.`cms.page.get`Single CMS page by numeric id or identifier (+ optional `store_id` for identifier lookup).`cms.block.list`Paginated CMS-block search with the same filter vocabulary as pages.`cms.block.get`Single CMS block by numeric id or identifier.### Write tools

[](#write-tools)

All writes require the global `magebit_mcp/general/allow_writes` flag **and**the token's own `allow_writes` flag to be `1`. Every write sets `requires_confirmation` so MCP clients (Claude Desktop, etc.) prompt before firing.

ToolConfirm?Delegates toUnderlying ACL`cms.page.create`yes`PageRepositoryInterface::save()``Magento_Cms::save``cms.page.update`yes`PageRepositoryInterface::save()` (PATCH)`Magento_Cms::save``cms.page.delete`yes`PageRepositoryInterface::delete()``Magento_Cms::page_delete``cms.block.create`yes`BlockRepositoryInterface::save()``Magento_Cms::block``cms.block.update`yes`BlockRepositoryInterface::save()` (PATCH)`Magento_Cms::block``cms.block.delete`yes`BlockRepositoryInterface::delete()``Magento_Cms::block`Every write tool also implements `Magebit\Mcp\Api\UnderlyingAclAwareInterface`so the handler blocks calls from admins who wouldn't be allowed to perform the same action in the admin UI.

Identifier lookups and store scope
----------------------------------

[](#identifier-lookups-and-store-scope)

`cms.page.get`, `cms.page.update`, `cms.page.delete` (and the block siblings) accept either `id` (numeric primary key) **or** `identifier` (the admin URL key). Identifier lookups require a store scope:

- Omit `store_id` → defaults to `0` ("All Store Views"), which is the scope CMS pages and blocks created from the admin UI default to. This is what most identifier-only lookups want.
- Pass `store_id: ` → look the entity up under store view `N`.

Pages / blocks assigned to a specific store view are invisible from other stores by design.

Extending
---------

[](#extending)

See `docs/EXTENDING.md` for:

- adding a new field to any tool response via `PageFieldResolverInterface`/ `BlockFieldResolverInterface`;
- adding a new filter to `cms.page.list` / `cms.block.list` via `PageFilterTranslatorInterface` / `BlockFilterTranslatorInterface`;
- the ACL layering rules for custom write tools.

License
-------

[](#license)

Released under the [MIT License](LICENSE).

---

[![magebit (1)](https://private-user-images.githubusercontent.com/58505474/416166496-cdc904ce-e839-40a0-a86f-792f7ab7961f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODA5NzUxMDYsIm5iZiI6MTc4MDk3NDgwNiwicGF0aCI6Ii81ODUwNTQ3NC80MTYxNjY0OTYtY2RjOTA0Y2UtZTgzOS00MGEwLWE4NmYtNzkyZjdhYjc5NjFmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjA5VDAzMTMyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThiZWNhMTI4YmMzMjg5ZTVhMjBiMDhmNGExMWIzMzY4ZTkwOGY4MzliN2EwNTI5ODg2NzMyMTBhNGFhYzc3YmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.5_atxul4PLD4demFeqk-Nd36SLRWmscmFB7ANm2dhiQ)](https://private-user-images.githubusercontent.com/58505474/416166496-cdc904ce-e839-40a0-a86f-792f7ab7961f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODA5NzUxMDYsIm5iZiI6MTc4MDk3NDgwNiwicGF0aCI6Ii81ODUwNTQ3NC80MTYxNjY0OTYtY2RjOTA0Y2UtZTgzOS00MGEwLWE4NmYtNzkyZjdhYjc5NjFmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjA5VDAzMTMyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThiZWNhMTI4YmMzMjg5ZTVhMjBiMDhmNGExMWIzMzY4ZTkwOGY4MzliN2EwNTI5ODg2NzMyMTBhNGFhYzc3YmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.5_atxul4PLD4demFeqk-Nd36SLRWmscmFB7ANm2dhiQ)

*Have questions or need help? Contact us at *

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance97

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~20 days

Total

2

Last Release

14d ago

Major Versions

v0.0.1 → v1.0.02026-05-26

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10514036?v=4)[magebit](/maintainers/magebit)[@Magebit](https://github.com/Magebit)

---

Top Contributors

[![KristofersOzolinsMagebit](https://avatars.githubusercontent.com/u/58505474?v=4)](https://github.com/KristofersOzolinsMagebit "KristofersOzolinsMagebit (3 commits)")

### Embed Badge

![Health badge](/badges/magebitcom-magento2-mcp-cms-tools/health.svg)

```
[![Health](https://phpackages.com/badges/magebitcom-magento2-mcp-cms-tools/health.svg)](https://phpackages.com/packages/magebitcom-magento2-mcp-cms-tools)
```

###  Alternatives

[elgentos/regenerate-catalog-urls

Regenerate Catalog URL Rewrites (products, categories, cms pages)

2852.6M](/packages/elgentos-regenerate-catalog-urls)[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68353.9k](/packages/run-as-root-magento2-prometheus-exporter)[myparcelnl/magento

A Magento 2 module that creates MyParcel labels

1859.0k](/packages/myparcelnl-magento)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1010.0k22](/packages/loki-magento2-components)[magepal/magento2-form-field-manager

Customer and Address Form Fields Manager for Magento2

293.9k](/packages/magepal-magento2-form-field-manager)[mage-os/module-llm-txt

AI-powered LLMs.txt generation for Magento 2 / Mage-OS stores. Help AI systems understand your store with OpenAI-generated content.

223.3k](/packages/mage-os-module-llm-txt)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
