Skip to main content
Glama

OpenAPI to Model Context Protocol (MCP)

#!/usr/bin/env python3 """ Test script to validate the OpenAPI-MCP server functionality. """ import os import sys import logging # Add src to path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src')) import server def test_server(): """Test the OpenAPI-MCP server with Petstore API.""" print("Testing OpenAPI-MCP Server with Petstore API") print("=" * 50) # Set up logging logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s') try: # Test configuration os.environ['OPENAPI_URL'] = 'https://petstore3.swagger.io/api/v3/openapi.json' os.environ['SERVER_NAME'] = 'petstore3' config = server.ServerConfig() print(f"✓ Configuration loaded: {config.server_name}") # Test server initialization srv = server.MCPServer(config) srv.initialize() print(f"✓ Server initialized successfully") print(f" - API: {srv.openapi_spec.get('info', {}).get('title', 'Unknown')}") print(f" - Operations parsed: {len(srv.operations_info)}") # Test tool registration api_tools = srv.register_openapi_tools() srv.register_standard_tools() print(f"✓ Tools registered: {api_tools} API tools, {len(srv.registered_tools)} total") # Test resource registration resources = srv.register_resources() print(f"✓ Resources registered: {resources}") # Test prompt generation prompts = srv.generate_prompts() print(f"✓ Prompts generated: {prompts}") # Test tool listing tools_list = srv._tools_list_tool('test-id') print(f"✓ Tools list: {len(tools_list['result']['tools'])} tools available") # Test dry run tool_func = srv.registered_tools['petstore3_findPetsByStatus']['function'] dry_run = tool_func(req_id='test', status='available', dry_run=True) print("✓ Dry run test successful") print(f" - URL: {dry_run['result']['request']['url']}") print(f" - Method: {dry_run['result']['request']['method']}") # Test real API call real_call = tool_func(req_id='test', status='available') if 'result' in real_call and 'data' in real_call['result']: data = real_call['result']['data'] print(f"✓ Real API call successful: Found {len(data)} pets") print("\n" + "=" * 50) print("✅ All tests passed! Server is working correctly.") return True except Exception as e: print(f"\n❌ Test failed: {e}") import traceback traceback.print_exc() return False if __name__ == "__main__": success = test_server() sys.exit(0 if success else 1)

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/gujord/OpenAPI-MCP'

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