In-depth architectural comparison of the Kanboard MCP and Flconsole — Upwork jobs MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Kanboard MCP
Workplace & Productivity · Local stdio
Quality: 60/100 (Good) | Auth: API Key required
Flconsole — Upwork jobs
Workplace & Productivity · Remote HTTP/SSE
Quality: 63/100 (Good) | Auth: OAuth 2.0
Verdict Summary: Choose Kanboard MCP if you need specialized Workplace & Productivity tools running via a local process. Choose Flconsole — Upwork jobs if your workspace requires Workplace & Productivity integration with remote web transport. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Kanboard MCP when:
You need dedicated capabilities in the Workplace & Productivity domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Free / Open Source).
You have access to required keys: KANBOARD_URL, KANBOARD_USERNAME, KANBOARD_API_TOKEN.
TypeScript MCP server for Kanboard with multi-project routing via .kanboard.yaml. 37 tools, 982 unit tests, Docker multi-arch on GHCR, provenance-signed npm releases via OIDC, Diátaxis-structured docs, MIT licensed.
Free hosted MCP server that monitors new Upwork jobs and delivers matching listings to AI agents including Claude Code, Codex, Cursor, and the Claude app. Telegram sign-in is required; no Upwork login or API key is needed.
Category & Scope
Tools & Capabilities Breakdown
Kanboard MCP Tools (39)
add_project_user
Add a user to a Kanboard project with the given role. Role defaults to 'project-member' if not specified. Use list_project_users to find user ids and list_projects to find project ids; to unlink a member use remove_project_user. Returns { user_id, project_id, role } on success.
attach_file_to_task
Upload a file to a Kanboard task as an attachment. Provide either file_path (local file) or content_base64 (inline base64 content) — not both. project_id is resolved automatically from the task (no need to provide it). Maximum file size: 5 MB (5,242,880 bytes) — larger files return VALIDATION_ERROR before any HTTP request is made. Returns { file_id } on success.
close_task
Close (archive) an active Kanboard task. The task is set inactive and leaves the active board but is preserved — this is NOT a delete. Reversible: restore it with reopen_task. To permanently remove a task instead, use delete_task. Returns { ok: true, task_id } on success.
create_column
Add a column to a Kanboard project board. Project resolved from explicit project_id/project_identifier or .kanboard.yaml. To reorder it use move_column, to rename or change its WIP limit use update_column, to remove it use delete_column. Returns { column_id } on success.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Kanboard MCP is categorized under Workplace & Productivity and uses a local stdio subprocess. In contrast, Flconsole — Upwork jobs belongs to Workplace & Productivity using remote streaming HTTP/SSE transport. Select Kanboard MCP when you need capabilities focused on workplace & productivity and Flconsole — Upwork jobs when you require tools for workplace & productivity.
Create a comment on a Kanboard task. The comment author is automatically set to the authenticated user (via getMe() cache); do NOT pass user_id — it is injected server-side. To edit a comment's body use update_comment; to remove one use delete_comment. Returns { comment_id } on success.
create_project
Create a new Kanboard project. Requires a name (1–255 chars). Optionally provide a description, short identifier, owner user id, start_date / end_date (ISO 8601 string or epoch seconds), and email. After creating, adjust the board with create_column / create_swimlane, add members with add_project_user, and edit attributes with update_project. Returns { project_id } on success.
create_subtask
Create a subtask under an existing Kanboard task. Status: 0 = todo (default), 1 = in progress, 2 = done. To list a task's subtasks use list_subtasks; to edit one use update_subtask. Returns { subtask_id, task_id } on success.
create_swimlane
Add a swimlane to a Kanboard project. Project resolved from explicit project_id/project_identifier or .kanboard.yaml. To reorder it use move_swimlane, to rename it use update_swimlane, to remove it use delete_swimlane. Returns { swimlane_id } on success.
create_task
Create a new task in a Kanboard project. Project is resolved from explicit project_id or project_identifier, or from .kanboard.yaml. Optional fields (column_id, owner_id, category_id, swimlane_id) fall back to .kanboard.yaml defaults when not provided. To create many tasks at once use create_tasks_batch; to move the task afterward use move_task_position. Returns { task_id, project_id } on success.
create_tasks_batch
Bulk-create tasks in a Kanboard project using a single JSON-RPC batch request. Accepts 1–100 tasks per call. Non-atomic: partial failure is possible — check failed[] for per-task errors. Optional fields (column_id, owner_id, category_id, swimlane_id) fall back to .kanboard.yaml defaults when not provided. Returns { created: [...], failed: [...] } — never throws on partial failure.
delete_column
Permanently delete a Kanboard column from a project board. DESTRUCTIVE and irreversible — requires explicit `confirm: true`. To rename a column or change its WIP limit use update_column; to reorder it use move_column. Returns { ok: true, column_id } on success.
delete_comment
Permanently delete a Kanboard comment. DESTRUCTIVE and irreversible — requires explicit `confirm: true`. To edit a comment's text instead of deleting it use update_comment. Returns { ok: true, comment_id } on success.
+27 more tools listed on main page
Flconsole — Upwork jobs Tools (11)
find_jobs
New jobs by a feed, all feeds or any filters
get_job_details
Full data for the jobs you picked
list_feeds
Your feeds with filters and status
create_feed
Creates a feed; needs your approval
update_feed
Changes, pauses or resumes a feed
delete_feed
Deletes a feed; needs your approval
preview_filters
How many jobs matched in the last hours, with samples