Skip to main content
Glama

OpenAPI Search MCP Server

by Sheepion
schema_service.py2.16 kB
""" Schema and authentication query service """ from typing import Dict, Any from src.storage import OpenAPIStorage from src.config import ERROR_SCHEMA_NOT_FOUND class SchemaService: """ Service for querying schemas and authentication info. """ def __init__(self, storage: OpenAPIStorage): """ Initialize SchemaService. Args: storage: OpenAPIStorage instance """ self.storage = storage def get_schema_details(self, name: str, schema_name: str) -> Dict[str, Any]: """ Get data model definition from components/schemas. Args: name: API name schema_name: Schema name like User, Pet Returns: Detailed schema definition """ doc_data, error = self.storage.get_or_error(name) if error: return error components = doc_data.get('components', {}) schemas = components.get('schemas', {}) if schema_name not in schemas: available = ', '.join(schemas.keys()) if schemas else 'none' return { "error": True, "message": ERROR_SCHEMA_NOT_FOUND.format( schema_name=schema_name, name=name, available=available ) } schema = schemas[schema_name] return { "schema_name": schema_name, **schema } def get_auth_info(self, name: str) -> Dict[str, Any]: """ Get authentication configuration for an API. Args: name: API name Returns: Detailed security schemes configuration """ doc_data, error = self.storage.get_or_error(name) if error: return error raw_doc = doc_data['raw'] components = doc_data.get('components', {}) security_schemes = components.get('securitySchemes', {}) global_security = raw_doc.get('security', []) return { "security_schemes": security_schemes, "global_security": global_security }

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/Sheepion/openapi-search-mcp'

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