Skip to main content
Glama
ArkVex
by ArkVex

Native_MCP

A Model Context Protocol (MCP) server for React Native development tools and utilities.

🚀 Overview

Native_MCP is an extensible MCP server that provides tools and utilities for React Native development. It allows AI assistants like Claude to generate React Native components and perform other development tasks through a standardized protocol.

Related MCP server: MCP Python Toolbox

✨ Features

  • React Native Component Generator: Automatically generate React Native components with proper structure

  • Extensible Tool System: Add custom tools through a simple plugin architecture

  • MCP Protocol Compliance: Full compatibility with Model Context Protocol 2025-06-18

  • Dynamic Tool Loading: Tools are loaded dynamically from the tools/ directory

🛠️ Available Tools

React Native Helper

  • generate_component: Generate a basic React Native functional component

    • Input: component_name (string)

    • Output: Complete React Native component code with View and Text elements

📋 Prerequisites

  • Python 3.12 or higher

  • uv package manager

  • VS Code with Claude extension (for MCP integration)

🔧 Installation

  1. Clone the repository:

    git clone https://github.com/ArkVex/Native_MCP.git
    cd Native_MCP
  2. Install dependencies:

    uv sync
  3. Verify installation:

    uv run mcp_server.py

🚀 Usage

With Claude in VS Code

  1. Configure the MCP server in your Claude settings:

    {
      "mcpServers": {
        "native-mcp": {
          "command": "uv",
          "args": [
            "--directory",
            "C:\\path\\to\\Native_MCP",
            "run",
            "mcp_server.py"
          ]
        }
      }
    }
  2. Start using the tools in Claude:

    • Ask Claude to "generate a React Native component called LoginScreen"

    • Claude will use the generate_component tool automatically

Manual Testing

You can test the server manually using JSON-RPC:

# Initialize the server
echo '{"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test-client","version":"0.1.0"}},"jsonrpc":"2.0","id":0}' | uv run mcp_server.py

# List available tools
echo '{"method":"tools/list","params":{},"jsonrpc":"2.0","id":1}' | uv run mcp_server.py

# Generate a component
echo '{"method":"tools/call","params":{"name":"generate_component","arguments":{"component_name":"MyButton"}},"jsonrpc":"2.0","id":2}' | uv run mcp_server.py

📁 Project Structure

Native_MCP/
├── mcp_server.py          # Main MCP server implementation
├── pyproject.toml         # Project configuration
├── requirements.txt       # Python dependencies
├── tools/                 # Tool plugins directory
│   └── react-native-helper/
│       ├── main.py        # Tool implementation
│       └── mcp.json       # Tool metadata
├── .venv/                 # Virtual environment
└── README.md             # This file

🔌 Adding Custom Tools

To add a new tool to the server:

  1. Create a tool directory:

    mkdir tools/my-custom-tool
  2. Create the tool implementation (tools/my-custom-tool/main.py):

    def my_function(params):
        # Your tool logic here
        result = params.get("input", "default")
        return {"output": f"Processed: {result}"}
  3. Create the tool metadata (tools/my-custom-tool/mcp.json):

    {
      "name": "my-custom-tool",
      "entry_point": "main.py",
      "commands": {
        "my_function": {
          "description": "Description of what this tool does",
          "params": {
            "input": "string"
          }
        }
      }
    }
  4. Restart the server - tools are loaded automatically

🐛 Troubleshooting

Server Won't Start

  • Ensure Python 3.12+ is installed

  • Verify uv is installed and in your PATH

  • Check that all dependencies are installed with uv sync

Tools Not Loading

  • Verify tool directory structure matches the expected format

  • Check that mcp.json is valid JSON

  • Ensure the entry point file exists and functions are named correctly

Connection Issues

  • Verify the MCP server path in your Claude configuration

  • Check that the server process isn't already running

  • Review the Claude extension logs for detailed error messages

📖 API Reference

MCP Protocol Methods

  • initialize: Initialize the server connection

  • tools/list: Get list of available tools

  • tools/call: Execute a specific tool

  • resources/list: List available resources (currently empty)

  • prompts/list: List available prompts (currently empty)

Tool Response Format

Tools return responses in the MCP standard format:

{
  "content": [
    {
      "type": "text",
      "text": "Tool output here"
    }
  ]
}

🤝 Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature/new-tool

  3. Make your changes and add tests

  4. Commit your changes: git commit -am 'Add new tool'

  5. Push to the branch: git push origin feature/new-tool

  6. Submit a pull request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

If you encounter any issues or have questions:

  1. Check the Troubleshooting section

  2. Search existing GitHub Issues

  3. Create a new issue with detailed information about your problem


Made with ❤️ for the React Native and AI development community

Available Tools

1 tool
generate_componentC

Generate a React Native component

ParametersJSON Schema
NameRequiredDescriptionDefault
component_nameYes

TDQS

C2.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 carries the full burden. 'Generate' implies a creation or write operation, but it doesn't disclose behavioral traits like whether it requires specific permissions, what the output looks like, or any side effects. It adds minimal context beyond the basic action.

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 with no wasted words. It's appropriately sized and front-loaded, making it easy to scan and understand quickly.

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 complexity (a generation tool with no annotations, no output schema, and low schema coverage), the description is incomplete. It doesn't explain what the tool returns, how it behaves, or provide enough context for effective use, leaving significant gaps for an AI agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'React Native component' but doesn't explain the 'component_name' parameter's semantics, such as naming conventions, format, or what it represents. The description adds little meaning beyond what the bare schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Generate a React Native component' states a clear verb ('Generate') and resource ('React Native component'), but it's somewhat vague about what kind of component or what generation entails. It doesn't have siblings to distinguish from, but lacks specificity beyond the basic action.

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, such as prerequisites, alternatives, or specific contexts. It's a standalone tool with no siblings, but still offers no usage instructions or exclusions.

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

TDQS

C2.9/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools. The single tool has a clear and distinct purpose.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The naming follows a clear verb_noun pattern.

Tool Count2/5

One tool is too few for a server named 'Native_MCP', which suggests a broader scope related to React Native development. A single component generator feels insufficient for comprehensive coverage.

Completeness2/5

The tool surface is severely incomplete for React Native development. It only covers component generation, missing essential operations like navigation setup, state management, API integration, or testing tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

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/ArkVex/Native_MCP'

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