9de61458828dba5ae5ece587b9b8f2688745f749source_git · iljasorokin/jira-dc-advops-mcp · current release
Observed 2026-08-25T19:52:15.333Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.
{
"tools": {
"listChanged": true
}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
agile_getBoardGet Agile board metadata by id (name, type). For columns use agile_getBoardConfiguration; for daily column dump use agile_getBoardSnapshot.Input schema{
"type": "object",
"properties": {
"boardId": {
"type": "number",
"description": "Board id from RapidBoard.jspa?rapidView=…"
}
},
"required": [
"boardId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Get Agile board",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
agile_getBoardConfigurationGet board column configuration: ordered columns, status→column map, kanban subQuery, filter. Maps issue status ids to board column names (placement on the kanban).Input schema{
"type": "object",
"properties": {
"boardId": {
"type": "number",
"description": "Board id"
},
"resolveStatusNames": {
"type": "boolean",
"description": "Resolve status id→name via /rest/api/2/status (default true)"
}
},
"required": [
"boardId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Get Agile board configuration",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
agile_getBoardIssuesList issues on an Agile board (GET /rest/agile/1.0/board/{id}/issue) with column placement from status→column map. Optional jql is ANDed with the board filter; for kanban, board subQuery is applied by default.Input schema{
"type": "object",
"properties": {
"boardId": {
"type": "number",
"description": "Board id"
},
"jql": {
"type": "string",
"description": "Extra JQL (ANDed), e.g. assignee = currentUser() AND resolution = EMPTY"
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Issue fields (default: summary,status,assignee,issuetype,priority,updated,created,resolution)"
},
"startAt": {
"type": "number",
"description": "Pagination offset when fetchAll=false"
},
"maxResults": {
"type": "number",
"description": "Page size when fetchAll=false (default 50)"
},
"fetchAll": {
"type": "boolean",
"description": "Fetch pages until maxIssues (default false)"
},
"maxIssues": {
"type": "number",
"description": "Safety cap when fetchAll=true (default 500)"
},
"applyKanbanSubQuery": {
"type": "boolean",
"description": "AND board subQuery for kanban visibility (default true)"
},
"compact": {
"type": "boolean",
"description": "Compact issue objects with column (default true)"
}
},
"required": [
"boardId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Get Agile board issues",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
agile_getBoardSnapshotDaily-standup helper: issues on a board grouped by kanban/scrum columns (status→column). Pass jql for assignee/team filter. By default skips fabricated kanban Backlog column; use excludeColumns for Done etc. Prefer agile_getBoardSnapshotToFile for large dumps.Input schema{
"type": "object",
"properties": {
"boardId": {
"type": "number",
"description": "Board id"
},
"jql": {
"type": "string",
"description": "Extra JQL (ANDed), e.g. assignee = someone AND resolution = EMPTY"
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Issue fields to load"
},
"maxIssues": {
"type": "number",
"description": "Safety cap (default 500)"
},
"applyKanbanSubQuery": {
"type": "boolean",
"description": "AND board subQuery (default true)"
},
"excludeColumns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Column names to drop (case-insensitive), e.g. [\"Done\"]"
},
"includeBacklog": {
"type": "boolean",
"description": "Include first kanban \"Backlog\" column (default false)"
},
"omitEmptyColumns": {
"type": "boolean",
"description": "Hide columns with zero issues after filters (default true)"
},
"includeUnmapped": {
"type": "boolean",
"description": "Include issues whose status is not mapped to any column (default true)"
}
},
"required": [
"boardId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Get Agile board column snapshot",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
agile_getBoardSnapshotToFileSame as agile_getBoardSnapshot but writes JSON to a local file (large boards / daily dumps). Returns path + counts without stuffing full payload into chat.Input schema{
"type": "object",
"properties": {
"boardId": {
"type": "number",
"description": "Board id"
},
"filePath": {
"type": "string",
"description": "Absolute path to write snapshot JSON"
},
"jql": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "string"
}
},
"maxIssues": {
"type": "number"
},
"applyKanbanSubQuery": {
"type": "boolean"
},
"excludeColumns": {
"type": "array",
"items": {
"type": "string"
}
},
"includeBacklog": {
"type": "boolean"
},
"omitEmptyColumns": {
"type": "boolean"
},
"includeUnmapped": {
"type": "boolean"
}
},
"required": [
"boardId",
"filePath"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Dump Agile board snapshot to file",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
agile_listBoardsList Jira Software boards (GET /rest/agile/1.0/board). Filter by name substring, type (kanban|scrum|simple), or projectKeyOrId. boardId from RapidBoard.jspa?rapidView=ID.Input schema{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name filter (API substring match)"
},
"type": {
"type": "string",
"enum": [
"kanban",
"scrum",
"simple"
],
"description": "Board type filter"
},
"projectKeyOrId": {
"type": [
"string",
"number"
],
"description": "Limit to boards for a project key or id"
},
"startAt": {
"type": "number",
"description": "Pagination offset (default 0)"
},
"maxResults": {
"type": "number",
"description": "Page size (default 50)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "List Agile boards",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
agile_locateIssuesLocate issue keys on a board: map each issue status → column name (and whether it matches the board filter/subQuery). Useful for “where is PROJ-1 on the kanban?”.Input schema{
"type": "object",
"properties": {
"boardId": {
"type": "number",
"description": "Board id"
},
"issueKeys": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Issue keys to locate"
},
"applyBoardFilter": {
"type": "boolean",
"description": "If true, only return issues that match the board filter (+ subQuery); missing keys → onBoard:false. Default false: map column by status even if filtered out of the board."
}
},
"required": [
"boardId",
"issueKeys"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Locate issues on Agile board",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
structure_addIssuesAdd one or more Jira issues under a Structure folder (or any parent row). POST /rest/structure/2.0/forest/update action=add. Identify parent via underRowId, folderName, or folderId. Pass issueKeys and/or issueIds. Skips issues already under that parent unless skipIfPresent=false.Input schema{
"type": "object",
"properties": {
"structureId": {
"type": "number",
"description": "Structure id"
},
"underRowId": {
"type": "number",
"description": "Parent rowId (folder or issue). Prefer this when known."
},
"folderName": {
"type": "string",
"description": "Folder summary/name (exact, else unique substring). Ambiguous → error."
},
"folderId": {
"type": "number",
"description": "Internal Structure folder item id (from type-folder N in itemRaw 4/N)"
},
"issueKeys": {
"type": "array",
"items": {
"type": "string"
},
"description": "Issue keys to add, e.g. [\"PROJ-1\",\"PROJ-2\"]"
},
"issueIds": {
"type": "array",
"items": {
"type": "number"
},
"description": "Numeric Jira issue ids (alternative/complement to issueKeys)"
},
"afterRowId": {
"type": "number",
"description": "Insert after this sibling rowId under the parent (default: first child)"
},
"beforeRowId": {
"type": "number",
"description": "Insert before this sibling rowId under the parent"
},
"skipIfPresent": {
"type": "boolean",
"description": "Skip issues already direct children of the parent (default true)"
}
},
"required": [
"structureId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Add issues under Structure folder",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true
} | — | Writes · Non-destructive | — |
structure_getGet Tempo Structure metadata by id (name, description, owner). Does not include hierarchy — use structure_getForest / structure_getBoard.Input schema{
"type": "object",
"properties": {
"structureId": {
"type": "number",
"description": "Structure id from StructureBoard.jspa?s=…"
},
"withOwner": {
"type": "boolean",
"description": "Include owner (default true)"
},
"withPermissions": {
"type": "boolean",
"description": "Include permission rules (default false)"
}
},
"required": [
"structureId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Get Structure metadata",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
structure_getBoardFast path: read a Structure Board as nested tree with key/summary/status/issuetype (forest + values). Use structure_getBoardToFile for large boards.Input schema{
"type": "object",
"properties": {
"structureId": {
"type": "number",
"description": "Structure id"
},
"forestSpec": {
"type": "object",
"additionalProperties": {},
"description": "Raw RestForestSpec; overrides structureId"
},
"attributes": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"format": {
"type": "string"
},
"params": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"id"
],
"additionalProperties": false
}
]
},
"description": "Override default attributes (key, summary, status, issuetype)"
},
"includeGenerators": {
"type": "boolean",
"description": "Include generator / loop-marker rows (default true)"
},
"flat": {
"type": "boolean",
"description": "If true, return flat rows with values instead of nested tree"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Get Structure Board tree",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
structure_getBoardToFileSame as structure_getBoard but writes JSON to a local file (for large boards). Returns path + meta without stuffing the full tree into chat.Input schema{
"type": "object",
"properties": {
"structureId": {
"type": "number",
"description": "Structure id"
},
"forestSpec": {
"type": "object",
"additionalProperties": {},
"description": "Raw RestForestSpec; overrides structureId"
},
"filePath": {
"type": "string",
"description": "Absolute path to write board JSON"
},
"attributes": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"format": {
"type": "string"
},
"params": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"id"
],
"additionalProperties": false
}
]
}
},
"includeGenerators": {
"type": "boolean"
},
"flat": {
"type": "boolean"
}
},
"required": [
"filePath"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Dump Structure Board to file",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
structure_getForestRead Structure forest (hierarchy) via POST /rest/structure/2.0/forest/latest. Returns formula + parsed flat rows (rowId, depth, issueId / itemType). Prefer structure_getBoard for keys/summaries.Input schema{
"type": "object",
"properties": {
"structureId": {
"type": "number",
"description": "Structure id"
},
"forestSpec": {
"type": "object",
"additionalProperties": {},
"description": "Raw RestForestSpec JSON if you need transforms/sQuery; overrides structureId"
},
"includeGenerators": {
"type": "boolean",
"description": "Include generator / loop-marker rows (default true)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Get Structure forest",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
structure_getValuesLoad Structure attribute values for row ids (POST /rest/structure/2.0/value). Get row ids from structure_getForest. Default attributes: key, summary, status, issuetype.Input schema{
"type": "object",
"properties": {
"structureId": {
"type": "number",
"description": "Structure id"
},
"forestSpec": {
"type": "object",
"additionalProperties": {},
"description": "Raw RestForestSpec; overrides structureId"
},
"rows": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 1,
"description": "Row ids from forest formula"
},
"attributes": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"format": {
"type": "string"
},
"params": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"id"
],
"additionalProperties": false
}
]
},
"description": "Attribute specs; string shorthand = {id, format:\"text\"}"
}
},
"required": [
"rows"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Get Structure attribute values",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
structure_listList Tempo Structure boards visible to the user (GET /rest/structure/2.0/structure). Optional name substring filter. structureId from StructureBoard.jspa?s=ID.Input schema{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Case-insensitive substring filter on structure name"
},
"withOwner": {
"type": "boolean",
"description": "Include owner (default false)"
},
"withPermissions": {
"type": "boolean",
"description": "Include permission rules (default false)"
},
"archived": {
"type": "boolean",
"description": "Include archived structures (default false)"
},
"limit": {
"type": "number",
"description": "Max structures to return"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "List Structure boards",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |
structure_listFoldersList folders in a Tempo Structure (rowId, depth, name/summary, folderId). Use before structure_addIssues to pick underRowId or folderName.Input schema{
"type": "object",
"properties": {
"structureId": {
"type": "number",
"description": "Structure id"
}
},
"required": [
"structureId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "List Structure folders",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
} | — | Read only · Non-destructive | — |