Skip to content

objectstack dev has no https mode, so the advertised OAuth path for interactive MCP clients cannot be tried against a local dev server #16804

Description

@yinlianghui

Summary

objectstack dev serves plain http://localhost:<port> only. The Claude desktop client refuses to start an OAuth flow against a non-TLS URL (Refused to open sign-in URL for hotcrm: must be https), so the path the Setup → Connect an Agent page advertises for interactive clients — "the OAuth login opens automatically on first use" — cannot be exercised on a local dev server at all without the developer bringing their own TLS.

Today the only ways around it are (a) an API key header, which the same page labels headless — for CI, scripts, and agents without a browser, or (b) a hand-built local https reverse proxy plus OS_AUTH_URL=https://… so the discovery documents advertise the https origin. (b) works — it is how #16530 and #16549 were found — but it is a page of openssl/proxy setup that every developer, demo, and video recording has to repeat off-camera.

Ask

A first-party dev-time https mode, e.g.

objectstack dev --https            # self-signed dev cert, https://localhost:<port>
objectstack dev --https --cert … --key …

that (1) terminates TLS in the dev server itself, (2) sets the canonical origin so /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server advertise the https URL without a separate OS_AUTH_URL, and (3) prints the https endpoint in the 🤖 MCP server connect hint (today that block prints http://localhost:<port> even when OS_AUTH_URL is https — noted in #16530). Optionally print a one-line hint on how to trust the generated CA on macOS/Windows/Linux.

Why

  • The Connect an Agent page's headline promise ("Identity is self-serve … interactive clients just open a browser login") is only demonstrable against https. A local dev server is the first place anyone tries it.
  • Demo/video recordings of the OAuth path against a local instance currently depend on an undocumented, third-party proxy — the setup ends up in nobody's screen and everybody's shell history.
  • It removes the incentive to reach for API keys in interactive scenarios, which the page itself says is not what keys are for.

Related: #16530 (resource registration behind a canonical https origin), #16549, #16746.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions