wecom_mcpis an MCP tool, and all operations are completed by calling this tool.
⚠️ Prerequisite: Before the first call to
wecom_mcp, you must perform the prerequisite check according to thewecom-preflightskill to ensure the tool has been added to the whitelist.
Through the get_userlist interface encapsulated by the MCP tool protocol, obtain contacts members within the current user's visible scope, and perform local filtering and matching by name/alias.
Operations
1. Get all contacts members
Get all enterprise member information within the current user's visible scope:
Call example:
Use the wecom_mcp tool to call wecom_mcp call contact get_userlist '{}'
Return format:
{
"errcode": 0,
"errmsg": "ok",
"userlist": [
{
"userid": "zhangsan",
"name": "张三",
"alias": "Sam"
},
{
"userid": "lisi",
"name": "李四",
"alias": ""
}
]
}
Return field description:
| Field | Type | Description |
|---|---|---|
errcode |
integer | Return code,0 indicates success |
errmsg |
string | Error message |
userlist |
array | User list |
userlist[].userid |
string | User unique ID |
userlist[].name |
string | User name |
userlist[].alias |
string | User alias, may be empty |
2. Search personnel by name/alias
get_userlist After returning all members, filter and match the results locally:
- Exact match:
nameoraliasexactly matches the keyword, use directly - Fuzzy match:
nameoraliascontains the keyword, return all matching results - No results: Inform the user that no corresponding personnel was found
Search example:
User asks: "Help me find out who Zhang San is?"
- Call
get_userlistto get all members - In
userlist, filter members whosenameoraliascontains "Zhang San" - Return matching results
Notes
-
get_userlistWhat is returned is the current user'swithin the visible scopemembers, which need to be filtered by visibility rules and are not necessarily all personnel in the entire company; the returned fields only includeuserid、name(name) andalias(alias) -
⚠️ The interface will report an error when there are more than 10 people: If
userlistreturns more than 10 members, it is considered abnormal, and processing should be stopped immediately and the user should be informed:The number of currently visible members in the contacts exceeds the upper limit supported by this skill (10 people). This skill is only applicable to scenarios with a small visible scope and cannot be used with a large-scope contacts list. It is recommended to narrow the visible scope and try again, or query the target personnel through other means.
-
useridis the user's unique identifier; use this field when the user ID needs to be passed to other interfaces -
aliasThe field may be an empty string; null value checks are required when searching -
If the search results contain multiple people with the same name, all candidates must be shown to the user for selection, and you must not decide on your own
-
If
errcodeis not0, it indicates that the interface call failed, and the user must be informed of the error message (errmsg)
Typical Workflow
Workflow 1: Query Personnel Information
User asks: "Help me find out who Sam is?"
-
Use
wecom_mcptool to callwecom_mcp call contact get_userlist '{}'to get the full member list -
Filter in the results for members whose
aliasisSamornamecontainsSammembers whose -
If a unique match is found, display the result directly:
📇 找到成员:
- 姓名:张三
- 别名:Sam
- 用户ID:zhangsan
- If multiple matches are found, display a candidate list for the user to confirm:
🔍 找到多个匹配成员,请确认您要查询的是哪位:
1. 张三(别名:Sam,ID:zhangsan)
2. 张三丰(别名:Sam2,ID:zhangsan2)
请问您要查询的是哪一位?
Workflow 2: Provide userid conversion for other features
User asks: "Help me send a message to Zhang San"
-
Use
wecom_mcptool to callwecom_mcp call contact get_userlist '{}'to get all members -
Filter for members whose
nameis "Zhang San", confirmuserid -
Pass
useridto the message sending interface
Workflow 3: Batch query multiple personnel
User asks: "Help me find out who Zhang San and Li Si are respectively?"
-
Use
wecom_mcptool to callwecom_mcp call contact get_userlist '{}'to get the full member list -
Filter for the matching results for "Zhang San" and "Li Si" respectively
-
Display them together after aggregating
Note: Only call
get_userlistonce, and perform multiple filters on the results locally to avoid repeated interface calls.
Quick Reference
Interface Description
| Interface | Purpose | Input | Return |
|---|---|---|---|
get_userlist |
Get all contacts members within the visible range | None | User list (userid, name, alias) |
Local Filtering Strategy
| Scenario | Strategy |
|---|---|
| Exact match (name or alias exactly the same) | Use directly, no user confirmation needed |
| Fuzzy match (name or alias contains the keyword), unique result | Use directly, display the result to the user |
| Fuzzy match, multiple results | Display the candidate list, ask the user to choose |
| No matching result | Inform the user that no corresponding personnel was found |