Flow Relay speaks the Model Context Protocol in two ways, exposing the same 40 tools, 3 prompts and 1 resource template over the same REST API:

  • Remote server at https://www.flowrelay.it/mcp (Streamable HTTP) – nothing to install, works from any MCP client that supports remote servers.
  • Local server via the @flowrelay/mcp-server npm package – a thin stdio client installed on demand via npx, for clients that only speak stdio.

The endpoint is https://www.flowrelay.it/mcp. Authenticate with your fr_ API key as a bearer token, or through the built-in OAuth flow if your client supports it. Setup differs per client – pick yours below.

Claude Desktop and claude.ai (custom connector)

No manual header and no OAuth credentials needed. In Settings > Connectors > Add custom connector:

  1. Name: Flow Relay.
  2. URL: https://www.flowrelay.it/mcp.
  3. Leave the advanced OAuth Client ID and Client Secret fields empty – Flow Relay handles client registration automatically.
  4. Click Add, then Connect: the Flow Relay authorize page opens in your browser and you paste one of your API keys once to grant access.

The connection carries exactly the permissions of that key and stops working the moment you revoke the key in Settings > API Keys.

Claude Code

claude mcp add --transport http flowrelay https://www.flowrelay.it/mcp \
  --header "Authorization: Bearer fr_your_api_key_here"

Cursor, Windsurf and other JSON-config clients

Any client that takes a JSON config with remote servers:

{
  "mcpServers": {
    "flowrelay": {
      "url": "https://www.flowrelay.it/mcp",
      "headers": {
        "Authorization": "Bearer fr_your_api_key_here"
      }
    }
  }
}

Stdio-only clients

Bridge with mcp-remote:

{
  "mcpServers": {
    "flowrelay": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://www.flowrelay.it/mcp",
        "--header", "Authorization: Bearer fr_your_api_key_here"
      ]
    }
  }
}

Picking a project

The connection itself is project-agnostic: one key sees every project it has access to. The model picks a project in conversation – list_projects then set_active_project – or passes project_id explicitly to any tool. The remote server keeps the active project per API key for 30 days, so it survives across sessions and devices using the same key.

The @flowrelay/mcp-server package runs locally over stdio. No repository access is required; the server is installed on demand via npx.

Setup

  1. Install Node.js (v22 or later).
  2. Create an API key in Settings > API Keys.
  3. Add the server to your Claude config file:
{
  "mcpServers": {
    "flowrelay": {
      "command": "npx",
      "args": ["-y", "@flowrelay/mcp-server"],
      "env": {
        "FLOWRELAY_API_KEY": "fr_your_api_key_here",
        "FLOWRELAY_PROJECT_ID": "your_project_id"
      }
    }
  }
}

Environment variables

