find-contact
Resolve a 3CX contact or extension by email, extension, or name
Locate a Keeper record by description and return its UID and metadata without revealing any credential
$ npx -y skills add wyre-technology/msp-claude-plugins --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/find-secretContext preview
What this command does when you run it.
Locate a Keeper record by description and return its UID and metadata without revealing any credential
description: Locate a Keeper record by description and return its UID and metadata without revealing any credential argument-hint: "<query> [folder_uid]" arguments: [query, folder_uid]
Turn a description of a credential into the one Keeper record UID that holds it, using metadata only. This command deliberately stops short of retrieval: it hands back a UID and a ready-to-use notation string, so whoever needs the value asks for exactly the field they need.
1. **Establish scope**
Call `list_folders`. Keep the folder names and UIDs — they are what turns "not found" into a useful answer later.
2. **Search**
Call `search_secrets` with the most distinctive single token from the request: a hostname, a tenant name, a device name. Matching is a case-insensitive substring over title, notes, record type, the `login` / `url` / `hostname` / `address` field values, and attachment names — so prefer one specific word to a long phrase.
If the query is refused with `search query contains suspicious patterns`, the validator rejected a word in it (`update`, `select`, `delete`, `drop`, `union`, `insert`, and a few punctuation sequences). Pick a different token from the same record; do not report it as an access problem.
3. **Narrow if needed**
If `folder_uid` was supplied, or the result set is large, call `list_secrets` with `folder_uids` to list that folder and match on title.
4. **Disambiguate — do not guess**
Titles are not unique in Keeper. If more than one candidate is plausible, present them (title, type, folder) and ask which one is meant. Never open both records to compare their contents.
5. **Report**
For the chosen record, give: title, UID, record type, folder name. Then give the notation string the caller would use to pull the field they are actually after, e.g. `<uid>/field/password` or `<uid>/field/login`.
Retrieve nothing. If the caller wants the value, that is a separate, deliberate request.
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | query | string | Yes | Distinctive token to search for | | folder_uid | string | No | Restrict the search to one folder |
/find-secret --query "DC01" /find-secret --query "Contoso" --folder_uid "kJ3v9PqR2mXwL7nBcD4sTg"
(from step 1) before concluding the record does not exist — the usual cause is that its folder was never shared to the KSM application.
permissions. Retry with a different token.
this is a Keeper-side scoping problem.
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai
Repo: wyre-technology/msp-claude-plugins
Resolve a 3CX contact or extension by email, extension, or name
Search for specific threat patterns in Abnormal Security by sender, recipient, attack type, or keywords
Triage recent email threats detected by Abnormal Security by severity and attack type