Bunsen MCP Server
This is a Model Context Protocol (MCP) server for querying bunsen test suite databases and bugzilla, buildbot, and patchwork data on sourceware.org and public-inbox mailing list archives.
To use it, configure an MCP client (such as an MCP-enabled IDE or AI assistant) to connect to this server endpoint via HTTP.
Available Tools
- overview: Return a usage guide for this bunsen MCP server.
Read this first. It explains the core concepts,
and the recommended query workflow.
- date_time: Return the current date and time in ISO-8601 format.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
- upstream_get_url: Return a clickable web URL for an upstream repository, commit, branch, or file.
Use this to turn raw hashes and filenames into clickable links for the user.
Examples for url_type:
- "gitweb": Main repository page (param/param2 ignored)
- "gitwebcommit": A specific commit (param = commit hash)
- "gitwebbranch": A specific branch/tag (param = branch/tag name)
- "gitwebfile": A specific file at a commit (param = commit hash, param2 = filename)
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
gitrepo: The upstream git repository URL or path.url_type: The type of URL to generate ("gitweb", "gitwebcommit", "gitwebbranch", "gitwebfile").param: Optional parameter for the URL (e.g. commit hash or branch name).param2: Optional second parameter for the URL (e.g. filename for gitwebfile).
- bunsen_get_testrun_url: Return a clickable web URL for a testrun in the bunsen web UI.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
testrun: The git commit hash identifying the testrun.
- bunsen_list_metadata_keys: List the metadata keys that are generally available for
testruns. source.* ones refer to upstream repository and git
commit. source.gitrepo.canon is a good way to identify the
upstream project. The others generally relate to the testrun
itself.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
- bunsen_list_metadata_values: Return the distinct values for a given metadata key (optionally
filtered by glob). Useful to discover what upstream gitrepos or
other attributes have been registered via toy testruns.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
metadata_key: The metadata key whose distinct values to list.metadata_value_glob: Glob pattern to filter which values are returned.limit: Maximum number of distinct values to return.
- bunsen_show_testrun_metadata: Fetch all metadata key/value pairs for a given testrun, with keys matching given basic glob.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
testrun: The git commit hash identifying the testrun.metadata_key_glob: Simple glob pattern to match metadata keys (use * and ? wildcards).
- bunsen_diff_testrun_metadata: Compare the metadata of several testruns. Return a dict keyed
by each distinct given testrun hash, containing only those
key/value pairs that are NOT common to all the given testruns -
the equivalent of parallel bunsen_show_testrun_metadata calls with the
commonly repeated pairs elided. A key present in only some
testruns appears in those only. A testrun whose metadata is
identical to the others', or which is unknown, maps to an empty
dict. Given a single testrun, all its metadata is returned.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
testruns: Two or more testrun git commit hashes to compare.metadata_key_glob: Simple glob pattern to match metadata keys (use * and ? wildcards).
- bunsen_find_testruns: Return the list of testruns that have the given metadata key
and a value matching the given basic-glob. Sort (ASC/DESC) in a sequence
by another metadata value. There may be many testruns, so offset &
limit are passed to SQL SELECT for paging. If metadata2_key is
provided, an additional conjunctive (AND) filter is applied.
The optional metadata_value_min / metadata_value_max parameters apply
range filters (value >= min, value <= max) on the primary metadata_key.
Returns a dictionary mapping testrun commit hashes to dictionaries
of metadata key/value pairs.
Example: bunsen_find_testruns(metadata_key="source.gitrepo", metadata_value_glob="*gcc*") returns
testruns for GCC-related upstream repos, keyed by their commit hash. Pass one of those
commit hashes as the `testrun` argument to the show_testrun_* / list_testrun_* tools.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
metadata_key: The metadata key to search for.metadata_value_glob: Glob pattern to match metadata values.metadata_value_min: Optional minimum value (inclusive) for the primary metadata_key value.metadata_value_max: Optional maximum value (inclusive) for the primary metadata_key value.metadata_key_sort: Metadata key to sort results by (order controlled by metadata_key_sort_order).metadata_key_sort_order: Sort order for metadata_key_sort: "ASC" or "DESC".limit: Maximum number of results to return.offset: Number of results to skip for paging.metadata2_key: Optional second metadata key to search for.metadata2_value_glob: Optional glob pattern to match second metadata values.return_metadata_keys: Optional list of additional metadata keys to return values for.
- bunsen_list_testrun_testcases: Return a list of test cases for the given testrun. Test groups are
directories or dejagnu '.exp' files. Individual test cases have
results like 'PASS'. Test group and test case names are matched with
sql LIKE patterns; leave them at '%' to match everything. There may be
many testruns, so offset & limit are passed to SQL SELECT for
paging.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
testrun: The git commit hash identifying the testrun.test_family: The test suite family.test_group_like: LIKE pattern to match test groups: % for any run of characters, _ for one.test_case_like: LIKE pattern to match test cases: % for any run of characters, _ for one.test_result: Filter by specific test result.limit: Maximum number of results to return.offset: Number of results to skip for paging.
- bunsen_find_testcases_across_testruns: Return test cases matching LIKE patterns, searched across several given
testruns in one pass. Unlike bunsen_list_testrun_testcases (which covers one
testrun per call), this tool queries all the given testruns at once, so the
same test case can be tracked across runs; each row names its own testrun.
Rows are sorted by test group, test case, testrun. There may be many
matches, so offset & limit are applied for paging.
Example: bunsen_find_testcases_across_testruns(testruns=["abc...", "def..."],
test_family="dejagnu", test_case_like="%torture%") lists matching dejagnu
subtests from both testruns together.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
testruns: List of git commit hashes identifying the testruns to search.test_group_like: LIKE pattern to match test groups: % for any run of characters, _ for one.test_case_like: LIKE pattern to match test cases: % for any run of characters, _ for one.test_result: Filter by specific test result.test_family: The test suite family.limit: Maximum number of results to return.offset: Number of results to skip for paging.
- bunsen_find_testcases_by_metadata: Return test cases matching LIKE patterns, searched across the testruns
whose metadata matches the given key and value glob. This spares the
caller from listing testrun hashes explicitly (as bunsen_find_testruns +
bunsen_find_testcases_across_testruns would): testruns carrying the metadata key
with a matching value are searched in one pass, and each row names its own
testrun. Only the max_testruns most recent matching testruns are searched,
so that a broad metadata_value_glob does not have to walk every testrun in
the database. There may be many matches, so offset & limit are applied for
paging.
Example: bunsen_find_testcases_by_metadata(metadata_key="source.gitrepo",
metadata_value_glob="*gcc*", test_family="dejagnu", test_result="FAIL")
lists failing dejagnu subtests in the recent GCC-related testruns.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
metadata_key: The metadata key identifying which testruns to search.metadata_value_glob: Glob pattern to match the metadata key's values (use * and ? wildcards).test_group_like: LIKE pattern to match test groups: % for any run of characters, _ for one.test_case_like: LIKE pattern to match test cases: % for any run of characters, _ for one.test_result: Filter by specific test result.test_family: The test suite family.max_testruns: Maximum number of matching testruns to search, most recent first.limit: Maximum number of results to return.offset: Number of results to skip for paging.
- bunsen_diff_testruns: Return a list of test cases for which the given two testruns
have differing results. Test group and test case names are matched
with sql LIKE patterns ('%' and '_'). If outer
is True, includes cases missing from either testrun (filter for
these specifically by passing 'NULL' to test_result1 or
test_result2). If regressions_only is True, only show cases where
testrun1 result is PASS/XFAIL/KFAIL and testrun2 result differs.
Suffix parameters may be used to align test groups from different
dejagnu target-boards (e.g. suffix1=" [unix]" suffix2=" [unix/m32]").
There may be many differences, so limit, offset, and count_only
parameters are provided for paging.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
testrun1: The git commit hash identifying the first testrun.testrun2: The git commit hash identifying the second testrun.test_family: The test suite family.test_group_like: LIKE pattern to match test groups: % for any run of characters, _ for one.test_case_like: LIKE pattern to match test cases: % for any run of characters, _ for one.test_result1: Filter by specific test result for testrun1. Use "NULL" (with outer=True) to match tests missing from testrun1.test_result2: Filter by specific test result for testrun2. Use "NULL" (with outer=True) to match tests missing from testrun2.outer: If True, include test cases that are present in only one of the testruns (missing or newly arrived).regressions_only: If True, only show regressions.test_group_suffix1: Optional suffix to trim from testrun1 test_group strings (e.g. " [unix]").test_group_suffix2: Optional suffix to trim from testrun2 test_group strings (e.g. " [unix/debug]").limit: Maximum number of results to return.offset: Number of results to skip for paging.count_only: If True, return only the total number of differences found.
- bunsen_show_testrun_testcase_log: Return the segment of the detailed test log file related to the given test case.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
testrun: The git commit hash identifying the testrun.test_family: The test suite family.test_group: The test group name.test_case: The test case name.
- bunsen_list_testrun_files: Return the complete file list and their sizes from the given testrun, optionally filtered by include_regex and exclude_regex Python regular expression patterns.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
testrun: The git commit hash identifying the testrun.include_regex: Python regular expression to filter filenames.ignorecase: Whether to ignore case in regex matching.exclude_regex: Python regular expression to filter out matching filenames (like grep -v).
- bunsen_show_testrun_file: Return parts of a file from the given testrun.
Pipeline: (1) slice input by startline/numlines, (2) filter with include_regex/exclude_regex/ignorecase, (3) return at most maxhits hits with context_lines.
Prefer this tool over buildbot_get_log when examining test or build logs, as this provides the full, high-fidelity raw data.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
testrun: The git commit hash identifying the testrun.filename: The path to the file in the testrun.include_regex: Python regular expression to keep matching lines (None means match all).ignorecase: Whether to ignore case in regex matching.exclude_regex: Python regular expression to filter out matching lines (like grep -v).startline: 1-based starting line of the input slice (negative counts from end). Applied before regex filtering.numlines: Number of input lines to include from startline before regex filtering. <=0 means through EOF.maxhits: Maximum number of regex hits to return (context_lines around each hit are extra). <=0 means no cap.context_lines: Number of context lines to include around matched lines.
- upstream_show_commit: Return the full patch/diff for a git commitish from the given upstream repo.
IMPORTANT: `commitish` is an upstream git commitish (branch/tag/hash), NOT a
testrun id from bunsen_find_testruns. If you only have a testrun commit hash, it must
be a real git object in `gitrepo` to resolve.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
gitrepo: The upstream git repository URL or path.commitish: The git commitish (hash, branch, tag, etc.).
- upstream_show_file: Return parts of a file from a commitish from the given upstream repo.
Pipeline: (1) slice input by startline/numlines, (2) filter with include_regex/exclude_regex/ignorecase, (3) return at most maxhits hits with context_lines.
IMPORTANT: `commitish` is an upstream git commitish (branch/tag/hash), NOT a
testrun id. If you have a testrun commit hash, it resolves only if it is a real
git object in `gitrepo`.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
gitrepo: The upstream git repository URL or path.commitish: The git commitish (hash, branch, tag, etc.).filename: The path to the file in the repository.include_regex: Python regular expression to keep matching lines (None means match all).ignorecase: Whether to ignore case in regex matching.exclude_regex: Python regular expression to filter out matching lines (like grep -v).startline: 1-based starting line of the input slice (negative counts from end). Applied before regex filtering.numlines: Number of input lines to include from startline before regex filtering. <=0 means through EOF.maxhits: Maximum number of regex hits to return (context_lines around each hit are extra). <=0 means no cap.context_lines: Number of context lines to include around matched lines.
- upstream_list_files: Return the complete file list and their sizes from a commitish from the given upstream repo, optionally filtered by include_regex and exclude_regex Python regular expression patterns.
IMPORTANT: `commitish` is an upstream git commitish (branch/tag/hash), NOT a testrun id.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
gitrepo: The upstream git repository URL or path.commitish: The git commitish (hash, branch, tag, etc.).include_regex: Python regular expression to filter filenames.ignorecase: Whether to ignore case in regex matching.exclude_regex: Python regular expression to filter out matching filenames (like grep -v).
- upstream_list_commits: List the upstream git commits for the given repository.
Returns a list of commits that are ancestors of the given commitish,
starting from the commitish itself and going backwards in history.
Optionally filtered by author, path, or search terms.
Note that provided filters (`author_filter`, `path_filter`, `message_filter`, `patch_filter`) are applied conjunctively (logical AND).
Use multiple queries for OR. Example: To find commits where the message OR the patch mentions `CVE-2026-1234`, call once
with `message_filter="CVE-2026-1234"` and once with `patch_filter="CVE-2026-1234"`, then union the returned commits.
IMPORTANT: `commitish` is an upstream git commitish (branch/tag/hash), NOT a testrun id.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
gitrepo: The upstream git repository URL or path.commitish: The git commitish (hash, branch, tag, etc.).limit: Maximum number of commits to return.subject_only: If True, return only commit subjects; if False, full messages.author_filter: Optional author name or email to filter commits by.path_filter: Optional path to filter commits (passed as -- PATH to git log).message_filter: Optional string to search for in commit messages (git log --grep). Set subject_only=False to see the matching text in the returned message field.patch_filter: Optional string to search for in commit patches (git log -S).
- upstream_git_grep: Run git grep on an upstream repository.
IMPORTANT: `commitish` is an upstream git commitish (branch/tag/hash), NOT a testrun id.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
gitrepo: The upstream git repository URL or path.commitish: The git commitish (hash, branch, tag, etc.).regex: The extended regular expression to search for (uses git grep -E).ignorecase: Whether to ignore case in regex matching.pathspec: Optional pathspec to filter files (e.g. *.c, src/).
- upstream_list_refs: Run git for-each-ref on an upstream repository to list branches, tags, etc.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
gitrepo: The upstream git repository URL or path.pattern: Optional pattern for refs (e.g. heads/*, tags/*, or refs/heads/*). Shorthand forms are automatically prefixed with refs/.since: Only include refs whose tip is a commit younger than this timestamp (ISO-8601 or unix timestamp).
- upstream_list_commit_contains: List branches and tags that contain the given commitish in an upstream repository.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
gitrepo: The upstream git repository URL or path.commitish: The git commitish (hash, branch, tag, etc.).
- buildbot_get_builders: Enumerate Sourceware buildbot builders.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
offset: Number of results to skip for paging.limit: Maximum number of builders to return.name: Optional filter by builder name (simple substring search, do not use SQL wildcards like %).tag: Optional filter by builder tag (e.g. 'systemtap', 'elfutils').
- buildbot_get_builds: Enumerate Sourceware buildbot builds for a given builder. Returns a
succinct list of builds, exposing `buildname` ("buildername/number") which
can be used to query steps.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
builderid: Numeric builder ID (provide either this or buildername).buildername: Builder name (provide either this or builderid).offset: Number of results to skip for paging.limit: Maximum number of builds to return.
- buildbot_get_active_builds: Enumerate currently active (incomplete) Sourceware buildbot builds.
Returns a succinct list including `buildname` ("buildername/number") which
can be used to query steps.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
builderid: Numeric builder ID (provide either this or buildername).buildername: Builder name (provide either this or builderid).offset: Number of results to skip for paging.limit: Maximum number of builds to return.
- buildbot_get_steps: Enumerate Sourceware buildbot steps for a build.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
buildid: Numeric build ID (provide either this or buildname).buildname: Build name in "buildername/number" form, as exposed by buildbot_get_builds (provide either this or buildid).offset: Number of results to skip for paging.limit: Maximum number of steps to return.
- buildbot_get_log: Return parts of a Sourceware Buildbot log.
Pipeline: (1) slice input by startline/numlines, (2) filter with include_regex/exclude_regex/ignorecase, (3) return at most maxhits hits with context_lines.
Note: Log lines are prefixed with their stream channel source character ('h' for header metadata, 'o' for stdout, 'e' for stderr, 'i' for input).
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
stepid: Buildbot step ID to fetch logs for.logname: Log name to fetch (default "stdio").include_regex: Python regular expression to keep matching lines (None means match all).ignorecase: Whether to ignore case in regex matching.exclude_regex: Python regular expression to filter out matching lines (like grep -v).startline: 1-based starting line of the input slice (negative counts from end). Applied before regex filtering.numlines: Number of input lines to include from startline before regex filtering. <=0 means through EOF.maxhits: Maximum number of regex hits to return (context_lines around each hit are extra). <=0 means no cap.context_lines: Number of context lines to include around matched lines.
- buildbot_get_workers: Enumerate Sourceware buildbot workers (actual server machines).
By default, only workers configured with at least one builder are returned.
Returns worker names, workerinfo structs, and list of configured builders.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
name_glob: Simple glob pattern to match worker names (use * and ? wildcards).all_workers: If True, return all workers, including inactive/unconfigured ones.
- bugzilla_search: Search for bugs in a Bugzilla instance.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
status: Optional filter by bug status (e.g. ["NEW", "RESOLVED"]).instance: Bugzilla instance to query.product: Optional filter by product name.component: Optional filter by component name.summary: Optional filter by substring in the summary.quicksearch: Optional Bugzilla quicksearch string (searches comments, etc.).chfield: Optional field to track changes for: '[Bug creation]' filters by creation time, 'bug_status' by status change time.chfieldfrom: Optional start time for the chfield filter (e.g. '2026-06-01').chfieldto: Optional end time for the chfield filter (e.g. 'Now').limit: Maximum number of bugs to return.offset: Number of results to skip for paging.order: Optional sort field.order_desc: If True, sort in descending order (only applies if order is set).
- bugzilla_get_bug: Retrieve detailed information about a specific bug, including comment and attachment counts.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
bugid: The numeric bug ID.instance: Bugzilla instance to query.all_fields: If True, fetch all available fields for the bug.
- bugzilla_get_comments: Retrieve comments for a specific bug.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
bugid: The numeric bug ID.instance: Bugzilla instance to query.
- bugzilla_list_attachments: List metadata for attachments of a specific bug.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
bugid: The numeric bug ID.instance: Bugzilla instance to query.
- bugzilla_get_attachment: Retrieve a specific attachment by ID, with optional text filtering.
Pipeline: (1) slice input by startline/numlines, (2) filter with include_regex/exclude_regex/ignorecase, (3) return at most maxhits hits with context_lines.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
attachment_id: The numeric attachment ID.instance: Bugzilla instance to query.include_regex: Python regular expression to keep matching lines (None means match all).ignorecase: Whether to ignore case in regex matching.exclude_regex: Python regular expression to filter out matching lines (like grep -v).startline: 1-based starting line of the input slice (negative counts from end). Applied before regex filtering.numlines: Number of input lines to include from startline before regex filtering. <=0 means through EOF.maxhits: Maximum number of regex hits to return (context_lines around each hit are extra). <=0 means no cap.context_lines: Number of context lines to include around matched lines.
- patchwork_get_patches: Search and retrieve a list of patches from the Sourceware Patchwork instance.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
project: Optional filter by project name, link_name, or ID (e.g. "glibc", "gcc", "6").state: Optional filter by patch state or list of states. If not specified, defaults to ["new", "under-review", "rfc"] to return active patches. Supported states: "new", "under-review", "rfc", "changes-requested", "deferred", "committed", "accepted", "rejected", "superseded", "not-applicable". Pass "all" to disable filtering and fetch patches in any state.msgid: Optional filter by exact Message-ID.submitter: Optional filter by submitter email address (e.g. "siddhesh@redhat.com").q: Optional general search query (searches title/content of patches).since: Optional ISO-8601 timestamp (e.g. "2026-07-01T00:00:00") to filter patches submitted after this date.page: Page number to retrieve.per_page: Number of results per page (a sensible default is 30).
- patchwork_get_events: Retrieve a list of events from the Sourceware Patchwork instance.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
project: Optional filter by project name, link_name, or ID.category: Optional filter by event category (e.g. "patch-created", "check-created", "series-completed", "series-new-revision").since: Optional ISO-8601 timestamp to filter events after this date.until: Optional ISO-8601 timestamp to filter events before this date.page: Page number to retrieve.per_page: Number of results per page (a sensible default is 30).
- patchwork_get_patch: Retrieve the content and diff of a specific patch by ID.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
patch_id: The numeric Patchwork patch ID.
- patchwork_mbox: Fetch the original mailbox (mbox) body for a specific patch by ID.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
patch_id: The numeric Patchwork patch ID.
- inbox_list_inboxes: List the mailing lists served by this server's public-inbox store.
Each entry is the inbox name, to pass as the `inbox` argument of the other
inbox tools.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
glob: Optional pattern for list names: a plain substring such as "systemtap", or a shell-style glob such as "g*libc". Case-insensitive.
- inbox_search_subject: Search mailing list message subjects, newest first.
Returns matching messages with mid, date, subject, from, to, cc and the inbox
name; feed that name back to inbox_show_message / inbox_show_thread.
For ranked fulltext search (stemming, phrases, body hits), and for
and-combined or case-sensitive matches, use inbox_search_text instead.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
subject: Text that must appear in the subject. Multiple whitespace-separated words are combined with AND; a word may be a shell-style glob such as "elfutils*".inboxes: Mailing lists to search, exactly as reported by inbox_list_inboxes. Enumerate candidates there and pass a focused subset; an empty list searches nothing.since: Only messages sent after this time, ISO-8601 date or unix timestamp.until: Only messages sent before this time, ISO-8601 date or unix timestamp.ignorecase: Whether to ignore case when matching.offset: Number of results to skip for paging.limit: Maximum number of results to return.
- inbox_search_author: Search mailing list messages by author (From:, plus To:/Cc:), newest first.
Returns matching messages with mid, date, subject, from, to, cc and the inbox
name; feed that name back to inbox_show_message / inbox_show_thread.
For ranked fulltext search (stemming, phrases, body hits), and for
and-combined or case-sensitive matches, use inbox_search_text instead.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
author: Text that must appear in the From:, To: or Cc: header. Multiple whitespace-separated words are combined with AND; a word may be a shell-style glob such as "*redhat*".inboxes: Mailing lists to search, exactly as reported by inbox_list_inboxes. Enumerate candidates there and pass a focused subset; an empty list searches nothing.since: Only messages sent after this time, ISO-8601 date or unix timestamp.until: Only messages sent before this time, ISO-8601 date or unix timestamp.ignorecase: Whether to ignore case when matching.offset: Number of results to skip for paging.limit: Maximum number of results to return.
- inbox_search_text: Full-text search of mailing list messages.
Word-indexed (stemming) search over subjects, authors, recipients and
bodies, backed by the archive's xapian index; unlike
inbox_search_subject/inbox_search_author it has no literal-substring mode,
but ranks matches by relevance and returns a body snippet per hit.
A windowed (since/until) search is an era query: results are date-ordered,
drawn from the best-matching few thousand per shard -- a ubiquitous word
plus a narrow old window can under-report.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
query: Public-inbox query syntax: plain words match any of subject/from/to/cc/body. Field prefixes: s: subject, b: body (incl. quotes/diffs), bs: subject+body, f: from, t: to, c: cc, a: to+cc+from, q: quoted text, nq: nonquoted body, n: attachment filename, mid: exact Message-ID, l: list-id, dfn/dfa/dfb/dfhh/dfctx: diff filename/removed/added/hunk/context. Also "multiword phrases", trailing-* wildcards, and +required -excluded markers.inboxes: Mailing lists to search, exactly as reported by inbox_list_inboxes. Enumerate candidates there and pass a focused subset; an empty list searches nothing.since: Only messages sent after this time, ISO-8601 date or unix timestamp.until: Only messages sent before this time, ISO-8601 date or unix timestamp.sort: Sort order: "relevance" or "date" (newest first); ignored for windowed (since/until) searches, which are date-ordered.offset: Number of results to skip for paging.limit: Maximum number of results to return.
- inbox_list_recent: List the most recent mailing list messages, newest first.
Useful to orient before narrowing with inbox_search_subject or inbox_search_author.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
inboxes: Mailing lists to scan, exactly as reported by inbox_list_inboxes. Enumerate candidates there and pass a focused subset; an empty list scans nothing.since: Only messages sent after this time, ISO-8601 date or unix timestamp.until: Only messages sent before this time, ISO-8601 date or unix timestamp.offset: Number of results to skip for paging.limit: Maximum number of results to return.
- inbox_show_message: Return one mailing list message in mboxrd format.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
mid: The Message-ID of the message, as returned by the inbox_search_* tools.inbox: Optional mailing list name, exactly as reported by inbox_list_inboxes; omit to search all lists.all_headers: If True, keep the complete header set; otherwise only Date, From, To, Cc, Subject, Message-ID, In-Reply-To, References.comments_only: If True, keep only what the author wrote: quoted replies and patch hunks collapse to [elided] markers.
- inbox_show_message_url: Return a curl-able http URL for one message, without its text.
Fetch the URL out of band (curl, wget) to get the whole message for e.g.
`git am`, which keeps the message body out of the conversation instead of
retyping it. Use inbox_show_message when the text itself should be shown.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
mid: The Message-ID of the message, as returned by the inbox_search_* tools.inbox: Optional mailing list name, exactly as reported by inbox_list_inboxes; omit to search all lists.
- inbox_show_thread: Return a whole mailing list thread in mboxrd format, oldest first.
For the full usage guide (concepts, query workflow, testrun-vs-commitish distinction), call the `overview` tool or read resource `bunsen://overview`.
mid: The Message-ID of any message in the thread, as returned by the inbox_search_* tools.inbox: Optional mailing list name, exactly as reported by inbox_list_inboxes; omit to search all lists.since: Only include replies sent after this time, ISO-8601 date or unix timestamp.until: Only include replies sent before this time, ISO-8601 date or unix timestamp.limit: Maximum number of messages in the thread to return.all_headers: If True, keep the complete header set; otherwise only Date, From, To, Cc, Subject, Message-ID, In-Reply-To, References.comments_only: If True, keep only what the author wrote: quoted replies and patch hunks collapse to [elided] markers.