Releases: ohah/react-native-mcp
react-native-mcp-server v0.1.0-rc.14
What's Changed
iOS Orientation 가이드 추가
- AI가 iOS에서 MCP 도구 사용 시 디바이스 방향(portrait/landscape)을 먼저 확인하도록 MCP instructions 최상단에 안내 추가
- portrait/landscape에 따라 좌표 시스템이 달라져 tap, swipe 등이 틀어지는 문제를 사전 방지
get_orientation을 세션 시작 시 호출하고,set_orientation후에도 재확인하도록 안내
CI/CD 개선
- publish workflow에서 rc 버전을 자동으로
rcnpm 태그로 배포하도록 수정 (기존: 항상latest)
Full Changelog: react-native-mcp-server-v0.1.0-rc.13...react-native-mcp-server-v0.1.0-rc.14
react-native-mcp-server v0.1.0-rc.13
What's Changed
📖 Token-efficient tool selection guide
AI 에이전트가 UI 상태 확인 시 스크린샷 대신 텍스트 기반 도구를 우선 사용하도록 MCP server instructions 및 tool description에 가이드를 추가했습니다.
Server Instructions 추가
- 도구 선택 우선순위 테이블: text tools (1st) →
webview_evaluate_script(2nd) →describe_ui(3rd) →take_screenshot(4th) - 구체적 사용 예시: 체크박스 상태 확인 →
webview_evaluate_script, 화면 전환 확인 →assert_text - "스크린샷 1회 촬영 후 텍스트 도구로 전환" 가이드
take_screenshot description 강화
- "EXPENSIVE: consumes large image tokens" 경고 추가
- 대안 도구(query_selector, assert_text, webview_evaluate_script) 안내
💡 Why?
스크린샷은 이미지 토큰을 대량 소모하여 컨텍스트 윈도우를 빠르게 소진합니다. 텍스트 기반 도구를 우선 사용하면 동일한 검증을 훨씬 적은 토큰으로 수행할 수 있습니다.
Full Changelog: react-native-mcp-server-v0.1.0-rc.12...react-native-mcp-server-v0.1.0-rc.13
react-native-mcp-server v0.1.0-rc.11
react-native-mcp-server v0.1.0-rc.11
MCP 서버 강제종료 시 앱 크래시를 방지하는 WebSocket 네이티브 모듈 방어 패치입니다.
설치
npm install -g @ohah/react-native-mcp-server@0.1.0-rc.11
# 또는
npx -y @ohah/react-native-mcp-server@0.1.0-rc.11주요 변경 사항
🛡️ WebSocket 네이티브 크래시 방어
MCP 서버가 비정상 종료되거나 연결이 끊길 때 React Native 앱이 크래시되는 문제를 수정했습니다.
- WebSocket close 방어: 네이티브
WebSocketModule.close()호출 시 이미 닫힌 연결에 대한 방어 로직 추가 - NativeModules 공개 API 사용:
TurboModuleRegistry내부 경로 대신NativeModules공개 API로 통일 - DeviceEventEmitter 공개 API 사용: 내부 경로(
react-native/Libraries/...) 제거, 공개 import 경로로 변경 - close 후 즉시 Set 정리: WebSocket close 이후 참조를 즉시 제거하여 중복 close 방지
📝 문서 포맷 수정
screen-capture.md마크다운 테이블 trailing spaces 제거 (CI oxfmt 체크 통과)
v0.1.0-rc.10 대비
- rc.10: compact 텍스트 출력 + interactive 필터
- rc.11: WebSocket 네이티브 크래시 방어 패치
react-native-mcp-server v0.1.0-rc.12
Changes
Server instructions 추가
- McpServer에
instructions옵션으로 워크플로우 가이드 제공 - 네이티브 요소 vs WebView DOM 요소 조작 방법 구분 안내
Tool description 개선 (8개 도구)
tap,take_screenshot,webview_evaluate_script,query_selector,evaluate_script,describe_ui,scroll_until_visible,swipe
TypeScript strict null check 에러 수정
index.ts,detect.ts,init/index.ts,symbolicate.ts,get-screen-size.ts
react-native-mcp-server v0.1.0-rc.10
react-native-mcp-server v0.1.0-rc.10
MCP 도구 응답을 compact 텍스트로 전환하여 AI 에이전트 토큰 사용량을 대폭 절감한 릴리즈입니다.
설치
npm install -g @ohah/react-native-mcp-server@0.1.0-rc.10
# 또는
npx -y @ohah/react-native-mcp-server@0.1.0-rc.10주요 변경 사항
🚀 compact 텍스트 출력 (토큰 절감)
모든 주요 도구의 JSON 응답을 들여쓰기 텍스트로 전환:
| 도구 | 변경 | 토큰 절감 |
|---|---|---|
take_snapshot |
JSON tree → compact tree | -90%+ |
describe_ui |
JSON/XML → compact tree | -78% |
query_selector |
JSON → key=value 한 줄 | -52% |
query_selector_all |
JSON 배열 → 한 줄 목록 | -45% |
inspect_state |
2-space indent → inline JSON | -30% |
list_devices |
중복 JSON 제거 | -50% |
list_apps |
중복 JSON 제거 | -50% |
get_screen_size |
중복 JSON 제거 | -50% |
Before (JSON) → After (compact) 예시
take_snapshot:
- View #app-root uid=root
- View #header
- Text "Welcome"
- TextInput #email-input
- TouchableOpacity #submit-btn
- Text "Submit"
query_selector:
TouchableOpacity #cart-btn uid=cart-button pageX=100 pageY=200 width=80 height=40
describe_ui (Android):
- FrameLayout #content
- TextView #greeting "Hello World"
- Button #submit "Submit" [clickable] bounds=[100,200][180,240]
🔍 take_snapshot interactive 옵션 추가
interactive: true로 인터랙티브 요소(Touchable*, Button, TextInput, Switch 등)만 필터링하여 토큰 추가 절감.
🏷️ 플랫폼 고유 속성 명시
AI가 RN/네이티브 고유 속성을 정확히 해석할 수 있도록 key=value 형태로 표시:
- query_selector:
pageX=,pageY=,width=,height= - describe_ui (Android):
[clickable],[scrollable],[disabled],bounds= - describe_ui (iOS):
role=,[disabled],frame=(x,y,w,h)
요구 사항
- Node.js >=22 또는 Bun >=1.0.0
- React Native 앱에 MCP 런타임 로드 필요
v0.1.0-rc.9 대비
- rc.9: JSON 기반 도구 응답
- rc.10: compact 텍스트 출력 + interactive 필터 + 플랫폼 속성 명시
react-native-mcp-server v0.1.0-rc.9
@ohah/react-native-mcp-server v0.1.0-rc.9
Release candidate 9 for the React Native MCP server package.
Changes
- Version bump from 0.1.0-rc.8 to 0.1.0-rc.9 for npm publish.
Install
npm install @ohah/react-native-mcp-server@0.1.0-rc.9Documentation
react-native-mcp-server v0.1.0-rc.8
What's changed
- measureByNativeTag(nativeTag) — Bridge-only API that calls
UIManager.measuredirectly with a native tag, without re-walking the Fiber tree. Works regardless of testID. - Runtime query, fiber serialization, and babel inject-testid plugin improvements.
Install
npm install @ohah/react-native-mcp-server@0.1.0-rc.8Full Changelog
- feat(server): measureByNativeTag and runtime query/serialization improvements
- chore(server): Bump version to 0.1.0-rc.8
react-native-mcp-server v0.1.0-rc.7
What's changed
- Version bump to 0.1.0-rc.7 for
@ohah/react-native-mcp-server. - No functional changes in this release; publish for version alignment and npm availability.
Install
npm install @ohah/react-native-mcp-server@0.1.0-rc.7Full Changelog
- chore(server): Bump version to 0.1.0-rc.7 (49df9a7)
react-native-mcp-server v0.1.0-rc.5
@ohah/react-native-mcp-server 0.1.0-rc.5
- Runtime WebSocket connection stability
- If
new WebSocket(url)throws (e.g. server not running), the runtime now schedules a reconnect with the existing backoff (up to 30s) instead of leaving the client in a bad state. - Response sending is wrapped in try/catch so send failures do not crash the app.
- If
- Babel plugin: Restored correct condition in testID injection (
!testIdAttr).
References
react-native-mcp-server v0.1.0-rc.4
@ohah/react-native-mcp-server 0.1.0-rc.4
수정 내역 (0.1.0-rc.3 → 0.1.0-rc.4)
- 버전 번호: 0.1.0-rc.3 → 0.1.0-rc.4로 상향
- 기능·동작 변경 없음 (이번 릴리즈는 버전 bump만 포함)
참고
- rc.3에 포함된 최근 변경: 스크린샷 orientation 회전, MCP 도구 description 정리, E2E·배포·문서 정리 등은 이전 rc에서 이미 반영됨.