PHPackages                             magebitcom/magento2-mcp-customer-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-customer-tools

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

magebitcom/magento2-mcp-customer-tools
======================================

Customer-domain MCP tools for Magebit\_Mcp (read + write over customers, addresses, groups, account management)

v1.0.0(2w ago)0107—7.1%1MITPHPPHP &gt;=8.1

Since May 11Pushed 2w agoCompare

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

READMEChangelog (3)Dependencies (2)Versions (5)Used By (0)

Magento2 MCP - Customer Tools
=============================

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

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

---

Customer-domain MCP tools for `Magebit_Mcp`. Reads and writes against customer accounts, addresses, customer groups, and account management flows (password reset, confirmation).

Each tool is a thin wrapper over a Magento service contract (`CustomerRepositoryInterface`, `AddressRepositoryInterface`, `GroupRepositoryInterface`, `AccountManagementInterface`) and composes its read response from field resolvers that 3rd-party modules can extend.

Install
-------

[](#install)

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

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

[](#tool-catalog)

### Read tools

[](#read-tools)

ToolWhat it does`customer.customer.list`Paginated customer search; filter by email (exact / glob / array), firstname/lastname substring, group\_id, website\_id, store\_id, created\_at range, updated\_at range, dob range.`customer.customer.get`Single customer by numeric id or by email (+ optional `website_id` for email lookup in per-website scope).`customer.address.list`Paginated address search; filter by customer\_id, country\_id, region\_id, postcode, city, telephone.`customer.address.get`Single customer address by id.`customer.group.list`Paginated group search; filter by code (exact / glob / array) and tax\_class\_id.`customer.group.get`Single customer group by id.`customer.account.confirmation_status`Returns `account_confirmed`, `account_confirmation_required`, or `account_confirmation_not_required`.### 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`. Destructive operations additionally set `requires_confirmation` so MCP clients (Claude Desktop, etc.) prompt before firing.

ToolConfirm?Delegates toUnderlying ACL`customer.customer.create`yes`AccountManagementInterface::createAccount()``Magento_Customer::manage``customer.customer.update`yes`CustomerRepositoryInterface::save()` (PATCH)`Magento_Customer::manage``customer.customer.delete`yes`CustomerRepositoryInterface::delete()``Magento_Customer::delete``customer.address.create`yes`AddressRepositoryInterface::save()``Magento_Customer::manage``customer.address.update`yes`AddressRepositoryInterface::save()` (PATCH)`Magento_Customer::manage``customer.address.delete`yes`AddressRepositoryInterface::delete()``Magento_Customer::manage``customer.account.reset_password`yes`AccountManagementInterface::initiatePasswordReset()``Magento_Customer::reset_password``customer.account.resend_confirmation`no`AccountManagementInterface::resendConfirmation()``Magento_Customer::manage`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.

Identity lookups
----------------

[](#identity-lookups)

`customer.customer.get`, `customer.customer.update`, `customer.customer.delete`, `customer.account.confirmation_status` accept either `id` (numeric primary key) **or** `email`. Email lookups take an optional `website_id` because `customer/account_share/scope` may be per-website (the Magento default), in which case the same address can exist on multiple sites as distinct accounts.

Address tools are keyed by numeric `id` only — addresses are unique per row, not per customer+label.

PII handling
------------

[](#pii-handling)

Customer and address records are PII-heavy by design. Every read tool exposes the `fields` / `exclude` arguments so callers can narrow the payload:

- `customer.customer.get { fields: ["identity", "scope"] }` — just id / email / website / group.
- `customer.customer.get { exclude: ["addresses", "profile"] }` — skip the full address book and the dob/gender/taxvat triplet.
- `customer.customer.list` ships with a lean default set (`identity`, `scope`, `timestamps`) — `addresses`, `custom_attributes`, and `extension_attributes` are omitted from list responses to avoid multiplying the payload by the size of each customer's attribute set.

Audit summaries stored in `magebit_mcp_audit_log` contain identifiers only (id, email, website\_id, row counts) — never the full record.

Extending
---------

[](#extending)

See `docs/EXTENDING.md` for:

- adding a new field to any tool response via `CustomerFieldResolverInterface`/ `AddressFieldResolverInterface` / `GroupFieldResolverInterface`;
- adding a new filter to any list tool via `CustomerFilterTranslatorInterface`/ `AddressFilterTranslatorInterface` / `GroupFilterTranslatorInterface`;
- 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODA5NzUxMTMsIm5iZiI6MTc4MDk3NDgxMywicGF0aCI6Ii81ODUwNTQ3NC80MTYxNjY0OTYtY2RjOTA0Y2UtZTgzOS00MGEwLWE4NmYtNzkyZjdhYjc5NjFmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjA5VDAzMTMzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU5YjFjMTNiOTMzMWMxMzNlNjNmMWNlYzJjZTcyNTM1MjY3NzJiYzgyMDA0OTA4NWIxNjRhMWY5YzI2ZjZjNjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.2HcfWWV44RE5C5r0uaqbvY8ft06wN1UFuy4aR31fkIA)](https://private-user-images.githubusercontent.com/58505474/416166496-cdc904ce-e839-40a0-a86f-792f7ab7961f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODA5NzUxMTMsIm5iZiI6MTc4MDk3NDgxMywicGF0aCI6Ii81ODUwNTQ3NC80MTYxNjY0OTYtY2RjOTA0Y2UtZTgzOS00MGEwLWE4NmYtNzkyZjdhYjc5NjFmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjA5VDAzMTMzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU5YjFjMTNiOTMzMWMxMzNlNjNmMWNlYzJjZTcyNTM1MjY3NzJiYzgyMDA0OTA4NWIxNjRhMWY5YzI2ZjZjNjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.2HcfWWV44RE5C5r0uaqbvY8ft06wN1UFuy4aR31fkIA)

*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

Maturity45

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 ~7 days

Total

3

Last Release

14d ago

Major Versions

v0.0.2 → 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 (6 commits)")

### Embed Badge

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

```
[![Health](https://phpackages.com/badges/magebitcom-magento2-mcp-customer-tools/health.svg)](https://phpackages.com/packages/magebitcom-magento2-mcp-customer-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)
