Skip to main content
Nora Local 은 형태와 무관하게 — 데스크톱, compose, Kubernetes, 에어갭 — SaaS 와 동일한 MCP 서버 를 POST /api/v1/mcp 로 노출합니다. 코딩 에이전트가 로컬 URL 을 가리키기만 하면 Flow CRUD, 블록 조작, 배선, 변수, 배포, 트레이스까지 SaaS 와 같은 도구 표면을 그대로 씁니다.

URL

  • 데스크톱 앱 과 compose 경로는 기본이 http://localhost:8090/api/v1/mcp 입니다. 포트가 겹치면 .env.onprem 의 NORA_HOST_PORT 를 바꾸세요. MCP URL 도 함께 이동합니다.
  • Kubernetes 경로는 Helm 차트의 publicUrl 에 설정한 호스트네임을 씁니다 (예: https://nora.example.internal/api/v1/mcp). Kubernetes (Helm) 을 참고하세요.

연결하기

  • nora-local 은 Claude Code 툴 목록에 보일 별칭입니다. 이미 등록된 SaaS nora 와 구분되도록 이름을 지어 주세요.
  • --scope user 는 ~/.claude.json 에 씁니다. 이 노트북의 모든 프로젝트에서 로컬 서버가 보입니다. 플래그를 빼면 현재 프로젝트에만 등록됩니다.
  • 첫 툴 호출에서 브라우저가 로컬 서버 자체 로 OAuth 로그인 창을 엽니다. Nora Local 계정으로 로그인해 read · build · run 에 동의합니다.
확인:

OAuth 는 NORA_PUBLIC_URL 이 맞아야 동작합니다

OAuth 흐름은 서버가 광고하는 콜백 URL 로 브라우저를 되돌립니다. 이 URL 은 NORA_PUBLIC_URL (과 NORA_OAUTH_REDIRECT_BASE) 이 결정하므로, 브라우저가 실제로 접속하는 URL 과 정확히 같아야 합니다.
  • 로컬호스트 기본값 — 데스크톱 앱과 단일 호스트 compose 는 기본 http://localhost:${NORA_HOST_PORT:-8090} 로 그대로 됩니다.
  • 리버스 프록시 · 인그레스 뒤 — NORA_PUBLIC_URL=https://nora.example.internal (또는 Helm 의 publicUrl) 을 실제 공개 URL 로 세팅합니다. 안 그러면 OAuth 콜백이 http://localhost:8090 으로 돌아가고 브라우저가 그 주소에 못 닿아 로그인이 멈춥니다.

SaaS 와 함께 등록하기

별칭을 다르게 지으면 툴 이름이 겹치지 않습니다.
Claude Code 는 툴 이름 앞에 서버 별칭을 붙이므로 nora_list_flows 와 nora-local_list_flows 가 깔끔하게 분리됩니다.

노출되는 도구

도구 표면은 SaaS 와 동일합니다. 전체 목록은 MCP 도구 표면 을 참고하세요. 권한도 Nora Local 의 역할을 그대로 따릅니다. Guest 는 읽기만 가능하고, 승인이 필요한 액션은 MCP 로 실행해도 승인 절차를 그대로 거칩니다.

에어갭 노트

MCP 는 인터넷 접근이 필요 없습니다. OAuth 로그인과 툴 호출을 포함한 전체 흐름이 로컬 호스트 안에서 끝납니다.
  • NORA_AIRGAP=1 이 켜져 있어도 서버는 MCP 를 그대로 서빙합니다. 부팅 프로브는 서버가 공용 인터넷 에 못 닿는지만 확인하고, 로컬 브라우저 · CLI 의 인바운드 트래픽은 제한하지 않습니다.
  • 타겟 호스트에 브라우저가 없는 헤드리스 서버 설치라면, LAN 으로 서버에 닿을 수 있는 노트북에서 코딩 에이전트를 실행하고 NORA_PUBLIC_URL 을 LAN 호스트네임 (예: http://nora.internal:8090) 으로 설정해 브라우저가 콜백을 받을 수 있게 하세요.

문제 해결

  • claude mcp add 에서 connection refused. 스택이 꺼져 있는 상태입니다. docker ps 또는 데스크톱 앱 트레이로 확인하세요. URL 에는 스킴 (http://) 이 반드시 포함되어야 합니다.
  • OAuth 로그인 페이지가 404 · 무한 로딩. NORA_PUBLIC_URL 이 브라우저 접속 URL 과 일치하지 않는 경우입니다. 스킴 · 호스트 · 포트가 실제와 정확히 같은 값으로 지정하고 스택을 재시작하세요.
  • 로그인 후 툴 목록이 비어 있음. 로그인한 계정이 이 서버의 워크스페이스에 접근 권한이 없는 경우입니다. SPA 의 Settings → Members 에서 권한을 확인한 뒤 재연결합니다.
  • nora-local 과 nora 가 부딪히는 것처럼 보임. 실제로는 안 부딪힙니다. Claude Code 는 서버별로 툴 이름 앞에 별칭을 붙입니다. 픽커에 중복이 보이면 호스트를 재시작해 툴 목록을 새로고침하세요.

관련

MCP (SaaS)

호스팅된 platform.nora.my 서버에 대한 같은 페이지.

Settings — 호스트 포트

기본 8090 이 겹칠 때 NORA_HOST_PORT 를 바꿉니다.

Kubernetes (Helm)

Helm publicUrl 값과 인그레스 세팅.