Skip to content

Add Streamable HTTP + OAuth support for remote MCP servers #250

Description

@pranavp311

Summary

Graff 0.0.201 only supports spawning stdio MCP servers from .mcp.json. It cannot connect directly to remote Streamable HTTP MCP servers with OAuth, such as Mobbin (https://api.mobbin.com/mcp).

Evidence

  • graff mcp add persists only {command,args,env}.
  • src/mcp.zig describes and implements a stdio-only client by spawning child processes.
  • Mobbin requires Streamable HTTP plus OAuth and is natively supported by Codex via:
    • codex mcp add mobbin --url https://api.mobbin.com/mcp
    • codex mcp login mobbin
  • In a Graff session, I had to invoke a separate authenticated codex exec process as a bridge to call Mobbin MCP.

Expected

Support config entries such as:

{
  "mcpServers": {
    "mobbin": {
      "url": "https://api.mobbin.com/mcp"
    }
  }
}

with MCP Streamable HTTP negotiation, OAuth discovery/login/token persistence, and bounded request/response handling. Ideally:

graff mcp add mobbin --url https://api.mobbin.com/mcp
graff mcp login mobbin

The CLI should distinguish stdio and HTTP transports and report unsupported auth/capability states clearly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions