Fluid Agentic MCP — Setup and Scope Guide

Fluid supports the Model Context Protocol (MCP) so AI agents in tools like GitHub Copilot, Claude, and other MCP-compatible clients can read and write project management data directly in Fluid.

This means Fluid stays the single source of truth for your PMO while agents handle routine tasks — updating status reports, managing risks and issues, adjusting schedules, running portfolio dashboards, and automating board workflows. Your team works in natural language; the agent calls Fluid on your behalf.

What do I need before I start?

Prerequisite Details
A Fluid instance Your Fluid tenant URL, for example https://{tenant}.fluid.work. Replace acme with your own tenant prefix (see Tenant URLs below).
A Personal Access Token (PAT) Generated in Fluid under your user profile, or via the CreatePersonalAccessTokenBase64 API. This is used instead of a username/password.
Node.js (v18 or later) Required to run the MCP bridge via npx. Download from nodejs.org.
An MCP-compatible client GitHub Copilot CLI, Claude Desktop, VS Code with MCP extension, or any tool that supports MCP server definitions.

Tenant URLs

Every Fluid organisation has its own tenant — a dedicated subdomain that hosts your data and API. Throughout this guide (and all Fluid API documentation), URLs are written as:

https://{tenant}.fluid.work

Replace {tenant} with your organisation's subdomain prefix. For example, if your Fluid instance is at https://robbie.fluid.work, then your tenant is robbie.

Environment URL pattern Example
Production https://{tenant}.fluid.work https://robbie.fluid.work
Sandbox https://{tenant}-sandbox.fluid.work https://robbie-sandbox.fluid.work

Always test integrations against your sandbox tenant before running against production. Contact your Fluid client success representative if you need a sandbox provisioned.

Not sure what your tenant is? Check the URL in your browser address bar when you log in to Fluid — the subdomain before .fluid.work is your tenant name.

Quick start

The fastest way to get started is to import a single file that includes all Fluid MCP scopes:

https://docs.fluid.work/mcp/fluid.public.mcp.json

Option A — GitHub Copilot CLI / VS Code

  1. Open your MCP server settings (user or workspace level).
  2. Add a new MCP server entry and point it at https://docs.fluid.work/mcp/fluid.public.mcp.json.
  3. When prompted, enter your fluidBaseUrl (your Fluid instance URL) and fluidPatToken (your PAT).
  4. Copilot automatically launches the bridge command (npx @ivotoby/openapi-mcp-server) and discovers the available tools.
  5. Try a test prompt: "List my projects in Fluid".

Option B — Claude Code / Claude Desktop

Claude clients use a different config shape (mcpServers) and have no prompt mechanism, so they cannot import fluid.public.mcp.json. Use fluid.claude.mcp.json instead, and set two environment variables first:

FLUID_BASE_URL   https://{tenant}.fluid.work
FLUID_PAT_TOKEN  your Base64 PAT token

Restart the client afterwards — a process only reads environment variables when it starts. Delete any servers you do not need from the file; fewer tools gives noticeably better agent behaviour.

For Claude Code you can register a single scope directly:

claude mcp add-json --scope user fluid-board-manager '{
  "command": "npx",
  "args": ["-y", "@ivotoby/openapi-mcp-server@1.16.1"],
  "env": {
    "API_BASE_URL": "https://{tenant}.fluid.work",
    "OPENAPI_SPEC_PATH": "https://docs.fluid.work/mcp/fluid-board-manager.openapi.json",
    "API_HEADERS": "Authorization:Basic <your-base64-PAT-token>,X-Fluid-Client:mcp-agent",
    "VERBOSE": "false"
  }
}'

Keep the token out of the command line. Pass it through the API_HEADERS environment variable, as shown above. Command-line arguments are readable by any other process running as the same user, so a credential placed in args is exposed to everything else on the machine.

Always include the X-Fluid-Client:mcp-agent header in manual setups — it identifies the traffic as agent-originated so your Fluid administrator can monitor and govern it (the all-in-one bundle adds it automatically).

A server showing as connected does not mean you are authenticated. Tool definitions come from the spec hosted here on docs.fluid.work, not from your tenant, so every tool lists successfully even with an expired or wrong-tenant token. Only a real tool call proves authentication.

Understanding the MCP scopes

Fluid splits its MCP interface into separate scopes so you can load only what you need. This keeps your agent focused, reduces tool clutter, and lets different teams (PM, portfolio, admin) work independently.

Scope Definition file Best for
All-in-one bundle fluid.public.mcp.json Most users. Import once and get every scope with shared prompts for your URL and token.
Core platform swagger.json Working with projects, boards, kanban tasks, catalogs, placeholders, and data feeds.
Account / token fluid-account.openapi.json Rotating your PAT before it expires. Isolated from project data for security.
Project Manager fluid-project-manager.openapi.json PM operating tasks: weekly status updates, RAID management, schedule changes.
Board Manager fluid-board-manager.openapi.json Kanban board work: finding boards, listing cards, and creating, updating, moving, or archiving cards.
Portfolio health fluid-portfolio-health.openapi.json Portfolio dashboards, governance scoring, top-project rankings, executive summaries, and cross-project reporting.

Why is it split up?

What tools are in each scope?

Core platform (FluidApi)

The broadest scope — covers projects, boards, kanban, catalogs, and data feeds.

Tool area What you can do
Actions / KanbanCreate, update, move, archive, and query tasks on kanban boards.
BoardsView board details, list cards, filter by status/assignee/theme, and read custom properties.
CatalogsRead and manage catalog items and catalog type definitions.
Data feedsQuery feed-style and export-oriented data sets for reporting.
EntitiesRetrieve reference/metadata entities used across Fluid features.
MetricsRead grouped scorecard metrics and result summaries.
PlaceholdersSearch, read, create, update, and delete placeholder records.
ProjectsSearch, read, summarize, and query project records.

