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.
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 addpersists only{command,args,env}.src/mcp.zigdescribes and implements a stdio-only client by spawning child processes.codex mcp add mobbin --url https://api.mobbin.com/mcpcodex mcp login mobbincodex execprocess 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:
The CLI should distinguish stdio and HTTP transports and report unsupported auth/capability states clearly.