• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / mcp / 32367232457
97%

Build:
DEFAULT BRANCH: main
Ran 20 Aug 2026 12:09PM UTC
Jobs 1
Files 33
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Aug 2026 12:07PM UTC coverage: 96.52% (+0.008%) from 96.512%
32367232457

push

github

web-flow
feat: add dual-era package serving entries (#358)

> **This is a stacked PR. Its parent is #327, please review that one
first.**
>
> The diff here is only this branch's own commits. The base is
`raulb/spike-mcp-v2` rather than `main` on purpose, because #327 is
still in review; once it lands, this retargets to `main` and the diff
against `main` shrinks accordingly.
>
> The `test` check runs on this page and passes at `851f01e`. An earlier
version of this description said it would be absent; that note is out of
date. The test output under Verification came from a local run that
predates the check.
>
> At merge time: retarget to `main`, let `tests.yml` run green there,
then merge.

## What kind of change does this PR introduce?

The CLI serves both protocol eras from one tool definition, and the
package exports one modern HTTP handler for the hosted `/mcp` endpoint
to mount.

PR 2 of 3 for
[AI-1044](https://linear.app/supabase/issue/AI-1044/migrate-mcp-server-supabase-to-mcp-sdk-v2)
([plan](https://linear.app/supabase/document/mcp-sdk-v2-migration-plan-d19bb064d673)).

## What is the current behavior?

`src/transports/stdio.ts` connects a raw `StdioServerTransport`, so only
2025-era clients are served, and there's no HTTP entry for hosted to
consume.

## What is the new behavior?

`serveStdio` owns the transport and picks the era per connection.
`createSupabaseMcpHandler` wraps the SDK's `createMcpHandler` with
`legacy: 'reject'`, so hosted keeps authentication, ABAC, era dispatch,
and logging.

`tools/list` is unchanged, so the frozen ChatGPT contract is unaffected.
`mcp-server-postgrest` keeps its single-era entry, and nothing here adds
Elicitation machinery, tool policies, or telemetry.

## Verification

- `mcp-server-supabase` unit + integration: **222 passed**. Both eras
run against the real built `dist/transports/stdio.js`, spawned as a
child process.
- `mcp-utils`: **12 passed**. `pnpm build` and `pnpm format:check`
clean.
- `pnpm test:packed-pla... (continued)

350 of 384 branches covered (91.15%)

Branch coverage included in aggregate %.

6 of 6 new or added lines in 1 file covered. (100.0%)

2951 of 3036 relevant lines covered (97.2%)

50.92 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32367232457.1 20 Aug 2026 12:09PM UTC 33
96.52
GitHub Action Run
Source Files on build 32367232457
  • Tree
  • List 33
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32367232457
  • 989eb4e8 on github
  • Prev Build on main (#32367096656)
  • Next Build on main (#32367864500)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc