Cursor là IDE fork từ VS Code, có Agent Mode cho phép AI thực thi nhiều bước tự động (đọc file, sửa code, chạy lệnh) thay vì chỉ chat gợi ý. Khi gắn thêm một Jira MCP server, Agent Mode trong Cursor không còn giới hạn ở phạm vi code trong workspace — nó có thể đọc issue, cập nhật trạng thái, và tự liên kết commit/PR với ticket Jira, tất cả ngay trong panel chat mà không cần chuyển sang tab browser. Bài này hướng dẫn cấu hình mcp.json cho Cursor, các prompt thực tế để đọc/ghi issue, cách tự động liên kết code với ticket, và những hạn chế thực tế bạn cần biết trước khi đưa vào quy trình chính thức của team.
Kết nối Jira MCP vào Cursor Agent Mode
Cursor đọc cấu hình MCP từ file mcp.json, có thể đặt ở cấp project (.cursor/mcp.json trong root repo, chỉ áp dụng cho project đó — nên phù hợp khi mỗi repo cần một Jira project key khác nhau) hoặc cấp global (~/.cursor/mcp.json, áp dụng cho mọi workspace mở bằng Cursor).
Cấu hình server self-host qua mcp-atlassian
{
"mcpServers": {
"jira": {
"command": "uvx",
"args": ["mcp-atlassian"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "you@company.com",
"JIRA_API_TOKEN": "ATxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Vì file này thường nằm trong repo (.cursor/mcp.json), tuyệt đối không commit giá trị API token thật vào git. Cách an toàn hơn là tham chiếu biến môi trường của hệ điều hành thay vì hardcode:
export JIRA_API_TOKEN="ATxxxxxxxxxxxxxxxxxxxxxxxxxx"
và thêm .cursor/mcp.json vào .gitignore nếu file có giá trị nhạy cảm, hoặc dùng một file mcp.json mẫu (mcp.json.example) commit lên git còn file thật để local mỗi máy.
Cấu hình Remote MCP qua OAuth
Nếu dùng Atlassian Remote MCP Server (không cần quản lý token thủ công):
{
"mcpServers": {
"jira-remote": {
"url": "https://mcp.atlassian.com/v1/sse"
}
}
}
Cursor sẽ tự phát hiện đây là server hỗ trợ OAuth và mở luồng đăng nhập trong browser ở lần dùng đầu tiên.
Bật server và kiểm tra trong Cursor Settings
Vào Cursor Settings → MCP, bạn sẽ thấy server jira liệt kê với toggle enable/disable và danh sách tool đã phát hiện được (jira_search, jira_get_issue, jira_create_issue, jira_transition_issue, jira_add_comment...). Nếu server hiện lỗi đỏ, thường do sai JIRA_URL (thừa dấu / cuối) hoặc token hết hạn.
Kích hoạt tool trong Agent Mode
Mở panel Agent (không phải Ask mode — Ask mode chỉ trả lời, không gọi tool), gõ @ để xem danh sách context có thể gắn kèm, hoặc để agent tự quyết định gọi tool Jira khi bạn ra lệnh liên quan đến issue mà không cần gõ prefix đặc biệt.
Mẹo: Tạo riêng một
.cursor/mcp.json.examplecommit vào git kèm hướng dẫn trong README, còn filemcp.jsonthật (chứa token) để local và thêm vào.gitignore— tránh trường hợp một đồng nghiệp mới clone repo vô tình commit đè giá trị token thật của họ lên file mẫu.
Đọc và Cập nhật Issue Jira Ngay Trong Cursor
Sau khi server connected, bạn ra lệnh trực tiếp trong Agent panel bằng ngôn ngữ tự nhiên, không cần biết cú pháp JQL.
Đọc issue trong lúc đang code
Tôi đang sửa file src/payments/retry.ts. Đọc issue PLAT-490 và cho tôi biết
acceptance criteria chính xác là gì, có edge case nào tôi cần cover không.
Agent gọi jira_get_issue lấy description/acceptance criteria, đối chiếu ngay với file đang mở trong editor — đây là lợi thế lớn so với việc mở tab Jira riêng vì agent thấy đồng thời cả ticket và code.
Truy vấn danh sách issue
Liệt kê issue "In Progress" của tôi trong project PLAT, sắp theo priority.
Với issue nào đã quá 3 ngày không cập nhật, đánh dấu riêng.
Cập nhật trạng thái và comment
Chuyển PLAT-482 sang "In Review". Thêm comment: "PR đã tạo, chờ review CI.
Đã test case retry với network timeout 30s."
Cursor Agent Mode thường hiện một bước xác nhận (approve) trước khi thực thi tool call ghi dữ liệu lần đầu — tương tự cách nó xác nhận trước khi chạy lệnh terminal hoặc sửa file. Bạn nên giữ nguyên chế độ này cho các tool ghi của Jira MCP, không nên bật "auto-run" toàn diện cho MCP tool khi làm việc với dữ liệu production thật.
Tạo issue mới từ context đang debug
Tôi vừa phát hiện bug: hàm calculateRefund() ở dòng 120 không xử lý
số âm khi refund partial. Tạo issue Bug trong project PLAT với priority High,
mô tả kèm đoạn code liên quan và stack trace tôi vừa paste ở trên.
Agent gọi jira_create_issue với description đã được tổng hợp từ context đang có trong phiên — nhanh hơn nhiều so với việc copy-paste tay từng phần vào Jira UI.
Mẹo: Khi ra lệnh cập nhật issue, luôn nêu rõ issue key cụ thể (PLAT-482) ngay cả khi bạn vừa nhắc tới nó ở câu trước — context window của agent có giới hạn và có thể "nhớ nhầm" issue key khi phiên chat dài, dẫn đến update sai ticket mà bạn không để ý ngay.
Tự động Liên kết Thay đổi Code với Ticket Jira
Một trong những giá trị lớn nhất của Jira MCP trong IDE là khả năng gắn kết hai chiều giữa code thật đang thay đổi và ticket đang track công việc đó — điều mà copy-paste link tay rất dễ bị bỏ quên.
Tự thêm issue key vào commit message
Tôi sắp commit các thay đổi hiện tại liên quan đến PLAT-482.
Viết commit message theo convention "PLAT-482: <mô tả ngắn>",
dựa trên diff hiện tại.
Agent đọc git diff trong workspace (qua công cụ có sẵn của Cursor, không phải qua Jira MCP) rồi kết hợp issue key lấy từ Jira MCP để tạo commit message chuẩn — hai nguồn dữ liệu (git + Jira) được agent hợp nhất trong một prompt.
Comment ngược lại vào Jira kèm link PR
Sau khi tôi push branch fix/plat-482-refund-negative lên remote,
thêm comment vào PLAT-482 với link:
https://github.com/org/repo/pull/213, và chuyển status sang "In Review".
Đối chiếu issue liên quan trước khi merge
PLAT-482 có liên kết "relates to" tới issue nào khác không?
Nếu có, đọc issue đó và cho biết code tôi đang sửa có ảnh hưởng
tới phần được mô tả trong issue liên quan hay không.
Đây là bước kiểm tra hữu ích trước khi merge một thay đổi có khả năng tác động rộng hơn phạm vi ticket ban đầu — agent giúp bạn không bỏ sót context nằm ở issue khác.
Mẹo: Thống nhất convention issue key trong commit message/branch name (ví dụ
PLAT-482-*) trước khi dùng agent để tự sinh — nếu convention không rõ, agent sẽ tự đoán format khác nhau giữa các lần, gây khó khăn khi dùng công cụ tự động link commit-to-issue phía Jira (Smart Commits) về sau.
Hạn chế Đã biết của Jira MCP Trong Cursor
Trước khi đưa Jira MCP vào workflow chính thức của team dùng Cursor, cần lưu ý một số giới hạn thực tế.
Agent Mode không phải lúc nào cũng gọi tool nhất quán
Cùng một câu lệnh, model đứng sau Cursor Agent (tuỳ bạn chọn Claude, GPT hay model khác trong Cursor) có thể chọn tool khác nhau hoặc chia bước khác nhau. Với các thao tác quan trọng (transition, close issue), nên luôn kiểm tra lại phần "tool call" hiện trong panel trước khi approve, không giả định agent sẽ luôn hành xử giống lần trước.
Giới hạn ngữ cảnh khi issue có nhiều comment/attachment
Issue Jira có lịch sử comment dài hoặc nhiều attachment sẽ chiếm nhiều token khi agent đọc toàn bộ — với context window hạn chế, agent có thể chỉ lấy được phần tóm tắt hoặc N comment gần nhất tuỳ cách server MCP trả dữ liệu, dễ bỏ sót thông tin quan trọng nằm ở comment cũ.
Không có review step tích hợp như pull request
Khác với thay đổi code (có diff view rõ ràng trước khi apply), một số tool ghi của Jira MCP thực thi thẳng sau khi bạn approve — không có bước "xem trước" chi tiết như diff code. Rủi ro thao tác sai (sai issue key, sai transition) khó phát hiện ngay bằng mắt như khi review code diff.
Phụ thuộc quyền của token/OAuth đã cấp, không có scope riêng theo project trong Cursor
Cursor không tự thêm lớp giới hạn quyền theo project — quyền hạn hoàn toàn theo API token/OAuth bạn đã cấu hình ở tầng server MCP. Nếu bạn làm việc với nhiều project Jira trong cùng máy, cần tự quản lý việc dùng đúng credential có scope phù hợp, tránh để một token có quyền ghi trên toàn công ty gắn chung cho mọi repo.
Mẹo: Với các workspace dùng chung máy cho nhiều project khác nhau, tạo nhiều entry MCP server riêng trong
mcp.json(ví dụjira-plat,jira-mobile) với credential/scope khác nhau theo từng project, thay vì dùng một serverjirachung có quyền rộng cho tất cả.
Mẹo Hay
- Luôn giữ chế độ xác nhận (approve) cho tool ghi của Jira MCP trong Cursor, đặc biệt với transition/close/create issue — đừng bật auto-run toàn diện chỉ vì muốn nhanh.
- Tách file
mcp.jsonchứa token thật ra khỏi git, chỉ commit file mẫu kèm hướng dẫn điền biến môi trường. - Review lại danh sách tool hiện trong Cursor Settings → MCP sau mỗi lần upgrade server
mcp-atlassianhoặc đổi Remote MCP endpoint. - Với issue có lịch sử comment dài, yêu cầu agent tóm tắt theo mốc thời gian gần nhất trước, tránh giả định agent đã đọc toàn bộ lịch sử.
Mẹo: Định kỳ (ví dụ đầu mỗi sprint) yêu cầu một thành viên senior trong team thử lại các prompt Jira MCP quan trọng nhất (tạo issue, transition, comment) trên một issue test — đảm bảo hành vi agent chưa đổi khác sau khi Cursor hoặc server MCP được upgrade phiên bản mới.