Skip to main content
Glama
Divagnz

React Native Expo MCP

by Divagnz

React Native Expo MCP

npm version License: MIT Model Context Protocol PR Checks TypeScript React Native

[Lines] [Branches] [Functions] [Statements]

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-tools

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 higher

Minimum 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_here

Installation

# 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-expo

Development 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.js

Verification

claude mcp list

Verify 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

remediate_code

Automatic security, performance, and quality fixes

Expert

Production-ready code

refactor_component

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

"Fix all security and performance issues in my component with expert solutions"

Production-ready remediated code

๐Ÿ—๏ธ Component Modernization

"Refactor my legacy component to modern React Native patterns with tests"

Modernized component + test suite

๐Ÿ›ก๏ธ Security Hardening

"Automatically fix hardcoded secrets and security vulnerabilities"

Secure code with environment variables

โšก Performance Optimization

"Fix memory leaks and optimize FlatList performance automatically"

Optimized code with cleanup

๐Ÿ“ Type Safety Enhancement

"Add TypeScript interfaces and improve type safety automatically"

Type-safe code with interfaces

Pre-deployment Security Check

"Scan my React Native project for security vulnerabilities"

Security report + automatic fixes

Performance Bottleneck Analysis

"Analyze my app for performance bottlenecks and memory leaks"

Optimization roadmap + fixes

Code Quality Review

"Review my codebase for refactoring opportunities"

Quality improvement + implementation

Accessibility Compliance

"Check my app for accessibility issues and fix them automatically"

WCAG compliance + code fixes

Component Test Generation

"Generate comprehensive tests for my LoginScreen component"

Complete test suite

Testing Strategy Optimization

"Analyze my current testing strategy and suggest improvements"

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.js

  • macOS/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 start

Continuous 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-expo

Technical 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_code and refactor_component

  • 6 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 -9

  • No 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 processes

  • Tools in development: expo_sessions_list, expo_kill_process, expo_cleanup

Dependency Management

  • Manual expo-doctor required: Users must run npx expo-doctor and npx expo install --check manually

  • Multiple 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 --check before major builds

  • Use expo install instead of yarn add for Expo packages

  • Tools 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 17

  • Check ANDROID_HOME before builds: echo $ANDROID_HOME

  • Tools 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.tsx before other imports

  • Test 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__* vs mcp__mcp-react-native-expo__*)

  • Connection failures: MCP server reconnections fail without diagnostics

  • Undefined returns: Some tools return undefined instead of proper error messages

Workarounds:

  • Check tool names with expo_help() (when available)

  • Restart Claude Desktop if tools become unavailable

  • Use /mcp command to check server status

  • Improvements 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 tail parameter to limit log output

  • Manually scan logs for "ERROR" or "WARN" keywords

  • Tools in development: Smart log filtering with --errors-only, --progress modes

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.x

Buffer/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-worklets

MCP Tools Not Available

# Verify MCP configuration
cat ~/.config/claude-desktop/mcp.json

# Restart Claude Desktop
# Or use /mcp command in Claude

Getting Help

For detailed troubleshooting, see:

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_server

  • EAS Cloud Builds (3 tools): expo_trigger_eas_build, expo_get_eas_build_status, expo_submit_to_store

  • Local Builds (3 tools): expo_start_local_build, expo_read_build_logs, expo_stop_local_build

  • Project Management (3 tools): expo_create_app, expo_run_doctor, expo_install_packages, expo_upgrade_sdk

  • OTA Updates (2 tools): expo_publish_eas_update, expo_get_update_status

โœ… Test Coverage by Category:

  1. 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)

  2. 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)

  3. 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)

  4. 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)

  5. Expo OTA Updates (2 files, 24 tests)

    • publish.test.ts: Update publishing (13 tests)

    • status.test.ts: Update monitoring (11 tests)

  6. Component Analyzer (1 file, 22 tests)

    • React Native code quality analysis

    • Security, performance, and memory leak detection

    • StyleSheet and caching optimization

  7. 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

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_code tool - Automatically fixes security vulnerabilities, performance issues, and code quality problems

  • refactor_component tool - Comprehensive component modernization with hooks, TypeScript, and performance optimization

  • Automatic 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 fixing

  • refactor_component - Advanced component modernization

  • analyze_codebase_comprehensive - Multi-dimensional analysis with auto-fix suggestions

  • analyze_codebase_performance - Performance profiling with automatic optimizations

  • generate_component_test - Automated test suite generation

  • analyze_test_coverage - Coverage analysis with improvement strategies

  • analyze_testing_strategy - Testing approach evaluation and recommendations

  • upgrade_packages - Intelligent package upgrades with compatibility checking

  • resolve_dependencies - Dependency conflict resolution

  • audit_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 tools
analyze_codebase_comprehensiveB

Comprehensive React Native codebase analysis including performance, security, refactoring, and upgrades

