DevBoy Tools Reference

Auto-generated by devboy tools docs from base_tool_definitions() and the static provider catalog. Do not edit by hand — re-run the command to refresh.

DevBoy Tools v0.29.0 ships 54 provider-backed tools across 7 categories, 11 always-on context tools, and 7 providers.

Provider Support Matrix

ProviderIssue TrackerGit RepositoryEpicsMeeting NotesKnowledge BaseMessengerJira Structure
GitHub
GitLab
ClickUp
Jira⚠️
Confluence
Fireflies
Slack

Legend: supported · ⚠️ conditional (see notes) · not applicable.

Conditional support

  • Jira → Jira Structure: requires the Structure plugin to be installed and accessible.

Issue Tracker Tools

Providers: GitHub, GitLab, ClickUp, Jira.

add_issue_comment

Add a comment to an issue with optional file attachments (ClickUp only).

ParameterTypeRequiredDescription
bodystringComment text
keystringIssue key
attachmentsarray<string>File attachments (ClickUp only, max 10MB per file). Each: {fileData: base64, filename: string}

assign_to_sprint

Move one or more issues onto a Jira sprint. Pair with get_board_sprints to look up the numeric sprintId. Issues already on a sprint are silently moved.

ParameterTypeRequiredDescription
issueKeysarray<string>Issue keys to move onto the sprint. Must contain at least one key.
sprintIdintegerNumeric sprint id. Use get_board_sprints to discover ids on a board. Min: 0

create_issue

Create a new issue in the configured provider.

ParameterTypeRequiredDescription
titlestringIssue title
assigneesarray<string>Assignee usernames
descriptionstringIssue description/body
issueTypestringIssue type (e.g., "Task", "Bug", "Story"). Default: "Task". Removed by providers that don't support it.
labelsarray<string>Labels to add
markdownbooleanWhether the description is markdown (default: true). When true, ClickUp renders formatted text.
parentIdstringParent issue key to create a subtask (e.g., 'CU-abc123' or 'DEV-42'). Only supported by ClickUp.
projectIdstringJira project key (not numeric ID) for issue creation (e.g., "PROJ"). Optional — overrides the default project.

delete_asset

Delete a file attachment from an issue. Not all providers support this — check asset_capabilities first.

ParameterTypeRequiredDescription
asset_idstringAsset identifier to delete
keystringIssue key (e.g. 'PROJ-123')

download_asset

Download a file attachment to local cache. Returns local file path when cache is available, base64-encoded content as fallback.

ParameterTypeRequiredDescription
asset_idstringAsset identifier from get_assets response
context_typestringContext type: 'issue' or 'mr'. Allowed values: issue, mr
keystringIssue key or MR key

get_assets

List file attachments for an issue or merge request.

ParameterTypeRequiredDescription
context_typestringContext type: 'issue' or 'mr' (merge request / pull request). Allowed values: issue, mr
keystringIssue key (e.g. 'DEV-123', 'gitlab#42') or MR key (e.g. 'mr#42', 'pr#42')

get_available_statuses

Get available statuses for the issue tracker.

No parameters.

get_board_sprints

List sprints visible on a Jira agile board. Use to discover the numeric sprintId accepted by create_issue / update_issue and assign_to_sprint. Returns name, state (active/future/closed), planned start/end, and goal — enough for the agent to pick the right sprint without a follow-up call.

ParameterTypeRequiredDescription
boardIdintegerNumeric Jira board id. The Agile / Boards REST endpoint returns sprints scoped to one board — there is no global sprint list. Min: 0
statestringFilter by sprint state. Default all returns every sprint on the board. Allowed values: active, future, closed, all

get_custom_fields

List custom fields available on the issue tracker, with their id, name, and field type. Use to discover the customfield_* id of a Jira instance — names like Epic Link, Sprint, Epic Name map to different ids on every deployment. Pair with customFields: { "<id>": <value> } on create_issue / update_issue for fields not yet exposed as first-class params.

ParameterTypeRequiredDescription
issueTypestringOptional issue type. Reserved for providers that scope custom fields per create-screen context.
limitintegerMax fields to return after filtering (default 50). Sorted by name asc. Range: 1 – 200
projectstringOptional project key. Reserved for providers that scope custom fields per project; ignored on Jira's global /field endpoint.
searchstringCase-insensitive substring filter on the field name (e.g. "Epic" to find Epic Link and Epic Name).