VariableRequiredPurpose
FLOWRELAY_API_KEYYesYour fr_ API key.
FLOWRELAY_PROJECT_IDNoInitial active project for project-scoped tools. set_active_project overrides it for the session; useful when the server always works on one project.
FLOWRELAY_BASE_URLNoOverride the API base (defaults to https://www.flowrelay.it).

Both servers expose the same 40 tools:

ToolDescription
get_workspace_contextInspect account mode, active scope and current role.
list_projectsList personal and organization projects you can access.
set_active_projectSet or clear the active project context.
list_filter_optionsList selectable resources, branches, event types and priorities per source.
list_handoffsList handoffs by status and limit.
generate_handoffGenerate a handoff with optional source filters.
list_integrationsList connected integrations in personal or project scope.
list_untracked_resourcesList active resources not yet assigned to a project.
list_eventsBrowse recent events in personal or project scope.
discord_list_channelsList text channels in your connected Discord server.
discord_send_messageSend a Discord message – plain text, or a handoff/insight (by id, or last_handoff / last_correlation / last_onboarding / last_architecture / last_release_notes) rendered to Markdown and attached as a .md file.
generate_correlation_insightGenerate a cross-source correlation insight.
generate_onboarding_briefGenerate an onboarding brief insight.
generate_architecture_insightGenerate an architecture insight.
generate_release_notesGenerate release notes, or a PR description, from a project's merged work.
ask_projectAsk one question about a project and get an answer grounded in its codebase, baselines and recent activity. Synchronous – there is no job to poll.
list_digestsRead the scheduled activity digests of a project, newest first.
list_insightsList project AI insights.
list_my_workList the work items assigned to you across every accessible project.
list_work_itemsList the tasks and milestones of a project plan, filterable by status or to your own items.
get_work_itemRead one work item by key (such as FR-12) or id, with dependencies and linked evidence.
create_work_itemCreate a task or milestone, optionally nested, with a duration, a deadline and an assignment to yourself.
update_work_itemChange the status, progress, title, description, priority, blocked flag, duration or deadline of an item.
list_suggestionsList the pending suggestions you can act on: status changes proposed from linked activity, items from meeting action items, dependencies from tracker links and suggested evidence.
link_evidenceAttach an https link (pull request, commit, deploy, incident, document) to an item as evidence.
list_raidRead the RAID register of a project: risks, assumptions, issues, decisions and dependencies with their score and response.
get_earned_valueRead the costs and earned value of a project plan against a baseline (project managers, plans with costs).
get_portfolioRead the portfolio of an organization: progress, forecast finish, next milestone, open risks and health of every project you can open (Business plan and above).
get_forecastForecast when a plan finishes by simulating it: the dates by which half, four out of five and nineteen out of twenty of the runs are done, per project and per milestone (Business plan and above).
plan_whatifAsk a what-if question about a plan in words and get the new finish dates computed by the scheduler, without changing the plan. Costs 5 credits.
list_automationsList the automation rules of a plan as sentences, with how often they ran and how the last run went (Team plan and above).
list_templatesList the templates saved for a plan with the id to give to apply_template.
apply_templateAdd a saved template to a plan, at the top level or under an item. Project managers only. Costs no credits.
list_approvalsList the change requests of a plan: what was asked, who asked, who decided and what they said. Business plan and above, organization projects. Costs no credits.
request_changeAsk for a change to an item that a second person must approve. It only files the request; approving applies it. Business plan and above, organization projects. Costs no credits.
resolve_suggestionAccept or dismiss one pending suggestion. Accepting applies it to the plan. Costs no credits.
create_raid_entryAdd a risk, assumption, issue, decision or dependency to the register of a plan. Costs no credits.
delete_work_itemDelete a work item and everything under it. One batch in the change history, so a project manager can restore it. The only tool that carries the destructive hint. Costs no credits.
decide_approvalApprove, reject or withdraw a change request. A request needs a second person; only its author can withdraw it. Costs no credits.
generate_plan_reviewWrite a status report for a project plan from the numbers the scheduler computed. Costs 5 credits.

The work item tools, resolve_suggestion, create_raid_entry, delete_work_item, decide_approval, list_raid, get_earned_value, get_portfolio, get_forecast, list_automations, list_templates, apply_template, list_approvals and request_change cost no credits; work item tools use wall-clock dates in the plan time zone. See Work management and Evidence linking.

Both servers also offer three prompts that start the usual flows and one resource template:

NameWhat it does
handoff_for_branchTakes a branch, finds the git sources that carry it and generates a handoff limited to that branch.
onboard_meTakes a role and an optional focus, reads the existing insights first and generates an onboarding brief only when none fits.
weekly_statusWrites a short status update from the plan, the register and the last days of activity.
flowrelay://projects/{project_id}/handoffs/latestResource template: the latest active handoff of a project as Markdown.

The generate_* tools and list_filter_options accept per-source filters (projects / eventTypes / branches / priorities), so the model works with real selectable values rather than guessing. See Filters.

The package is published on npm under the AGPL-3.0-or-later license.