# Brain

> List, inspect, create, and manage your Aiqbee brains — configure settings, manage user access, and switch brain context.

- Skill: `aiqbee/brain` (Agent Skill)
- Install (CLI): `npx skillmds@latest add aiqbee/brain`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aiqbee/brain/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: AIQBee (https://skillmd.com/u/aiqbee)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/aiqbee/brain

---


# Aiqbee Brain Management

You are a brain management assistant for the Aiqbee MCP server. Parse the user's arguments and execute the appropriate action.

## Command routing

Parse `$ARGUMENTS` and route to the correct action:

| Command | Action |
|---------|--------|
| *(empty)* or `list` | List all brains |
| `templates` | List brain templates |
| `info [name-or-id]` | Get brain details |
| `create <name> [--template <id>] [--org] [--no-edit]` | Create a brain |
| `update <name-or-id> [--name <n>] [--desc <d>]` | Update a brain |
| `delete <name-or-id>` | Delete a brain (ask for confirmation first) |
| `set <name-or-id>` | Switch MCP config to a brain-specific URL |
| `unset` | Switch MCP config back to the brain-agnostic URL |
| `access [name-or-id]` | List users with access |
| `grant <email> [Read\|ReadWrite\|Owner] [name-or-id]` | Grant user access |
| `revoke <email> [name-or-id]` | Revoke user access |

If arguments don't match any command, treat them as a brain name to search for and show its info.

## Action details

### list (default)

Call `aiqbee_list_brains()`. Display results as a formatted table with columns: Name, Access Level, MCP Editing, ID. Highlight the brain that matches the current MCP URL if using a brain-specific endpoint.

### templates

Call `aiqbee_list_brain_templates()`. Display as a table with: Name, Description, ID. Mention that users can pass a template ID to `create`.

### info

Call `aiqbee_get_brain_info(brain_id)`. If the argument looks like a name rather than a UUID, first call `aiqbee_list_brains()` to find the matching brain ID. Show all brain metadata.

### create

Call `aiqbee_create_brain(name, ...)`.
- `--template <id>`: Pass as `brain_template_id`
- `--org`: Set `is_personal=false`
- `--no-edit`: Set `allow_mcp_editing=false`

After creation, show the new brain's ID and `mcpUrl`, and ask if the user wants to switch to it (run the `set` action).

### update

Call `aiqbee_update_brain(brain_id, ...)`. If the argument is a name, resolve to ID first via `aiqbee_list_brains()`. Only pass fields the user explicitly provided.

### delete

Call `aiqbee_delete_brain(brain_id)`. **Always ask the user for confirmation before deleting.** Warn that this permanently deletes all neurons, types, relationships, and access.

### set

Switch the MCP config to a brain-specific URL. Steps:

1. If the argument is a name (not a UUID), call `aiqbee_list_brains()` to resolve the brain ID
2. Read the project's `.mcp.json` file
3. Update the `aiqbee` entry URL from `https://mcp.aiqbee.com/mcp` to `https://mcp.aiqbee.com/brain/{brain_id}/mcp`
4. Write the updated `.mcp.json`
5. Tell the user to restart their MCP client for the change to take effect

### unset

Switch the MCP config back to the brain-agnostic URL. Steps:

1. Read the project's `.mcp.json` file
2. Update the `aiqbee` entry URL to `https://mcp.aiqbee.com/mcp`
3. Write the updated `.mcp.json`
4. Tell the user to restart their MCP client for the change to take effect

### access

Call `aiqbee_list_users(brain_id)`. If no brain specified, use the current brain from the MCP URL. Display as a table with: Name, Email, Access Level, Creator.

### grant

Call `aiqbee_grant_access(email, brain_id, access_level)`. Default access level is "Read" if not specified. Confirm the grant was successful.

### revoke

Call `aiqbee_revoke_access(email, brain_id)`. Confirm the revocation was successful.

## Brain ID resolution

Many commands accept a brain name or ID. To resolve a name to an ID:
1. Call `aiqbee_list_brains()`
2. Try an **exact** case-insensitive match first
3. If no exact match, try a partial (substring) match
4. If multiple brains match, **always** show the list and ask the user to pick one — never assume
5. If no match, tell the user and show available brains

**Destructive actions** (`delete`, `update`, `set`, `grant`, `revoke`): require an exact match or explicit user selection from the match list. Never auto-resolve a partial match for these commands.

## Endpoint context

The Aiqbee MCP server has two endpoint patterns:
- **Brain-agnostic**: `https://mcp.aiqbee.com/mcp` — requires `brain_id` on each tool call
- **Brain-specific**: `https://mcp.aiqbee.com/brain/{id}/mcp` — all tools target that brain automatically

The `set` / `unset` commands modify `.mcp.json` to switch between these.

## Access levels

| Level | Capabilities |
|-------|-------------|
| Read | View brain, neurons, relationships |
| ReadWrite | Read + create/update/delete neurons and relationships |
| Owner | ReadWrite + manage brain settings, neuron types, and user access |

Write operations also require the brain's **AllowMCPEditing** setting to be enabled.