get_issue

Get a single issue by key with optional comments and relations.

ParameterTypeRequiredDescription
keystringIssue key (e.g., 'gh#123', 'gitlab#456', 'CU-abc', 'DEV-42', 'jira#PROJ-123')
includeCommentsbooleanInclude issue comments (default: true)
includeRelationsbooleanInclude issue relations — parent, subtasks, dependencies (default: true)

get_issue_comments

Get comments for an issue.

ParameterTypeRequiredDescription
keystringIssue key

get_issue_relations

Get relations for an issue (parent, subtasks, linked issues).

ParameterTypeRequiredDescription
keystringIssue key

get_issues

Get issues from configured provider. Returns a list with filters.

ParameterTypeRequiredDescription
assigneestringFilter by assignee username
labelsarray<string>Filter by label names
limitintegerMaximum number of results (default: 20). Range: 1 – 100
nativeQuerystringNative query passed directly to provider (e.g., Jira JQL). Replaces auto-generated filters. If the query omits a project clause, the default project is auto-injected.
offsetintegerNumber of results to skip (default: 0). Min: 0
projectKeystringProject key to filter issues (e.g., "PROJ"). Overrides default project. Removed by providers that don't support it.
searchstringSearch query for title and description
sort_bystringSort by field (default: updated_at). Allowed values: created_at, updated_at
sort_orderstringSort order (default: desc). Allowed values: asc, desc
statestringFilter by issue state (default: open). Allowed values: open, closed, all

get_users

Get users from the issue tracker (Jira). Search by name, project, or ID.

ParameterTypeRequiredDescription
maxResultsintegerMax results (default: 50). Range: 1 – 1000
projectKeystringGet assignable users for project
searchstringSearch by name or email
userIdstringGet specific user by ID

Link two issues together (blocks, relates_to, etc.).

ParameterTypeRequiredDescription
linkTypestringIssue link type. Accepts canonical Jira names (Blocks, Relates, Causes, Implements, Created By, Duplicate, Cloners) and snake_case aliases (blocks, blocked_by, relates_to, causes, caused_by, implements, implemented_by, created_by, creates, duplicates, duplicated_by, clones, cloned_by). The *_by variants flip direction. Custom link types configured on the instance also work — pass the exact name. GitHub/GitLab providers ignore this field.
sourceIssueKeystringSource issue key
targetIssueKeystringTarget issue key

list_project_versions

List Jira project versions / fixVersion targets (releases). Returns rich per-version payload (description, dates, released/archived flags, optional issue counts). Default filter hides archived versions and limits to 20 most recent (unreleased first, then released by releaseDate desc). For issue-level details on a release, follow up with get_issues and a JQL nativeQuery such as fixVersion = "<name>" — there is no per-id get tool by design.

ParameterTypeRequiredDescription
archivedstringFilter by archived flag (default: "false" — hides archival noise). Allowed values: true, false, all
includeIssueCountbooleanFetch issue counts per version via Cloud ?expand=issuesstatus (default: false). Adds latency on large projects.
limitintegerMax versions to return (default: 20). Sorted by releaseDate desc; oldest archival entries trimmed first. Range: 1 – 200
projectstringJira project key (e.g., "PROJ"). Defaults to the configured project.
releasedstringFilter by release state: "true" → only released, "false" → only unreleased, "all" → both (default: "all"). Allowed values: true, false, all

Remove a link between two issues.

ParameterTypeRequiredDescription
linkTypestringIssue link type to remove. Accepts the same canonical names and snake_case aliases as link_issues (Blocks, Causes, Implements, Created By, Duplicate, Cloners, plus *_by direction flips and subtask). Custom link types pass through as-is.
sourceIssueKeystringSource issue key
targetIssueKeystringTarget issue key

update_issue

Update an existing issue. Only provided fields will be changed.

