Skip to content

Add Streamable HTTP OAuth and core Smolify MCP - #277

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

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>
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