pg.ddx.io: the PostgreSQL community's memory
mcp remote · streamable-http · v2026.10.22 · source: crawl
https://pg.ddx.io/mcp
Every PostgreSQL mailing list since 1991, linked to the commits, code, commitfest and docs.
Works
90
Verified Oct 31, 2026 · p50 1212 ms · p95 1336 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'pg.ddx.io' |
| tools_listed | 15 | pass | 126 tools |
| schema_complete | 15 | pass | 125 of 126 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 1212 ms |
| latency_p95 | 5 | pass | p95 1336 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | fail | get_attachment: base64 payload |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (126)
| Name | Description | Schema |
|---|---|---|
animal_owner_contributions | Animals run by one owner: list, branches each tracks, last status, first_seen_at and elapsed days since first observation. | typed |
blame_symbol | Show the commit history that modified a symbol's file, filtered to the symbol's line range. | typed |
get_entry | One commitfest entry by cf_id (the number in commitfest.postgresql.org/patch/<cf_id>/): title, status, commitfest, authors, reviewers, committer, its mail threads and branches. Read the thread with ge | typed |
get_execution_flows | Trace execution flow paths through the call graph from entry points. | typed |
get_impact | Analyze the impact of modifying a symbol: risk level, blast radius, affected communities and execution flows. | typed |
get_inbox_info | Get metadata for an inbox (name, addresses, message count, last activity) | typed |
animal_history | Run timeline for one animal. Filterable by branch and start cutoff; ordered newest first. | typed |
retrieve_context | START HERE for a question about PostgreSQL. Searches every mailing list (inbox narrows it) with hybrid keyword + semantic ranking and returns cited passages that fit token_budget (default 4000, max 32 | typed |
browse_by_date | Browse threads within a specific date range. Useful for exploring what was discussed during a particular time period. | typed |
build_status_freshness | Most recent :entry/last-build-at observation across all entries. Use to detect a stalled cfbot scraper. | typed |
buildfarm_overview | High-level buildfarm health: animal count, recent run counts, currently-failing animals, top owners, OS / branch breakdown, and freshness. | typed |
check_upstream_status | Check whether a pull request has been merged upstream. Returns the latest patch series head commit and any merge information. | typed |
code_index_status | Get code indexing statistics: files indexed, symbol counts by kind and language, edge count, community count. | typed |
codebase_map | Get a directory-level overview of the codebase showing file counts and symbol counts per directory. | typed |
commit_buildfarm_status | Buildfarm results for one PostgreSQL commit: every animal that built it, with branch, status (passed/failed/flapping), the failing stage and the log url, plus a {passed, failed, flapping, unknown} rol | typed |
commit_history | Everything linked to one commit: subject, author and date with its sha, the mail thread its Discussion: link names (participants resolved to people and organizations), the commitfest entry if tracked, | typed |
commitfest_stats | Overview of all indexed commitfests: count by status, top contributors (entries authored), distinct people / commitfests / entries totals. | typed |
contribution_summary | Summary of contribution counts per release: unique people, distinct commits, role breakdown (count(DISTINCT commit_sha) per role, canonical authoritative repos only), and revert-commit count. Powers t | typed |
detect_changes | Detect which symbols changed between two commits by comparing file content hashes. | typed |
discussion_links | Discussion / Closes / Fixes / Backpatch-through trailers attached to one commit. Returns the raw trailer text and any URL extracted. For the messages those links resolve to, plus the committers announ | typed |
embedding_status | Get embedding coverage statistics: how many messages have embeddings, which model was used, and when embeddings were last generated. | typed |
entry_branches | Repository branches tracked for a commitfest entry. Joins commitfest.entry_repos with ag_repositories so callers see repo name + branch_name + is_authoritative. | typed |
entry_history | Status changes for a commitfest entry across commitfests. The relational table doesn't carry an audit log, so we approximate the patch's lifeline by joining on shared :entry/thread-message-id (precise | typed |
find_breaks | Animals that failed on a branch within the time window bounded by two commit SHAs. The window is defined by the earliest started_at observed for either SHA on that branch — not by git topological orde | typed |
find_contributions | Find raw contribution rows for one person: git commit SHAs / buildfarm animals tagged with a role + release. Useful for drill-down on a contributor's recent work. | typed |
find_dead_code | Find functions/methods with zero incoming call graph edges (potentially unused code). | typed |
find_entries_for_author | Find commitfest entries where the given person is an author. Looks up by email (exact) or by name (substring, case-sensitive). | typed |
find_entries_for_thread | Find commitfest entries linked to a pgsql-hackers thread by Message-ID. (Returns empty until the mailing-list cross-reference scrape lands; the index attribute :entry/thread-message-id is in the schem | typed |
find_entries_with_failures_on | Cross-domain feed: recent failed buildfarm runs for a named animal, plus commitfest entries with cfbot :failing rollups whose tracked branches overlap the animal's. Note: buildfarm runs commit SHAs an | typed |
find_failing_patches | Commitfest entries whose latest cfbot build fails on at least one platform: cf_id, title, entry_status and commitfest_number. entry_status filters (default the active reviewable statuses, e.g. needs-r | typed |
find_failing_runs | Most recent failing buildfarm runs across the entire fleet. Filterable by branch and start cutoff. Use to answer 'what is broken right now?' | typed |
find_passing_long_pending | Green patches stuck in review: entries whose builds pass on every platform yet whose :entry/last-updated is older than N days. Useful for the 'why isn't this committed yet?' question. | typed |
find_patches_by_platform_status | Patches that pass on some platforms but not others. Example: passing on linux but failing on macos -> portability bug. | typed |
find_pattern | Search for a regex pattern in code symbol bodies. Uses trigram indexes for acceleration. | typed |
find_rebase_needed_patches | Entries cfbot reports as no longer applying to master tip (:entry/applies-cleanly is false). These need an author rebase. | typed |
find_related_discussions | Find mailing list messages related to a commit, topic, or PR. A postgres commit SHA (7-40 hex) returns the mail that refers to that commit (match_mode commit): its Discussion: threads first, then the | typed |
find_similar_messages | Find messages similar to a given message using its embedding vector. Useful for finding related discussions or duplicate threads. | typed |
get_animal | Profile of one buildfarm animal: hardware/OS/compiler/owner, branches tracked, last build status, plus the last 20 runs (any branch). | typed |
get_attachment | The content of one attachment of a mail message (a patch, a log, a test case), chosen by 1-based index or a filename substring, as listed in get_message/get_thread attachments. Text attachments come b | typed |
get_author_messages | Find messages by a specific author, optionally filtered by date range. Uses the f: (from) search prefix. | typed |
get_callees | Find all symbols that the given symbol calls/references (forward call graph). | typed |
get_callers | Reverse call graph: the symbols that call or reference qualified_name (from search_symbols), each with its file and lines, like `git grep -w <name>` restricted to call sites. HEAD only; macro expansio | typed |
get_commitfest | Get a single commitfest with entries grouped by status and the top contributors (authors with the most entries). | typed |
get_communities | List Louvain community clusters detected in the call graph. Communities group related symbols by functional area. | typed |
get_community | Get details and member symbols for a specific community. | typed |
get_contributor | A contributor's profile by email (exact) or name (substring): canonical name, page hash, totals and per-release counts by role (authored, reviewed, committed, reported, ...), the 5 latest credited com | typed |
get_contributor_history | Show all past mailing list submissions by a contributor (matched by email address or name). | typed |
get_dependents | Get transitive dependents: all symbols in the blast radius if this symbol changes. | typed |
get_doc_page | One PostgreSQL documentation page as text: path (e.g. "brin.html" or "sql-createtable.html") and optional version ("17", "current"; default the latest). Returns its url, path and stored text (body) wi | typed |
get_inbox_stats | Return aggregate statistics about an inbox: message counts by time period, top authors, and activity trends. | typed |
get_inbox_summary | Per-inbox summary: total messages, top 10 posters, thread count, date range, and lifetime average messages/day (total messages divided by the days spanned by the archive). | typed |
get_message | One mail message by Message-ID: headers, in_reply_to/references, decoded body text (by default the author's own words: quoted replies and their attributions, forwarded or Outlook-quoted mail, inline p | typed |
get_message_headers | Get email headers as structured key/value pairs. Returns all headers or a specific header by name. | typed |
get_message_references | Discover cross-references in a message. Returns explicit References/In-Reply-To headers plus any Message-IDs found in the body text, with archive lookup for each. | typed |
get_new_messages | Return messages newer than a given article number cursor, enabling agents to poll for new messages without re-scanning. Use after=0 for the first call, then use the returned last_article_num as the cu | typed |
get_patch_branches | Get the git branches created from a patch series. Shows what branches were applied from email patches for code intelligence analysis. | typed |
get_patch_build_history | Build matrix for one entry: per-platform/config status, log URL, observation time, applies-cleanly flag, rollup. | typed |
get_patch_series | Get patch submission history for a forge pull request URL. Returns all iterations submitted to the mailing list. | typed |
get_raw_message | Get the complete raw RFC 822 email bytes for a message. Useful for agents that need to parse headers/structure themselves or forward messages. | typed |
get_repo_sync_stats | Get commit frequency analysis and sync statistics for a repository. Returns median commit interval, recommended poll frequency, and recent fetch log. | typed |
get_repository_summary | Per-repository summary: total commits, top 10 contributors, branches, language breakdown (from indexed symbols), and a sampled most-touched-paths list. | typed |
get_signature | Get the function/method signature and doc comment for a symbol. | typed |
get_source_info | Detail for a single source by name, the same row list_sources returns. Returns kind, item_count, last_update, next_sync, freshness_status, and description. | typed |
get_symbol | Get full details for a code symbol by its qualified name, including source code, signature, documentation, and file location. | typed |
get_tests_for | Find test symbols that reference the given symbol. | typed |
get_thread | A mail thread, found by any Message-ID in it, oldest first. Each message: from, to, cc, date, message_id, decoded body text (by default the author's own words: quoted replies, signature and inline pat | typed |
get_thread_references | Cross-reference graph for an entire thread. Collects all Message-IDs referenced in body text across all messages in the thread and resolves which other threads they point to. | typed |
get_wiki_history | Get revision history for a wiki page. | typed |
get_wiki_page | One wiki.postgresql.org page by title: its latest revision content with author and date. Titles are as on the wiki ("Don't Do This", "Todo"). Use search_wiki to find a title, get_wiki_history for olde | typed |
git_analyze_activity | Show commit activity over time, bucketed by period. Useful for understanding development pace and trends. | typed |
git_analyze_authors | Get commit statistics per author: total commits, first and last commit dates. Ranked by commit count. | typed |
git_analyze_bus_factor | Identify files with the fewest distinct authors (bus factor risk). Files modified by only one person are knowledge silos. | typed |
git_analyze_churn | Identify the most frequently modified files in the repository. High-churn files may indicate hotspots or unstable code. | typed |
git_analyze_coupling | Find files that are frequently changed together. Logical coupling can reveal hidden dependencies between components. | typed |
git_analyze_hotspots | Aggregate file churn by directory to find the most actively changed areas of the codebase. | typed |
git_blame | File version history, not a per-line blame: the commits that changed a file on the history of a commit (like `git log <rev> -- <path>`), newest first, each with sha, commit_id, author, date, summary a | typed |
git_diff | Two modes: (1) commit-range mode — pass base_branch and head_branch to get the list of commits unique to head_branch (set difference base..head), optionally filtered by author/message/path; (2) conten | typed |
git_log | Commit history like `git log`, newest first, filtered by path (commits touching a file), author (substring), since/until (YYYY-MM-DD or RFC 3339) and branch (any branch, tag or major version such as 1 | typed |
git_search | Search postgres commit messages (or file paths with search_in=paths) by keywords, newest first (all words must appear, case-insensitive; like `git log -i --grep` with every word). Each commit: sha (40 | typed |
git_show_file | Read a file at any commit, branch, tag or major version (like `git show <rev>:<path>`), from the git clone. commit takes a SHA (>= 7 hex), branch, tag, 17 or 9.6, <ref>~N or a commit_id; default HEAD; | typed |
history-of | One-shot historical context for CI: given content (a diff, file path, symbol, commit subject, or feature name), return the most relevant default-branch commits, the associated mailing-list discussion | typed |
hybrid_search | Mailing-list search, keyword (BM25 over the authors' own words) and semantic (embeddings) blended per thread, over every list unless inbox names one or more. Returns up to limit threads (default 20, m | typed |
hybrid_search_code | Combined keyword + semantic code search using Reciprocal Rank Fusion. Requires embeddings to be generated. | typed |
list_animals | List PostgreSQL buildfarm animals. Filterable by OS, branch tracked, last build status, or owner. Failing animals are returned first (sort key: last_status='failed' DESC, name ASC). | typed |
list_branches | List tracked branches for a repository, including head commit and default branch status. | typed |
list_commitfests | List PostgreSQL commitfests indexed in the mentat triple store. Each commitfest carries a status (:open / :in-progress / :closed) and an entry count grouped by status. | typed |
list_contributors | List PostgreSQL community contributors aggregated across git trailers (Reviewed-by, Tested-by, etc.), commit author/committer headers, and buildfarm animal owners. Sorted by total contributions descen | typed |
list_discord_channels | List monitored Discord channels with message counts. | typed |
list_doc_versions | List available documentation versions with page counts. | typed |
list_entries | List commitfest entries (proposed patch series). Filterable by status, commitfest number, or topic; paginated. | typed |
list_inboxes | List all configured agora mailboxes with name, message_count, latest_message_date, latest_import_date, listid (when known) and description. Optional min_messages filter; limit/offset are accepted for | typed |
list_projects | List bridge-configured projects linking a forge repository to a mailing list inbox. | typed |
list_recent | List recent messages from an inbox | typed |
list_repositories | List all registered git repositories with name, branch, commit_count, file_count, indexed-symbol_count, latest_commit, last_fetched_at, and import_state. Optional min_commits and branch filters; limit | typed |
list_sources | Every source behind this server with its kind (inbox, repository, docs, wiki, discord), item count, last update and freshness (fresh/stale): the 56 mailing lists, the git repositories, the documentati | typed |
list_threads | Browse recent threads (topic-level view). Returns thread summaries with message counts, date ranges, and latest message metadata. | typed |
recent_commitfest_activity | Rolling window of commitfest entries updated in the last N days. Returns the entries plus a status histogram. Uses the relational commitfest.entries table for predictable latency. | typed |
search_commitfest | Full-text search of commitfest entries (title first, then author/reviewer/committer names), in the current commitfest by default, or commitfests="all" (back to 2014) or a comma list of numbers. Websea | typed |
release_contributors | Top contributors per role for one release. Scope: canonical authoritative repos only (ag_repositories.is_authoritative = TRUE). Returns top 20 per role across authored / reviewed / tested / reported / | typed |
repository_stats | Get detailed statistics for a git repository including commit count, file count, branch, and import state. | typed |
search | Keyword search of mailing-list messages (BM25 over subject, sender and the authors' own words), every list unless inbox narrows it. Operators in query: s:/intitle: subject, f:/from: sender, b:/intext: | typed |
search-regex | Full-text search across mailing list messages using POSIX regex patterns. Supports edit-distance fuzzy matching via the `k` parameter (0 = exact regex, >=1 = up to k insertions/deletions/substitutions | typed |
search_all_sources | Unified search across all document sources (docs, wiki, and email). Returns results ranked by relevance. Search operators (site:, after:, before:, from:, link:, /regex/ ...) are applied per source; op | typed |
search_discord_topics | Find PostgreSQL Discord discussions semantically related to a query. Returns only the channel, approximate date range, and participants of relevant conversations — never message content or links (per | typed |
search_docs | Full-text search of the PostgreSQL documentation (websearch syntax: "phrase", -term, or), title matches first. Searches the current release unless version (one, e.g. "17") or versions (several) is giv | typed |
search_patches | Find patch series by parsing [PATCH v2 3/7]-style subject prefixes. Returns structured patch metadata including version, sequence, total, and series grouping. complete=false when it ran out of budget_ | typed |
search_symbols | Find C functions, macros, types and variables by name in the indexed source (HEAD): BM25 on names, then fuzzy and body matches. Filter by kind (function, struct, macro, ...), language, repository. Eac | typed |
search_wiki | Full-text search (websearch syntax) of wiki.postgresql.org. By default searches each page's current text; history=true searches every revision and returns, per page, the latest matching revision (rev_ | typed |
semantic_search | Search messages on every list (or the lists in inbox) by semantic similarity using vector embeddings; each result names its inbox. Returns messages most similar in meaning to the query text. Requires | typed |
semantic_search_code | Search code symbols by semantic similarity using vector embeddings. Requires embeddings. | typed |
symbols_in_file | List all code symbols defined in a file, ordered by line number. | typed |
regex_search_code | Regular-expression search of the CURRENT source only (HEAD of master for postgres, the default branch elsewhere), like `git grep -E` with grep's line semantics: ^ and $ anchor at line starts and ends, | typed |
grep_repository | Literal-text search of the CURRENT source only (HEAD of master for postgres, the default branch elsewhere), like `git grep -F` (regex characters are escaped; case_insensitive=true for -i). Returns up | typed |
find_string_literals | Find occurrences of a literal in current (HEAD) source, restricted to a syntactic kind: "strings" (inside double quotes), "comments" (after // or /*), or "all". | typed |
upcoming_events | PostgreSQL community events in a date window: conferences, PGDays, meetups, online events, Call for Papers and registration deadlines, conference talks (with speakers and their pg.ddx.io person hash), | typed |
calendar_feeds | List every pg.ddx.io calendar feed (iCalendar URLs) with event counts: all events, regions, countries, conference series, the PostgreSQL release cycle, teams and organisations. | typed |
combine_calendars | Combine several pg.ddx.io calendar feeds into ONE subscription. Give feed paths or URLs as listed by calendar_feeds (e.g. events/region/europe, series/pgconf-eu, teams/committers, people/<8hex>, https | typed |
cross_reference | What relates to one stored item, and what happened to it. ref: a Message-ID or message URL, a commit SHA or URL, a docs URL or page.html, a wiki URL or title, a commitfest URL, CVE-YYYY-NNNNN, or feat | typed |
whats_new | Catch up: everything a person or group did, and where they were named, in a window, newest first per kind (mail grouped by thread). who: a name (fuzzy; close matches return ambiguous [{name, hash}]), | incomplete |
code_search | Search the postgres source at any commit, branch, tag or date (or across history), from the code-history index: every line of every commit, byte-exact. A literal by default; match=regex for a PostgreS | typed |
read_file | Read a file of the postgres source at any commit, branch, tag or date from the code-history index: numbered lines, at most 2000 per call (page with start_line/end_line), byte-exact to git. Says total_ | typed |
list_files | List the files of the postgres source under a directory at any commit, branch, tag or date (code-history index), with line counts; depth folds deeper paths into directories with file counts; glob filt | typed |
blame | Per-line blame of a postgres file at any commit (code-history index): the commit that wrote each line, as `git blame` with git's default diff. ignore_revs (default true) passes through the pgindent/re | typed |
get_commit | One postgres commit from the code-history index: message, parsed trailers (names only), Discussion threads (links to the archived thread on /m/), back-patch siblings on other branches, first_releases | typed |
search_commits | Search postgres commits (code-history index), newest first, like git log: range (a rev, or A..B; default the newest release branch), message (regex, case-insensitive), author (regex over author, commi | typed |
get_ontology | What this server knows and which tool reads it: every kind of fact (person, membership, roster, commitfest entry, feature, decision, position, ...) with its attributes, value types, cardinality, docs | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/io-ddx-pg-archive-streamable-http)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.