ParameterTypeRequiredDescription
keystringIssue key
assigneesarray<string>New assignees
descriptionstringNew description
labelsarray<string>New labels (replaces existing)
markdownbooleanWhether the description is markdown (default: true). When true, ClickUp renders formatted text.
parentIdstringParent issue key to move task as subtask (e.g., 'CU-abc123' or 'DEV-42'). Only supported by ClickUp.
statestringNew state. Allowed values: open, closed
titlestringNew title

upload_asset

Upload a file attachment to an issue. Returns the download URL.

ParameterTypeRequiredDescription
context_typestringContext type (currently only 'issue' is supported for uploads). Allowed values: issue
fileDatastringBase64-encoded file content
filenamestringOriginal filename (e.g. 'screenshot.png')
keystringIssue key (e.g. 'DEV-123')

upsert_project_version

Create or partially update a Jira project version, keyed by (project, name). If a version with this name exists, fields you supply are updated and unspecified fields are preserved. If not, a new version is created. Useful for writing release notes (description) or closing a release (released: true, releaseDate).

ParameterTypeRequiredDescription
namestringVersion name — both the lookup key and, on create, the value (e.g., "3.18.0").
archivedbooleanArchive (true) / unarchive (false) the version.
descriptionstringRelease notes / version description. Markdown-style text is preserved on Server/DC; Cloud accepts plain text.
projectstringJira project key (e.g., "PROJ"). Defaults to the configured project.
releaseDatestringPlanned or actual release date (YYYY-MM-DD).
releasedbooleanMark released (true) / unreleased (false). Pair with releaseDate when closing a release.
startDatestringPlanned start date as ISO 8601 calendar date (YYYY-MM-DD).

Git Repository Tools

Providers: GitHub, GitLab.

create_merge_request

Create a new merge request (GitLab) or pull request (GitHub).

ParameterTypeRequiredDescription
source_branchstringSource branch
target_branchstringTarget branch
titlestringMR/PR title
descriptionstringMR/PR description
draftbooleanCreate as draft (default: false)
labelsarray<string>Labels
reviewersarray<string>Reviewers

create_merge_request_comment

Add a comment to a merge request. Can be general or inline code review.

ParameterTypeRequiredDescription
bodystringComment text
keystringMR/PR key
commit_shastringCommit SHA for inline comment
discussion_idstringReply to existing discussion
file_pathstringFile path for inline comment
lineintegerLine number for inline comment
line_typestringLine type (default: new). Allowed values: old, new

get_job_logs

Get CI/CD job logs. Modes: smart (auto errors), search (pattern), paginated, full.

ParameterTypeRequiredDescription
jobIdstringJob ID from get_pipeline
contextintegerContext lines around match (default: 5)
fullbooleanReturn entire log
limitintegerLines to return (default: 200, max: 1000). Range: 1 – 1000
maxMatchesintegerMax search results (default: 20)
offsetintegerStart line for paginated mode
patternstringRegex/keyword search pattern

get_merge_request

Get a single merge request by key (e.g., 'pr#123', 'mr#456').

ParameterTypeRequiredDescription
keystringMR/PR key

get_merge_request_diffs

Get file diffs for a merge request.

ParameterTypeRequiredDescription
keystringMR/PR key

get_merge_request_discussions

Get discussions/review comments for a merge request with code positions.

ParameterTypeRequiredDescription
keystringMR/PR key
limitintegerMax discussions (default: 20). Range: 1 – 100
offsetintegerSkip N discussions (default: 0). Min: 0

get_merge_requests

Get merge requests / pull requests from configured provider.

ParameterTypeRequiredDescription
authorstringFilter by author username
labelsarray<string>Filter by label names
limitintegerMaximum results (default: 20). Range: 1 – 100
source_branchstringFilter by source branch
statestringFilter by state (default: open). Allowed values: open, closed, merged, all
target_branchstringFilter by target branch

get_pipeline

Get CI/CD pipeline status for branch or MR/PR with job details.

ParameterTypeRequiredDescription
branchstringBranch name (default: main)
includeFailedLogsbooleanInclude error extraction for failed jobs (default: true)
mrKeystringMR/PR key (priority over branch)

update_merge_request

Update a merge request / pull request (title, description, state, labels, draft).

ParameterTypeRequiredDescription
keystringMR key (e.g. 'mr#1', 'pr#42')
descriptionstringNew description / body (supports markdown)
labelsarray<string>New labels (replaces existing)
statestringChange MR state. Allowed values: close, reopen
titlestringNew title

Epics Tools

Providers: ClickUp.

create_epic

Create a new epic.

ParameterTypeRequiredDescription
titlestringEpic title
descriptionstringEpic description

get_epics

Get epics (high-level tasks) from the issue tracker.

ParameterTypeRequiredDescription
limitintegerMax results (default: 50). Range: 1 – 100
offsetintegerSkip N results (default: 0). Min: 0
searchstringSearch in epic title

update_epic

Update an existing epic.

ParameterTypeRequiredDescription
epicKeystringEpic key (e.g., 'CU-abc', 'DEV-123')
assigneesarray<string>Assignees to set
descriptionstringNew description
goalIdstringGoal ID (G1-G9) to associate with the epic
labelsarray<string>Labels to set
prioritystringNew priority (urgent/high/normal/low)
statestringNew epic state
titlestringNew title

Meeting Notes Tools

Providers: Fireflies.

get_meeting_notes

Get meeting notes and transcripts with optional filters (date range, participants, host).

ParameterTypeRequiredDescription
from_datestringFilter from date (ISO 8601, e.g., '2025-01-01T00:00:00Z')
host_emailstringFilter by host email
limitintegerMaximum number of results (default: 50). Range: 1 – 50
offsetintegerNumber of results to skip (default: 0). Min: 0
participantsarray<string>Filter by participant email addresses
to_datestringFilter to date (ISO 8601)

get_meeting_transcript

Get the full transcript for a meeting. Returns speaker-attributed sentences with timestamps.

ParameterTypeRequiredDescription
meeting_idstringMeeting ID from get_meeting_notes

search_meeting_notes

Search across meetings by keywords, topics, or action items, with optional filters (date range, participants, host).

ParameterTypeRequiredDescription
querystringSearch query
from_datestringFilter from date (ISO 8601)
host_emailstringFilter by host email
limitintegerMaximum number of results (default: 50). Range: 1 – 50
offsetintegerNumber of results to skip (default: 0). Min: 0
participantsarray<string>Filter by participant email addresses
to_datestringFilter to date (ISO 8601)

Knowledge Base Tools

Providers: Confluence.

create_knowledge_base_page

Create a knowledge base page in a space.

ParameterTypeRequiredDescription
contentstringPage body content
spaceKeystringTarget space key
titlestringPage title
contentTypestringContent representation supplied by the caller. Allowed values: markdown, html, storage
labelsarray<string>Labels to set on the page
parentIdstringOptional parent page ID

get_knowledge_base_page

Get a knowledge base page with content, labels, and ancestors.

ParameterTypeRequiredDescription
pageIdstringKnowledge base page ID

get_knowledge_base_spaces

List available knowledge base spaces.

No parameters.

list_knowledge_base_pages

List pages in a knowledge base space with pagination.

ParameterTypeRequiredDescription
spaceKeystringSpace key to list pages from
cursorstringProvider pagination cursor/token
limitintegerMaximum number of results (default: 25). Range: 1 – 100
offsetintegerNumber of results to skip when offset pagination is supported. Min: 0
parentIdstringOptional ancestor/parent page ID to scope the listing
searchstringOptional free-text title/content filter

search_knowledge_base

Search knowledge base pages across spaces using free text or provider-native syntax such as CQL.

ParameterTypeRequiredDescription
querystringFree-text query or provider-native search expression
cursorstringProvider pagination cursor/token
limitintegerMaximum number of matches to return. Range: 1 – 100
rawQuerybooleanWhether query should be treated as raw provider-native syntax
spaceKeystringRestrict search to a specific space key

update_knowledge_base_page

Update a knowledge base page title, content, metadata, or labels.

ParameterTypeRequiredDescription
pageIdstringKnowledge base page ID
contentstringNew page body content
contentTypestringContent representation supplied by the caller. Allowed values: markdown, html, storage
labelsarray<string>Labels to replace on the page
parentIdstringOptional new parent page ID
titlestringNew page title
versionintegerExpected current version for optimistic locking. Min: 1

