Count issues, per status, assignee or type, in one project or across all yours. Without project: your issues across every project you can see. Without scope you get the overview (assigned, created and subscribed: open, in review, total, overdue, due this week; every visible project per status category; issues you finished per day); with scope (assigned, created, subscribed or review) you get that tab's breakdown (per project and category, urgent, updated today / yesterday / this week, overdue, due this week), optionally narrowed by query. With project: the project's issues per status (every status of its board, zeros too) with the open and overdue / due-this-week totals, narrowed by scope and the filters of search_issues (query, status, type, assignee, reporter, subscribed, due). Overdue and due this week are open issues, with today read in your time zone (tz overrides it). Answer: the numbers (approximate: true when a common query capped a status). Answers are compact JSON; pass format="text" for a readable Markdown answer.
assigneestringoptionalWith project: username, 'me' or 'none'dueenumoptionalWith project: only issues overdue, due this week, without a due date (none) or with one (any)overdueweeknoneanyformatenumoptionalAnswer format: "json" (default) is one compact JSON document; "text" is a readable Markdown answerjsontextgroup_byenumoptionalWith project (not with scope): count the issues per group instead of per status: status (every status of the board), assignee, priority, type or parent (an issue without an assignee / parent is in the group `none`). Narrowed by the same filters; a very common query makes the counts lower bounds (approximate: true)statusassigneeprioritytypeparentprojectstringoptionalProject key: count per board status inside that project (optional)querystringoptionalFree text or an issue key to narrow the count (optional)reporterstringoptionalWith project: username or 'me' (a former member of the project too, if they reported issues there)scopeenumoptionalWhose issues: assigned to you, created by you, subscribed (followed by you), or review (you are a reviewer who has not answered)assignedcreatedsubscribedreviewstatusstringoptionalWith project: only this status (a key or name from list_statuses, or todo / in_progress / review / done)subscribedbooleanoptionalWith project: true counts only the issues you followtypeenumoptionalWith project: only this issue typeepicstorytasktzstringoptionalIANA time zone for 'today', e.g. Asia/Baku (default: the time zone in your profile, else UTC)
Returns
One of these shapes, depending on the arguments:
Shape 1
doneByDayarray of object | nullrequiredIssues assigned to you that you finished, per dayprojectsanyrequiredscopesobjectrequiredtimeZonestringrequired
Shape 2
dueThisWeekanyrequiredinReviewintegerrequiredopenintegerrequiredoverdueanyrequiredprojectsanyrequiredquerystringrequiredscopestringrequiredtimeZonestringrequiredtotalintegerrequiredupdatedobjectrequiredurgentOpenintegerrequired
Shape 3
openintegerrequiredprojectstringrequiredstatusesarray of object | nullrequiredEvery status of the board, zeros tootimeZonestringrequiredtotalintegerrequired
Shape 4
groupBystringrequiredgroupsarray of object | nullrequiredprojectstringrequiredtotalintegerrequired
Shape 5
Optional fields, when present
approximateanyoptionalassigneestringoptionalduestringoptionalreporterstringoptionalstatusstringoptionalsubscribedbooleanoptionaltruncatedbooleanoptionalMore than the busiest groups exist; only those are listedtypestringoptional
- 2026-10-05 — With project, reporter also finds a former member of the project, as search_issues does: the issues they reported are counted even though they have left.
- 2026-10-04 — New scope review: the issues waiting on your review; the overview lists it next to the other scopes.
- 2026-10-01 — With project and a very common query, a status with more than 1000 matches is counted as 1001 and the answer says approximate: true (a lower bound); selective queries stay exact.
- 2026-10-02 — New optional group_by argument (with project): status, assignee, priority, type or parent. The issues are counted per group under the same filters, and the answer ends with a ```json block {project, groupBy, total, groups: [{key, label, count}], approximate, truncated}; the issues without an assignee or a parent are the group `none`. group_by cannot be combined with scope.
- 2026-10-02 — Answers are compact JSON by default (one document, no Markdown, nothing said twice); format="text" gives the readable Markdown without the json block. The document is the numbers themselves.
- 2026-10-03 — Also answers structuredContent (see outputSchema); a failed call adds structuredContent.error. Text unchanged. Details: /docs/mcp, "Structured results and errors".
- 2026-10-04 — Claude Code 2.1.288+ (clientInfo claude-code): the text of a successful answer is itself up to 512 bytes, else "Result in structuredContent (N bytes)."; structuredContent and errors are unchanged. See /docs/mcp.
- 2026-10-04 — format="text" now also answers structuredContent {"text": the Markdown} (it was the JSON document), so a client that reads only structuredContent gets the Markdown it asked for.