Skip to content

AI agents

AI agents are the AI tools people already use, connected to Freesbe: Claude, ChatGPT, a code editor such as Cursor or VS Code, or an agent your own team built. Once connected, an agent can work in your workspace for you: find out who is around, read what you can read, post as itself, and (soon) ask people questions and wait for their answers. It’s on every plan.

Three things stay true for every agent:

  • It acts for the person who connected it. An agent sees only what that person can see, and never more than they allowed when they connected it.
  • It’s visible. An agent shows up in the member list and in messages as its own bot, with an AI agent badge and the name of the tool it is, never as the person.
  • Admins are in charge. Owners and admins choose who can connect agents, approve or block each one, limit what it may do, and see everything it did.

Freesbe’s agent support uses the open Model Context Protocol (MCP), so any tool that can add an MCP server or “connector” works, with no app to install.

In your AI tool, add Freesbe as a connector or MCP server with this address:

https://api.freesbe.net/mcp

Where to put it depends on the tool. In Claude it’s Settings → Connectors → Add custom connector; in ChatGPT, Settings → Connectors; in most code editors, an mcp.json file. The tool then opens a page in your browser:

Connect Claude to Freesbe: pick a workspace, see what it will be able to do, and allow it

  1. If you aren’t signed in to Freesbe in that browser, sign in as usual. Your workspace’s sign-in rules apply, including a second step and single sign-on.
  2. Pick the workspace the agent should work in. One connection is for one workspace; connect it again for another.
  3. Read what it will be able to do. Anything crossed out isn’t allowed in that workspace, so the agent won’t get it.
  4. Click Allow. You go back to the tool, connected.

If the workspace’s admins want to approve new agents first, the button says Ask an admin instead. Add a note if you like, and connect again once an admin has approved it (you’ll see the agent as Waiting in your preferences until then). Guests can’t connect agents.

Preferences → My account → Sessions and apps → AI agents lists every agent you’ve connected, in which workspace, and when it last did something. Click Disconnect and it stops at once; connect it again from the tool whenever you like.

Preferences, My account, Sessions and apps: AI agents, with Claude and Cursor connected to Northwind Traders

An agent keeps working for 30 days after it was last used, then it asks you to connect again.

When a tool connects, it says what it wants to do, and the connect page lists it in plain words. These are the permissions an agent can ask for:

Permission What it means
See your channels and who is in them The names and members of the channels you’re in
Read messages in public channels you’re in Messages, threads and files in public channels
Read messages in your private channels Off unless admins allow it
Read your direct messages Off unless admins allow it
Search messages and files you can see Search, with the same results you’d get
Send messages in channels and threads Posts as the agent, in channels you’re in
Send direct messages Direct messages from the agent, to people you can message
Add emoji reactions
See the people in the workspace Names, titles and roles
See who’s around, their local time and working hours Status, availability and time zones
See when people are free or busy Free/busy from calendars
See your meetings · Schedule meetings and send booking links Meetings and booking links
Read transcripts and notes of meetings you were in Recordings and notes of meetings you attended
See your to-dos · Add and complete your to-dos Your to-dos
Ask people questions for you and get their answers Direct messages from the agent asking a teammate, with their answers back (below)

An agent only sees the tools its permissions allow, and only what you could see yourself: a channel you aren’t in, or a private one without the private permission, doesn’t exist for it.

Tool What it does
search Searches the messages you can see, with the same filters as the search box (from:, in:, after:)
list_channels Your channels, or every channel you could join
read_channel The latest messages in a channel or direct message, and older ones page by page
read_thread A message and its replies
send_message Posts in a channel or a thread
send_dm Sends a direct message to one person or a few
add_reaction Adds an emoji reaction to a message
find_people Finds people by name, email or title
check_presence Whether people are around, their status, do not disturb, calendar and local time
find_free_time Times everyone is free, within their working hours and calendars
ask Asks someone a question for you, in a direct message (below)
get_answer The answer, or where the question is
list_questions The questions it asked for you
cancel_question Withdraws a question that’s still waiting
call_phone_number Calls a number for you: your Freesbe phone rings first (click-to-call)
get_connection Who the agent works for, in which workspace, and what it may do

Every message it reads comes with a link back to it in Freesbe, so the agent can point you to its sources.

Everything an agent posts is marked as its own: it posts as the agent, its entry in the member list says AI agent, and each message says who it’s for.

Agents treat what they read in messages as information, never as instructions, and post only what you asked for. Rate limits are per connection, so one busy agent can’t slow the workspace down.

