backlog-mcp
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., "@backlog-mcpsync all my backlog issues to local tasks folder"
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.
Backlog MCP Server
A Model Context Protocol (MCP) server for syncing Backlog issues to a local .tasks folder. This allows you to use Backlog issue management within your code editor through MCP-compatible tools like Cursor or Claude Desktop.
Features
š Bidirectional Sync: Download issues from Backlog and push local changes back
š Simple Format: Clean markdown files with just title and description
š Flexible Organization: Organize tasks in nested folders (sprint-3, backlog, etc.)
š Automatic Timestamps: Incremental sync based on last update time
š Smart Updates: Only syncs changed issues after initial sync
š MCP Compatible: Works with Cursor, Claude Desktop, and other MCP clients
Related MCP server: Ruminer Browser Agent
Installation
Option 1: NPM (Recommended)
npm install -g backlog-mcpOption 2: Local Development
git clone <repository-url>
cd backlog-mcp
npm install
npm run buildConfiguration
This server uses environment variables for configuration.
Get Your Backlog API Key
Log in to your Backlog space
Go to Personal Settings > API
Generate a new API key
Copy the key for use in the configuration below
Configuration Options
Option 1: Environment Variables (Recommended)
Set the following environment variables:
Required:
BACKLOG_API_KEY- Your Backlog API keyBACKLOG_BASE_URL- Your Backlog space URL (e.g.,https://yourspace.backlog.com)BACKLOG_PROJECT_KEY- Your project key (e.g.,PROJ)
Optional:
BACKLOG_TASKS_DIR- Local tasks directory (defaults to.tasks)BACKLOG_IGNORE_ISSUE_TYPES- Comma-separated list of issue types to ignore (e.g.,Bug,Task)
Option 2: Configuration File
Create a config.json file in your project root:
{
"apiKey": "your-backlog-api-key",
"baseUrl": "https://yourspace.backlog.com",
"projectKey": "YOUR_PROJECT_KEY",
"tasksDir": ".tasks",
"ignoreIssueTypes": ["Bug", "Task"]
}Usage with Cursor/Claude Desktop
Add to your MCP settings file:
Using NPM Installation
{
"mcpServers": {
"backlog-mcp": {
"command": "npx",
"args": [
"-y",
"github:danglephuc/backlog-mcp"
],
"env": {
"BACKLOG_API_KEY": "your-api-key",
"BACKLOG_BASE_URL": "https://yourspace.backlog.com",
"BACKLOG_PROJECT_KEY": "YOUR_PROJECT_KEY"
}
}
}
}Using Local Build
{
"mcpServers": {
"backlog-mcp": {
"command": "node",
"args": ["/path/to/backlog-mcp/dist/index.js"],
"env": {
"BACKLOG_API_KEY": "your-api-key",
"BACKLOG_BASE_URL": "https://yourspace.backlog.com",
"BACKLOG_PROJECT_KEY": "YOUR_PROJECT_KEY"
}
}
}
}Replace:
your-api-keywith your Backlog API keyyourspacewith your Backlog space nameYOUR_PROJECT_KEYwith your project key (e.g., "PROJ")
Available Tools
sync-issues
Syncs issues from Backlog to local .tasks folder with automatic incremental updates.
Parameters: None (uses automatic timestamp tracking)
Features:
First sync: Downloads all issues
Subsequent syncs: Only downloads updated issues
Preserves your folder organization
update-issue
Pushes local changes back to Backlog.
Parameters:
issueKey(required): Issue key (e.g., "PROJ-123")
Example: "Update task PROJ-123 to Backlog"
get-issue
Gets details of a specific issue from local files.
Parameters:
issueKey(required): Issue key (e.g., "PROJ-123")parentIssue(optional): If true, include all child issues when this is a parent issue/feature
Features:
Reads from local
.tasksfolderWhen
parentIssue=true, returns the main issue plus all child issues in the same folderUseful for understanding the full scope of a feature with all its sub-tasks
Examples:
Get single issue: "Get task PROJ-123"
Get parent with all children: "Get feature PROJ-100 with all child issues"
test-connection
Tests your Backlog API connection.
Parameters: None
list-task-files
Lists all synced task files.
Parameters: None
bulk-create-tasks
Creates Backlog issues from local temporary task files in parent folders. This tool scans for parent task folders (e.g., SBK-2) and creates issues from temporary files with pattern PARENT-{number}-{random} (e.g., SBK-2-1, SBK-2-2).
Parameters: None
Features:
Scans for parent task folders following pattern
PARENT-{number}Finds temporary task files with pattern
PARENT-{number}-{random}Skips files that already have real Backlog issue keys (e.g.,
PROJ-123.md)Creates issues in Backlog with proper parent-child relationships
Renames local files to use real Backlog issue keys
Preserves folder organization
Example Workflow:
Create parent folder:
SBK-2/Create temporary files:
SBK-2-1.md,SBK-2-2.md, etc.Run
bulk-create-taskstoolFiles are renamed to real issue keys:
PROJ-123.md,PROJ-124.mdIssues are created in Backlog with proper parent relationships
Example Folder Structure:
.tasks/
āāā SBK-2/ ā Parent task folder
ā āāā SBK-2-1.md ā Temporary file (will be processed)
ā āāā SBK-2-2.md ā Temporary file (will be processed)
ā āāā PROJ-123.md ā Real issue key (will be skipped)
ā āāā PROJ-124.md ā Real issue key (will be skipped)
āāā PROJ-100/ ā Another parent folder
āāā PROJ-100-1.md ā Temporary file (will be processed)
āāā PROJ-100-2.md ā Temporary file (will be processed)File Organization
Smart Folder Structure
.tasks/
āāā .last-sync ā Automatic timestamp tracking
āāā others/ ā New synced tasks go here
ā āāā PROJ-123.md
ā āāā PROJ-124.md
āāā sprint-3/ ā Organize however you want
ā āāā backend/
ā ā āāā PROJ-125.md
ā āāā frontend/
ā āāā PROJ-126.md
āāā backlog/
āāā high-priority/
ā āāā PROJ-127.md
āāā PROJ-128.mdHow It Works
Initial sync: All issues go to
others/folderManual organization: Move files to your preferred folders
Subsequent syncs: Updates issues wherever they are located
New issues: Always go to
others/folder
Simple File Format
# Task Title
Task description content goes here.
All content after the title is treated as description.
## Sections
You can use any markdown formatting you want.
- Lists
- **Bold text**
- Links, etc.Workflow Example
Sync issues:
sync-issuesā Downloads toothers/folderOrganize: Move
PROJ-123.mdtosprint-3/backend/Edit locally: Modify title or description
Push changes:
update-issuewithissueKey: PROJ-123Next sync: Updates
PROJ-123.mdinsprint-3/backend/, new issues go toothers/
Development
Scripts
npm run build- Build TypeScriptnpm run dev- Watch mode for developmentnpm start- Run built server
Project Structure
src/
āāā index.ts # Entry point
āāā server.ts # MCP server and tools
āāā services/
ā āāā BacklogClient.ts # Backlog API client with pagination
ā āāā TaskFileManager.ts # File management with nested search
āāā types/
ā āāā backlog.ts # TypeScript types
āāā utils/
āāā config.ts # Configuration handlingTroubleshooting
Connection Issues
Invalid API Key: Check your API key has proper permissions
Wrong Base URL: Ensure URL matches your Backlog space
Project Access: Verify you have access to the specified project
MCP Protocol Issues
JSON Parse Errors: Ensure you're using the latest build
Tool Not Found: Check server configuration in your MCP client
No Response: Verify environment variables are set correctly
File Issues
Missing Files: Run
sync-issuesto download latestUpdate Failed: Check if issue exists in Backlog
Organization Lost: Files stay where you put them across syncs
License
MIT
Available Tools
6 toolsbulk-create-tasksBulk Create TasksB
Create Backlog issues from local temporary task files in parent folders
Inputs: no named parameters.
get-issueGet Backlog IssueA
Get details of a specific Backlog issue
Inputs: issueKey (required).
list-task-filesList Task FilesA
List existing task files in .tasks directory
Inputs: no named parameters.
sync-issuesSync Backlog IssuesA
Sync issues from Backlog to local .tasks folder
Inputs: no named parameters.
test-connectionTest Backlog ConnectionA
Test connection to Backlog API
Inputs: no named parameters.
update-issuesUpdate Backlog IssuesC
Update Backlog issues with changes from local task files
Inputs: issueKeys (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 6 tools
Each tool has a distinct role: syncing remote-to-local, local-to-remote, fetching a single issue, creating issues in bulk, listing local files, and testing connectivity. Sync-issues and update-issues are closely related as inverse operations, but their descriptions clarify direction. No two tools appear to do the same thing.
Tool names mostly follow a verb-noun pattern: sync-issues, get-issue, update-issues, list-task-files, test-connection. Minor inconsistency exists with get-issue singular versus plural elsewhere, and bulk-create-tasks uses a compound verb prefix. Overall the pattern is predictable and readable.
Six tools is well-scoped for a Backlog-to-local-file synchronization server. Each tool covers a necessary operation without redundancy or bloat. The count feels appropriate for the stated purpose.
The tool set covers the core sync workflow: test connection, read local files, fetch remote issues, push updates, and bulk-create issues from local files. A single-issue create or delete operation is missing, but the bulk-create and update tools cover the main lifecycle needs. Minor gaps exist but agents can likely complete typical workflows.
Maintenance
Related MCP Connectors
Convert files, URLs, and documents to clean, AI-ready Markdown via MCP.
Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.
Read and write shared BitsWeave context, projects, tasks, and work sessions through MCP.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Related MCP Servers
- AlicenseBqualityDmaintenanceManages backlog items and todos with status tracking, priorities, and dependencies. Stores work items as human-readable markdown files with automatic versioning.7MIT
- AlicenseNot gradedqualityDmaintenanceSyncs AI conversations from multiple platforms to local Markdown files for your second brain, and provides browser automation tools via MCP for agentic workflows.AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables management of a local-first, per-repo ticket board with git/PR pipeline using markdown files and MCP tools for ticket operations.MIT
- AlicenseNot gradedqualityAmaintenanceKeeps Jira Cloud, Jira Server, Linear or its own built-in tracker (plus Confluence pages) in one local SQLite file. Its MCP tools answer from that file: read-only SQL, full-text search across issues, comments and wiki pages, issue detail, sprint and retro reads.47Apache 2.0