React Native Expo MCP
Provides tools for Expo CLI integration, including dev servers, builds, updates, and project management for React Native Expo projects.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@React Native Expo MCPFix the TypeScript errors in my project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
React Native Expo MCP
[]
[
]
[
]
[
]
React Native Expo MCP Server - Professional AI-powered development companion
Expert remediation โข Advanced refactoring โข Enterprise architecture โข Comprehensive testing
๐ Fork Notice: This project is forked and significantly expanded from @mrnitro360/react-native-mcp-guide, adding expert code remediation, advanced component refactoring, modular architecture with dependency injection, comprehensive testing suite (478 tests), and enterprise-grade error handling.
Overview
An enhanced Model Context Protocol (MCP) server designed for professional React Native development teams. Built on enterprise-grade architecture with expert-level automated code remediation, advanced refactoring capabilities, comprehensive testing, and production-ready fixes.
๐ v0.1.0 - Test Coverage Expansion & Expo CLI Integration:
๐งช Enhanced Test Coverage - 933 tests (78.95% lines, 90.22% branches, 81.43% functions, 78.91% statements)
โ Zero Coverage Elimination - All 18 files with 0% coverage now have comprehensive test suites
๐ฆ Expo CLI Integration - 15 new tools for dev servers, builds, updates, and project management
๐๏ธ Modular Architecture - Clean, maintainable service-based design with dependency injection
โก Advanced Caching - LRU cache with intelligent eviction and performance optimization
๐ Error Handling - Structured logging with circuit breaker and retry mechanisms
๐ง Expert Code Remediation - Automatically fix security, performance, and quality issues
๐๏ธ Advanced Refactoring - Comprehensive component modernization and optimization
Key Benefits:
๐ Accelerated Development - Automated code analysis, fixing, and test generation
๐ Enterprise Security - Vulnerability detection with automatic remediation
๐ Quality Assurance - Industry-standard testing frameworks and coverage analysis
โก Performance Optimization - Advanced profiling with automatic fixes
๐ฏ Best Practices - Expert guidance with code implementation
๐ Automated Updates - Continuous integration with automatic version management
Related MCP server: Expo MCP Server
Quick Start
Prerequisites
Node.js 18.0 or higher
Claude CLI or Claude Desktop
React Native development environment
Environment Setup
For full Expo CLI functionality, configure these environment variables:
Required for Android Development
# Android SDK location
export ANDROID_HOME=$HOME/Android/Sdk
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
# Add Android tools to PATH
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-toolsJava Version Management (Recommended)
Use jenv for managing Java versions:
# Install jenv (macOS)
brew install jenv
# Add to shell profile (~/.zshrc or ~/.bashrc)
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
# Add Java versions
jenv add /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
# Set global version (Java 17+ recommended for React Native)
jenv global 17
# Verify
java -version # Should show 17.x.x or higherMinimum Java Version: Java 17 (LTS) Recommended: Java 17 or 21 (LTS versions)
Why Java 17? Required for Android Gradle Plugin 8.0+ and modern React Native projects. Older versions may cause build failures.
Optional: EAS CLI Authentication
# For EAS cloud builds and updates
export EXPO_TOKEN=your_expo_token_here
export EAS_TOKEN=your_eas_token_hereInstallation
Automated Installation (Recommended)
# Install globally via npm
npm install -g @divagnz/mcp-react-native-expo
# Configure with Claude CLI
claude mcp add mcp-react-native-expo npx @divagnz/mcp-react-native-expoDevelopment Installation
# Clone repository
git clone https://github.com/Divagnz/mcp-react-native-expo.git
cd React-Native-MCP
# Install dependencies and build
npm install && npm run build
# Add to Claude CLI
claude mcp add mcp-react-native-expo node ./build/index.jsVerification
claude mcp listVerify that mcp-react-native-expo appears as Connected โ
๐ Expert Remediation Examples
Before vs. After: Automatic Code Fixing
โ Before (Problematic Code):
const MyComponent = () => {
const apiKey = "sk-1234567890abcdef"; // Hardcoded secret
const [data, setData] = useState([]);
useEffect(() => {
console.log("API Key:", apiKey); // Sensitive logging
fetch('http://api.example.com/data') // HTTP instead of HTTPS
.then(response => response.json())
.then(data => setData(data));
const interval = setInterval(() => { // Memory leak
console.log('Polling...');
}, 1000);
}, []);
return (
<ScrollView>
{data.map(item => ( // Performance issue
<Text key={item.id} style={{color: 'red'}}>{item.name}</Text>
))}
</ScrollView>
);
};โ After (Expert Remediation):
interface Props {
children?: React.ReactNode;
onPress?: () => void;
}
const MyComponent: React.FC<Props> = () => {
// TODO: Add API_KEY to your environment variables
const apiKey = process.env.API_KEY || Config.API_KEY;
const [data, setData] = useState([]);
useEffect(() => {
// Removed sensitive logging for security
// console.log('[REDACTED - contains sensitive data]');
// Upgraded to HTTPS for security
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => setData(data));
const interval = setInterval(() => {
console.log('Polling...');
}, 1000);
// Cleanup intervals to prevent memory leaks
return () => {
clearInterval(interval);
};
}, []);
return (
<FlatList
data={data}
keyExtractor={(item, index) => item.id?.toString() || index.toString()}
renderItem={({ item }) => (
<Text style={styles.itemText}>{item.name}</Text>
)}
/>
);
};
const styles = StyleSheet.create({
itemText: {
color: 'red'
}
});
export default React.memo(MyComponent);๐ฏ What Got Fixed Automatically:
โ Security: Hardcoded API key โ Environment variable
โ Security: Sensitive logging โ Sanitized
โ Security: HTTP โ HTTPS upgrade
โ Performance: ScrollView + map โ FlatList with keyExtractor
โ Memory: Added interval cleanup to prevent leaks
โ Best Practices: Inline styles โ StyleSheet.create
โ Type Safety: Added TypeScript interface
โ Performance: Wrapped with React.memo
Core Features
๐ง Expert Code Remediation
Tool | Capability | Level | Output |
| Automatic security, performance, and quality fixes | Expert | Production-ready code |
| Advanced component modernization and optimization | Senior | Refactored components with tests |
Security Remediation | Hardcoded secrets โ environment variables | Enterprise | Secure code patterns |
Performance Fixes | Memory leaks, FlatList optimization, StyleSheet | Expert | Optimized components |
Type Safety | Automatic TypeScript interface generation | Professional | Type-safe code |
๐งช Advanced Testing Suite
Feature | Description | Frameworks |
Automated Test Generation | Industry-standard test suites for components | Jest, Testing Library |
Coverage Analysis | Detailed reports with improvement strategies | Jest Coverage, LCOV |
Strategy Evaluation | Testing approach analysis and recommendations | Unit, Integration, E2E |
Framework Integration | Multi-platform testing support | Detox, Maestro, jest-axe |
๐ Comprehensive Analysis Tools
Analysis Type | Capabilities | Output |
Security Auditing | Vulnerability detection with auto-remediation | Risk-prioritized reports + fixes |
Performance Profiling | Memory, rendering, bundle optimization + fixes | Actionable recommendations + code |
Code Quality | Complexity analysis with refactoring implementation | Maintainability metrics + fixes |
Accessibility | WCAG compliance with automatic improvements | Compliance reports + code |
๐ฆ Dependency Management
Automated Package Auditing - Security vulnerabilities and outdated dependencies
Intelligent Upgrades - React Native compatibility validation
Conflict Resolution - Dependency tree optimization
Migration Assistance - Deprecated package modernization
๐ Expert Knowledge Base
React Native Documentation - Complete API references and guides
Architecture Patterns - Scalable application design principles
Platform Guidelines - iOS and Android specific best practices
Security Standards - Mobile application security frameworks
Usage Examples
๐ง Expert Code Remediation (NEW)
# Automatically fix all detected issues with expert-level solutions
claude "remediate_code with remediation_level='expert' and add_comments=true"
# Advanced component refactoring with performance optimization
claude "refactor_component with refactor_type='comprehensive' and include_tests=true"
# Security-focused remediation
claude "remediate_code with issues=['hardcoded_secrets', 'sensitive_logging'] and remediation_level='expert'"
# Performance-focused refactoring
claude "refactor_component with refactor_type='performance' and target_rn_version='latest'"Testing & Quality Assurance
# Generate comprehensive component tests
claude "generate_component_test with component_name='LoginForm' and test_type='comprehensive'"
# Analyze testing strategy
claude "analyze_testing_strategy with focus_areas=['unit', 'accessibility', 'performance']"
# Generate coverage report
claude "analyze_test_coverage with coverage_threshold=85"Code Analysis & Optimization
# Comprehensive codebase analysis with auto-remediation suggestions
claude "analyze_codebase_comprehensive"
# Performance optimization with specific focus areas
claude "analyze_codebase_performance with focus_areas=['memory_usage', 'list_rendering']"
# Security audit with vulnerability detection
claude "analyze_codebase_comprehensive with analysis_types=['security', 'performance']"Dependency Management
# Package upgrade recommendations
claude "upgrade_packages with update_level='minor'"
# Resolve dependency conflicts
claude "resolve_dependencies with fix_conflicts=true"
# Security vulnerability audit
claude "audit_packages with auto_fix=true"Real-World Scenarios
Scenario | Command | Outcome |
๐ง Automatic Code Fixing |
| Production-ready remediated code |
๐๏ธ Component Modernization |
| Modernized component + test suite |
๐ก๏ธ Security Hardening |
| Secure code with environment variables |
โก Performance Optimization |
| Optimized code with cleanup |
๐ Type Safety Enhancement |
| Type-safe code with interfaces |
Pre-deployment Security Check |
| Security report + automatic fixes |
Performance Bottleneck Analysis |
| Optimization roadmap + fixes |
Code Quality Review |
| Quality improvement + implementation |
Accessibility Compliance |
| WCAG compliance + code fixes |
Component Test Generation |
| Complete test suite |
Testing Strategy Optimization |
| Testing roadmap |
Claude Desktop Integration
NPM Installation Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"mcp-react-native-expo": {
"command": "npx",
"args": ["@divagnz/mcp-react-native-expo@0.0.1"],
"env": {}
}
}
}Development Configuration
{
"mcpServers": {
"mcp-react-native-expo": {
"command": "node",
"args": ["/absolute/path/to/React-Native-MCP/build/index.js"],
"env": {}
}
}
}Configuration Paths:
Windows:
C:\Users\{Username}\Desktop\React-Native-MCP\build\index.jsmacOS/Linux:
/Users/{Username}/Desktop/React-Native-MCP/build/index.js
Development & Maintenance
Local Development
# Development with hot reload
npm run dev
# Production build
npm run build
# Production server
npm startContinuous Integration
This project implements enterprise-grade CI/CD:
โ Automated Version Management - Semantic versioning with auto-increment
โ Continuous Deployment - Automatic npm publishing on merge
โ Release Automation - GitHub releases with comprehensive changelogs
โ Quality Gates - Build validation and testing before deployment
Update Management
# Check current version
npm list -g @divagnz/mcp-react-native-expo
# Update to latest version
npm update -g @divagnz/mcp-react-native-expo
# Reconfigure Claude CLI
claude mcp remove mcp-react-native-expo
claude mcp add mcp-react-native-expo npx @divagnz/mcp-react-native-expoTechnical Specifications
๐ฏ Analysis & Remediation Capabilities
Expert Code Remediation - Automatic fixing of security, performance, and quality issues
Advanced Component Refactoring - Comprehensive modernization with test generation
Comprehensive Codebase Analysis - Multi-dimensional quality assessment with fixes
Enterprise Security Auditing - Vulnerability detection with automatic remediation
Performance Intelligence - Memory, rendering, and bundle optimization with fixes
Quality Metrics - Complexity analysis with refactoring implementation
Accessibility Compliance - WCAG 2.1 AA standard validation with automatic fixes
Testing Strategy Optimization - Coverage analysis and framework recommendations
๐ ๏ธ Technical Architecture
33 Specialized Tools - Complete React Native development lifecycle coverage + remediation
17 core analysis and remediation tools
15 Expo CLI integration tools
1 help/documentation tool
2 Expert Remediation Tools -
remediate_codeandrefactor_component6 Expert Prompt Templates - Structured development workflows
5 Resource Libraries - Comprehensive documentation and best practices
Industry-Standard Test Generation - Automated test suite creation
Multi-Framework Integration - Jest, Detox, Maestro, and accessibility tools
Real-time Coverage Analysis - Detailed reporting with improvement strategies
Production-Ready Code Generation - Expert-level automated fixes and refactoring
๐ข Enterprise Features
Expert-Level Remediation - Senior engineer quality automatic code fixes
Production-Ready Solutions - Enterprise-grade security and performance fixes
Professional Reporting - Executive-level summaries with implementation code
Security-First Architecture - Comprehensive vulnerability assessment with fixes
Scalability Planning - Large-scale application design patterns with refactoring
Compliance Support - Industry standards with automatic compliance fixes
Multi-Platform Optimization - iOS and Android specific considerations with fixes
๐บ๏ธ Roadmap
Current Release - v0.0.1 โ
Core Infrastructure & Foundation
โ Modular architecture with dependency injection
โ Advanced LRU caching system
โ Comprehensive testing suite (735+ tests, 91.38% branch coverage)
โ Structured logging with circuit breaker patterns
โ Expert code remediation capabilities
โ Advanced component refactoring tools
โ 17 specialized React Native development tools
Current Tools Include:
Component analysis and optimization
Performance profiling and optimization
Security auditing and remediation
Code quality analysis
Testing strategy and coverage analysis
Package management and upgrades
Debugging guidance
Architecture advice
Upcoming Features ๐
Expo CLI Integration (v0.1.0 - Planned)
๐ Development server management (start, QR codes, logs, controls)
๐ EAS cloud build management (trigger, status, submit)
๐ Project management tools (doctor, install, upgrade)
๐ OTA update publishing with rollout control
๐ 15 comprehensive Expo CLI tools (7 session-based + 8 one-shot)
ADB (Android Debug Bridge) Integration
๐ Device connection and management
๐ App installation and uninstallation
๐ Logcat monitoring and filtering
๐ Screenshot and screen recording
๐ Visual regression testing
๐ Performance profiling tools
๐ Complete Android development workflow
iOS Development Tools
๐ Simulator management
๐ Device provisioning
๐ Build and deployment tools
๐ iOS-specific debugging
๐ TestFlight integration
๐ Complete iOS development workflow
Future Enhancements
๐ Enhanced performance profiling
๐ Extended accessibility testing
๐ CI/CD pipeline templates
๐ Multi-platform workflow automation
โ ๏ธ Known Limitations
Current Version (v0.1.0)
While the MCP server provides comprehensive React Native development capabilities, there are some known limitations based on real-world usage:
Process Management
Manual process cleanup required: Port 8081 conflicts must be manually resolved using
lsof -ti:8081 | xargs kill -9No session visibility: Cannot easily list or monitor active Expo/Metro processes
Zombie sessions: No automatic cleanup of orphaned processes
Workarounds:
Manually kill processes before starting new sessions
Use
ps aux | grep -E "expo|metro"to find running processesTools in development:
expo_sessions_list,expo_kill_process,expo_cleanup
Dependency Management
Manual expo-doctor required: Users must run
npx expo-doctorandnpx expo install --checkmanuallyMultiple fix iterations: Dependency conflicts (27+ packages) require multiple rounds of manual fixes
Version downgrades: Some packages (e.g., react-native-worklets 0.6.1 โ 0.5.1) need manual attention
Workarounds:
Run
npx expo install --checkbefore major buildsUse
expo installinstead ofyarn addfor Expo packagesTools in development:
expo_doctor,expo_install_check
Environment Validation
Late build failures: Environment issues (Java version, ANDROID_HOME) not detected until builds fail
Java 24 incompatibility: No pre-flight check for Java version compatibility with Gradle
No proactive warnings: Issues discovered 10+ minutes into builds
Workarounds:
Manually verify Java version:
java -version(should be 17-21, not 24+)Use jenv to manage Java versions:
jenv shell 17Check ANDROID_HOME before builds:
echo $ANDROID_HOMETools in development:
expo_validate_environment
Polyfill Detection
Manual polyfill setup: Users must manually add Buffer and EventTarget polyfills for Hermes
Runtime errors only: Polyfill needs discovered only when app crashes
20+ lines of manual code: EventTarget implementation requires manual coding
Workarounds:
Add polyfills to
app/_layout.tsxbefore other importsTest on physical devices early to catch Hermes issues
Tools in development:
expo_detect_polyfills,expo_setup_polyfills
Tool Reliability
60% failure rate: In some sessions, ~60% of tool calls fail (vs. target >95%)
Tool naming confusion: Incorrect prefix attempts (
mcp__react-native-guide__*vsmcp__mcp-react-native-expo__*)Connection failures: MCP server reconnections fail without diagnostics
Undefined returns: Some tools return
undefinedinstead of proper error messages
Workarounds:
Check tool names with
expo_help()(when available)Restart Claude Desktop if tools become unavailable
Use
/mcpcommand to check server statusImprovements in progress for v0.2.0
Log Management
Token overflow: Build logs (34K+ tokens) exceed 25K limit
Verbose Gradle output: 300+ lines of low-value logs make it hard to find errors
No filtering: Cannot view errors-only or progress-only modes
Workarounds:
Use
tailparameter to limit log outputManually scan logs for "ERROR" or "WARN" keywords
Tools in development: Smart log filtering with
--errors-only,--progressmodes
Impact Summary
Based on real-world usage analysis:
~41 minutes of manual work per typical workflow
16+ failed tool calls in a single session
90%+ of issues preventable with planned improvements
Improvement Timeline
See IMPROVEMENT_ROADMAP.md for detailed improvement plans.
All improvements consolidated into v0.1.0 release:
โ Process management tools (sessions list, kill, cleanup)
โ Standardized response format across all tools
โ Tool reliability fixes (zero "no such tool" errors)
โ Dependency management (expo-doctor, auto-fix versions)
โ Environment validation (pre-build checks)
โ Polyfill automation (detection and setup)
โ Smart logging (errors-only, progress tracking)
โ Build diagnostics (timeout detection, Gradle analysis)
โ Interactive help system (expo_help, error codes)
โ Comprehensive documentation
Target: >95% tool success rate, <5 minutes manual intervention per workflow
๐ง Troubleshooting
Quick Fixes for Common Issues
Port 8081 Already in Use
# Find and kill the process
lsof -ti:8081 | xargs kill -9
# Or kill all Metro/Expo processes
pkill -f "metro|expo"Java Version Error (Gradle Builds)
# Check current version
java -version
# If showing Java 24, switch to 17 or 21
jenv shell 17
# Verify
java -version # Should show 17.x.xBuffer/EventTarget Polyfill Errors
Add to app/_layout.tsx (before imports):
// Minimal Buffer polyfill
if (typeof global.Buffer === 'undefined') {
global.Buffer = {
from: (data: any) => String(data),
isBuffer: () => false,
} as any;
}
// EventTarget polyfill
if (typeof global.EventTarget === 'undefined') {
global.EventTarget = class EventTarget {
private listeners = new Map();
addEventListener(type: string, listener: Function) {
if (!this.listeners.has(type)) {
this.listeners.set(type, new Set());
}
this.listeners.get(type)?.add(listener);
}
removeEventListener(type: string, listener: Function) {
this.listeners.get(type)?.delete(listener);
}
dispatchEvent(event: any) {
this.listeners.get(event.type)?.forEach(l => l(event));
return true;
}
} as any;
}Dependency Version Conflicts
# Check for issues
npx expo-doctor
# Auto-fix all
npx expo install --check --fix
# Install missing peer dependencies
yarn add @expo/metro-runtime react-native-workletsMCP Tools Not Available
# Verify MCP configuration
cat ~/.config/claude-desktop/mcp.json
# Restart Claude Desktop
# Or use /mcp command in ClaudeGetting Help
For detailed troubleshooting, see:
PAIN_POINTS.md - Comprehensive pain points analysis with real examples
EXPO_TOOLS_SPEC.md - Detailed Expo tools troubleshooting
GitHub Issues - Report bugs and request features
When reporting issues, include:
OS and version
Node.js version (
node --version)Expo SDK version (
npx expo --version)Java version (
java -version)Full error logs
Steps to reproduce
๐ Changelog
v0.1.0 - Test Coverage Expansion & Expo CLI Integration (Latest)
๐งช Enhanced Test Coverage:
198 new tests added across 12 files to eliminate 0% function coverage
933 total tests (up from 735)
Coverage improvements:
Lines: 78.95% (previously 74.1%)
Branches: 90.22% (stable)
Functions: 81.43% (up from ~75%)
Statements: 78.91% (up from 74.1%)
All 18 files with 0% coverage now have comprehensive test suites (25%+ coverage each)
๐ฆ Expo CLI Integration (15 new tools):
Dev Server Management (4 tools):
expo_start_dev_server,expo_read_dev_logs,expo_send_dev_command,expo_stop_dev_serverEAS Cloud Builds (3 tools):
expo_trigger_eas_build,expo_get_eas_build_status,expo_submit_to_storeLocal Builds (3 tools):
expo_start_local_build,expo_read_build_logs,expo_stop_local_buildProject Management (3 tools):
expo_create_app,expo_run_doctor,expo_install_packages,expo_upgrade_sdkOTA Updates (2 tools):
expo_publish_eas_update,expo_get_update_status
โ Test Coverage by Category:
Expo Build Cloud (3 files, 23 tests)
build.test.ts: EAS cloud build triggering (8 tests)status.test.ts: Build status monitoring (8 tests)submit.test.ts: App store submission (8 tests)
Expo Build Local (3 files, 23 tests)
start.test.ts: Local build initiation (8 tests)read.test.ts: Build log monitoring (8 tests)stop.test.ts: Build termination (6 tests)
Expo Dev Server (4 files, 31 tests)
start.test.ts: Dev server lifecycle (8 tests)read.test.ts: Log streaming (7 tests)send.test.ts: Dev commands (9 tests)stop.test.ts: Server shutdown (6 tests)
Expo Project Tools (4 files, 41 tests)
create.test.ts: Project scaffolding (10 tests)doctor.test.ts: Health diagnostics (9 tests)install.test.ts: Package installation (9 tests)upgrade.test.ts: SDK upgrades (13 tests)
Expo OTA Updates (2 files, 24 tests)
publish.test.ts: Update publishing (13 tests)status.test.ts: Update monitoring (11 tests)
Component Analyzer (1 file, 22 tests)
React Native code quality analysis
Security, performance, and memory leak detection
StyleSheet and caching optimization
Advisory Service (1 file, 35 tests)
Performance optimization guidance (6 scenarios)
Architecture recommendations (7 patterns)
Debugging assistance (5 issue types with platform specifics)
๐ง Quality Improvements:
All new tests use consistent mocking patterns
Comprehensive edge case coverage (error handling, missing data, timeouts)
Platform-specific test coverage (iOS, Android, both)
Output parsing validation for all Expo CLI commands
๐ Workflow Validation:
โ All tests pass in CI/CD pipeline
โ Linting and type checking passing
โ Coverage badges auto-generated
โ No skipped/pending tests allowed in PR checks
v0.0.1 - Initial Release
๐ First Release with Enterprise-Grade Features:
๐๏ธ Modular Architecture - Service-based design with dependency injection
โก Advanced Caching - LRU cache system with intelligent eviction
๐งช Comprehensive Testing - 735 tests with 91.38% branch coverage
๐ Error Handling - Structured logging with circuit breaker patterns
๐ง Expert Code Remediation - Automatic security, performance, and quality fixes
๐๏ธ Advanced Refactoring - Component modernization with test generation
๐ฏ Core Capabilities:
17 specialized tools for React Native development
Expert code remediation and refactoring
Security auditing with automatic fixes
Performance optimization and profiling
Comprehensive codebase analysis
Testing strategy and coverage analysis
Package management and dependency resolution
Accessibility compliance checking
Support & Community
Resources
๐ฆ NPM Package - Official package repository
๐ GitHub Repository - Source code and development
๐ Issue Tracker - Bug reports and feature requests
๐ MCP Documentation - Model Context Protocol specification
โ๏ธ React Native Docs - Official React Native documentation
Contributing
We welcome contributions from the React Native community. Please review our Contributing Guidelines for development standards and submission processes.
License
This project is licensed under the MIT License. See the license file for detailed terms and conditions.
Professional React Native Development with Expert-Level Remediation
Empowering development teams to build secure, performant, and accessible mobile applications with automated expert-level code fixes
๐ v0.0.1 - First Release!
Get Started โข Documentation โข Community
๐ What's New in This Fork
This project is a significantly enhanced fork of @mrnitro360/react-native-mcp-guide. We've transformed the original foundation into an enterprise-grade development companion with expert-level automation.
Major Additions & Enhancements
1. ๐ง Expert Code Remediation System
Original: Basic code analysis This Fork: Production-ready automatic fixes
remediate_codetool - Automatically fixes security vulnerabilities, performance issues, and code quality problemsrefactor_componenttool - Comprehensive component modernization with hooks, TypeScript, and performance optimizationAutomatic fixes include:
Security: Hardcoded secrets โ environment variables, HTTP โ HTTPS upgrades
Performance: Memory leak cleanup, ScrollView โ FlatList optimization, StyleSheet extraction
Quality: TypeScript interface generation, React.memo wrapping, prop validation
Best practices: Inline styles โ StyleSheet, proper cleanup in useEffect
2. ๐๏ธ Enterprise Architecture
Original: Single-file implementation This Fork: Modular service-based architecture
Dependency injection with clean separation of concerns
Advanced LRU caching with intelligent eviction and performance optimization
Structured logging with Winston, circuit breaker patterns, and retry mechanisms
Comprehensive testing - 735+ tests (from ~0 tests in original)
91.38% branch coverage
78.95% line coverage
Unit, integration, and edge case testing
Jest with Testing Library integration
3. ๐ฆ Expanded Tool Suite
Original: ~8 basic analysis tools This Fork: 17 specialized professional tools
New Tools Added:
remediate_code- Expert-level automatic code fixingrefactor_component- Advanced component modernizationanalyze_codebase_comprehensive- Multi-dimensional analysis with auto-fix suggestionsanalyze_codebase_performance- Performance profiling with automatic optimizationsgenerate_component_test- Automated test suite generationanalyze_test_coverage- Coverage analysis with improvement strategiesanalyze_testing_strategy- Testing approach evaluation and recommendationsupgrade_packages- Intelligent package upgrades with compatibility checkingresolve_dependencies- Dependency conflict resolutionaudit_packages- Security vulnerability auditing with auto-fix
4. ๐งช Advanced Testing Capabilities
Original: No testing infrastructure This Fork: Industry-standard testing suite
Automated test generation with Jest and React Native Testing Library
Multiple test frameworks - Detox, Maestro, jest-axe integration
Coverage analysis with detailed improvement strategies
Testing strategy evaluation - Unit, integration, E2E recommendations
Accessibility testing - WCAG 2.1 AA compliance checking
5. ๐ก๏ธ Security & Performance
Original: Basic code scanning This Fork: Expert remediation with automatic fixes
Security auditing - Vulnerability detection with automatic remediation
Hardcoded secrets detection and environment variable conversion
Sensitive logging sanitization
HTTP to HTTPS upgrades
Performance optimization - Memory and rendering analysis with fixes
Memory leak detection and cleanup code generation
List rendering optimization (ScrollView โ FlatList)
Bundle size analysis and code splitting suggestions
Code quality - Complexity analysis with refactoring implementation
Cyclomatic complexity reduction
Code duplication detection and extraction
Maintainability metrics with actionable fixes
6. ๐ CI/CD & Automation
Original: Manual deployment This Fork: Fully automated workflows
GitHub Actions - Automated PR checks, testing, and deployment
Automated version management - Semantic versioning with auto-increment
NPM publishing - Continuous deployment on merge to main
Pre-commit hooks - Husky with lint-staged for code quality
Quality gates - Build validation, testing, and linting before deployment
7. ๐ Comprehensive Documentation
Original: Basic README This Fork: Enterprise-grade documentation
6 expert prompt templates - Structured development workflows
5 resource libraries - Complete React Native documentation and best practices
Real-world examples - Before/after code with detailed explanations
Troubleshooting guides - Common issues with solutions
Contributing guidelines - Comprehensive development standards
Pain points analysis - Real-world usage tracking and improvement roadmap
Comparison Summary
Feature | Original Fork | This Enhanced Fork |
Tools | ~8 basic tools | 17 specialized professional tools |
Testing | No tests | 735+ comprehensive tests (91.38% branch coverage) |
Architecture | Single file | Modular service-based with DI |
Code Fixes | Manual only | Automatic expert-level remediation |
Security | Detection only | Detection + automatic fixes |
Performance | Analysis only | Analysis + automatic optimization |
CI/CD | None | Full GitHub Actions automation |
Documentation | Basic | Enterprise-grade with examples |
Caching | None | Advanced LRU with intelligent eviction |
Error Handling | Basic | Circuit breaker + retry mechanisms |
Impact Metrics
Productivity boost: Automatic fixes reduce manual coding by ~60%
Code quality: 100% TypeScript with comprehensive type safety
Test coverage: From 0% to 91.38% branch coverage
Security: Automatic remediation of vulnerabilities
Development time: Expert-level solutions in seconds, not hours
Roadmap Additions
Planned for v0.1.0:
15 Expo CLI tools (dev server, EAS builds, OTA updates)
Enhanced session management
Smart log filtering
Future releases:
ADB (Android Debug Bridge) integration
iOS development tools (simulator, provisioning, TestFlight)
Multi-platform workflow automation
๐ Acknowledgments
This project builds upon the excellent work of the React Native and MCP communities:
React Native Team - For creating and maintaining the outstanding React Native framework that makes cross-platform mobile development accessible and powerful.
@mrnitro360 - Original author of react-native-mcp-guide, which provided the foundation for this enhanced server. Thank you for pioneering React Native MCP integration.
Expo Team - For building the incredible Expo ecosystem that simplifies React Native development and enables rapid iteration with tools like EAS Build and OTA updates.
Anthropic - For developing the Model Context Protocol (MCP) and Claude, enabling powerful AI-assisted development workflows that enhance developer productivity.
Special thanks to the broader React Native community for continuous innovation, comprehensive documentation, and countless contributions that make mobile development better every day.
Available Tools
33 toolsanalyze_codebase_comprehensiveB
Comprehensive React Native codebase analysis including performance, security, refactoring, and upgrades
| Name | Required | Description | Default |
|---|---|---|---|
| codebase_path | No | Path to React Native project root | |
| analysis_types | No | Types of analysis to perform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only lists analysis types without mentioning side effects, permissions, output format, or whether it modifies files. This leaves the agent uncertain about the tool's runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is to the point and contains no fluff. It is appropriately sized for the tool's purpose, though a more structured format could improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple analysis types), the description is insufficient. It does not explain what 'comprehensive' means in practice, how results are returned, or any operational constraints. With no output schema or annotations, the agent lacks critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters with 100% coverage. The description adds context by listing the included analysis types, which aligns with the enum values. However, it does not add new semantic nuance beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs comprehensive React Native codebase analysis covering performance, security, refactoring, and upgrades. This distinguishes it from the many specific sibling tools like analyze_codebase_performance and analyze_component. However, it could be improved by using a stronger verb like 'perform' or 'run'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for a broad analysis, but it does not explicitly state when to use it versus the more specific sibling tools. No guidance on prerequisites or scenarios is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_codebase_performanceB
Analyze entire React Native codebase for performance issues
| Name | Required | Description | Default |
|---|---|---|---|
| codebase_path | No | Path to React Native project root | |
| focus_areas | No | Specific performance areas to focus on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It does not disclose whether the tool is read-only, requires network access, modifies files, or has side effects. The only mentioned behavior is 'analyze,' which is vague for an agent that needs to understand risks and expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is highly concise and front-loaded with the action verb. However, its brevity sacrifices important details like usage context and output, making it efficient but not optimally informative for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analysis of a codebase) and the lack of output schema, the description fails to explain return format, runtime expectations, prerequisites (e.g., project structure), or how results are reported. Sibling tools like optimize_performance suggest follow-up actions, but the description does not connect to them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (codebase_path and focus_areas) with full coverage. The description adds limited extra meaning beyond clarifying the scope ('entire' codebase) and focus ('performance'), which slightly enriches the context but does not substantially augment the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes the entire React Native codebase for performance issues, providing a specific verb, resource, and scope. It effectively distinguishes from siblings like analyze_codebase_comprehensive (broader) and optimize_performance (more actionable).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as analyze_codebase_comprehensive or optimize_performance. The description lacks context about appropriate scenarios or prerequisites, leaving the agent without helpful decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_componentC
Analyze React Native component for best practices
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | React Native component code to analyze. If not provided, analyzes entire codebase | |
| type | No | Component type | |
| codebase_path | No | Path to React Native project root for codebase analysis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It does not disclose what the analysis entails (e.g., what specific best practices are checked), any side effects, or output format. The minimal description fails to inform the agent about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that clearly states the verb and resource, but it is too brief and omits important context. While concise, it sacrifices informational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the relationship between parameters (e.g., code vs. codebase_path) or the nature of the analysis results, leaving the agent with significant uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter explanations (e.g., code: 'If not provided, analyzes entire codebase'). The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Analyze') and target ('React Native component for best practices'). It is specific enough to understand the basic purpose, but it does not distinguish from sibling tools like analyze_codebase_comprehensive or optimize_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or exclusions mentioned. The description does not help an agent decide between this and similar analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_test_coverageB
Analyze test coverage and identify gaps
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to React Native project root | |
| coverage_threshold | No | Minimum coverage threshold percentage | |
| generate_report | No | Generate detailed coverage report |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must convey behavior. It does not disclose whether the tool runs tests, parses coverages files, or has side effects. The read-only nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise. However, it may be too brief given the lack of output schema and annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should explain what the tool returns. It does not describe the output format, behavior, or prerequisites, leaving significant gaps for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds no additional meaning beyond what the schema provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function (analyze test coverage and identify gaps) with a specific verb and resource. It distinguishes from sibling tools like 'analyze_testing_strategy' and 'generate_component_test'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., 'analyze_testing_strategy') or when not to use it. The description lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_testing_strategyC
Analyze current testing strategy and provide recommendations
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to React Native project root | |
| focus_areas | No | Areas to focus testing analysis on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It implies a read-only analysis but does not explicitly state safety, dependencies, or limitations. The phrase 'provide recommendations' suggests output but lacks detail on what actions the tool might take or require.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence. It is efficient and contains no extra words, but the brevity omits useful context that could be included without making it verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks completeness: it does not explain what 'current testing strategy' entails, what format recommendations take, or how the tool determines the current strategy. Given no output schema, more context about the return value is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The tool description adds no additional semantic value beyond the schema, but this is acceptable given the schema's sufficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to analyze the current testing strategy and provide recommendations. It uses a specific verb ('analyze') and resource ('testing strategy'), which is distinct from sibling tools like analyze_test_coverage. However, it does not explicitly differentiate from other analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives like analyze_codebase_comprehensive or generate_component_test. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
architecture_adviceA
Get React Native architecture and project structure advice
| Name | Required | Description | Default |
|---|---|---|---|
| project_type | Yes | Type of React Native project | |
| features | No | Key features of the app |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the sole source. It implies a read-only advisory operation ('Get...advice'), but does not disclose any behavioral traits such as side effects, permissions, or rate limits. For a simple advice tool, this is minimally acceptable but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get React Native architecture and project structure advice'. It conveys the purpose without any wasted words, fitting the conciseness ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema, no annotations), the description covers the basic purpose but does not explain return values or provide additional context about the nature of the advice. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters (project_type and features). The description adds no additional meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get React Native architecture and project structure advice', which is a specific verb and resource (advice) with a defined scope (React Native architecture). It distinguishes itself from sibling tools like analyze_codebase_comprehensive or analyze_component, which focus on code analysis, by emphasizing high-level structure advice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or when not to use it. Siblings such as analyze_codebase_comprehensive could overlap, but no differentiation is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_packagesA
Perform security audit on project dependencies and provide fix recommendations
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to React Native project root | |
| package_manager | No | Package manager to use | |
| auto_fix | No | Whether to automatically fix vulnerabilities | |
| severity_threshold | No | Minimum severity level to report |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear full weight. It mentions 'fix recommendations' but does not disclose that the auto_fix parameter can modify files, nor does it explain the output format or side effects of running the audit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's core function without unnecessary words. It is front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the presence of a potentially destructive parameter (auto_fix), the description lacks details about return values, behavior when auto_fix is enabled, and minimum required setup (e.g., presence of a lock file). This leaves the agent with insufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning all parameters are described in the schema. The description adds no further semantics beyond what's already provided in the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: performing security audits on project dependencies and providing fix recommendations. This distinguishes it from sibling tools like analyze_codebase_comprehensive or check_for_updates, which cover broader or different tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (security audit of dependencies) but does not explicitly state when not to use it or mention alternatives. While the context is clear, the lack of exclusionary guidance prevents a top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_for_updatesB
Check for available updates to the React Native MCP server
| Name | Required | Description | Default |
|---|---|---|---|
| include_changelog | No | Include changelog in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It only states the basic function, omitting details on response format, side effects, or authorization needs. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, efficiently conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is adequate but lacks details on what 'check' entails or how to interpret results. Some gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description fully explains the optional 'include_changelog' parameter. The tool description adds no additional meaning, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check' and resource 'available updates' for the React Native MCP server, distinguishing it from sibling tools like 'upgrade_packages' and 'get_version_info'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'upgrade_packages' or 'get_version_info'. The description only states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debug_issueB
Get debugging guidance for React Native issues
| Name | Required | Description | Default |
|---|---|---|---|
| issue_type | Yes | Type of issue to debug | |
| platform | No | Platform where issue occurs | |
| error_message | No | Error message if available |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It fails to disclose any traits such as the type of guidance returned, required permissions, or potential side effects, making it insufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is efficient and to the point. However, it could be slightly expanded without losing conciseness to add behavioral or usage context. It earns a high score for brevity but not perfection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 3 parameters with enums and no output schema, the description is too vague. It does not explain what kind of guidance is returned, how the parameters affect the output, or any expected format. This leaves significant gaps for an agent relying on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema provides, such as context on how parameters interact or impact results. It neither improves nor harms parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'debugging guidance' for 'React Native issues'. It effectively distinguishes from sibling tools like 'analyze_codebase_performance' or 'optimize_performance' by focusing on general debugging guidance rather than specific analyses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit or implicit guidance on when to use this tool versus its siblings. It does not mention alternatives or exclusion conditions, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eas_buildC
Trigger EAS cloud build for iOS/Android
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | Platform to build | |
| profile | No | Build profile from eas.json (default: production) | |
| wait | No | Wait for build completion (default: false) | |
| non_interactive | No | Non-interactive mode | |
| clear_cache | No | Clear build cache |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavioral traits. It only says 'Trigger EAS cloud build', omitting critical details such as whether the build is asynchronous, if it requires a running Expo CLI or authentication, and what happens to the agent during wait mode. Potential side effects (e.g., cost, resource usage) are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise and to the point. However, it is so brief that it sacrifices valuable information that could be included in a slightly longer description. It earns its place but could be more informative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and 5 parameters, the description is insufficiently complete. It does not explain what the agent can expect after triggering the build (e.g., return of a build ID), how to use the wait and non_interactive parameters effectively, or prerequisites like environment setup. The description leaves significant gaps for a complex cloud build operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with parameter descriptions. The description adds minimal extra meaning beyond the schema. It mentions 'iOS/Android' which aligns with the platform enum, but does not provide additional semantic context like how profiles map to eas.json or implications of clearing cache.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Trigger EAS cloud build for iOS/Android', which is a specific verb-resource pair. It clearly indicates the action and platform scope. However, it does not differentiate from sibling tools like eas_build_status or eas_submit, which could cause confusion for an agent deciding which tool to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Given the presence of sibling tools like expo_build_local_start, eas_build_status, and eas_submit, the description should clarify the context (e.g., cloud vs local builds, triggering vs checking status). This omission makes it hard for an AI agent to select the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eas_build_statusB
Check status of EAS cloud builds
| Name | Required | Description | Default |
|---|---|---|---|
| build_id | No | Specific build ID to check (or latest builds) | |
| limit | No | Number of builds to show (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It only states 'Check status', implying a read operation, but does not confirm idempotency, authentication needs, rate limits, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and resource. No extraneous information; every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple query tool with no output schema, the description adequately conveys purpose. However, it omits details like return format, pagination, or error scenarios, which an agent might need for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, providing baseline clarity. The description adds no extra meaning; it simply repeats 'Check status', leaving parameter semantics fully to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Check status of EAS cloud builds' uses a specific verb ('Check') and resource ('status of EAS cloud builds'), clearly distinguishing it from sibling tools like 'eas_build' (trigger builds) and 'eas_submit' (submit).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'eas_build' or 'eas_update_status'. The description does not mention prerequisites or context like checking after a build submission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eas_submitB
Submit build to app stores (App Store / Play Store)
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | Platform to submit | |
| build_id | No | Build ID to submit | |
| profile | No | Submit profile from eas.json | |
| latest | No | Submit latest successful build |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning requirements (e.g., app store credentials), side effects, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core action. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters and no output schema or annotations, the description is too minimal. It fails to explain trade-offs between parameters like 'latest' vs 'build_id' or platform-specific considerations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, providing basic meaning. The tool description adds no extra context beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool submits builds to app stores (App Store/Play Store), specifying the verb and resource. It distinguishes from building but not from other submission-like tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are given. The context implies it is used after building, but no guidance on when not to use or how it differs from sibling tools like eas_build or eas_update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eas_updateB
Publish over-the-air (OTA) update via EAS Update
| Name | Required | Description | Default |
|---|---|---|---|
| branch | Yes | Branch name to publish to | |
| message | Yes | Update message/description | |
| rollout_percentage | No | Gradual rollout percentage 0-100 (default: 100) | |
| runtime_version | No | Runtime version constraint | |
| platform | No | Target platform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, authentication requirements, or impact on end-users. It only states the basic action without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the tool's purpose. While it could benefit from slightly more context, it is appropriately sized and avoids verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and no output schema, the description is insufficient. It does not explain the publishing process, expected results, or how to use optional parameters effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already describes all parameters. The tool description adds no extra meaning beyond what is in the schema, achieving baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('publish') and the resource ('over-the-air (OTA) update via EAS Update'). It distinguishes from siblings like eas_build (building) and eas_submit (submitting).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives. It does not mention prerequisites, when not to use it, or how it relates to other tools like eas_update_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eas_update_statusB
Check status of published OTA updates
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | Filter by branch name | |
| limit | No | Number of updates to show (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states 'Check status' with no details on return format, pagination, or whether it is a read-only operation, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, front-loading the purpose clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fails to mention that the tool likely returns a list of updates with statuses or how it interacts with pagination (limit parameter). Given no output schema, more context on the return value is needed for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (branch and limit) are fully described in the input schema (100% coverage). The description adds no extra meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Check status of published OTA updates' uses a specific verb and resource, clearly distinguishing from sibling tools like eas_update (create updates) and eas_build_status (build status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to use eas_update_status instead of eas_build_status or eas_update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_build_local_readA
Read logs and progress from running local build
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Build session ID from expo_build_local_start | |
| tail | No | Number of recent log lines (default: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It correctly implies a read-only operation but lacks details on behavior like blocking, error handling, or the need for an active build. The description is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is optimally concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the description covers the core function. However, it could mention the dependency on expo_build_local_start for session_id, but the schema partially compensates. No output schema means description could clarify return format, but for a log reader it is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description does not add any additional meaning beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads logs and progress from a local build, with a specific verb and resource. It distinguishes itself from siblings like expo_build_local_start and expo_build_local_stop by focusing on reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not mention when to use this tool (e.g., after starting a build) or when not to use it (e.g., before starting a build). The required parameter session_id hints at dependency on expo_build_local_start, but this is not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_build_local_startB
Start local native build (expo run:ios or expo run:android)
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | Platform to build for | |
| device | No | Device name, ID, or "simulator" | |
| variant | No | Build variant (default: debug) | |
| clean | No | Clean build cache before building |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only identifies the action as starting a local build, but does not explain that it may take significant time, require specific environment setup, or that it is a blocking operation. No side effects or resource implications are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence that gets straight to the point. It is front-loaded with the essential purpose. Could potentially benefit from a bit more context, but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are 4 parameters, no output schema, and no annotations, the description is too minimal. It lacks context about when to choose local build vs cloud build, prerequisites (e.g., Expo CLI, development environment), and what the return status or output might be. The schema fills parameter details, but the overall picture is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all four parameters have descriptions). The tool description adds no additional meaning beyond the schemaโit does not elaborate on parameter usage, defaults, or interactions. Hence, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Start local native build' and specifies the underlying commands (expo run:ios or expo run:android). It effectively distinguishes the tool from siblings like expo_build_local_read and expo_build_local_stop, and from cloud builds (eas_build).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives (e.g., eas_build for cloud builds). There is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_build_local_stopB
Cancel running local build
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Build session ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states the action without describing effects (e.g., whether cancellation is immediate, cleanup, or error handling).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of only four words. While efficient, it could benefit from slightly more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is minimally adequate but lacks information on success criteria, errors, or post-cancellation state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter clearly described in the schema. The description adds no additional meaning beyond the schema's own description of 'Build session ID to cancel'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Cancel running local build' uses a specific verb 'Cancel' and clearly identifies the resource 'running local build'. It effectively distinguishes from sibling tools like expo_build_local_start and expo_build_local_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or prerequisites. There is no mention of when cancellation is appropriate or what conditions must be met.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_create_appB
Create a new Expo/React Native project with template support
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | Yes | Name of the new project | |
| template | No | Project template (blank, tabs, bare, etc.) | |
| npm | No | Use npm instead of yarn | |
| install | No | Install dependencies (default: true) | |
| yes | No | Skip all prompts (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states 'create' without disclosing side effects, permissions, or behavior on existing projects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence but lacks structure such as front-loading key requirements or separating essential from optional details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotation, and the description does not explain return values, success/failure behavior, or prerequisites, leaving gaps for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters, and the description does not add additional semantic value beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'Expo/React Native project' and mentions template support, distinguishing it from sibling tools like expo_install or eas_build.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for creating a new project, but no explicit guidance on when to use or avoid this tool compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_dev_readB
Read logs from running Expo dev server
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Dev server session ID | |
| tail | No | Number of recent log lines to return (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states it reads logs, but provides no details on behavior such as whether it is blocking, error conditions, or output format. With no annotations, this is insufficient disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, but it earns its place by conveying the essential purpose. Could be slightly improved with a bit more context, but it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is overly minimal. It does not explain what the logs contain, line format, or pagination. More detail is needed for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters well-described in the schema. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (read), resource (logs), and context (running Expo dev server). It is specific and distinguishes from sibling tools like expo_dev_start or expo_dev_stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies usage for reading logs, but does not mention when not to use or provide comparisons with other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_dev_sendA
Send command to running Expo dev server (reload, clear cache, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Dev server session ID from expo_dev_start | |
| command | Yes | Command to send | |
| custom_input | No | Custom input when command is "custom" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as destructiveness, side effects, authentication needs, or rate limits, which are critical for a command-sending tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence (12 words) that is front-loaded and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and no annotations or output schema, the description covers purpose but lacks behavioral context and usage guidance, making it partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all parameters. The description adds no new meaning beyond listing command examples that match the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends commands to a running Expo dev server with examples like reload and clear cache, distinguishing it from sibling tools such as expo_dev_start and expo_dev_stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after starting a dev server but lacks explicit guidance on when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_dev_startB
Start Expo development server with QR code for device testing
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Platform to target (default: all) | |
| clear_cache | No | Clear Metro bundler cache | |
| port | No | Port number for dev server | |
| qr_format | No | QR code format (default: terminal) | |
| offline | No | Run in offline mode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as blocking nature, server lifecycle, authentication needs, or error conditions. The schema covers parameters but not runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, but it could be more structured (e.g., front-loading key facts). It is concise but possibly too brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 optional parameters and no output schema or annotations, the description is insufficient. It does not explain return values, side effects, or when to use this tool in a development workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema (e.g., does not explain parameter relationships or defaults beyond enum values).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Start') and identifies the resource ('Expo development server') and outcome ('QR code for device testing'). It clearly distinguishes from siblings like expo_dev_stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., expo_build_start) or prerequisites (e.g., project setup). The description lacks context on usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_dev_stopA
Stop running Expo dev server
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Dev server session ID to stop |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It states the action but does not disclose side effects (e.g., whether sessions are cleaned up, resources released) or safety considerations. The description is sufficient for a straightforward stop operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence without waste. It conveys the purpose efficiently, though it could benefit from very minor expansion for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects, no output schema), the description is mostly complete. It lacks information about return values or potential errors, but for a stop action, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the only parameter 'session_id' is documented in the schema. The tool description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Stop running Expo dev server' clearly states the action (stop) and the resource (Expo dev server), distinguishing it from siblings like 'expo_dev_start' and 'expo_dev_read'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use after starting a dev server, but provides no explicit context about when to use or alternatives. It is adequate for a simple stop command but lacks guidance on prerequisites or error states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_doctorC
Diagnose Expo project issues and optionally fix them
| Name | Required | Description | Default |
|---|---|---|---|
| fix_issues | No | Automatically fix detected issues |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden for behavioral disclosure. It mentions diagnosis and optional fixing but does not specify side effects (e.g., file modifications), required permissions, or the scope of issues it handles. This leaves significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no wasted words. It front-loads the verb and resource. However, it may be too concise for a tool that performs potentially impactful operations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional boolean, no output schema), the description is minimally adequate but lacks context on what issues are diagnosed, whether it requires network or installed tools, and the return format. Slightly more detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already describes the single boolean parameter as 'Automatically fix detected issues'. The description echoes this but adds no additional semantic value beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool diagnoses Expo project issues and optionally fixes them, using a specific verb and resource. However, it does not explicitly differentiate from sibling tools like debug_issue or analyze_codebase_comprehensive, which could overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus similar siblings. There is no mention of prerequisites, when not to use it, or context in which it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_installA
Install Expo-compatible packages with version compatibility checks
| Name | Required | Description | Default |
|---|---|---|---|
| packages | Yes | Package names to install | |
| check_compatibility | No | Check Expo SDK compatibility | |
| fix | No | Auto-fix dependency conflicts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'version compatibility checks' as a behavioral trait, but does not disclose other behaviors like modifying project files or requiring network access. For a simple installation tool, this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is direct and contains no extraneous words. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple parameters, the description is minimally complete. However, it lacks additional context such as side effects on project files or dependencies. Could be slightly more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning beyond what the schema already provides for the three parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Install') and resource ('Expo-compatible packages'), and adds context ('version compatibility checks'). This clearly distinguishes it from sibling tools like expo_upgrade or audit_packages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for installing packages with compatibility checks but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expo_upgradeB
Upgrade Expo SDK and dependencies to newer version
| Name | Required | Description | Default |
|---|---|---|---|
| target_version | No | Target Expo SDK version (or latest) | |
| dry_run | No | Preview changes without applying | |
| npm | No | Use npm instead of yarn |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose behavioral traits like side effects (e.g., file modifications), network requirements, or handling of breaking changes. The description alone is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no fluff. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too minimal for a complex SDK upgrade operation. Missing details on return values, error handling, and sequence effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond the schema, thus baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'upgrade' and the resource 'Expo SDK and dependencies', effectively distinguishing it from siblings like 'upgrade_packages' which focuses on general package upgrades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'check_for_updates' or 'migrate_packages'. Lacks context on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_component_testC
Generate comprehensive React Native component tests following industry best practices
| Name | Required | Description | Default |
|---|---|---|---|
| component_code | Yes | React Native component code to generate tests for | |
| component_name | Yes | Name of the component | |
| test_type | No | Type of tests to generate | comprehensive |
| testing_framework | No | Testing framework preference | jest |
| include_accessibility | No | Include accessibility tests | |
| include_performance | No | Include performance tests | |
| include_snapshot | No | Include snapshot tests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description is a single sentence. It does not disclose side effects (e.g., file creation, overwriting), authorization needs, or output behavior beyond generation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, which is concise and front-loaded. However, it sacrifices informativeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no output schema, and no annotations, the description should provide more context about output format, file generation, or usage scenarios. It fails to cover these aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parameters. The description adds no extra meaning beyond what the schema provides, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate' and the resource 'React Native component tests', with a quality indicator 'following industry best practices'. It distinguishes itself from sibling tools like 'analyze_test_coverage' that analyze rather than generate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., 'analyze_testing_strategy', 'analyze_component'). No prerequisites, exclusions, or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_version_infoA
Get React Native MCP Server version and build information
| Name | Required | Description | Default |
|---|---|---|---|
| include_build_info | No | Include detailed build information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation (getting information), but does not explicitly state that it has no side effects or that it is safe to call repeatedly. With no annotations provided, this lack of explicit disclosure limits transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no extraneous words. It effectively communicates the tool's purpose without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one optional parameter and no output schema, the description adequately states what information is returned. It could be slightly improved by noting that the operation is safe and instantaneous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single boolean parameter 'include_build_info', which already has a clear description. The tool description adds no further meaning beyond what the schema provides, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states that the tool retrieves version and build information for the React Native MCP Server. The verb 'Get' and the specific resource distinguish it from all sibling tools, none of which appear to provide version info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when or why to use this tool, nor any mention of alternatives. While it's a straightforward version retrieval, the description does not caution about frequency or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
migrate_packagesB
Migrate deprecated packages to their recommended alternatives
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to React Native project root | |
| package_manager | No | Package manager to use | |
| auto_migrate | No | Whether to automatically perform migrations | |
| target_packages | No | Specific packages to migrate (if not provided, checks all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden. It only states the core action but does not disclose side effects (e.g., file modifications, network dependencies, rollback options, or destructive potential). The 'auto_migrate' parameter hints at interactivity but is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It efficiently conveys the tool's purpose without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a migration tool with no output schema and no annotations, the description is too brief. It does not explain migration behavior, safety measures, success criteria, or how to handle conflicts. The complexity of the operation warrants more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes all parameters (100% coverage), so the description adds no additional semantic value beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'migrate' and the resource 'deprecated packages', and specifies the action of replacing them with 'recommended alternatives'. This distinguishes it from sibling tools like 'audit_packages' or 'upgrade_packages'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., audit_packages for checking deprecated packages, upgrade_packages for simple updates). The description lacks context for optimal usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_performanceC
Get performance optimization suggestions for React Native
| Name | Required | Description | Default |
|---|---|---|---|
| scenario | Yes | Performance scenario to optimize | |
| platform | No | Target platform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states that it returns suggestions, but does not indicate whether it is read-only, requires network access, or what the generation method is. Lacks important behavioral context for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but could include more useful information without becoming verbose. It is adequately structured but minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no description of return format or behavior. Given the tool has multiple enum scenarios, the description is insufficient for an agent to understand expected output or side effects. More context is needed for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for both parameters, with clear enum options. The description adds no extra meaning beyond the schema; baseline is acceptable at 3 since schema already documents parameters well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it provides performance optimization suggestions for React Native. It uses verb 'Get' and resource 'performance optimization suggestions', and the platform is specified. However, it doesn't fully distinguish from sibling tool 'analyze_codebase_performance' which may have overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites, limitations, or when not to use it. The description only states what it does, leaving the agent without context for choosing among similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refactor_componentC
Provide expert-level refactoring suggestions and implementations
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | React Native component code to refactor | |
| refactor_type | Yes | Type of refactoring to apply | |
| target_rn_version | No | Target React Native version for refactoring | |
| include_tests | No | Whether to include test updates |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'suggestions and implementations'. It does not clarify whether the tool modifies code, returns modified code, or provides suggestions. Behavioral traits like mutability, permissions, or side effects are absent, leaving significant ambiguity for a refactoring action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), which avoids verbosity but lacks key information. It does not front-load the most critical details (e.g., that it operates on React Native components) and is too brief to be helpful beyond stating the obvious.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description fails to explain what the tool returns (suggestions vs. code changes) or how to interpret results. The 4 parameters and lack of output details leave the agent with incomplete context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 4 parameters. The description adds no additional meaning beyond the schema, which already explains each parameter. Baseline score of 3 is appropriate since the description does not enhance understanding of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Provide expert-level refactoring suggestions and implementations' clearly states that the tool performs refactoring on React Native components. It differentiates from siblings like 'analyze_component' (analysis) and 'remediate_code' (fixing) by focusing on refactoring. However, it remains somewhat generic and could explicitly reference component refactoring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus sibling tools. No mention of prerequisites, context, or alternatives (e.g., 'Use analyze_component first to identify issues'). The agent receives no help in deciding between this and related tools like 'remediate_code' or 'optimize_performance'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remediate_codeC
Automatically fix React Native code issues with expert-level solutions
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | React Native code to remediate | |
| issues | No | Specific issues to fix (if not provided, auto-detects all) | |
| remediation_level | No | Level of remediation to apply | |
| preserve_formatting | No | Whether to preserve original code formatting | |
| add_comments | No | Whether to add explanatory comments to fixes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose key behaviors like whether the tool returns modified code or modifies in place, required permissions, or side effects. 'Expert-level' is vague and does not clarify the tool's operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that conveys the core purpose without redundancy. While front-loaded, it could benefit from more detail without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description is insufficient. It does not explain what the tool returns, how it operates, or how to interpret results, leaving the agent with significant ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions, which are already adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fixes React Native code issues with expert solutions. It distinguishes from sibling analysis tools like analyze_codebase_comprehensive, which only identify issues. However, it lacks specificity about what types of issues are addressed and the scope of fixes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as analyze_codebase_comprehensive or refactor_component. Does not mention prerequisites, typical workflow, or when to avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_dependenciesC
Analyze and resolve dependency conflicts in React Native projects
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to React Native project root | |
| package_manager | No | Package manager to use | |
| fix_conflicts | No | Whether to automatically attempt to fix conflicts | |
| generate_resolutions | No | Whether to generate resolution suggestions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It states 'resolve' but does not clarify if the tool modifies files, requires network, or is safe to run multiple times. Actions like fixing conflicts may be destructive, but no warning is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 10 words, no filler. Conciseness is optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no output schema, and potential side effects (conflict resolution may modify files), the description is too brief. It omits what the tool returns, whether fixes are applied automatically, and any prerequisites or risks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no parameter-specific details beyond what the schema already provides. No value added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it analyzes and resolves dependency conflicts in React Native projects. It distinguishes from siblings like 'audit_packages' (which likely only audit) and 'upgrade_packages' (which upgrades). However, it could be more explicit about the scope of 'resolve' (automatic fixes vs suggestions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over siblings. It does not specify prerequisites, when not to use it, or alternative tools for similar tasks (e.g., 'audit_packages' for analysis only). Agents lack context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upgrade_packagesC
Automatically check for package updates and provide upgrade recommendations
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to React Native project root | |
| package_manager | No | Package manager to use | |
| update_level | No | Level of updates to include | |
| auto_apply | No | Whether to automatically apply safe updates | |
| check_vulnerabilities | No | Whether to check for security vulnerabilities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for behavioral disclosure. It states only 'check' and 'recommendations', but the auto_apply parameter indicates the tool can also apply updates, which is a mutation. This inconsistency makes the description misleading about the tool's full capabilities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify what the tool returns (e.g., a list of recommendations). It does not. Additionally, it does not mention prerequisites like the project_path being a valid React Native project. Given the tool's complexity (5 parameters), the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 5 parameters, so each parameter is already well-documented. The description adds no additional context about parameters beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('check for package updates') and the result ('provide upgrade recommendations'). It identifies the resource as packages. However, it does not distinguish from sibling tools like check_for_updates or audit_packages, which may overlap in functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. Sibling tools such as check_for_updates, audit_packages, or migrate_packages exist but are not mentioned. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
33 tool updates
v0.0.1- First observed
analyze_codebase_comprehensive - First observed
analyze_codebase_performance - First observed
analyze_component - First observed
analyze_test_coverage - First observed
analyze_testing_strategy - First observed
architecture_advice - First observed
audit_packages - First observed
check_for_updates - First observed
debug_issue - First observed
eas_build - First observed
eas_build_status - First observed
eas_submit - First observed
eas_update - First observed
eas_update_status - First observed
expo_build_local_read - First observed
expo_build_local_start - First observed
expo_build_local_stop - First observed
expo_create_app - First observed
expo_dev_read - First observed
expo_dev_send - First observed
expo_dev_start - First observed
expo_dev_stop - First observed
expo_doctor - First observed
expo_install - First observed
expo_upgrade - First observed
generate_component_test - First observed
get_version_info - First observed
migrate_packages - First observed
optimize_performance - First observed
refactor_component - First observed
remediate_code - First observed
resolve_dependencies - First observed
upgrade_packages
TDQS
Each tool targets a distinct area: analysis, building, EAS, dev server, testing, etc. Even closely related tools like the various analysis tools are clearly scoped (comprehensive vs. performance vs. component vs. testing). No ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case, often with a domain prefix (e.g., analyze_, eas_, expo_). No mixed conventions or vague verbs. Highly predictable.
33 tools is high but justifies the broad scope of React Native/Expo development. Some meta-tools (check_for_updates, get_version_info) are minor but not excessive. Overall, each tool earns its place.
Covers the full lifecycle: project creation, dev server control, local and cloud builds, app store submission, OTA updates, comprehensive analysis, testing, debugging, dependency management, and upgrades. No obvious gaps for the domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Appcircle mobile CI/CD platform.
MCP Server for JFrog, providing tools for development and artifact management.
A MCP server built for developers enabling Git based project management with project and personalโฆ
MCP server for Mint โ AI-powered QA that runs your app in a real browser on every PR.
Related MCP Servers
- FlicenseBqualityDmaintenanceA Model Context Protocol server that provides development and debugging tools for Expo-based React Native applications, enabling developers to manage Expo servers, capture logs, and manipulate project files.51-
- FlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server designed to streamline Expo and React Native development for AI assistants like Cursor and Claude. It provides a comprehensive suite of tools for project initialization, EAS builds, OTA updates, and development server management.1-
- FlicenseAqualityDmaintenanceAn MCP server designed for React Native and Expo development that provides specialized tools for project scaffolding, architectural best practices, and troubleshooting. It enables AI assistants to guide users through setup, navigation configuration, and CI/CD processes using modern stacks like NativeWind and Zustand.134-
- AlicenseNot gradedqualityBmaintenanceThis MCP server enables real-time debugging and inspection of running React Native apps, providing access to console logs, errors, network requests, navigation state, storage, and performance profiling.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Divagnz/mcp-react-native-expo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server