# Set up a workspace with your agent

> Hand workspace setup to Claude Code or another MCP agent: what it does, in what order, and what stays with you.

Audience: Workspace administrators and the agents they run

Canonical: https://shuffl-rebuild.vercel.app/docs/agent-setup

<a id="you-first"></a>
## What you do

1. Create your account and name your company. Shuffl creates its first workspace with it.

2. In Workspace setup, under the steps, choose Show prompt, then Copy prompt, and paste it into your agent.

3. When your browser opens, pick the workspace, choose Choose what setup needs, and allow access.

4. Answer your agent when it asks: approve Slack, and say yes before it publishes knowledge or invites anyone.

- [Create an account](https://shuffl-rebuild.vercel.app/sign-up)

- [Open workspace setup](https://shuffl-rebuild.vercel.app/app/manage/setup)

<a id="connect"></a>
## Connect the agent

The agent connects to Shuffl’s MCP server and signs in with OAuth in your browser, so no API key is needed. It works as you, with your role, in the one workspace you choose. The connection lasts 30 days unless you revoke it in Settings → API keys.

```sh
claude mcp add --transport http shuffl https://shuffl-rebuild.vercel.app/api/mcp
```

- [Connect another MCP client](https://shuffl-rebuild.vercel.app/docs/mcp)

<a id="agent-steps"></a>
## Work through setup

1. slack: you can’t install Slack. Send the person to Workspace setup → Connect Slack and wait. A Slack admin may need to approve it.

2. knowledge: ask for the handbook or policy as a file or a web page. For a file, call knowledge_uploads_create, send it in parts with knowledge_uploads_appendPart (base64), then knowledge_uploads_complete, and poll knowledge_uploads_get until it is read. For a web page, call knowledge_sources_importWebsite. Each section becomes a private draft. Show the person the draft titles and the audience (everyone in the workspace), and publish with knowledge_sources_publish only after they say yes.

3. preview: call assistant_send with a question the published source answers, and check the answer cites it. The step counts your own cited answer.

4. employees: ask for one coworker’s email and, after a yes, call invitations_create. They accept by email, then the person turns on their access in People.

5. Optional, each after a yes: pulse_saveProgram turns on Pulse; channels_list, programs_options and programs_create start coffee chats; onboarding_saveProgram welcomes new hires; celebrations_preview then celebrations_save turns on birthdays and anniversaries.

6. If another Slack app already runs intros, shoutouts or celebrations, teams_slackChannels lists those channels with a guess for each, plus public channels named for praise (fromApp false; only praise or leave it apply). Show the list, then call teams_moveSlackChannels with the person’s choices. Programs it creates start paused.

Instructions for the agent. Call teams_setup first and again after each step. Its steps list is the checklist: steps with required true count toward progress, and the rest are optional programs. Access and HR steps appear only when something needs fixing; tell the person what the step says. Never publish, invite, send or turn on a program without the person’s yes in this conversation.

<a id="permissions"></a>
## Actions setup uses

Choose what setup needs on the consent screen selects these actions. Each tool is the permission with dots replaced by underscores, such as knowledge_sources_publish. Granting HR responders, deleting the workspace and transferring ownership stay in the app.

<a id="permission-assistant-send"></a>

### assistant.send

Write · Ask Mello a question in a conversation

Exact permission: `assistant.send`. Underlying role scope: `assistant:write`.

<a id="permission-celebrations-preview"></a>

### celebrations.preview

Read · Preview a celebration message

Exact permission: `celebrations.preview`. Underlying role scope: `celebrations:read`.

<a id="permission-celebrations-program"></a>

### celebrations.program

Read · Read the Celebrations settings

Exact permission: `celebrations.program`. Underlying role scope: `celebrations:read`.

<a id="permission-celebrations-save"></a>

### celebrations.save

Write · Save celebration settings; enabling them schedules messages

Exact permission: `celebrations.save`. Underlying role scope: `celebrations:write`.

<a id="permission-channels-list"></a>

### channels.list

Read · List available Slack channels

Exact permission: `channels.list`. Underlying role scope: `programs:read`.

<a id="permission-invitations-list"></a>

### invitations.list

Read · List pending workspace invitations

Exact permission: `invitations.list`. Underlying role scope: `access:read`.

<a id="permission-invitations-create"></a>

### invitations.create

Write · Invite this person with the selected team role

Exact permission: `invitations.create`. Underlying role scope: `access:write`.

<a id="permission-knowledge-sources-get"></a>

### knowledge.sources.get

Read · Read a Knowledge source

Exact permission: `knowledge.sources.get`. Underlying role scope: `knowledge:manage`.

<a id="permission-knowledge-sources-list"></a>

### knowledge.sources.list

Read · List Knowledge sources

Exact permission: `knowledge.sources.list`. Underlying role scope: `knowledge:manage`.

<a id="permission-knowledge-sources-importWebsite"></a>

### knowledge.sources.importWebsite

Write · Import a website page into Knowledge for review

Exact permission: `knowledge.sources.importWebsite`. Underlying role scope: `knowledge:write`.

<a id="permission-knowledge-sources-publish"></a>

### knowledge.sources.publish

Write · Publish this knowledge version to its audience

Exact permission: `knowledge.sources.publish`. Underlying role scope: `knowledge:write`.

<a id="permission-knowledge-sources-write"></a>

### knowledge.sources.write

Write · Write a Knowledge page with Mello from its title and a request; nothing is saved

Exact permission: `knowledge.sources.write`. Underlying role scope: `knowledge:write`.

<a id="permission-knowledge-uploads-get"></a>

### knowledge.uploads.get

Read · Read the progress of a Knowledge file upload

Exact permission: `knowledge.uploads.get`. Underlying role scope: `knowledge:write`.

<a id="permission-knowledge-uploads-appendPart"></a>

### knowledge.uploads.appendPart

Write · Upload the next part of a Knowledge file

Exact permission: `knowledge.uploads.appendPart`. Underlying role scope: `knowledge:write`.

<a id="permission-knowledge-uploads-complete"></a>

### knowledge.uploads.complete

Write · Finish a Knowledge file upload and start reading it

Exact permission: `knowledge.uploads.complete`. Underlying role scope: `knowledge:write`.

<a id="permission-knowledge-uploads-create"></a>

### knowledge.uploads.create

Write · Start uploading a file to Knowledge

Exact permission: `knowledge.uploads.create`. Underlying role scope: `knowledge:write`.

<a id="permission-onboarding-program"></a>

### onboarding.program

Read · Read the Onboarding program settings

Exact permission: `onboarding.program`. Underlying role scope: `onboarding:read`.

<a id="permission-onboarding-saveProgram"></a>

### onboarding.saveProgram

Write · Save the onboarding program and its messages

Exact permission: `onboarding.saveProgram`. Underlying role scope: `onboarding:write`.

<a id="permission-programs-options"></a>

### programs.options

Read · List program setting choices

Exact permission: `programs.options`. Underlying role scope: `programs:read`.

<a id="permission-programs-create"></a>

### programs.create

Write · Create a program

Exact permission: `programs.create`. Underlying role scope: `programs:write`.

<a id="permission-pulse-program"></a>

### pulse.program

Read · Read the Pulse settings

Exact permission: `pulse.program`. Underlying role scope: `pulse:read`.

<a id="permission-pulse-saveProgram"></a>

### pulse.saveProgram

Write · Save Pulse settings; enabling Pulse schedules questions to everyone

Exact permission: `pulse.saveProgram`. Underlying role scope: `pulse:write`.

<a id="permission-teams-setup"></a>

### teams.setup

Read · Read the workspace's setup checklist

Exact permission: `teams.setup`. Underlying role scope: `team:read`.

<a id="permission-teams-slackChannels"></a>

### teams.slackChannels

Read · List community channels in the connected Slack and what each would become

Exact permission: `teams.slackChannels`. Underlying role scope: `integrations:read`.

<a id="permission-teams-moveSlackChannels"></a>

### teams.moveSlackChannels

Write · Set up each channel in Shuffl: paused intros, praise and celebrations

Exact permission: `teams.moveSlackChannels`. Underlying role scope: `integrations:write`.

<a id="permission-teams-saveAgentSetup"></a>

### teams.saveAgentSetup

Write · Choose the built-in assistant or an external agent for the workspace

Exact permission: `teams.saveAgentSetup`. Underlying role scope: `team:write`.

- [Endpoint permission reference](https://shuffl-rebuild.vercel.app/docs/api-permissions)

## Related guides

- [Set up your workspace](https://shuffl-rebuild.vercel.app/docs/getting-started)

- [Connect an MCP client](https://shuffl-rebuild.vercel.app/docs/mcp)

- [API endpoint permissions](https://shuffl-rebuild.vercel.app/docs/api-permissions)

Agent documentation index: https://shuffl-rebuild.vercel.app/llms.txt