ParametersJSON Schema
NameRequiredDescriptionDefault
codebase_pathNoPath to React Native project root
analysis_typesNoTypes of analysis to perform

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
codebase_pathNoPath to React Native project root
focus_areasNoSpecific performance areas to focus on

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoReact Native component code to analyze. If not provided, analyzes entire codebase
typeNoComponent type
codebase_pathNoPath to React Native project root for codebase analysis

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNoPath to React Native project root
coverage_thresholdNoMinimum coverage threshold percentage
generate_reportNoGenerate detailed coverage report

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNoPath to React Native project root
focus_areasNoAreas to focus testing analysis on

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
project_typeYesType of React Native project
featuresNoKey features of the app

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNoPath to React Native project root
package_managerNoPackage manager to use
auto_fixNoWhether to automatically fix vulnerabilities
severity_thresholdNoMinimum severity level to report

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
include_changelogNoInclude changelog in the response

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_typeYesType of issue to debug
platformNoPlatform where issue occurs
error_messageNoError message if available

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYesPlatform to build
profileNoBuild profile from eas.json (default: production)
waitNoWait for build completion (default: false)
non_interactiveNoNon-interactive mode
clear_cacheNoClear build cache

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
build_idNoSpecific build ID to check (or latest builds)
limitNoNumber of builds to show (default: 5)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYesPlatform to submit
build_idNoBuild ID to submit
profileNoSubmit profile from eas.json
latestNoSubmit latest successful build

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
branchYesBranch name to publish to
messageYesUpdate message/description
rollout_percentageNoGradual rollout percentage 0-100 (default: 100)
runtime_versionNoRuntime version constraint
platformNoTarget platform

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
branchNoFilter by branch name
limitNoNumber of updates to show (default: 10)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesBuild session ID from expo_build_local_start
tailNoNumber of recent log lines (default: 100)

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYesPlatform to build for
deviceNoDevice name, ID, or "simulator"
variantNoBuild variant (default: debug)
cleanNoClean build cache before building

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesBuild session ID to cancel

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
project_nameYesName of the new project
templateNoProject template (blank, tabs, bare, etc.)
npmNoUse npm instead of yarn
installNoInstall dependencies (default: true)
yesNoSkip all prompts (default: false)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesDev server session ID
tailNoNumber of recent log lines to return (default: 50)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesDev server session ID from expo_dev_start
commandYesCommand to send
custom_inputNoCustom input when command is "custom"

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoPlatform to target (default: all)
clear_cacheNoClear Metro bundler cache
portNoPort number for dev server
qr_formatNoQR code format (default: terminal)
offlineNoRun in offline mode

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesDev server session ID to stop

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
fix_issuesNoAutomatically fix detected issues

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
packagesYesPackage names to install
check_compatibilityNoCheck Expo SDK compatibility
fixNoAuto-fix dependency conflicts

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
target_versionNoTarget Expo SDK version (or latest)
dry_runNoPreview changes without applying
npmNoUse npm instead of yarn

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
component_codeYesReact Native component code to generate tests for
component_nameYesName of the component
test_typeNoType of tests to generatecomprehensive
testing_frameworkNoTesting framework preferencejest
include_accessibilityNoInclude accessibility tests
include_performanceNoInclude performance tests
include_snapshotNoInclude snapshot tests

TDQS

C2.9/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
include_build_infoNoInclude detailed build information

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNoPath to React Native project root
package_managerNoPackage manager to use
auto_migrateNoWhether to automatically perform migrations
target_packagesNoSpecific packages to migrate (if not provided, checks all)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
scenarioYesPerformance scenario to optimize
platformNoTarget platform

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesReact Native component code to refactor
refactor_typeYesType of refactoring to apply
target_rn_versionNoTarget React Native version for refactoring
include_testsNoWhether to include test updates

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesReact Native code to remediate
issuesNoSpecific issues to fix (if not provided, auto-detects all)
remediation_levelNoLevel of remediation to apply
preserve_formattingNoWhether to preserve original code formatting
add_commentsNoWhether to add explanatory comments to fixes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNoPath to React Native project root
package_managerNoPackage manager to use
fix_conflictsNoWhether to automatically attempt to fix conflicts
generate_resolutionsNoWhether to generate resolution suggestions

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNoPath to React Native project root
package_managerNoPackage manager to use
update_levelNoLevel of updates to include
auto_applyNoWhether to automatically apply safe updates
check_vulnerabilitiesNoWhether to check for security vulnerabilities

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 33 tool updatesv0.0.1
    • First observedanalyze_codebase_comprehensive
    • First observedanalyze_codebase_performance
    • First observedanalyze_component
    • First observedanalyze_test_coverage
    • First observedanalyze_testing_strategy
    • First observedarchitecture_advice
    • First observedaudit_packages
    • First observedcheck_for_updates
    • First observeddebug_issue
    • First observedeas_build
    • First observedeas_build_status
    • First observedeas_submit
    • First observedeas_update
    • First observedeas_update_status
    • First observedexpo_build_local_read
    • First observedexpo_build_local_start
    • First observedexpo_build_local_stop
    • First observedexpo_create_app
    • First observedexpo_dev_read
    • First observedexpo_dev_send
    • First observedexpo_dev_start
    • First observedexpo_dev_stop
    • First observedexpo_doctor
    • First observedexpo_install
    • First observedexpo_upgrade
    • First observedgenerate_component_test
    • First observedget_version_info
    • First observedmigrate_packages
    • First observedoptimize_performance
    • First observedrefactor_component
    • First observedremediate_code
    • First observedresolve_dependencies
    • First observedupgrade_packages

TDQS

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A 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.
    5
    1
    -
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A 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
    -
  • F
    license
    A
    quality
    D
    maintenance
    An 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.
    13
    4
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    This 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.
    1
    MIT

Latest Blog Posts

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