Package Exports
- @flowboardlabs/mcp-server
- @flowboardlabs/mcp-server/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@flowboardlabs/mcp-server) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@flowboardlabs/mcp-server
MCP (Model Context Protocol) server for FlowBoard — lets AI tools like Claude Code, Cursor, and other MCP-compatible assistants manage your projects, tasks, ideas, and releases directly from your IDE.
Setup
1. Get an API Key
Go to Settings > Integrations > API Keys in your FlowBoard workspace. Click "Generate API Key" and copy it.
2. Configure Your AI Tool
Add the following to your MCP server configuration:
macOS / Linux:
{
"mcpServers": {
"flowboard": {
"command": "npx",
"args": ["-y", "@flowboardlabs/mcp-server"],
"env": {
"FLOWBOARD_API_KEY": "your-api-key-here",
"FLOWBOARD_USER_EMAIL": "you@example.com"
}
}
}
}Windows (REQUIRED — npx needs cmd wrapper):
{
"mcpServers": {
"flowboard": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@flowboardlabs/mcp-server"],
"env": {
"FLOWBOARD_API_KEY": "your-api-key-here",
"FLOWBOARD_USER_EMAIL": "you@example.com"
}
}
}
}Important: On Windows, you must use the
cmd /cwrapper. Usingnpxdirectly as the command will fail silently.
Where to put this config
- Claude Code:
.mcp.jsonin your project root - Cursor: Cursor MCP settings
- Other tools: Check your tool's MCP configuration docs
Environment Variables
| Variable | Required | Description |
|---|---|---|
FLOWBOARD_API_KEY |
Yes | Your FlowBoard API key |
FLOWBOARD_API_URL |
No | Custom API URL (for self-hosted instances) |
FLOWBOARD_USER_EMAIL |
No | Your email address in the workspace. Enables user-aware features: mine filter in search, and proper comment attribution |
Available Tools — 17 tools across 5 categories
Projects
| Tool | Description |
|---|---|
list_projects |
List all projects in the workspace. Returns id, name, description, color. Use project IDs when creating flow tasks (feature/improvement/fix/chore). |
Tasks
| Tool | Description |
|---|---|
search_tasks |
Search and filter tasks. Params: board (flows/bugs/ideas), status (open/in_progress/blocked/ready/done/paused), statuses (comma-separated), projectId, assignee (email or ID), type (idea/bug/feature/improvement/fix/chore), tags (comma-separated), limit (default 100, max 500), mine (boolean — requires FLOWBOARD_USER_EMAIL). |
get_task |
Get a single task by taskId or taskNumber, including all comments. Returns full task details: title, description, status, type, tags, assignee, time logs, QA status, dependencies, and comments thread. |
create_task |
Create a new task. Params: title (3-200 chars), description (0-5000 chars), type (idea/bug/feature/improvement/fix/chore), projectId (required for feature/improvement/fix/chore — use list_projects to find IDs), tags (comma-separated, max 10). Ideas go to the ideas board, bugs to bugs board, flow types to the flows board under the specified project. |
update_task |
Update a task by taskId or taskNumber. Params: status (open/in_progress/blocked/ready/done/paused), comment (1-5000 chars — adds a comment), assignee (email or ID), branchName (git branch, max 200 chars), externalReferenceType (github_pr/gitlab_mr), externalReferenceUrl, externalReferenceTitle. Multiple fields can be set in one call. |
delete_task |
Soft-delete (trash) a task by taskId or taskNumber. Task can be restored from trash in the UI. |
Ideas
| Tool | Description |
|---|---|
list_ideas |
Shortcut for search_tasks with board=ideas. Params: status, limit. |
vote_idea |
Toggle a vote on an idea by taskId or taskNumber. Voting again removes the vote. Returns updated vote count. |
Comments
| Tool | Description |
|---|---|
get_comments |
Get comments for a task by taskId or taskNumber. Params: limit (default 50, max 100). Returns comment text, author, timestamp, and type. |
add_comment |
Add a comment to a task by taskId or taskNumber. Params: text (1-5000 chars). When FLOWBOARD_USER_EMAIL is set, the comment is attributed to your account. |
Releases
| Tool | Description |
|---|---|
list_releases |
List confirmed releases. Params: limit (default 25, max 100). Returns name, version, status, task count, dates. |
get_release |
Get a single release by releaseId with all associated tasks (id, title, status, type, taskNumber). |
get_release_draft |
Get the current release draft state. Returns two lists: releaseItems (tasks staged for the next release) and hotfixItems (bugs staged for a hotfix), each with full task details, plus the draft version and deployNotes. Requires canManageReleases API key permission. |
add_to_release_draft |
Add task(s) to the release or hotfix draft. Params: taskIds (comma-separated) and/or taskNumbers (comma-separated), list ("release" or "hotfix", default "release"). Tasks are mutually exclusive between lists — adding to one removes from the other. Requires canManageReleases. |
remove_from_release_draft |
Remove task(s) from the release or hotfix draft. Params: taskIds and/or taskNumbers, list. Requires canManageReleases. |
set_release_version |
Set the version string for the release draft. Params: version (e.g. "1.2.0"). Requires canManageReleases. |
confirm_release |
Confirm and publish a release from the current draft. Creates the release, archives all included tasks (sets releaseId and archived: true), and clears the draft. Params: version (overrides draft version), name (defaults to "Release {version}"), isPublic (boolean), environments (comma-separated, e.g. "Staging,Production"), list ("release" or "hotfix"). Requires canManageReleases. |
Task identification
All task-related tools accept either a taskId (Firestore document ID) or a taskNumber (the human-readable integer, e.g. 42). Task numbers are easier to work with — agents can extract them from git branch names like feature/42-fix-login.
User identity
When FLOWBOARD_USER_EMAIL is set, the MCP server sends an X-User-Email header with every request. This enables:
minefilter —search_taskswithmine: truereturns only tasks assigned to you- Comment attribution — comments added via
add_commentorupdate_taskare attributed to your user account instead of the generic "api" author
API Key Permissions
Each tool requires specific API key permissions. Enable them when generating a key in Settings > Integrations:
| Permission | Tools it unlocks |
|---|---|
| Submit Ideas | create_task (type: idea) |
| Submit Bugs | create_task (type: bug) |
| Search Tasks | search_tasks, get_task, list_ideas, list_releases, get_release, get_comments |
| Update Tasks | update_task, delete_task, vote_idea |
| View Projects | list_projects |
| Manage Comments | add_comment, plus comment field in update_task |
| Manage Releases | get_release_draft, add_to_release_draft, remove_from_release_draft, set_release_version, confirm_release |
For a full-featured MCP agent, enable all permissions. For read-only, enable only Search Tasks and View Projects.
Example Prompts
Once configured, just ask naturally:
- "Show me my in-progress tasks"
- "Show me all open bugs in the backend project"
- "Create a bug: login page returns 500 when email contains a plus sign"
- "Move task 42 to in_progress and assign it to me"
- "What are the latest releases?"
- "Add a comment to task 15: Fixed in PR #42"
- "Add tasks 10, 12, and 15 to the release draft"
- "Set the release version to 2.1.0 and confirm the release"
- "Show me what's in the release draft right now"
- "Add bug 88 to the hotfix draft and confirm the hotfix"
Requirements
- Node.js >= 18
- A FlowBoard workspace with an API key
License
MIT