Skip to main content
Glama
WooCommerce MCP Server

WooCommerce MCP Server

Search customers

search_customers
Read-only

Find registered WooCommerce customers by email or name, with results paginated and PII masked by default.

Instructions

Registered customers by email or name. PII is masked by default.

Input Schema

NameRequiredDescriptionDefault
pageNo
searchYes
per_pageNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered structurally. The description does add real behavioral context beyond that: 'PII is masked by default' warns the agent that returned values are redacted, which affects how results should be presented. However, it never explains how to request unmasked data, what fields are considered PII, or how partial matching and pagination behave.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments, front-loaded and free of padding, so there is no wasted wording. But the terseness crosses into under-specification: neither sentence is a complete clause, and the PII note appears as an aside rather than an instruction. It is efficient without being self-sufficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter read-only lookup with no output schema, the safety profile is fully covered by annotations and the description supplies the two facts an agent most needs: what fields match and that results are masked. The remaining gap is pagination behavior and whether masking can be lifted, which are noticeable but not blocking for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 3 parameters, so the description carries the full burden and only partially meets it. Saying matches occur 'by email or name' gives real meaning to the required `search` parameter. It says nothing about `page` and `per_page`, leaving pagination semantics entirely undocumented in both the schema and the prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name is 'search_customers' and the description 'Registered customers by email or name' restates the resource while adding the one useful fact that matching works on email or name. It is a noun fragment with no verb, so the agent has to infer 'search/list' from the tool name rather than the prose. No sibling tool searches customers, so no differentiation is needed, which keeps this above a pure tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of what to do when no match is found, and no reference to any alternative tool among the many siblings. The only implicit guidance is the 'email or name' hint, which describes input shape rather than usage context. An agent must guess whether this reads live data or cached records.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.