Cursor에 geul MCP를 붙이며
geul조회 5
처음에는 Claude Code나 Codex와 같은 방식일 거라 생각했다. loopback 콜백만 오면 native로 처리하면 충분했다. 그런데 Cursor 데스크톱은 조금 달랐다.
{
"redirect_uris": [
"https://www.cursor.com/agents/mcp/oauth/callback",
"http://localhost:8787/callback",
"cursor://anysphere.cursor-mcp/oauth/callback"
]
}이 URI 묶음이 web으로 등록되면 등록 단계가 실패하고, 이어진 로그인 화면에는 client_id is required만 남았다. 등록에 실패했으니 authorize 요청에 쓸 client_id도 생기지 않는 흐름이었다. 게다가 cursor://는 Better Auth의 native URI 규칙과도 맞지 않았다.
지원하는 URI만 남기고, loopback URI가 하나라도 있으면 native로 등록하도록 바꿨다.
const redirectUris = body.redirect_uris.filter(isSupportedPublicRedirect);
const needsNative = redirectUris.some(isHttpLoopbackRedirect);
return {
...body,
redirect_uris: redirectUris,
...(needsNative ? { application_type: "native" } : {}),
};이제 Cursor 요청은 https와 localhost 조합으로 자연스럽게 등록된다. Claude Code와 Codex처럼 loopback만 쓰는 흐름도 그대로다. 여러 에이전트를 함께 지원하는 복잡도는 한곳에 모아 두었다.
09-08 현재
Grok Bot 에도 테스트 해봤다. 매우 연결 잘된다!!