Skip to main content
Glama

Crawlab MCP Server

Official
by crawlab-team
openapi.py1.94 kB
import os import prance import yaml from prance.util.url import ResolutionError class OpenAPIParser: def __init__(self, yaml_path, strict=False): """ Initialize the OpenAPI parser Args: yaml_path (str): Path to the OpenAPI YAML file strict (bool): Whether to use strict validation """ self.yaml_path = yaml_path self.strict = strict self.spec = None self.resolved_spec = None def parse(self): """Parse the OpenAPI file with reference resolution""" try: # Make sure we're working from the directory containing the YAML file yaml_dir = os.path.dirname(os.path.abspath(self.yaml_path)) yaml_file = os.path.basename(self.yaml_path) # Store the current working directory original_dir = os.getcwd() try: # Change to the directory containing the YAML file os.chdir(yaml_dir) # First, load the raw YAML to preserve original structure with open(yaml_file, "r", encoding="utf-8") as f: self.spec = yaml.safe_load(f) # Then use prance to resolve references parser = prance.ResolvingParser( yaml_file, strict=self.strict, backend="openapi-spec-validator" ) self.resolved_spec = parser.specification finally: # Restore the original working directory os.chdir(original_dir) return True except ResolutionError as e: print(f"Reference resolution error: {e}") return False except Exception as e: print(f"Error parsing OpenAPI file: {e}") return False def get_resolved_spec(self): """Get the spec with all references resolved""" return self.resolved_spec

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/crawlab-team/crawlab-mcp'

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