Skip to main content
Glama
patrickkabwe

React Native Upgrader MCP

by patrickkabwe

Get React Native Release Candidate Version

get-rc-version

Retrieve React Native release candidate versions from GitHub to evaluate upcoming changes and plan upgrades before production deployment.

Instructions

Gets the latest release candidate versions of React Native from GitHub releases.

OVERVIEW: This tool returns a list of available release candidate versions that you can use for upgrading.

VERSION FORMAT: • The version numbers follow semantic versioning (e.g. 0.72.0-rc.0) • Include the release candidate tag

RELEASE CANDIDATE INFO: • Each version in the returned list represents a pre-release that has undergone testing • May still contain bugs as they are not production-ready

USAGE: • This tool is commonly used before planning an upgrade to evaluate new features and changes in upcoming releases • The versions can be used with the get-react-native-diff tool to preview changes before upgrading • Please select one version from the returned list to use for the upgrade process

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Inline handler function for the 'get-rc-version' tool that invokes the helper function and returns the formatted response as MCP content.
    async () => {
        const versions = await getCurrentReleaseCandidateVersion();
        return {
            content: [{ type: "text", text: versions.join('\n') }]
        }
    })
  • src/tools.ts:62-87 (registration)
    Registration of the 'get-rc-version' MCP tool, including title, description (no input schema), and handler function.
        server.registerTool('get-rc-version', {
            title: "Get React Native Release Candidate Version",
            description: `Gets the latest release candidate versions of React Native from GitHub releases.
    
    OVERVIEW:
    This tool returns a list of available release candidate versions that you can use for upgrading.
    
    VERSION FORMAT:
    • The version numbers follow semantic versioning (e.g. 0.72.0-rc.0)
    • Include the release candidate tag
    
    RELEASE CANDIDATE INFO:
    • Each version in the returned list represents a pre-release that has undergone testing
    • May still contain bugs as they are not production-ready
    
    USAGE:
    • This tool is commonly used before planning an upgrade to evaluate new features and changes in upcoming releases
    • The versions can be used with the get-react-native-diff tool to preview changes before upgrading
    • Please select one version from the returned list to use for the upgrade process`,
        },
            async () => {
                const versions = await getCurrentReleaseCandidateVersion();
                return {
                    content: [{ type: "text", text: versions.join('\n') }]
                }
            })
  • Core helper function that fetches React Native GitHub releases, finds the latest release candidate by 'rc' tag, strips 'v' prefix, and returns as array.
    export const getCurrentReleaseCandidateVersion = async (): Promise<string[]> => {
        const response = await fetch(`https://api.github.com/repos/facebook/react-native/releases`);
        const data = await response.json() as { tag_name: string }[];
        const releaseCandidate = data.find(release => release.tag_name.includes('rc'));
        return releaseCandidate ? [releaseCandidate.tag_name.replace('v', '')] : [];
    }
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it returns a list of versions (output format), notes they are pre-release and may contain bugs (risk disclosure), and mentions the tool is read-only (implied by 'Gets'). However, it lacks details on rate limits, authentication needs, 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 well-structured with clear sections (OVERVIEW, VERSION FORMAT, etc.) and front-loaded key information. It could be slightly more concise by merging some bullet points, but every sentence adds value (e.g., explaining pre-release nature and usage context).

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?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is quite complete: it explains purpose, output format, behavioral context (pre-release nature), and usage with siblings. It could improve by specifying exact return structure (e.g., JSON array) or error cases, but it adequately covers the essentials.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on output semantics, explaining version format (semantic versioning with RC tags) and that the tool returns a list. This adds value beyond the empty 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's purpose with a specific verb ('Gets') and resource ('latest release candidate versions of React Native from GitHub releases'), distinguishing it from siblings like get-stable-version (stable releases) and get-user-version (user-specific versions). The title reinforces this by specifying 'Release Candidate Version'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('before planning an upgrade to evaluate new features and changes in upcoming releases') and provides alternatives ('can be used with the get-react-native-diff tool to preview changes'). It also distinguishes from siblings by focusing on release candidates versus stable versions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/patrickkabwe/react-native-upgrader-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server