Account (FluidAccount)

A single-tool scope for credential maintenance.

Tool What you can do
Create PAT (Base64)Generate a new long-lived token and replace your current one before it expires.

Project Manager (FluidProjectManager)

Day-to-day PM operating tools for status cadence, RAID, and schedule governance.

Tool area What you can do
Weekly statusRead and update the weekly status report — strapline, executive summary, achievements, next steps, and overall RAG.
Status historyRead, create, update, and delete weekly/monthly RAG status entries.
Impacts / RAIDList impacts/risks/issues, read a single record, view count and summary roll-ups, create new records, and remove resolved ones.
ScheduleRead the project schedule, update task start/end dates, adjust effort, edit task descriptions, and set assignees.

To find a project first, use the Portfolio health project discovery tools (or the Core platform Project tools) — project listing is not part of this scope.

Board Manager (FluidBoardManager)

Focused kanban tools with guided card mutations and helpful validation of board column states.

Tool area What you can do
Board lookupFind boards by name and read board metadata including column definitions.
Card queriesList cards with backlog, uncompleted, or archived filters, filter by column status, or show only cards assigned to you.
Card mutationsCreate cards, update card fields, move cards between columns, send cards to the backlog, and archive cards.
PeopleSearch people by name to resolve assignees for card creation and updates.

Portfolio health (FluidPortfolioHealth)

Cross-project reporting and portfolio-level views for leadership and PMO.

Tool area What you can do
Portfolio manager aggregatesList portfolio projects with RAG and governance scores, rank the top projects by risk/health/governance, list low-governance projects, and get an executive summary (health distribution, key milestones, key impacts).
Project discoveryFind and search projects across portfolios using keywords and filters.
Metrics rollupsPull grouped metric counts and detailed metric results across the portfolio.
Portfolio summaryGet project summary sets for dashboards, health views, and executive reporting.

Common use cases

Here are examples of what you can ask your agent once Fluid MCP is connected:

For project managers

For portfolio managers

For board / kanban users

These use the Board Manager scope (or the broader Core platform scope).

Authentication and token management

Getting your first token

  1. Log in to your Fluid instance.
  2. Go to your user profile and generate a Personal Access Token (PAT).
  3. Copy the Base64-encoded token value — this is your fluidPatToken.

Rotating your token

Tokens expire. To rotate before expiry without logging in to the Fluid UI:

  1. Ask your agent: "Rotate my Fluid token" (it will call FluidAccount.createPersonalAccessTokenBase64).
  2. Copy the new token value from the response.
  3. Update your MCP configuration with the new fluidPatToken.

Note: this is token rotation, not OAuth refresh. If your current token has already expired or been revoked, you will need to generate a new one from the Fluid UI.

Frequently asked questions

Do I need to install anything on the Fluid server?

No. MCP runs entirely on your machine. The agent connects to your Fluid instance over the standard Fluid REST API using your PAT for authentication.

Can I use just one scope instead of all of them?

Yes. Import only the OpenAPI spec you need (for example, just the Project Manager scope). The all-in-one bundle is a convenience — it is not required.

What permissions does the agent have?

The agent inherits the permissions of the Fluid user whose PAT is used. It can only see and change data that user is allowed to access in Fluid.

Will this affect my data in Fluid?

Yes — the agent can create, update, and delete records (status entries, impacts, tasks, etc.) just like you would through the Fluid UI. Review agent actions before confirming destructive operations.

Why do I get a 401 Unauthorized error?

Your PAT may be expired or invalid. Generate a new token from your Fluid profile and update your MCP configuration.

Why do I get a 403 Forbidden error?

There are three possibilities, and they currently look identical because the response body is empty:

  • Your token is wrong, expired, or from another tenant. PATs are tenant-scoped — a token from one tenant returns 403 on another.
  • MCP AI Agent Access is disabled for your tenant. With that feature off, the whole MCP surface returns 403 regardless of who you are. Ask your Fluid administrator to enable it.
  • Your account lacks permission for that specific project or board.

To tell them apart, try a route that is not part of the curated MCP surface, such as GET /rest/api/project/find?query=a, using the same token. If that also fails, the token is the problem. If it succeeds while MCP routes return 403, the feature flag is off.

The agent cannot find any tools — what should I check?

Make sure Node.js is installed, your MCP config points to the correct JSON URL, and your client has been reloaded after adding the server definition.

Are financial endpoints available?

No. Financial endpoints are excluded from the public MCP scopes. Only the tool areas listed above are currently exposed.

Can I use this with other MCP clients (not just Copilot and Claude)?

Yes. Any client that supports MCP server definitions and the npx @ivotoby/openapi-mcp-server bridge should work. The setup steps are the same.

MCP definition file reference

File URL
fluid.public.mcp.json
VS Code / Copilot
https://docs.fluid.work/mcp/fluid.public.mcp.json
fluid.claude.mcp.json
Claude Code / Claude Desktop
https://docs.fluid.work/mcp/fluid.claude.mcp.json
fluid-account.openapi.json https://docs.fluid.work/mcp/fluid-account.openapi.json
fluid-project-manager.openapi.json https://docs.fluid.work/mcp/fluid-project-manager.openapi.json
fluid-board-manager.openapi.json https://docs.fluid.work/mcp/fluid-board-manager.openapi.json
fluid-portfolio-health.openapi.json https://docs.fluid.work/mcp/fluid-portfolio-health.openapi.json