pgmcp AGENTS.md

Project instructions for the pgmcp codebase, covering its documentation, commands, testing rules and release checks. pgmcp is a Go project that exposes database-related functionality through an MCP server.

In plain words
What is it for?
Use them when working on the pgmcp repository. They guide Go tests, race and coverage checks, formatting, static analysis, builds, Docker commands, MCP conformance tests and release verification.
Why use it?
They give coding agents the repository-specific rules needed to test, format, build and validate changes consistently. They also explain when live database and MCP compatibility tests can run.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/pascalallen/pgmcp/agents-md
Clone the repo
git clone --depth 1 https://github.com/pascalallen/pgmcp

Made for: Codex, OpenCode.

Per session 2,379 This file is loaded in full into every session.
When invoked 2,379 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.02379 $0.02379
Opus 5 $0.01189 $0.01189
Sonnet 5 $0.00476 $0.00476
Haiku 4.5 $0.00238 $0.00238

Measured yesterday against content hash 13e382087cc4, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

pgmcp AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 103 lines

How it starts

The opening of the file, as written. The whole thing — 103 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AGENTS.md

doc.go/README are authoritative; this file records what is not derivable from code.

Commands

go test -race -cover ./...
go vet ./...
gofmt -l .                                              # any filename printed = unformatted; run before finishing
go run honnef.co/go/tools/cmd/staticcheck@latest ./...
go build ./cmd/pgmcp
bin/up                                                  # docker compose up --build -d, follow logs
bin/down                                                # tear down, including volumes
bin/exec <command>                                      # run a command in a throwaway go container

Integration tests are skipped unless PGMCP_TEST_DSN points at a Postgres with pg_stat_statements preloaded; the scratch-container recipe is in the README's Testing section. The conformance suite runs against a live HTTP server:

npx -y @modelcontextprotocol/conformance server --url http://127.0.0.1:8080/mcp \
  --expected-failures .github/conformance-expected-failures.yaml

The release pipeline — six binaries, the darwin universal binary, the Claude Desktop bundle, checksums — can be run end to end without publishing (needs Node for the pinned @anthropic-ai/mcpb CLI):

go run github.com/goreleaser/goreleaser/v2@latest release --snapshot --clean --skip=publish,docker

Invariants — keep the tests that pin them

Each line is a property the codebase must not lose. If a change makes one of these tests fail, the change is wrong until proven otherwise.

Read-only enforcement

  • Every statement the adapter runs is inside a READ ONLY transaction, and a write inside it fails with SQLSTATE 25006 — pinned by TestStoreReadOnly (infrastructure/postgres).
  • statement_timeout and lock_timeout are set on every such transaction, and the transaction is always rolled back — pinned by TestStoreReadOnly (infrastructure/postgres).
  • Only a single top-level SELECT/EXPLAIN/SHOW is allowed; a nested write statement (including one hidden in a CTE), a FOR UPDATE/FOR SHARE locking clause, a SELECT INTO, or a denied function is rejected — pinned by TestValidate (domain/sqlguard).
  • The libpg_query adapter reports the node types, function names and schemas the guard's rules are written against — pinned by TestParserParse and TestParserSatisfiesTheSqlguardParserPort (infrastructure/postgres).

Read the full file on GitHub · 103 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 103 lines · 2,379 tokens per session scan A 13e382087cc4

Subscribe to this mod's changes

pgmcp AGENTS.md is an instructions file published in the GitHub repository pascalallen/pgmcp (0 stars, last pushed 6d ago), licensed MIT. It adds 2,379 tokens to every session, about $0.0119 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.