Skip to main content
Glama
utils.py1.56 kB
#!/usr/bin/env python3 import json import logging import re from typing import Any, Dict, Optional import pytest logger = logging.getLogger("prefect-mcp-test") def extract_id_from_response(response_text: str, key: str = "id"): """ Extract an ID from a response text using regex pattern. Args: response_text: The text containing the ID key: The key associated with the ID (default: "id") Returns: The extracted ID or None if not found """ try: # Extract the UUID using regex pattern - handle UUID('...') format uuid_match = re.search(rf"'{key}': UUID\('([0-9a-f-]+)'\)", response_text) if uuid_match: return uuid_match.group(1) # Try another pattern (regular string ID) id_match = re.search(rf"'{key}': '([^']+)'", response_text) if id_match: return id_match.group(1) # Try JSON parsing as fallback try: # Replace single quotes with double quotes for JSON parsing json_text = response_text.replace("'", '"') # Handle UUID objects in the text json_text = re.sub(r'UUID\("([^"]+)"\)', r'"\1"', json_text) parsed = json.loads(json_text) if isinstance(parsed, dict) and key in parsed: return str(parsed[key]) except (json.JSONDecodeError, KeyError): pass return None except Exception as e: logger.error(f"Error extracting ID: {e}") return None

Latest Blog Posts

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/allen-munsch/mcp-prefect'

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