Skip to main content
Glama

React Native Godot Documentation MCP Server

by vredrick
demo.py7.29 kB
#!/usr/bin/env python3 """ Demo script for React Native Godot MCP Server Showcases all available tools and their capabilities """ import asyncio from react_native_godot_mcp import ( get_documentation, search_documentation, get_example_code, get_setup_instructions, get_api_reference, get_troubleshooting, get_file_from_repo, ResponseFormat, DetailLevel ) # ANSI color codes for pretty output class Colors: HEADER = '\033[95m' BLUE = '\033[94m' CYAN = '\033[96m' GREEN = '\033[92m' YELLOW = '\033[93m' RED = '\033[91m' RESET = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m' def print_demo_header(title: str): """Print a fancy demo header""" print(f"\n{Colors.CYAN}{'='*70}{Colors.RESET}") print(f"{Colors.BOLD}{Colors.HEADER}{title:^70}{Colors.RESET}") print(f"{Colors.CYAN}{'='*70}{Colors.RESET}\n") def print_tool_demo(tool_name: str, description: str): """Print tool demonstration header""" print(f"\n{Colors.GREEN}▶ {Colors.BOLD}{tool_name}{Colors.RESET}") print(f"{Colors.BLUE} {description}{Colors.RESET}\n") def print_output(content: str, max_lines: int = 15): """Print truncated output with formatting""" lines = content.split('\n') if len(lines) > max_lines: for line in lines[:max_lines]: print(f" {line}") print(f"\n{Colors.YELLOW} ... (output truncated, showing {max_lines}/{len(lines)} lines) ...{Colors.RESET}\n") else: for line in lines: print(f" {line}") async def run_demo(): """Run the complete demo of all MCP server capabilities""" print_demo_header("React Native Godot MCP Server Demo") print(f"{Colors.BOLD}Welcome to the React Native Godot Documentation MCP Server!{Colors.RESET}") print("This demo will showcase all available tools and their capabilities.") print("Each tool is designed to help LLMs efficiently access React Native Godot documentation.\n") input(f"{Colors.YELLOW}Press Enter to start the demo...{Colors.RESET}") # Demo 1: Get Documentation print_tool_demo( "get_documentation", "Fetches specific sections of documentation with adjustable detail levels" ) print("Example: Getting threading documentation in concise format...") result = await get_documentation( None, section="threading", format=ResponseFormat.MARKDOWN, detail=DetailLevel.CONCISE ) print_output(result, 10) # Demo 2: Search Documentation print_tool_demo( "search_documentation", "Intelligently searches across all documentation for specific topics" ) print("Example: Searching for information about 'signals'...") result = await search_documentation( None, query="signals connect JavaScript", max_results=2, format=ResponseFormat.MARKDOWN ) print_output(result, 15) # Demo 3: Get Example Code print_tool_demo( "get_example_code", "Provides working code examples for various features" ) print("Example: Getting worklets example code...") result = await get_example_code( None, topic="worklets", platform="both", format=ResponseFormat.MARKDOWN ) print_output(result, 20) # Demo 4: Get Setup Instructions print_tool_demo( "get_setup_instructions", "Provides platform-specific setup and configuration guidance" ) print("Example: Getting iOS setup instructions with debugging...") result = await get_setup_instructions( None, platform="ios", include_debugging=True, custom_build=False, format=ResponseFormat.MARKDOWN ) print_output(result, 15) # Demo 5: Get API Reference print_tool_demo( "get_api_reference", "Detailed API documentation with usage examples" ) print("Example: Getting RTNGodotView component reference...") result = await get_api_reference( None, topic="RTNGodotView", include_examples=True, format=ResponseFormat.MARKDOWN ) print_output(result, 15) # Demo 6: Get Troubleshooting print_tool_demo( "get_troubleshooting", "Solutions for common problems and issues" ) print("Example: Troubleshooting view display issues...") result = await get_troubleshooting( None, issue="view_not_showing", platform=None, format=ResponseFormat.MARKDOWN ) print_output(result, 15) # Demo 7: Get File from Repo print_tool_demo( "get_file_from_repo", "Direct access to any file in the repository" ) print("Example: Fetching package.json from the repository...") result = await get_file_from_repo( None, path="package.json", branch="main", format=ResponseFormat.MARKDOWN ) print_output(result, 10) # Demo complete print_demo_header("Demo Complete!") print(f"{Colors.GREEN}{Colors.BOLD}✨ Demonstration finished successfully!{Colors.RESET}\n") print("This MCP server provides comprehensive access to React Native Godot documentation.") print("\nKey features demonstrated:") print(f" • {Colors.CYAN}7 specialized tools{Colors.RESET} for different documentation needs") print(f" • {Colors.CYAN}Configurable detail levels{Colors.RESET} (concise, detailed, full)") print(f" • {Colors.CYAN}Multiple response formats{Colors.RESET} (Markdown, JSON)") print(f" • {Colors.CYAN}Platform-specific guidance{Colors.RESET} (iOS, Android, both)") print(f" • {Colors.CYAN}Intelligent search{Colors.RESET} with relevance scoring") print(f" • {Colors.CYAN}Direct repository access{Colors.RESET} for any file") print(f"\n{Colors.YELLOW}Ready for integration with Claude Desktop or any MCP client!{Colors.RESET}") print(f"\nFor setup instructions, see: {Colors.BLUE}CONFIGURATION.md{Colors.RESET}") print(f"For testing, run: {Colors.BLUE}python3 test_mcp_server.py{Colors.RESET}") # Bonus: Show JSON format capability print(f"\n{Colors.CYAN}{'='*70}{Colors.RESET}") print(f"{Colors.BOLD}Bonus: JSON Response Format{Colors.RESET}") print(f"{Colors.CYAN}{'='*70}{Colors.RESET}\n") print("The server also supports JSON responses for programmatic use:") result = await get_documentation( None, section="overview", format=ResponseFormat.JSON, detail=DetailLevel.CONCISE ) import json json_data = json.loads(result) print(f"\nJSON Response Keys: {list(json_data.keys())}") print(f"Content Length: {json_data.get('length', 0)} characters") print(f"Title: {json_data.get('title', 'N/A')}") async def main(): """Main entry point""" try: await run_demo() except KeyboardInterrupt: print(f"\n{Colors.YELLOW}Demo interrupted by user{Colors.RESET}") except Exception as e: print(f"\n{Colors.RED}Error running demo: {e}{Colors.RESET}") if __name__ == "__main__": print(f"{Colors.BOLD}React Native Godot MCP Server - Interactive Demo{Colors.RESET}") asyncio.run(main())

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/vredrick/react-native-godot-mcp'

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