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
- Open your MCP server settings (user or workspace level).
- Add a new MCP server entry and point it at
https://docs.fluid.work/mcp/fluid.public.mcp.json. - When prompted, enter your
fluidBaseUrl(your Fluid instance URL) andfluidPatToken(your PAT). - Copilot automatically launches the bridge command (
npx @ivotoby/openapi-mcp-server) and discovers the available tools. - 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?
- Less noise: agents work better when they have fewer, more relevant tools. A PM agent does not need portfolio dashboard tools and vice versa.
- Team boundaries: a portfolio manager can load only the portfolio scope; a project manager can load only the PM scope. Each team sees only the tools they use.
- Security separation: token rotation is in its own scope so it cannot be accidentally triggered by a project-management prompt.
- Easier onboarding: new users can start with the all-in-one bundle, then switch to individual scopes as they get more comfortable.
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 / Kanban | Create, update, move, archive, and query tasks on kanban boards. |
| Boards | View board details, list cards, filter by status/assignee/theme, and read custom properties. |
| Catalogs | Read and manage catalog items and catalog type definitions. |
| Data feeds | Query feed-style and export-oriented data sets for reporting. |
| Entities | Retrieve reference/metadata entities used across Fluid features. |
| Metrics | Read grouped scorecard metrics and result summaries. |
| Placeholders | Search, read, create, update, and delete placeholder records. |
| Projects | Search, 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 status | Read and update the weekly status report — strapline, executive summary, achievements, next steps, and overall RAG. |
| Status history | Read, create, update, and delete weekly/monthly RAG status entries. |
| Impacts / RAID | List impacts/risks/issues, read a single record, view count and summary roll-ups, create new records, and remove resolved ones. |
| Schedule | Read 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 lookup | Find boards by name and read board metadata including column definitions. |
| Card queries | List cards with backlog, uncompleted, or archived filters, filter by column status, or show only cards assigned to you. |
| Card mutations | Create cards, update card fields, move cards between columns, send cards to the backlog, and archive cards. |
| People | Search 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 aggregates | List 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 discovery | Find and search projects across portfolios using keywords and filters. |
| Metrics rollups | Pull grouped metric counts and detailed metric results across the portfolio. |
| Portfolio summary | Get 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
- "Post this week's status update for Project Alpha — green overall, amber on schedule."
- "Show me all open risks and issues on Project Beta."
- "Push the UAT milestone out by two weeks."
- "Create a new risk: vendor delivery delay, red severity."
- "Give me a summary of my projects and their current RAG status."
For portfolio managers
- "Show me the top 10 projects by risk score."
- "Which projects have low governance scores?"
- "Give me an executive summary of the Digital Transformation portfolio."
- "List all projects and their latest RAG status."
For board / kanban users
These use the Board Manager scope (or the broader Core platform scope).
- "Show me all cards on the Content Marketing board."
- "Create a new task: Review Q3 campaign brief."
- "Move the 'Brand guidelines' card to Done."
- "What tasks are overdue on the Engineering board?"
- "Archive all completed tasks from last month."
Authentication and token management
Getting your first token
- Log in to your Fluid instance.
- Go to your user profile and generate a Personal Access Token (PAT).
- 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:
- Ask your agent: "Rotate my Fluid token" (it will call
FluidAccount.createPersonalAccessTokenBase64). - Copy the new token value from the response.
- 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.jsonVS Code / Copilot |
https://docs.fluid.work/mcp/fluid.public.mcp.json |
fluid.claude.mcp.jsonClaude 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 |