Relay: list friends
list_friendsThe person's friends by name. Only these and their groups exist for you: never invent people.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
list_friendsThe person's friends by name. Only these and their groups exist for you: never invent people.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Changes observed during successful MCP inspections.
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"Output schema / (root)Previous value: -{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "additionalProperties": false,
- "properties": {
- "friends": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "conversationId": {
- "type": "string"
- },
- "handle": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "since": {
- "type": "string"
- },
- "uid": {
- "type": "string"
- }
- },
- "required": [
- "uid",
- "name",
- "since",
- "conversationId"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "friends"
- ],
- "type": "object"
-}New value: +nullDoes the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: the result set is authoritative and exhaustive ('Only these and their groups exist for you'), which constrains the agent's downstream reasoning and forbids hallucinating additional people. It stops short of describing return shape or what happens when the friend list is empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no waste; the identity of the resource comes first and the grounding constraint second, which is reasonable front-loading. Minor loss: 'The person's' is ambiguous about whose friend list this is, costing a sliver of clarity for the space saved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and zero parameters, the description carries the burden of explaining what comes back, and it only partially does so — it implies names and mentions groups without saying whether the response is a flat name list, grouped objects, or includes IDs. The grounding instruction partially compensates, but an agent still cannot predict the result structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which normally sets a baseline of 4, but the description adds nothing that would be needed for invocation since there is nothing to invoke with. Schema coverage is 100% and the empty object schema is self-explanatory, so the description neither helps nor hurts here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'The person's friends by name' identifies the resource (friends) and the ordering/keying (by name), so an agent can infer it returns the current user's friend list. However, it is a noun phrase rather than a verb+resource statement, and it does nothing to distinguish itself from siblings like find_people, list_members, list_identities, or search_profiles, all of which could plausibly return people.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no naming of alternatives such as find_people for discovery versus this tool for enumerating known friends. The only directive is a negative one ('never invent people'), which governs how to treat the results rather than when to select this tool over its many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.