Messenger Tools

Providers: Slack.

get_chat_messages

Get message history for a chat or fetch replies for a specific thread.

ParameterTypeRequiredDescription
chat_idstringMessenger chat ID
cursorstringProvider pagination cursor
limitintegerMaximum number of messages to return. Range: 1 – 1000
sincestringOnly include messages after this provider timestamp
thread_idstringThread identifier to fetch replies for
untilstringOnly include messages before this provider timestamp

get_messenger_chats

List available messenger chats, channels, groups, or direct messages.

ParameterTypeRequiredDescription
chat_typestringOptional chat type filter. Allowed values: direct, group, channel
cursorstringProvider pagination cursor
include_inactivebooleanInclude archived or inactive chats
limitintegerMaximum number of chats to return. Range: 1 – 1000
searchstringOptional chat name search

search_chat_messages

Search messages across accessible chats or within a specific chat.

ParameterTypeRequiredDescription
querystringMessage search query
chat_idstringOptional chat ID to scope the search
cursorstringProvider pagination cursor
limitintegerMaximum number of matches to return. Range: 1 – 1000
sincestringOnly include messages after this provider timestamp
untilstringOnly include messages before this provider timestamp

send_message

Send a message to a chat or as a threaded reply.

ParameterTypeRequiredDescription
chat_idstringMessenger chat ID
textstringMessage body
reply_to_idstringDirect parent message ID when supported
thread_idstringThread identifier to post as a threaded reply

Jira Structure Tools

Providers: Jira (conditional).

add_structure_rows

Add items (Jira issues or folders) to a Structure. Specify position with under (parent row) and/or after (sibling row). Use forestVersion for optimistic concurrency.

ParameterTypeRequiredDescription
itemsarray<string>Items to add
structureIdintegerStructure ID
afterintegerSibling row ID — items placed after this row
forestVersionintegerForest version for optimistic locking (from get_structure_forest)
underintegerParent row ID — items become children of this row

create_structure

Create a new Jira Structure. After creation, use add_structure_rows to populate and save_structure_view to configure columns.

ParameterTypeRequiredDescription
namestringStructure name
descriptionstringStructure description

get_structure_forest

Get the hierarchy tree of a Jira Structure. Returns nested tree with rowId, itemId (Jira issue key), itemType, and children. Supports pagination for large structures.

ParameterTypeRequiredDescription
structureIdintegerStructure ID. Use get_structures to find it.
limitintegerMax rows to return (default: 200). Range: 1 – 10000
offsetintegerOffset for pagination (default: 0). Min: 0

get_structure_values

Read column values (including Expr formulas like SUM, PROGRESS, COUNT) for specific rows in a Jira Structure. Values are computed server-side.

ParameterTypeRequiredDescription
columnsarray<string>Columns to read
rowsarray<integer>Row IDs to read values for
structureIdintegerStructure ID

get_structure_views

Get views for a Jira Structure. Without viewId: lists all views. With viewId: returns full view configuration (columns, grouping, sorting, filter).

ParameterTypeRequiredDescription
structureIdintegerStructure ID
viewIdintegerView ID for full config (optional — omit to list all views)

get_structures

List all available Jira Structures. Returns structure ID, name, and description. Requires Jira with Structure plugin.

No parameters.

move_structure_rows

Move rows within a Jira Structure hierarchy. Specify new position with under (new parent) and/or after (sibling).

ParameterTypeRequiredDescription
rowIdsarray<integer>Row IDs to move (from get_structure_forest)
structureIdintegerStructure ID
afterintegerSibling row ID to place after
forestVersionintegerForest version for optimistic locking
underintegerNew parent row ID

remove_structure_row

Remove a row from a Jira Structure. Only removes from the structure hierarchy — the underlying Jira issue is NOT deleted.

ParameterTypeRequiredDescription
rowIdintegerRow ID to remove (from get_structure_forest)
structureIdintegerStructure ID

save_structure_view

Create or update a Jira Structure view. Views define column layout (fields and formulas), grouping, sorting, and filters. Omit id to create new.

ParameterTypeRequiredDescription
namestringView name
structureIdintegerStructure ID this view belongs to
columnsarray<string>Column definitions
filterstringJQL filter expression
groupBystringField name to group by
idintegerView ID to update (omit to create new)
sortBystringField name to sort by

