Skip to main content
Glama

MockLoop MCP Server

Official
by MockLoop
route_template.j2โ€ข3.34 kB
{# Jinja2 template for a FastAPI route #} @app.{{ method | lower }}("{{ path }}", summary="{{ summary }}") async def mock_{{ method | lower }}_{{ path.strip('/').replace('/', '_').replace('{', '').replace('}', '').replace('-', '_') }}({% if path_params %}{{ path_params }}, {% endif %}background_tasks: BackgroundTasks): """ Mock endpoint for {{ method | upper }} {{ path }} Summary: {{ summary }} """ # Check for active scenario override global active_scenario response_data = None if active_scenario and active_scenario.get("config"): # Look for scenario-specific response for this endpoint endpoint_key = "{{ method | lower }}_{{ path.strip('/').replace('/', '_').replace('{', '').replace('}', '').replace('-', '_') }}" scenario_config = active_scenario.get("config", {}) if endpoint_key in scenario_config: response_data = scenario_config[endpoint_key] elif "{{ path }}" in scenario_config: response_data = scenario_config["{{ path }}"] elif "responses" in scenario_config and "{{ path }}" in scenario_config["responses"]: response_data = scenario_config["responses"]["{{ path }}"] # Fall back to default response if no scenario override if response_data is None: {% if example_response %} # Response based on schema example response_data = {{ example_response }} {% else %} # No example available in schema response_data = {"message": "mock response for {{ method | upper }} {{ path }}"} {% endif %} # Trigger webhooks if enabled {% if webhooks_enabled %} try: # Determine event type based on HTTP method and path event_type = None if "{{ method | upper }}" == "POST": event_type = "data.created" elif "{{ method | upper }}" == "PUT" or "{{ method | upper }}" == "PATCH": event_type = "data.updated" elif "{{ method | upper }}" == "DELETE": event_type = "data.deleted" elif "{{ method | upper }}" == "GET": # Only trigger for specific GET endpoints that might be considered data access if "{{ path }}" != "/health" and not "{{ path }}".startswith("/admin"): event_type = "data.accessed" if event_type: # Create webhook payload webhook_payload = { "method": "{{ method | upper }}", "path": "{{ path }}", "timestamp": time.time(), "response": response_data } # Add path parameters to payload if they exist {% if path_params %} webhook_payload["path_params"] = { {% for param in path_params.split(', ') %} {% set param_name = param.split(':')[0].strip() %} "{{ param_name }}": {{ param_name }}, {% endfor %} } {% endif %} # Trigger webhooks in background await trigger_webhooks(event_type, webhook_payload, background_tasks) except Exception as e: # Don't let webhook errors affect the main response logger.error(f"Webhook trigger error: {e}") {% endif %} return response_data

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/MockLoop/mockloop-mcp'

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