> ## Documentation Index
> Fetch the complete documentation index at: https://developers.workchats.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workchats MCP server

> Connect Claude, ChatGPT or another AI assistant to your Workchats account

The Workchats MCP server lets an AI assistant work in Workchats **as you**.
MCP is the Model Context Protocol, the open standard that Claude, ChatGPT,
Cursor, VS Code and other assistants use to call tools.

After you connect an assistant, you can ask it to:

* catch you up on unread messages and @mentions
* search your groups and channels, and your direct messages when you ask
* read, create and update tasks, and turn a message into a task
* list your meetings, summarise a meeting and list its action items
* find files, and ask the company Filing Cabinet a question
* write a reply for you to approve

The assistant is not a bot. It sees only what you see in Workchats, and it
can do only what you can do.

## Addresses

Paste the MCP URL of your environment into your assistant. You need nothing
else: no API key and no App registration.

| Environment | MCP URL |
| - | - |
| Production | `https://mcp.workchats.com/mcp` |
| Staging | `https://mcp.staging.workchats.com/mcp` |
| Dev | `https://mcp.dev.workchats.com/mcp` |

Add `/readonly` to the URL, for example
`https://mcp.workchats.com/mcp/readonly`, to connect an assistant that can
only read. See [Read-only URL and toolsets](/mcp/tools#read-only-url-and-toolsets).

## Before you start

* **Your company must turn it on.** AI assistants are off in every company
  until a company admin turns them on. See
  [For company admins](/mcp/admins).
* **You must be an employee.** Guests can't connect. Your account must be
  active.
* **One connection, one company.** If your email belongs to more than one
  company, you pick one company when you approve. To use a second company,
  add the server again in your assistant and pick the other company.

## How it works

1. You paste the MCP URL into your assistant.
2. The assistant opens Workchats in your browser. You sign in, pick a
   company and approve.
3. The assistant calls Workchats tools for you. Each call checks your
   access again.
4. To send a message, the assistant first writes a **draft**. You see the
   draft in the assistant and in your Workchats message box. The assistant
   sends it only after you say yes.

```mermaid theme={null}
sequenceDiagram
    autonumber
    participant E as You
    participant A as AI assistant
    participant M as Workchats MCP server
    participant W as Workchats app
    E->>A: Add the MCP URL
    A->>M: Request without a token
    M-->>A: 401, where to sign in
    A->>W: Open the consent screen in your browser
    E->>W: Sign in, pick a company, Allow
    W-->>A: One-time code
    A->>M: Exchange the code for tokens
    E->>A: "Reply to Dan that I agree"
    A->>M: draft_message
    M->>W: Draft appears in your message box
    M-->>A: Draft and its revision
    A->>E: Shows the draft, asks to send
    E->>A: Yes, send it
    A->>M: send_draft with that revision
    M->>W: Message sent, labelled "via" the assistant
```

## What an assistant can and cannot do

**It can:**

* read what you can read: your direct messages, groups, channels, tasks,
  meetings, calls, files, events, polls, announcements and notifications
* create tasks, task comments, subtasks, meetings, polls, direct messages
  and group chats as you
* react to, pin and mark messages read, answer meeting invitations, and set
  your status
* draft a message, and send that draft after you approve it

**It cannot:**

* send a message in one step. Every message starts as a draft. See
  [Drafts and the "via" label](/mcp/drafts).
* edit or delete a message
* use admin power. A connection always acts as a regular employee, also
  when you are a company admin. It sees no contact details that people hide
  from regular employees, and it has no admin tools.
* choose a company in a tool call. The company always comes from the
  connection.

## Privacy and safety

* **Your company sees the activity, not the content.** The company's
  activity log records each tool call: who, which assistant, which tool,
  which item, the result and the time. It never stores message text, tool
  arguments or tool results.
* **Text from other people is marked.** Tool results wrap text that other
  people wrote, such as messages, task titles and file names, in an
  `<untrusted_content>` element. The server tells the assistant to treat
  that text as data and never to follow instructions in it. This makes
  prompt injection harder. It does not make it impossible, so read a draft
  before you approve it. The one exception is the short title of a `search`
  or `fetch` result, which ChatGPT shows as a label. See
  [Search and fetch](/mcp/tools#search-and-fetch).
* **Direct messages stay behind their own tool.** General search never
  returns a direct message. The assistant must call `search_dms`, or
  `search_messages` with `type` set to `dm`, so you can see when it reads
  them.
* **You can disconnect at any time.** A disconnected assistant's next
  request fails. Your company admin can also disconnect any assistant.
  See [Revocation](/mcp/oauth#revocation) for every way a connection ends.

## Next

<CardGroup cols={2}>
  <Card title="Connect an assistant" icon="plug" href="/mcp/connect">
    Steps for Claude, ChatGPT, Claude Code, Cursor and VS Code.
  </Card>

  <Card title="Tools" icon="wrench" href="/mcp/tools">
    Every tool, what it reads or changes, and its key inputs.
  </Card>

  <Card title="Drafts and the via label" icon="pen" href="/mcp/drafts">
    How draft then send works, and when a message shows "via Claude".
  </Card>

  <Card title="For company admins" icon="shield" href="/mcp/admins">
    Turn AI assistants on, see connections, block clients, read activity.
  </Card>

  <Card title="OAuth for client developers" icon="key" href="/mcp/oauth">
    Discovery, registration, PKCE, scopes, tokens, limits and errors.
  </Card>

  <Card title="Troubleshooting" icon="life-ring" href="/mcp/troubleshooting">
    Fix common problems, and contact support.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.