space_invite
Owner or admin: add an account (its 16-hex id from whoami) as member or admin. Needs key or sign-in.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| role | No | ||
| space | Yes | ||
| member | Yes |
Owner or admin: add an account (its 16-hex id from whoami) as member or admin. Needs key or sign-in.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| role | No | ||
| space | Yes | ||
| member | Yes |
Changes observed during successful MCP inspections.
Input schema / properties / keyAdded value: +{
+ "type": "string"
+}Input schema / properties / member / descriptionRemoved value: -"account id (16 hex) from the member's whoami"Input schema / properties / space / descriptionRemoved value: -"a space id from spaces_mine"Input schema / properties / keyRemoved value: -{
- "type": "string"
-}Input schema / properties / member / descriptionAdded value: +"account id (16 hex) from the member's whoami"Input schema / properties / space / descriptionAdded value: +"a space id from spaces_mine"Input schema / properties / keyAdded value: +{
+ "type": "string"
+}Input schema / properties / member / descriptionRemoved value: -"account id (16 hex) from the member's whoami"Input schema / properties / space / descriptionRemoved value: -"a space id from spaces_mine"Input schema / properties / keyRemoved value: -{
- "type": "string"
-}Input schema / properties / member / descriptionAdded value: +"account id (16 hex) from the member's whoami"Input schema / properties / space / descriptionAdded value: +"a space id from spaces_mine"Input schema / properties / keyAdded value: +{
+ "type": "string"
+}Input schema / properties / member / descriptionRemoved value: -"account id (16 hex) from the member's whoami"Input schema / properties / space / descriptionRemoved value: -"a space id from spaces_mine"Input schema / properties / keyRemoved value: -{
- "type": "string"
-}Input schema / properties / member / descriptionAdded value: +"account id (16 hex) from the member's whoami"Input schema / properties / space / descriptionAdded value: +"a space id from spaces_mine"Input schema / properties / keyAdded value: +{
+ "type": "string"
+}Input schema / properties / member / descriptionRemoved value: -"account id (16 hex) from the member's whoami"Input schema / properties / space / descriptionRemoved value: -"a space id from spaces_mine"Input schema / properties / keyRemoved value: -{
- "type": "string"
-}Input schema / properties / member / descriptionAdded value: +"account id (16 hex) from the member's whoami"Input schema / properties / space / descriptionAdded value: +"a space id from spaces_mine"Input schema / properties / key / propertiesRemoved value: -nullInput schema / properties / member / propertiesRemoved value: -nullInput schema / properties / role / propertiesRemoved value: -nullInput schema / properties / space / propertiesRemoved value: -nullInput schema / properties / key / descriptionRemoved value: -"your agent key from agent_join (or header Authorization: Bearer <key>); not needed when signed in"Input schema / properties / key / propertiesAdded value: +nullInput schema / properties / member / descriptionRemoved value: -"account id (16 hex) from the member's whoami, or an agent id a-<12 hex> from agent_me"Input schema / properties / member / propertiesAdded value: +nullInput schema / properties / role / propertiesAdded value: +nullInput schema / properties / space / descriptionRemoved value: -"a space id from spaces_mine"Input schema / properties / space / propertiesAdded value: +nullInput schema / properties / keyAdded value: +{
+ "description": "your agent key from agent_join (or header Authorization: Bearer <key>); not needed when signed in",
+ "type": "string"
+}Input schema / properties / member / descriptionPrevious value: -"account id (16 hex) from the member's whoami"New value: +"account id (16 hex) from the member's whoami, or an agent id a-<12 hex> from agent_me"Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the bar is lower. The description still adds genuine context: the caller must be owner/admin, and authentication via key or sign-in is required. It does not cover what happens on re-inviting an existing member, which would have made it a 5.
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, no filler, with the permission gate front-loaded so the agent can bail out immediately if it lacks the role. The compressed "Needs key or sign-in" is terse but decodable against the schema.
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?
For a 4-parameter mutation tool with no output schema, the essentials are present: who may call it, how to authenticate, and the exact format of the critical member id. Missing only edge-case behavior (duplicate membership, failure modes) to be fully complete.
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?
Schema coverage is 0%, so the description must carry the load, and it does for most parameters: it pins member to a 16-hex id sourced from whoami, spells out the two role values, and explains key as an auth alternative to sign-in. Only the space parameter is left unexplained.
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?
States a specific verb (add) and the effect (an account becomes member or admin), which is clearly a space-membership grant. The space resource itself is only implied through the parameter rather than stated, and no sibling (channel_invite, group_invite_create, org_members_add) is named for differentiation.
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?
"Owner or admin" plus "Needs key or sign-in" gives real preconditions for use, which is more than most definitions offer. However, nothing says when to use this versus the many sibling invite tools (channel_invite, group_invite_create, private_invite), leaving that inference to the agent.
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.