Skip to main content
Glama

FastMCP Demo Server

by apoojary94
test_server.pyโ€ข4.94 kB
#!/usr/bin/env python3 """Test script for the GitHub MCP Server with styled code reviews.""" import server import json def test_list_styles(): """Test the list_review_styles function.""" print("๐Ÿงช TEST 1: List Review Styles") print("=" * 50) result = server.list_review_styles.__wrapped__() print(f"โœ… Total styles available: {result['total_styles']}") print(f"โœ… Default style: {result['default_style']}") print("\n๐Ÿ“‹ Available styles:") for style in result['available_styles']: print(f" - {style}") print("\n" + "=" * 50) return result def test_download_files(): """Test the download_github_files function.""" print("๐Ÿงช TEST 2: Download GitHub Files") print("=" * 50) urls = [ "https://raw.githubusercontent.com/microsoft/vscode/main/README.md", "https://raw.githubusercontent.com/facebook/react/main/package.json" ] result = server.download_github_files.__wrapped__(urls) print(f"โœ… Total URLs: {result['summary']['total_urls']}") print(f"โœ… Successful downloads: {result['summary']['successful_downloads']}") print(f"โœ… Failed downloads: {result['summary']['failed_downloads']}") print(f"โœ… Success rate: {result['summary']['success_rate']}") for i, file_data in enumerate(result['files']): if file_data['success']: print(f"\n๐Ÿ“ File {i+1}: {file_data['metadata']['filename']}") print(f" Repository: {file_data['metadata']['owner']}/{file_data['metadata']['repo']}") print(f" Size: {file_data['metadata']['size_bytes']} bytes") print(f" Extension: {file_data['metadata']['file_extension']}") else: print(f"\nโŒ File {i+1}: Failed - {file_data['error']}") print("\n" + "=" * 50) return result def test_download_and_review(): """Test the download_and_review_github_files function.""" print("๐Ÿงช TEST 3: Download and Review GitHub Files") print("=" * 50) urls = ["https://raw.githubusercontent.com/microsoft/vscode/main/README.md"] style = "pirate" result = server.download_and_review_github_files.__wrapped__(urls, style) print(f"โœ… Total files: {result['summary']['total_files']}") print(f"โœ… Successful reviews: {result['summary']['successful_reviews']}") print(f"โœ… Failed reviews: {result['summary']['failed_reviews']}") print(f"โœ… Style used: {result['summary']['style_used']}") for i, review in enumerate(result['reviews']): if 'error' not in review: print(f"\n๐Ÿ“ Review {i+1}: {review['filename']}") print(f" Repository: {review['repository']}") print(f" Style: {review['style_used']}") print(f" Size: {review['size_bytes']} bytes") print(f"\n๐ŸŽญ Review Preview:") # Show first 300 characters of the review preview = review['review'][:300] + "..." if len(review['review']) > 300 else review['review'] print(f" {preview}") else: print(f"\nโŒ Review {i+1}: Failed - {review['error']}") print("\n" + "=" * 50) return result def test_invalid_style(): """Test with an invalid style.""" print("๐Ÿงช TEST 4: Invalid Style Handling") print("=" * 50) urls = ["https://raw.githubusercontent.com/microsoft/vscode/main/README.md"] invalid_style = "invalid_style" result = server.download_and_review_github_files.__wrapped__(urls, invalid_style) if 'error' in result: print(f"โœ… Correctly caught invalid style: {result['error']}") else: print("โŒ Should have caught invalid style") print("\n" + "=" * 50) return result def test_empty_urls(): """Test with empty URLs.""" print("๐Ÿงช TEST 5: Empty URLs Handling") print("=" * 50) result = server.download_and_review_github_files.__wrapped__([]) if 'error' in result: print(f"โœ… Correctly caught empty URLs: {result['error']}") else: print("โŒ Should have caught empty URLs") print("\n" + "=" * 50) return result def main(): """Run all tests.""" print("๐Ÿš€ GitHub MCP Server Test Suite") print("=" * 60) print() try: # Run all tests test_list_styles() test_download_files() test_download_and_review() test_invalid_style() test_empty_urls() print("๐ŸŽ‰ All tests completed successfully!") print("\n๐Ÿ“‹ Summary:") print("โœ… Server imports correctly") print("โœ… All tools are functional") print("โœ… Error handling works") print("โœ… Ready for Cursor integration!") except Exception as e: print(f"โŒ Test failed with error: {e}") import traceback traceback.print_exc() if __name__ == "__main__": 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/apoojary94/mcp_hackathon'

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