ViablyViably

Let your agent work Viably the way you do

Viably runs an MCP server at https://api.viably.app/mcp. Connect Claude, Cursor or Codex, sign in once, and your agent can read the inbox, the pipeline, tasks, issues, relay logs and Search Console, then act on them: claim a contact, move a deal, file a task, close an issue. It works as you, with your role, and the changes it makes show up in the dashboard and in Slack exactly as if you had made them.
Trigger
api.viably.app/mcp
Lands in
Your agent, acting in the dashboard and Slack
Setup
2 min
Needs
Nothing else

Connect an app

Add the server, and the app opens a Viably sign-in in your browser. Pick the workspace, untick anything the agent does not need, and approve. The app keeps its own token and renews it on its own.

Claude Code
  1. 1
    Add the server

    Run the command above in a terminal, or copy it from API and agents in the dashboard.

  2. 2
    Sign in

    In Claude Code, run /mcp, choose viably and approve the sign-in. The tools appear as mcp__viably__list_inbox and so on.

  3. 3
    Ask

    Try "what's waiting on me in Viably?" and the agent calls whoami and list_inbox.

Cursor: ~/.cursor/mcp.json
Codex
Claude.ai
Open Settings, then Connectors, choose Add custom connector and paste https://api.viably.app/mcp. Claude.ai handles the sign-in.
Apps that cannot sign in
Create a personal access token on API and agents and send it as a header instead. It carries the scopes you picked when you made it.
Claude Code with a token

What it can reach

Each area is a scope you grant at sign-in. Reads are ticked to start and changes are not, so an agent reads until you decide it may act. Your role still applies on top: a member who cannot see customer names gets them masked through the agent too.

A contact list counts as a download
An agent can page through find_contacts or list_deals until it holds the whole book, so Viably treats a list the way it treats a CSV. Names, emails and phones appear in a list only for a member who may both see and download contacts, and each list that carries them is recorded under Downloads on the Members page. get_contact still shows one person to anyone who may see who contacts are, so an agent can help answer a customer without taking the list.
Text in your workspace can reach the model
Contact messages, form fields, webhook payloads and issue descriptions come from people outside your team, and an agent reads them as it works. Most apps ask before each change a tool makes: keep it that way for Viably's changes, and read the plan before you approve it. An agent left to run on its own should hold reads only. Every change it does make is listed on API and agents with the app that made it.
What no agent can do
Reply to customers, merge or block contacts, change billing, members or Powers settings, or give medals. Those stay with people in the dashboard and in Slack.

Saved prompts, and records you attach

The server ships three prompts that chain the tools the way a member works the dashboard. In Claude Code they are slash commands, like /mcp__viably__triage_inbox. A prompt only mentions the changes your token can make, and it asks before making any of them.

Attach a record yourself
In Claude Code, type @viably: to pick a contact waiting on a reply or an open issue, or name one by id, as in @viably:viably://contacts/985. The record loads into the conversation before the agent starts, with the deals, timeline and masking the contact tools give.

Ways teams use it

Three habits we see from teams who connect an agent in their first week.

Clear the inbox before standup

Run triage_inbox with queue mine. The agent drafts replies to the people waiting on you as notes, files the Search Console findings worth fixing as tasks, and dismisses the rest with a reason you approved.

Work the pipeline on Friday

Ask which deals have sat in a stage too long and what happened last with each. Approve the moves, and claim the unowned ones in the same conversation.

File from where you are

In the middle of a coding session, ask Claude Code to file the bug you just found as an issue in #engineering, or a follow-up task due Monday. The card posts to Slack like any other.

Limits and the audit trail

Every tool call counts against the workspace's monthly allowance: 500 on Free and 15,000 on Viably+, plus 3,000 for each top-up pack. It resets on the 1st. Each token also gets 30 requests a minute on Free and 60 on Viably+, and a change costs 3 of them. A refused request answers 429 with a Retry-After header saying when to try again.

Agents queue rather than crowd
A workspace runs 2 tool calls at a time. Further calls wait their turn for up to 10 seconds, then answer 503 with a Retry-After header, so an agent that fires many calls at once slows down instead of slowing the dashboard for your team.
Every change is recorded

Each write is logged with the member, the app, the tool and the record it touched, including the ones Viably refused. Admins see the whole workspace's trail on API and agents; members see their own.

What agents used, and for whom

Usage, under Agents & API, charts calls per day and shows which tools were called and by which member through which app. Admins see everyone; members see their own. API and agents shows the month against the allowance.

Disconnect and revoke

API and agents lists every connected app and personal token with when it was last used. Disconnect ends every sign-in that app holds for you; Revoke ends one token. Admins can do either for anyone in the workspace.

How long a sign-in lasts
An app's access token lasts an hour and the app renews it on its own, as long as it is used at least once every 30 days. Personal access tokens last 30 days to a year, or until revoked if you choose no expiry. Leaving the workspace ends all of them.

Common questions

What teams ask before they let an agent near the pipeline.

Which apps can connect?

Any app that supports remote MCP servers over Streamable HTTP with OAuth sign-in. We test with Claude Code. The Claude.ai, Cursor and Codex steps follow each app's own documentation, so tell us if one misbehaves. Scripts can call the same tools over REST with a personal access token.

Can my agent see things I cannot?

No, and in one case it sees less. Every call runs as you, through the same checks the dashboard runs, so a member whose role hides customer names gets them masked here too. A contact list shows names only if you may also download contacts, because an agent can page through a list faster than anyone scrolls. The scopes you tick at sign-in can narrow access further, and never widen it.

Can it email or message our customers?

No. Replies to customers stay with people. An agent can draft a reply as a note on the contact for you to send, but no tool sends one.

What happens when someone leaves the workspace?

Their tokens stop working at once, with nothing to revoke. Viably checks the member behind a token on every call, so a departed member or an expired guest has no access through any app they connected.

Does it cost extra?

No. Every plan gets every tool. Free includes 500 tool calls a month and Viably+ 15,000, and each top-up pack adds 3,000 more.

Can a customer's message trick my agent?

It can try. Anyone who fills in your form or writes to your inbox puts text in front of your agent, and a message written to look like an instruction can mislead a model. Viably tells the agent that such text is data, and no tool can reply to a customer, but the dependable safeguard is you: approve each change yourself, and leave changes unticked for an agent that reads the inbox without you watching.

Get started

Open API and agents in the dashboard, copy the command for your app, and ask your agent what is waiting on you. Scripts and CI jobs can call the same tools over REST: see the API reference.

Viably builds your inbox and pipeline from the forms, emails and payments your team already handles. Install it, and your agent has something to work on the same day.

Add Viably to Slack
See it in actionMCP server