Search contacts by name, email, or phone number. Phone queries (starting with + or a digit) match full numbers via the Contacts framework predicate and partial numbers via a digits-only substring scan — spaces, dashes, and parentheses are ignored in the comparison. Email queries should contain @....
AI agents call contacts.search to retrieve information from Orchard without modifying anything — typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
This tool searches and retrieves contact information (names, emails, phone numbers) from the device's contact database. It performs only read operations with no side effects that modify, delete, or execute arbitrary code.
From the tool's definition "Search contacts by name, email, or phone number" and "Returns summaries; use contacts.read_contact for full details" — this is a query operation that retrieves contact data without modification.
Documented attack patterns abuse exactly the kind of access contacts.search gives an agent:
PolicyLayer is an MCP gateway — it sits between your AI agents and Orchard, and nothing reaches the server without passing your rules. This is the rule we recommend for contacts.search:
{
"version": "1",
"default": "deny",
"tools": {
"contacts.search": {}
}
} contacts.search is read-only, so it stays allowed — but everything else on the server is denied unless you say otherwise.
Free to start. No card required.
Search contacts by name, email, or phone number. Phone queries (starting with + or a digit) match full numbers via the Contacts framework predicate and partial numbers via a digits-only substring scan — spaces, dashes, and parentheses are ignored in the comparison. Email queries should contain @. Returns summaries; use contacts.read_contact for full details. It is categorised as a Read tool in the Orchard MCP Server, which means it retrieves data without modifying state.
Register the Orchard MCP server in PolicyLayer and add a rule for contacts.search: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Orchard. Nothing to install.
contacts.search is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the contacts.search rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for contacts.search. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
contacts.search is provided by the Orchard MCP server (l22-io/orchard-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Start from Orchard, add the rest of your stack, and see everything your agents can call. Then put policy on all of it.
Free to start. No card required.
65 Orchard tools catalogued and risk-classified — across an index of 43,000+ MCP servers.