An agent can ask a teammate something for you, like “When will the Acme Corp order ship?”, and wait for the answer. The question arrives as a direct message from the agent, saying who it’s asking for, with the right way to answer: a date, a date and time, choices, Yes or No, a number, or a few words, and a note if they want to add one.

  • Working hours. A question waits until it’s a weekday between 9:00 and 17:00 where the person is, and until their Do Not Disturb ends. The agent can skip the wait for something urgent.
  • Not me. The person can pass it on, naming who might know. It goes to them, or to the next person the agent named, or comes back to the agent as unanswered.
  • Can’t say yet. They’re asked again the next working morning.
  • Reminders and deadlines. The agent can ask for up to two reminders, and a deadline. When the deadline passes the question moves on to the next person the agent named, with as long to answer, or stops waiting.
  • You hear back. When someone answers, passes or doesn’t answer in time, the agent tells you in your direct message with it, so you have the answer even if the agent isn’t running.

Agents can ask members, not guests. One agent can have three questions waiting on the same person at a time, and a connection can ask 30 a day. Admins can take the permission away from an agent in Workspace settings → Integrations & apps → AI agents → Permissions.

Owners and admins manage agents in Workspace settings → Integrations & apps → AI agents.

Workspace settings, AI agents: who can connect, the agents people connected with Approve, Block and Permissions, and the activity log

  • Nobody: agents can’t connect to this workspace, and the ones already connected stop working until you turn it back on.
  • Agents an admin approved: the first person to connect a new agent asks you to approve it. You see the request on this page, with their note. Once approved, anyone can connect that agent. Admins’ own connections are approved as they make them.
  • Anyone (the default): anyone but guests can connect any agent. Each one shows up on this page as soon as someone connects it, where you can limit or block it.

Let agents read private channels and direct messages is off by default. When it’s on, an agent can ask for those permissions, and still only reads the private conversations of the person who connected it. Turning it off takes those permissions away from every connection at once.

Every agent anyone connected is listed with how many people connected it and when it last did something:

  • Approve or Allow lets it in; Block stops every connection to it at once, and nobody can connect it until you allow it again.
  • Permissions sets the most it may do in this workspace. People who connect it get what they asked for, within that. Unticking a permission takes it away from everyone who already connected the agent.
  • Remove deletes the agent from the workspace and all its connections. Its messages stay, as a removed member’s do. If someone connects it again later, it comes back as a new agent, subject to your approval setting.

The bottom of the page shows what agents did, newest first: who connected or disconnected what, approvals and blocks, and every tool call with whether it worked. It stays for 90 days.

Freesbe’s MCP server speaks the current MCP specification over streamable HTTP, and uses OAuth 2.1 exactly as the specification’s authorization section describes, so a standard MCP client connects with no Freesbe-specific code.

MCP server POST https://api.freesbe.net/mcp (JSON responses; no SSE stream yet)
Protected resource metadata https://api.freesbe.net/.well-known/oauth-protected-resource/mcp
Authorization server https://id.freesbe.net
Authorization server metadata https://id.freesbe.net/.well-known/oauth-authorization-server
Authorize https://id.freesbe.net/authorize
Token https://id.freesbe.net/token
Registration https://id.freesbe.net/register
Revocation https://id.freesbe.net/revoke

How a client identifies itself:

  • Client ID metadata documents (preferred): use an https URL you control as the client_id. It serves a JSON document with client_id (the same URL), client_name, redirect_uris, and optionally client_uri and logo_uri. Freesbe fetches it when a person connects and shows the name and logo on the connect page. token_endpoint_auth_method must be none.
  • Dynamic registration (fallback): POST /register with client_name and redirect_uris returns a client_id. Only public clients are registered.

Every client is a public client using PKCE (S256), and must send the resource parameter (https://api.freesbe.net/mcp) on the authorize and token requests. Access tokens last an hour; the refresh token works once and comes back renewed, for 30 days. A request without a valid token gets 401 with a WWW-Authenticate header pointing at the resource metadata, as the specification requires; a tool the connection lacks the scope for gets 403 with error="insufficient_scope".

Scopes are the permissions above, by their short names (channels:read, channels:history, groups:history, im:history, search:read, chat:write, im:write, reactions:write, users:read, presence:read, calendar:read, meetings:read, meetings:write, recordings:read, todos:read, todos:write, questions:write, phone:call). Ask for what you need; a client that asks for nothing gets everything but the two private ones and phone:call, which places calls on your workspace’s phone bill.

The settings pages’ own endpoints are in the API reference.