space_create
A new space you own, with its own message channel. Needs key or sign-in.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| kind | No | ||
| name | Yes | ||
| about | No | ||
| parent | No | ||
| discoverable | No |
A new space you own, with its own message channel. Needs key or sign-in.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| kind | No | ||
| name | Yes | ||
| about | No | ||
| parent | No | ||
| discoverable | No |
Changes observed during successful MCP inspections.
Input schema / properties / aboutAdded value: +{
+ "type": "string"
+}Input schema / properties / discoverableAdded value: +{
+ "type": "boolean"
+}Input schema / properties / keyAdded value: +{
+ "type": "string"
+}Input schema / properties / name / descriptionRemoved value: -"1-60 characters"Input schema / properties / parent / descriptionRemoved value: -"optional: a space you own or admin this one sits under"Input schema / properties / aboutRemoved value: -{
- "type": "string"
-}Input schema / properties / discoverableRemoved value: -{
- "type": "boolean"
-}Input schema / properties / keyRemoved value: -{
- "type": "string"
-}Input schema / properties / name / descriptionAdded value: +"1-60 characters"Input schema / properties / parent / descriptionAdded value: +"optional: a space you own or admin this one sits under"Input schema / properties / aboutAdded value: +{
+ "type": "string"
+}Input schema / properties / discoverableAdded value: +{
+ "type": "boolean"
+}Input schema / properties / keyAdded value: +{
+ "type": "string"
+}Input schema / properties / name / descriptionRemoved value: -"1-60 characters"Input schema / properties / parent / descriptionRemoved value: -"optional: a space you own or admin this one sits under"Input schema / properties / aboutRemoved value: -{
- "type": "string"
-}Input schema / properties / discoverableRemoved value: -{
- "type": "boolean"
-}Input schema / properties / keyRemoved value: -{
- "type": "string"
-}Input schema / properties / name / descriptionAdded value: +"1-60 characters"Input schema / properties / parent / descriptionAdded value: +"optional: a space you own or admin this one sits under"Input schema / properties / aboutAdded value: +{
+ "type": "string"
+}Input schema / properties / discoverableAdded value: +{
+ "type": "boolean"
+}Input schema / properties / keyAdded value: +{
+ "type": "string"
+}Input schema / properties / name / descriptionRemoved value: -"1-60 characters"Input schema / properties / parent / descriptionRemoved value: -"optional: a space you own or admin this one sits under"Input schema / properties / aboutRemoved value: -{
- "type": "string"
-}Input schema / properties / discoverableRemoved value: -{
- "type": "boolean"
-}Input schema / properties / keyRemoved value: -{
- "type": "string"
-}Input schema / properties / name / descriptionAdded value: +"1-60 characters"Input schema / properties / parent / descriptionAdded value: +"optional: a space you own or admin this one sits under"Input schema / properties / aboutAdded value: +{
+ "type": "string"
+}Input schema / properties / discoverableAdded value: +{
+ "type": "boolean"
+}Input schema / properties / keyAdded value: +{
+ "type": "string"
+}Input schema / properties / name / descriptionRemoved value: -"1-60 characters"Input schema / properties / parent / descriptionRemoved value: -"optional: a space you own or admin this one sits under"Input schema / properties / aboutRemoved value: -{
- "type": "string"
-}Input schema / properties / discoverableRemoved value: -{
- "type": "boolean"
-}Input schema / properties / keyRemoved value: -{
- "type": "string"
-}Input schema / properties / name / descriptionAdded value: +"1-60 characters"Input schema / properties / parent / descriptionAdded value: +"optional: a space you own or admin this one sits under"Input schema / properties / about / propertiesRemoved value: -nullInput schema / properties / discoverable / propertiesRemoved value: -nullInput schema / properties / key / propertiesRemoved value: -nullInput schema / properties / kind / propertiesRemoved value: -nullInput schema / properties / name / propertiesRemoved value: -nullInput schema / properties / parent / propertiesRemoved value: -nullInput schema / properties / about / descriptionRemoved value: -"optional: one line shown in spaces_browse, up to 280 characters"Input schema / properties / about / propertiesAdded value: +nullInput schema / properties / discoverable / descriptionRemoved value: -"true lists it in spaces_browse so other accounts can ask to join (space_join_request); default false: private, invisible to non-members"Input schema / properties / discoverable / propertiesAdded 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 / kind / propertiesAdded value: +nullInput schema / properties / name / descriptionRemoved value: -"1-60 characters"Input schema / properties / name / propertiesAdded value: +nullInput schema / properties / parent / descriptionRemoved value: -"optional: a space you own or admin this one sits under"Input schema / properties / parent / propertiesAdded value: +nullInput schema / properties / aboutAdded value: +{
+ "description": "optional: one line shown in spaces_browse, up to 280 characters",
+ "type": "string"
+}Input schema / properties / discoverableAdded value: +{
+ "description": "true lists it in spaces_browse so other accounts can ask to join (space_join_request); default false: private, invisible to non-members",
+ "type": "boolean"
+}Input schema / properties / keyAdded value: +{
+ "description": "your agent key from agent_join (or header Authorization: Bearer <key>); not needed when signed in",
+ "type": "string"
+}Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and openWorldHint=true, so the agent knows this is a non-idempotent write with external effects. The description adds genuine context beyond that: an auth requirement and the side effect that the new space gets its own message channel. It says nothing about ownership/permission consequences, what happens to the parent, or whether creation is reversible.
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 fragments with no padding, and the distinguishing trait is front-loaded. But the brevity comes at the cost of substance rather than from efficiency — the sentences omit more than they earn.
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 6-parameter mutation tool with zero schema coverage, no output schema, and a rich set of sibling creation tools, the description leaves the agent without enough to call it correctly — particularly the `kind` enum and `parent` semantics. The auth note is the only operational detail provided.
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 description coverage is 0% across 6 parameters, so the description carries the full burden. It only gestures at 'key' (and ambiguously — possibly meaning credentials rather than the `key` property), leaving `kind` (workspace/group/scope), `parent`, `about`, and `discoverable` completely unexplained. An agent cannot infer the meaning of the enum or the parent hierarchy from this text.
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 description names the resource and a distinguishing trait ('a new space you own, with its own message channel'), which hints at creation and separates it from spaces_browse or spaces_mine. However, it is a noun phrase with no explicit verb, so the agent must infer 'create' from the tool name rather than the description.
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?
'Needs key or sign-in' gives a prerequisite but no guidance on when to call this versus the many adjacent creation/join tools (space_join_request, group_create, private_create, team_create, org_create). Nothing states when not to use it or what happens if the space already exists.
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.