Context Management Tools

Always-on tools attached to every tools/list response, independent of which providers are configured. They let the agent inspect or switch the active context.

list_contexts

List configured contexts and indicate the active context.

No parameters.

use_context

Switch active context at runtime.

ParameterTypeRequiredDescription
namestringContext name to activate

get_current_context

Get current active context name.

No parameters.

secrets_list

List secrets the active context's manifest declares. Returns metadata only — values are never included. Optional filter narrows by path substring, scope, status, or whether to include framework-internal paths.

ParameterTypeRequiredDescription
include_internalbooleanInclude framework-internal paths (default: false).
path_containsstringSubstring to match against the full ADR-020 path.
scopestringExact match against the first path segment (e.g. team / personal).
statusstringLifecycle status filter computed from expires_at.. Allowed values: registered, expiring, expired

secrets_describe

Describe one secret by ADR-020 path. Returns the same metadata fields as secrets_list plus description, retrieval URL, rotation method, last rotated date, rotation cadence, and pattern ID. The value is never returned.

ParameterTypeRequiredDescription
pathstringFull ADR-020 path to describe.

secrets_request_provision

Open the provisioning UI dialog for the given ADR-020 path. The dialog hands the user-entered value directly to the local daemon — the agent never sees it. Returns a request_id that can be polled with secrets_poll_status. Mode defaults to provision; pass rotation to surface the destructive-confirm checkbox. Pending requests expire 5 minutes after issuance.

ParameterTypeRequiredDescription
pathstringFull ADR-020 path to provision.
modestringDialog mode (default: provision).. Allowed values: provision, rotation

secrets_poll_status

Poll a provisioning or rotation request issued by secrets_request_provision / secrets_request_rotation. Returns one of pending / ok / cancelled / expired / failed plus the request's age in seconds and the path it was opened for.

ParameterTypeRequiredDescription
request_idstringOpaque id returned by request_provision / request_rotation.

secrets_request_rotation

Open the rotation UI dialog for the given ADR-020 path. Same lifecycle as secrets_request_provision but the dialog surfaces the destructive-confirm checkbox so the user explicitly acknowledges that the existing value is being overwritten. Reuses secrets_poll_status for status. Pending requests expire 5 minutes after issuance.

ParameterTypeRequiredDescription
pathstringFull ADR-020 path to rotate.

secrets_request_use_approval

Open the use-approval dialog for an ADR-020 path whose approve_on_use is set to session or per-call. The agent supplies a short human-facing reason that the dialog renders verbatim alongside the path; the user picks once, session, or denied. Returns a request_id to poll via secrets_poll_status. Pending requests expire 5 minutes after issuance; ttl_seconds may shorten the window but never extend it. The agent never sees the secret — only whether the user approved its use.

ParameterTypeRequiredDescription
pathstringFull ADR-020 path the agent intends to resolve.
reasonstringShort human-facing reason rendered in the dialog (e.g. 'pushing image to staging registry').
ttl_secondsintegerOptional lifetime in seconds; capped at the registry-wide TTL (5 minutes).

secrets_propose_metadata

Suggest metadata edits for an existing ADR-020 path. The dialog renders the manifest's current values as the diff baseline (read straight from the index — agent strings never replace trusted fields, mitigating prompt-injection). The user picks which proposed fields to accept. Reuses secrets_poll_status for status. Pending requests expire 5 minutes after issuance.

ParameterTypeRequiredDescription
fieldsobjectProposed field overrides (description, retrieval_url, rotate_every_days, expires_at, pattern_id). Omitted fields are not proposed for change.
pathstringFull ADR-020 path to edit.

secrets_propose_new_path

Suggest registering a new secret at the given path. The dialog opens with the suggested path editable and the proposed metadata visible in a diff column for review. The user has the final say on the path and the metadata that lands in the manifest. Reuses secrets_poll_status for status. Pending requests expire 5 minutes after issuance.

ParameterTypeRequiredDescription
metadataobjectProposed metadata fields for the new entry.
suggested_pathstringSuggested ADR-020 path; user may edit.