Revaal MCP server

Revaal has an MCP server, which means apps like Claude can connect straight to your workflows — see them and run them — without your password ever being stored anywhere.

How to connect#

Which app are you using?

  1. Copy the server address

    This one line is how an app reaches Revaal. If there is a ready-made config below, this address is already inside it.

    https://mcp.revaal.app/api/mcp
  2. Open Connectors in Claude

    In the desktop app or on claude.ai, go to Settings and then Connectors. Click Add custom connector, paste the address and confirm.

    Open Claude
  3. Sign in and approve

    The app sends you to Revaal to sign in and to see what it is asking for. You can grant read access only and withhold the permission to run.

Claude calls these Connectors, not MCP. If you went looking for a section named MCP and could not find one, Connectors is it.

If you are working with OpenAI's own API#

Add the server to your request as a tool:

{
  "type": "mcp",
  "server_label": "revaal",
  "server_url": "https://mcp.revaal.app/api/mcp",
  "authorization": "<ACCESS_TOKEN>",
  "require_approval": "always"
}

This is the developer path, not the everyday one. ACCESS_TOKEN has to be a token obtained through the same sign-in flow; the API does not run that flow itself. If you don't have one, connect using one of the ways above.

Permissions#

Readworkflows:read

List your workflows, describe each one, read outputs, and search the knowledge base. Changes nothing and costs nothing.

Changeworkflows:write

Change a step's settings — prompt, model, creativity and the rest — and publish a new version. A step's tools are not changed this way; they have a permission of their own. This permission costs nothing but alters the workflow permanently, so grant it only to an app you trust.

Structureworkflows:graph

Build a new step, remove one, and change how the steps are wired together. Kept apart from Change because that one decides what a step does and this one decides whether it is there at all — removing a step takes its prompt and its settings with it. What makes that survivable is that it only touches the draft: your last published version is untouched, and restoring it brings the removed steps back. A workflow's Start step can never be removed this way.

Toolsworkflows:tools

Attach or change a step's tools — which Telegram channel, WordPress site or Google account a workflow reaches. No password or token travels this way; the app can only point at connections you already made yourself. Kept apart from Change because it alters what a workflow reaches outside Revaal rather than what it says. On a workflow you have shared with someone, this needs you to be a manager of it, not just an editor.

Runworkflows:run

Start a workflow run. It spends the workflow owner's credit, and if the workflow is connected to Telegram, WordPress, X or Instagram, it really publishes. Grant this only to an app you trust.

Read agentscowork:read

List your agents and read one's whole configuration: master prompt, model, tools, skills, permissions, schedule, memory, files and versions. Changes nothing and costs nothing. Credentials are never sent.

Configure agentscowork:write

Create an agent, and change any part of an existing one: its master prompt, its model and the dials on it, its tools, the accounts they use and what each may do without asking, its skills and their files, its subagents, its boards, its documents and brand assets, its memory, the files in its folder, its schedule, and committing and restoring its versions. Kept apart from the workflow permissions because those rewrite a board and this rewrites a colleague. Talking to an agent is not in here: none of these tools hold a turn, so none of them spend credit — and switching an agent's unattended runs on also needs permission to run workflows.

Tools#

What a connected app can do:

list_workspaces

The workspaces you can stand in, and your role in each. Every board lives in one workspace, and running it spends that workspace’s credit — so read this before creating a board.

list_workflows

List the workflows you can see.

get_workflow_outline

The shape of one workflow: its steps in order and what each does.

get_node_settings

One step's full configuration — what you see in its side panel: the prompt text, the model and its backups, creativity and token cap, web search, the speaking voice, knowledge and brand kit, and its tools. Credentials are never sent.

update_node_settingschanges the board

Change one step's settings — only the fields you send. Saved to the draft, not to the published version.

list_tool_connectionschanges its tools

Lists the connections you already set up — WordPress sites, Telegram channels, Google accounts. No credentials in it.

set_node_toolchanges its tools

Attach or change a step's tool: which built-in, which of its actions are on, and which permissions it has. No credential travels this way; the app can only point at one of your own connections.

