FluentBoards MCP Server
Provides comprehensive integration with FluentBoards project management system on WordPress, enabling AI agents to manage boards, tasks, comments, labels, and stages through the FluentBoards REST API with advanced safety controls and board focus mode.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FluentBoards MCP Server list tasks for board 14"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FluentBoards MCP Server
A comprehensive Model Context Protocol (MCP) server for FluentBoards project management system with advanced safety features and board focus mode.
Overview
This MCP server provides AI agents with full access to FluentBoards functionality through a secure, modular architecture. It enables AI assistants to manage boards, tasks, comments, and labels programmatically while offering advanced safety controls and focused workflows.
Related MCP server: WordPress MCP Server
Key Features
β¨ Board Focus Mode - Streamline operations for a specific board
π‘οΈ Delete Safety Controls - Granular control over destructive operations
π§ Modular Architecture - Clean, maintainable code structure
π Comprehensive API Coverage - Full FluentBoards functionality
π― Dynamic Tool Registration - Context-aware tool availability
Architecture
src/
βββ config/ # Configuration management with safety controls
βββ utils/ # Utilities (formatting, validation, safety)
βββ api/ # API client and HTTP handling
βββ types/ # TypeScript types and Zod schemas
βββ tools/ # MCP tool implementations
β βββ boards.ts # Board management (conditional registration)
β βββ tasks.ts # Task management tools
β βββ comments.ts # Comment management tools
β βββ labels.ts # Label management tools
β βββ debug.ts # Debug and testing tools
βββ index.ts # Main server entry pointConfiguration Modes
1. All Boards Mode (Default)
Access to all boards and full board management capabilities.
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-password
# No BOARD_ID set2. Board Focus Mode π―
Streamlined operations focused on a specific board. Automatically disables board manipulation tools.
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-password
BOARD_ID=14 # Focus on board 14Available Tools
Tool availability depends on your configuration mode:
Debug Tools (Always Available)
debug_test- Test server connectivity and API status
Board Management (All Boards Mode Only)
list_boards- List all boards with paginationcreate_board- Create new boards with type validationdelete_board- Delete boards permanently (safety controlled)
Board Operations (Always Available, Scoped by Focus)
get_board- Get specific board detailscreate_stage- Create new stages in boards
Task Management (Always Available, Scoped by Focus)
list_tasks- List tasks in a boardget_task- Get detailed task information with comments/attachmentscreate_task- Create new tasks with rich formattingupdate_task- Update existing taskschange_task_status- Move tasks between stagesdelete_task- Delete tasks permanently (safety controlled)
Comment Management (Always Available, Scoped by Focus)
add_comment- Add comments/replies to tasks with notifications
Label Management (Always Available, Scoped by Focus)
add_label- Add labels to tasksremove_label- Remove labels from tasksedit_label- Edit label properties (title, colors)create_label- Create new labels with custom colorsdelete_label- Delete labels permanently (safety controlled)
Board Focus Mode π―
When BOARD_ID is configured, the server enters Board Focus Mode:
What Changes:
Board manipulation tools are removed (
list_boards,create_board,delete_board)All operations are scoped to the focused board only
Tool count reduces from ~14 to ~11 tools
Safety from accidental cross-board operations
Example Usage:
# Set focus to board 14
export BOARD_ID=14
# Available operations (all scoped to board 14):
get_board(board_id: 14) # β
Works
get_board(board_id: 15) # β Blocked
create_task(board_id: 14, ...) # β
Works
create_task(board_id: 15, ...) # β Blocked
# Not available in focus mode:
list_boards() # β Tool not registered
create_board(...) # β Tool not registered
delete_board(...) # β Tool not registeredDelete Operation Safety π‘οΈ
β οΈ IMPORTANT: Delete operations are disabled by default for safety.
Safety Configuration
# Core safety settings
ENABLE_DELETES=false # Master switch (default: false)
REQUIRE_DELETE_CONFIRMATION=true # Require confirmation (default: true)
ALLOWED_DELETE_TYPES=task,label # Allowed types (default: none)Safety Levels
Level 1: No Deletes (Default - Safest)
ENABLE_DELETES=falseAll delete tools return safety errors.
Level 2: Selective Deletes with Confirmation
ENABLE_DELETES=true
REQUIRE_DELETE_CONFIRMATION=true
ALLOWED_DELETE_TYPES=task,labelOnly task and label deletions allowed, confirmation required.
Level 3: Full Deletes with Confirmation
ENABLE_DELETES=true
REQUIRE_DELETE_CONFIRMATION=true
ALLOWED_DELETE_TYPES=board,task,labelAll deletions allowed, confirmation required.
Level 4: Unrestricted (Not Recommended)
ENABLE_DELETES=true
REQUIRE_DELETE_CONFIRMATION=false
ALLOWED_DELETE_TYPES=board,task,labelUsing Delete Operations
When enabled, delete operations require confirmation:
// Valid confirmation formats:
delete_task(board_id: 1, task_id: 5, confirm_delete: true)
delete_task(board_id: 1, task_id: 5, confirm_delete: "yes")
delete_task(board_id: 1, task_id: 5, confirm_delete: "confirm")
// Without confirmation (when required):
delete_task(board_id: 1, task_id: 5) // β Safety errorInstallation & Setup
Prerequisites
FluentBoards WordPress Plugin - The MCP server connects directly to FluentBoards REST API
WordPress Application Password - For secure authentication
No additional WordPress plugins required
1. Install Dependencies
npm install2. Build the Server
npm run build3. Configure Environment
All Boards Mode:
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-passwordBoard Focus Mode:
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-password
BOARD_ID=144. Configure MCP Client
Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"fluent-boards": {
"command": "node",
"args": ["/path/to/mcp-server-app/dist/index.js"],
"env": {
"WORDPRESS_URL": "https://your-site.local",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "your-app-password",
"BOARD_ID": "14"
}
}
}
}Claude Desktop:
{
"mcpServers": {
"fluent-boards": {
"command": "node",
"args": ["/path/to/mcp-server-app/dist/index.js"],
"env": {
"WORDPRESS_URL": "https://your-site.local",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "your-app-password"
}
}
}
}Complete Configuration Reference
# Required: WordPress connection
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-password
# Optional: Board focus mode
BOARD_ID=14 # Enable board focus mode
# Optional: Delete operation safety
ENABLE_DELETES=false # Enable delete operations
REQUIRE_DELETE_CONFIRMATION=true # Require confirmation parameter
ALLOWED_DELETE_TYPES=task,label # Comma-separated: board,task,labelDevelopment
Building
npm run buildTesting
# Run integration tests
npm test
# Run specific integration test
npx ts-node tests/integration.test.ts
# Run development/debugging scripts (see scripts/README.md)
npx ts-node scripts/testing/test-connection.ts
npx ts-node scripts/testing/test-admin-create.tsAdding New Tools
Create tool in appropriate module:
// src/tools/example.ts
export function registerExampleTools(server: McpServer) {
server.tool(
"example_tool",
"Description of the tool",
{
board_id: z.number().int().positive().describe("Board ID"),
param1: z.string().describe("Parameter description"),
},
async (args) => {
const { board_id, param1 } = args;
// Validate board access in focus mode
const accessCheck = validateBoardAccess(board_id);
if (!accessCheck.allowed) {
return formatResponse(createBoardFocusError(accessCheck));
}
// Implementation
const response = await api.get(`/endpoint/${board_id}`);
return formatResponse(response.data);
}
);
}Register in main server:
// src/index.ts
import { registerExampleTools } from './tools/example.js';
registerExampleTools(server);API Integration
The MCP server connects directly to the FluentBoards WordPress REST API:
Base URL:
{WORDPRESS_URL}/wp-json/fluent-boards/v2Authentication: WordPress Application Password (secure, built-in)
Connection: Direct HTTPS (no proxy required)
Format: JSON requests/responses
Rate Limiting: Handled by WordPress
No Proxy Plugin Required
The MCP server uses WordPress's native REST API and Application Password authentication. No additional WordPress plugins are needed for the MCP server to function.
Response Format
All tools return standardized MCP responses:
{
"content": [
{
"type": "text",
"text": "{\n \"board\": {\n \"id\": 14,\n \"title\": \"My Board\"\n }\n}"
}
]
}Text Formatting Features
The server automatically formats text content:
β Proper line breaks for markdown
β Header formatting (
##)β List formatting (
-and numbered)β Checkbox formatting (
[ ]and[x])β Status indicators (
β,β)β HTML entity decoding
Error Handling
Comprehensive error handling with specific error types:
API Errors
{
"error": "API request failed",
"status": 404,
"message": "Board not found"
}Safety Errors
{
"error": "Delete operation not allowed",
"reason": "Delete operations are disabled",
"code": "DELETES_DISABLED"
}Board Focus Errors
{
"error": "Operation outside board focus scope",
"reason": "Operations are focused on board 14",
"code": "OUT_OF_FOCUS"
}Troubleshooting
Tool Count Changes
Expected: Tool count changes when switching between focus modes
All Boards: ~14 tools available
Board Focus: ~11 tools available (board manipulation tools removed)
Connection Issues
# Test server connectivity
npm run test
# Test direct FluentBoards API access
curl -u "username:app-password" "https://your-site.local/wp-json/fluent-boards/v2/projects/list-of-boards"
# Test WordPress REST API is working
curl "https://your-site.local/wp-json/"Permission Issues
Ensure WordPress user has FluentBoards access
Verify Application Password is correctly generated
Check WordPress REST API is enabled
Ensure FluentBoards plugin is active
No proxy plugin installation required
Future Enhancements
π Performance monitoring and metrics
π Caching layer for frequently accessed data
πͺ Webhook support for real-time updates
π¦ Bulk operations for efficiency
π File upload and attachment management
π Advanced search and filtering
π Reporting and analytics tools
π Enhanced authentication methods
Contributing
Follow architecture patterns - Use modular tool organization
Implement safety controls - Add validation and access checks
Add comprehensive error handling - Include specific error codes
Use input validation - Zod schemas for all parameters
Format responses consistently - Use utility functions
Add tests - Cover new functionality thoroughly
Update documentation - Keep README current
License
This project is part of the FluentBoards ecosystem.
Available Tools
15 toolsadd_commentC
Add a comment to a task
Inputs: board_id (required), task_id (required), comment (required), comment_type, +2 more.
add_labelC
Add a label to a task
Inputs: board_id (required), task_id (required), label_id (required).
change_task_statusC
Change the status/stage of a task
Inputs: board_id (required), task_id (required), stage_id (required).
create_labelC
Create a new label on a board
Inputs: board_id (required), title (required), bg_color (required), color.
create_stageC
Create a new stage in a board
Inputs: board_id (required), title (required), position.
create_taskC
Create a new task
Inputs: board_id (required), title (required), description, stage_id.
debug_testB
Test if MCP server is working
Inputs: no named parameters.
delete_labelC
Delete a label from a board permanently
Inputs: board_id (required), label_id (required), confirm_delete.
delete_taskC
Delete a task permanently
Inputs: board_id (required), task_id (required), confirm_delete.
edit_labelC
Edit a label's title and colors
Inputs: board_id (required), label_id (required), title (required), bg_color, +1 more.
get_boardB
Get details of a specific board
Inputs: board_id (required).
get_taskB
Get details of a specific task including comments and attachments
Inputs: board_id (required), task_id (required).
list_tasksC
List tasks in a board
Inputs: board_id (required).
remove_labelC
Remove a label from a task
Inputs: board_id (required), task_id (required), label_id (required).
update_taskC
Update an existing task
Inputs: board_id (required), task_id (required), title, description, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 15 tools
Every tool has a clearly distinct purpose with no ambiguity. Tools target specific resources (tasks, labels, stages, boards) and actions (create, get, update, delete, add, remove, change), making it easy for an agent to select the correct tool. For example, 'add_label' vs 'create_label' vs 'remove_label' are clearly differentiated by whether they operate on tasks or boards.
The naming follows a consistent verb_noun pattern throughout with one minor deviation. Most tools use clear action words followed by the resource (e.g., create_task, get_board, update_task). The only inconsistency is 'debug_test', which doesn't follow the domain-specific pattern but is clearly a utility tool.
With 15 tools, this is well-scoped for a project management/board system. Each tool earns its place by covering essential operations for tasks, labels, stages, and boards. The count supports comprehensive workflows without being overwhelming for the domain.
The tool set provides complete CRUD/lifecycle coverage for the domain. It includes creation (create_task, create_label, create_stage), retrieval (get_board, get_task, list_tasks), updates (update_task, change_task_status, edit_label, add_comment, add_label), and deletion (delete_task, delete_label, remove_label). No obvious gaps exist for core board management operations.
Related MCP Connectors
Remote MCP for Kanban AI boardsβmanage projects, tasks, and comments from AI tools.
AI agents use CalmBoard MCP to access board data, tasks, insights, and project workflows.
Manage your WordPress site from your AI assistant: posts, pages, media, comments and WooCommerce.
Create and update Boords projects, scripts, storyboards, frames and comments from your AI app.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with WordPress sites through REST APIs, allowing programmatic management of posts, users, comments, categories, and tags with secure authentication.2950MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage WordPress sites through natural conversation, supporting post creation, content updates, site queries, and draft-to-publish workflows via the WordPress REST API.9MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage WordPress sites through the WordPress REST API, supporting content, media, users, settings, and Elementor management with safety policies for production use.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude to interact with Trello boards through natural language, supporting board operations including card management, list manipulation, attachments, labels, comments, checklists, and daily workflow automation.-