Skip to content

Add Streamable HTTP OAuth and core Smolify MCP - #277

Closed
yxlyx wants to merge 10 commits into
mainfrom
feat/mcp-streamable-http-smolify
Closed

Add Streamable HTTP OAuth and core Smolify MCP#277
yxlyx wants to merge 10 commits into
mainfrom
feat/mcp-streamable-http-smolify

Conversation

@yxlyx

@yxlyx yxlyx commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add native MCP Streamable HTTP transport with JSON and incremental SSE responses
  • retain MCP session IDs, use negotiated protocol versions, recover expired sessions, and bound requests/responses
  • add OAuth 2.1 protected-resource and authorization-server discovery, dynamic client registration, PKCE login, persisted tokens, and automatic refresh
  • add graff mcp add <name> --url ..., static headers, graff mcp login <name>, and runtime /mcp add ... --url ...
  • connect Smolify's hosted documentation MCP as a core service, with GRAFF_NO_SMOLIFY=1 as the offline/privacy opt-out
  • preserve workspace MCP consent boundaries and prevent workspace configuration from shadowing the pinned core Smolify endpoint

Security

  • require HTTPS except for loopback HTTP endpoints
  • keep remote workspace servers behind the existing session consent gate
  • store OAuth credentials outside repositories with restricted POSIX permissions or a Windows owner-only ACL
  • use PKCE S256 and validate callback state
  • request read-only scopes for authenticated Smolify access

Validation

  • zig build test
  • zig build
  • zig build -Dtarget=x86_64-windows
  • git diff --check
  • CLI add/list persistence smoke test for Mobbin
  • live anonymous Smolify initialize request (HTTP 200, MCP 2025-11-25)

Closes #250

yxlyx and others added 10 commits July 21, 2026 16:44
Add native remote MCP transport with JSON and SSE responses, session handling, security limits, and workspace consent integration. Implement OAuth discovery, dynamic registration, PKCE login, persisted token refresh, and CLI support for remote servers. Connect Smolify as an optional core documentation service.

Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Complete protected-resource and authorization-server discovery, enforce PKCE and protocol negotiation, preserve home-less MCP config commands, and split oversized MCP/main sources.

Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Disable the hosted core Smolify connection for deterministic protocol and PTY integration tests.

Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Print captured graff stderr when the offline integration process exits early so CI reports the underlying failure.

Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Open the identity directory with a real readable descriptor before applying permissions, avoiding the Linux O_PATH fchmod panic exposed by control-protocol CI.

Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Align Codex transport and parallel-title tests with the Responses API behavior that omits unsupported top-level max_output_tokens fields.

Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Drop the flagged-off limyuxi_* birthday easter eggs (glitter + ASCII
dragon spinners, pastel-pink auto-theme, cwd gating) that have been
disabled since the default theme/spinner became universal. The
PastelPink theme stays available as a normal /theme option. No
behavioral change — the flag was already false.

Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Drop the hidden spinner render flag, PTY test and CI wiring, and the stale debugging references.

Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Keep the variant outside the public animation pool while adding per-frame visual and text variation for its intended local profile. Preserve the existing normal-spinner opt-out and cover the gate and renderer with tests.

Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
@justrach

Copy link
Copy Markdown
Owner

Closing as abandoned vs tip. Smolify is not a reserved core MCP. This July Streamable-HTTP / OAuth / core-Smolify rewrite does not apply to current MCP (ADR 0029 / 0035 / 0050). #250 stays parked — reopen a fresh PR against tip if Streamable HTTP + OAuth is still wanted without pinning Smolify as core.

@justrach justrach closed this Aug 31, 2026
cursor Bot pushed a commit that referenced this pull request Aug 31, 2026
The parked Smolify and idle-localhost PRs are closed as abandoned vs tip;
issues stay inventory. Live leftovers remain #675 and #677.
yermakoffivan pushed a commit to yermakoffivan/codegraff that referenced this pull request Aug 31, 2026
…justrach#694

Record the three product merges on the new release branch, remap the
TLS-generation ADR to 0048 so 0042 stays TUI claims, and leave justrach#277 /
justrach#200 parked.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Streamable HTTP + OAuth support for remote MCP servers

2 participants