remove_node_toolchanges its tools

Take one tool off a step. A step whose tool IS the step is left blank instead, and will not run until a tool is set again.

create_workflowchanges its structure

Create a new, empty workflow in your workspace, with its Start step already in place.

apply_workflow_specchanges the boardchanges its structure

Build a whole workflow in one call — every step, how they are wired, and what each one does. It replaces whatever was on the board; if the board has any real steps, they are frozen as a version first so they can be restored. Tools attached this way arrive with no permission to publish or send.

add_nodechanges its structure

Add a new step after one that already exists. The new step joins the chain of work, and can arrive with its prompt and model already set.

delete_nodechanges its structure

Remove a step, along with every wire into and out of it. Its prompt and settings go too; your last published version is untouched.

connect_nodeschanges its structure

Draw the arrow between two steps that are both already on the board — which step runs after which. On a Condition it has to say which branch, Yes or No.

disconnect_nodeschanges its structure

Remove the arrow between two steps. Both steps stay where they are, but the one on the receiving end no longer runs unless something else reaches it.

get_data_source

Read where a workflow's work comes from — news, a file, or an API address — and whether it is configured at all. No password or token is returned; only whether one is set.

set_data_sourcechanges the board

Change where the work comes from, and configure an API address. Passwords and headers do not travel this way; you fill those in Revaal yourself. If the address changes, the stored token and headers are cleared and have to be entered again.

list_news_sources

List the news sources Revaal collects, marked with which ones feed this workflow and which are being collected at all.

select_news_sourceschanges the board

Add or remove a news source for this workflow. Removing one only takes it off this workflow; Revaal goes on collecting it.

publish_versionchanges the board

Freeze the current draft as a new version, with a release note. The model name is stamped on automatically.

list_run_inputs

The items a workflow can be run against right now.

list_outputs

What a workflow has produced so far, newest first.

get_output

The full text of one output, with its images, audio and video.

get_run_step

Read one step of a run in full: the prompt that actually went to the model, the text it was given, and everything it produced. When an output is wrong, this is where you find out why.

get_schedule

Read whether a workflow runs itself, how many minutes apart, whether it is held, when it last ran and when it is due next.

set_schedulechanges the board

Change the automatic runs — cadence, batch size, a temporary hold. Turning it on also needs permission to run workflows, because it means credit is spent from then on; slowing it down or turning it off does not.

list_versions

List a workflow's published versions. Automatic runs go from the newest of these, not from the draft.

get_version_changes

Compare two points in a workflow's history: which steps were added or removed and what settings changed. Leave the second one out to compare against the current draft.

query_knowledge

Semantic search over a workflow's knowledge base.

run_workflowspends credit

Start a workflow run over the given inputs.

get_run_status

The status of a run that is in progress right now.

list_agents

List the agents you can see. Agents do not appear in the workflow list.

get_agent

Read one agent's whole configuration: master prompt, model, tools, permissions, skills, subagents, boards, documents, brand assets, memory, its schedule and unattended-run message, and whether unattended runs read the draft or the last version. Skill bodies are not included — the next tool opens one. Credentials are never sent.

get_agent_skill

Read one skill whole: the instructions it carries and the files beside it.

list_agent_sessions

List one agent’s conversations, newest first: the title and summary it gave each, whether one is waiting on a card or a question, and when it started and last moved.

get_agent_session

Read one of an agent’s conversations as it happened: every line, every tool it called with the arguments and the answer, and for a handover which colleague answered, on which model, and what it did. The tool for «what went wrong in this chat».

create_agentConfigures an agent

Create a new agent («همکار») in one of the workspaces: a colleague somebody holds a conversation with, as opposed to a board that runs. It is born with a model, a name, and the master prompt that makes it what it is if one is given. Tools, skills and the colleagues it hands work to are added afterwards, each by its own tool.

update_agentConfigures an agent

Change the agent settings that are a single value rather than a list: name and description, model and the dials on it, master prompt, the capability switches, memory, documents, brand assets, group, its schedule and unattended-run message, and what happens to a tool with no rule of its own. Only what you send changes. Switching unattended runs on also needs permission to run workflows.

attach_agent_toolConfigures an agent

Give the agent one of the product's tools, or change which of that tool's actions it may take. Its other tools are untouched and a stored credential is preserved; a connection already set up on a board or another agent can be reused.

detach_agent_toolConfigures an agent

Take one tool away from the agent. The stored credential on that row goes with it.

set_agent_tool_permissionConfigures an agent

Decide whether one action of one tool runs on its own, asks first, or is refused. Every other rule is left as it is.

write_agent_skillConfigures an agent

Write or rewrite one of the agent's skills — a named procedure it loads only when that procedure applies — and the files beside it. Reusing a name rewrites that skill.

delete_agent_skillConfigures an agent

Drop one of the agent's skills by name.

add_agent_subagentConfigures an agent

Let one agent hand work to another agent of the same workspace.

remove_agent_subagentConfigures an agent

Stop an agent delegating to one colleague. The colleague itself is untouched.

attach_agent_boardConfigures an agent

Give the agent one of the workspace's boards, so it can run it and read what it produced.

detach_agent_boardConfigures an agent

Give up one of the agent's boards. The board itself is not changed and not deleted.

list_agent_resources

List what the agent's workspace can give it, with ids: library documents, brand assets, accounts connected such as Google or Slack, and tool connections set up on a board or another agent. No credential is ever sent.

get_agent_memory

Read the agent's memory.md — the notes it keeps across conversations and reads in every one.

write_agent_memoryConfigures an agent

Rewrite the agent's memory.md whole. Anything left out is gone; an empty text empties it.

list_agent_files

List the files in the agent's own folder, with id, path and size. Never the contents.

read_agent_file

Read one file of the agent's folder by id or path; long text comes a page at a time.

write_agent_fileConfigures an agent

Write a text file (md, txt, csv, json, html) into the agent's folder, replacing one at the same path.

delete_agent_fileConfigures an agent

Delete one file from the agent's folder. There is no undo.

list_agent_versions

List the agent's committed versions, what each changed, and what the draft has changed since the last one.

publish_agent_versionConfigures an agent

Commit the agent's current draft as a new version, with a title.

restore_agent_versionConfigures an agent

Put the agent's draft back to a committed version, schedule included. Stored credentials and files are untouched.

set_agent_automationConfigures an agent

Choose whether the agent's unattended runs read the draft or the last committed version.

A few security notes#

  • Your password is never given to the app. It only receives a token, which you can revoke at any moment.
  • The name an app declares for itself is not verified. On the consent screen, look at the destination address — that one cannot be forged.
  • An app can only reach the workflows you can reach yourself; never more.
  • An access token lasts one hour and refreshes itself. Disconnecting kills all of them immediately.

If it does not work#

The app says the server was not found

Check the address again; it must be exactly what is written above, ending in /api/mcp.

After signing in it returns to the sign-in page

Allow browser cookies for Revaal, or sign in once in that same browser and try again.

The run tool does not work

You most likely withheld the run permission when approving. Disconnect it from Connections, connect again, and grant the run permission this time.

Revaal

Manifesto

A person’s attention is the most valuable thing they bring to work. Every one of us has a limited amount of energy, focus, and presence each day, and a day that is spent does not come back. This is true for every single person on a team, not only the ones at the top. So the real question for any company is a simple one: what are we asking people to spend their days on?

Too often, the answer is repetition. We ask people to copy, paste, reformat, check the same list again, and write the same message for the hundredth time. The work gets finished, but something is lost. A person doing repetitive work is a person who is not thinking. We believe this is a serious mistake, not because such work is beneath anyone, but because a human being is the wrong tool for it. Machines are patient with repetition. People are not, and they should not have to be.

We are building for the other side of that trade. Models now have the processing power and the intelligence to carry the repeating part: the reading, the sorting, the drafting, everything that follows a known pattern. Hand that over, and look at what is left for people: creating things, staying curious, wrestling with problems that have no certain answer, sitting with a question while it is still unclear, and making something new and then changing it again. That is what a human day should be spent on. We think it should be the normal day, not the rare one.