
pg.ddx.io MCP server
Which MCP servers are pg.ddx.io's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-28
- Registry nameio.ddx.pg/archiveverified in the MCP registry
The registry name sits under ddx.io. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-28
- Tools125
- Server calls itselfpg.ddx.io
- Server version1.0
- Protocol version2025-06-18
On 2026-10-28 the server answered initialize and tools/list without a sign-in. First answer in 222 ms.
- Whether its tools do the product's job has not been judged yet.
- Checked on 5 of the 7 days it takes to judge reliability.
Once connected
- For "find the mailing-list thread behind a PostgreSQL change", the likely first call is find_related_discussions.
- Its definitions take about 23736 tokens of context: enable only the tools a task needs.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 5 so far
- Answeredmeasuring5 of the 7 daily checks it takes to print a share
- Median first answer246 ms
- Space in an agent's context≈ 23,736 tokensthe definitions of all its tools (126), which an agent carries on every turn
- Tool definitionsA · 100 of 100
- Typed results8 of 126 toolsdeclared outputSchema: results come typed, read once
- Every tool passes all six checks.
What an agent can do with it
- can do · find the mailing-list thread behind a PostgreSQL change
- not sure · trace a commit to its back-patched branches and first releases
- not sure · check an agent's PostgreSQL history answer against cited sources
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
None of the five warning signs in these definitions.
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
retrieve_contextSTART 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 32000): one passage per thread, each the…
animal_historyRun timeline for one animal. Filterable by branch and start cutoff; ordered newest first.
animal_owner_contributionsAnimals run by one owner: list, branches each tracks, last status, first_seen_at and elapsed days since first observation.
blame_symbolShow the commit history that modified a symbol's file, filtered to the symbol's line range.
browse_by_dateBrowse threads within a specific date range. Useful for exploring what was discussed during a particular time period.
build_status_freshnessMost recent :entry/last-build-at observation across all entries. Use to detect a stalled cfbot scraper.
buildfarm_overviewHigh-level buildfarm health: animal count, recent run counts, currently-failing animals, top owners, OS / branch breakdown, and freshness.
check_upstream_statusCheck whether a pull request has been merged upstream. Returns the latest patch series head commit and any merge information.
code_index_statusGet code indexing statistics: files indexed, symbol counts by kind and language, edge count, community count.
codebase_mapGet a directory-level overview of the codebase showing file counts and symbol counts per directory.
commit_buildfarm_statusBuildfarm 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} rollup. commit_sha is a SHA (>= 7 hex) or…
commit_historyEverything 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, and Discord mentions. For postgres…
commitfest_statsOverview of all indexed commitfests: count by status, top contributors (entries authored), distinct people / commitfests / entries totals.
contribution_summarySummary 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 the /community hero strip.
detect_changesDetect which symbols changed between two commits by comparing file content hashes.
discussion_linksDiscussion / 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 announcement and messages citing the SHA…
embedding_statusGet embedding coverage statistics: how many messages have embeddings, which model was used, and when embeddings were last generated.
entry_branchesRepository branches tracked for a commitfest entry. Joins commitfest.entry_repos with ag_repositories so callers see repo name + branch_name + is_authoritative.
entry_historyStatus 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) and falling back to title-prefix…
find_breaksAnimals 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 order, since the buildfarm tables don't…
find_contributionsFind 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.
find_dead_codeFind functions/methods with zero incoming call graph edges (potentially unused code).
find_entries_for_authorFind commitfest entries where the given person is an author. Looks up by email (exact) or by name (substring, case-sensitive).
find_entries_for_threadFind 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 schema.)
find_entries_with_failures_onCross-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 and cfbot runs cf/<id> branches, so this…
find_failing_patchesCommitfest 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-review, ready-for-committer); platform…
find_failing_runsMost recent failing buildfarm runs across the entire fleet. Filterable by branch and start cutoff. Use to answer 'what is broken right now?'
find_passing_long_pendingGreen 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.
find_patches_by_platform_statusPatches that pass on some platforms but not others. Example: passing on linux but failing on macos -> portability bug.
find_patternSearch for a regex pattern in code symbol bodies. Uses trigram indexes for acceleration.
find_rebase_needed_patchesEntries cfbot reports as no longer applying to master tip (:entry/applies-cleanly is false). These need an author rebase.
find_related_discussionsFind 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 committers announcement, then messages…
find_similar_messagesFind messages similar to a given message using its embedding vector. Useful for finding related discussions or duplicate threads.
get_animalProfile of one buildfarm animal: hardware/OS/compiler/owner, branches tracked, last build status, plus the last 20 runs (any branch).
get_attachmentThe 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 back as decoded text (a .patch is ready…
get_author_messagesFind messages by a specific author, optionally filtered by date range. Uses the f: (from) search prefix.
get_calleesFind all symbols that the given symbol calls/references (forward call graph).
get_callersReverse 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 expansion and function pointers are not…
get_commitfestGet a single commitfest with entries grouped by status and the top contributors (authors with the most entries).
get_communitiesList Louvain community clusters detected in the call graph. Communities group related symbols by functional area.
get_communityGet details and member symbols for a specific community.
get_contributorA 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 commits (commit_sha = the git SHA, roles…
get_contributor_historyShow all past mailing list submissions by a contributor (matched by email address or name).
get_dependentsGet transitive dependents: all symbols in the blast radius if this symbol changes.
get_doc_pageOne 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) with fetched_at. Use search_docs to find…
get_entryOne 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 get_thread; cfbot state with…
get_execution_flowsTrace execution flow paths through the call graph from entry points.
get_impactAnalyze the impact of modifying a symbol: risk level, blast radius, affected communities and execution flows.
get_inbox_infoGet metadata for an inbox (name, addresses, message count, last activity)
get_inbox_statsReturn aggregate statistics about an inbox: message counts by time period, top authors, and activity trends.
get_inbox_summaryPer-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).
get_messageOne mail message by Message-ID: headers, in_reply_to/references, decoded body text (by default the author's own words: quotes, signature and inline patch removed; full_text=true for everything, quotes included), attachments [{index…
get_message_headersGet email headers as structured key/value pairs. Returns all headers or a specific header by name.
get_message_referencesDiscover 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.
get_new_messagesReturn 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 cursor for subsequent calls.
get_patch_branchesGet the git branches created from a patch series. Shows what branches were applied from email patches for code intelligence analysis.
get_patch_build_historyBuild matrix for one entry: per-platform/config status, log URL, observation time, applies-cleanly flag, rollup.
get_patch_seriesGet patch submission history for a forge pull request URL. Returns all iterations submitted to the mailing list.
get_raw_messageGet the complete raw RFC 822 email bytes for a message. Useful for agents that need to parse headers/structure themselves or forward messages.
get_repo_sync_statsGet commit frequency analysis and sync statistics for a repository. Returns median commit interval, recommended poll frequency, and recent fetch log.
The first 60 of 125, as the server listed them.
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"archive": {
"type": "http",
"url": "https://pg.ddx.io/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http ddx https://pg.ddx.io/mcpclaude.ai, ChatGPT and other clients: add https://pg.ddx.io/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.