github Python re-analysis due

MockLoop/mockloop-mcp

github

Intelligent Model Context Protocol (MCP) server for AI-assisted API development. Generate mock servers from OpenAPI specs with advanced logging, performance analytics, and server discovery. Optimized for AI development workflows with comprehensive testing insights and automated analysis.

maintainer
MockLoop
license
MIT
first seen
2026-06-05
last seen
2026-09-05
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 30 tools
transport stdio · http counts 30 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • analyze_test_results
  • compare_test_runs
  • create_agent_context
  • create_context_snapshot
  • create_test_session
  • create_test_session_context
  • create_workflow_context
  • deploy_scenario
  • discover_mock_servers
  • end_test_session
  • execute_test_plan
  • generate_mock_api
  • generate_test_report
  • get_context_data
  • get_global_context_data
  • get_performance_metrics
  • list_active_scenarios
  • list_contexts_by_type
  • manage_mock_data
  • monitor_test_progress
  • query_mock_logs
  • restore_context_snapshot
  • run_load_test
  • run_security_test
  • run_test_iteration
  • schedule_test_suite
  • switch_scenario
  • update_context_data
  • update_global_context_data
  • validate_scenario_config
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 30d356b · analyzer v33 · 1d ago

danger signals2

code evidence vv2.2.9 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 75

filesystem 41

  • fs (weak) MockLoop-mockloop-mcp-30d356b/examples/schemapin/advanced_usage.py :17 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/examples/schemapin/basic_usage.py :12 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/examples/schemapin/complete_signing_example.py :11 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/fix_database.py :12 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/generator.py :7 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/parser.py :8 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/scripts/bump_version.py :24 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/scripts/embed_signatures.py :20 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/scripts/monitor_package.py :19 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/scripts/prepare_release.py :22 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/scripts/sign_all_schemas.py :22 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/scripts/validate_pypi_readiness.py :19 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/scripts/validate_signatures.py :20 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/scripts/verify_installation.py :17 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/community_scenarios.py :34 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/database_migration.py :13 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/generator.py :8 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/mcp_audit_logger.py :18 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/mcp_compliance.py :23 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/mcp_tools.py :55 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/mock_server_manager.py :12 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/parser.py :9 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/proxy/config.py :17 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/proxy/plugin_manager.py :16 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/schemapin/config.py :105 with open(file_path, "w", encoding="utf-8") as f:
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/schemapin/key_management.py :11 from pathlib import Path
  • fs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/schemapin/signing.py :12 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/generate_test_data.py :39 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_comprehensive_integration.py :17 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_final_integration.py :17 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_manage_mock_data.py :14 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_mcp_proxy_integration.py :23 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_phase1_integration.py :13 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_schemapin_integration.py :16 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_structure.py :9 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/unit/test_http_client_extensions.py :15 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/unit/test_mcp_audit_logging.py :22 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/unit/test_mcp_resources.py :57 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/unit/test_schemapin_integration.py :17 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/unit/test_structure.py :9 from pathlib import Path
  • fs (weak) MockLoop-mockloop-mcp-30d356b/tests/unit/test_webhook_fix.py :14 from pathlib import Path

shell / exec 4

  • shell (weak) MockLoop-mockloop-mcp-30d356b/scripts/bump_version.py :26 import subprocess
  • shell (weak) MockLoop-mockloop-mcp-30d356b/scripts/prepare_release.py :24 import subprocess
  • shell (weak) MockLoop-mockloop-mcp-30d356b/scripts/validate_pypi_readiness.py :21 import subprocess # nosec B404 - needed for validation commands
  • shell (weak) MockLoop-mockloop-mcp-30d356b/scripts/verify_installation.py :19 import subprocess

network 10

  • net MockLoop-mockloop-mcp-30d356b/parser.py :10 import requests
  • net (weak) MockLoop-mockloop-mcp-30d356b/scripts/monitor_package.py :24 import requests
  • net (weak) MockLoop-mockloop-mcp-30d356b/scripts/validate_pypi_readiness.py :23 from urllib.parse import urlparse
  • net MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/mcp_tools.py :57 from urllib.parse import urlparse
  • net MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/parser.py :12 import requests
  • net MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/schemapin/key_management.py :14 import aiohttp
  • net MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/utils/http_client.py :12 import socket
  • net (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_mcp_proxy_integration.py :869 # We expect _execute_proxy_test (called by execute_test_plan) to use aiohttp.ClientSession
  • net (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_schemapin_integration.py :202 @patch('aiohttp.ClientSession.get')
  • net (weak) MockLoop-mockloop-mcp-30d356b/tests/unit/test_schemapin_integration.py :395 @patch('aiohttp.ClientSession.get')

secrets 2

  • secrets (weak) MockLoop-mockloop-mcp-30d356b/examples/mcp-proxy/authentication-example.py :419 "api_key": os.getenv("API_KEY", "default-key")
  • secrets (weak) MockLoop-mockloop-mcp-30d356b/examples/mcp-proxy/hybrid-workflow-example.py :243 "credentials": {"token": os.getenv("API_TOKEN", "demo-token")},

database 13

  • db MockLoop-mockloop-mcp-30d356b/fix_database.py :13 import sqlite3
  • db MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/database_migration.py :14 import sqlite3
  • db MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/mcp_audit_logger.py :15 import sqlite3
  • db MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/mcp_compliance.py :21 import sqlite3
  • db MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/mcp_context.py :25 import sqlite3
  • db MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/schemapin/audit.py :9 import sqlite3
  • db MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/schemapin/key_management.py :9 import sqlite3
  • db (weak) MockLoop-mockloop-mcp-30d356b/tests/generate_test_data.py :35 import sqlite3
  • db (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_comprehensive_integration.py :19 import sqlite3
  • db (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_final_integration.py :19 import sqlite3
  • db (weak) MockLoop-mockloop-mcp-30d356b/tests/integration/test_schemapin_integration.py :13 import sqlite3
  • db (weak) MockLoop-mockloop-mcp-30d356b/tests/unit/test_mcp_audit_logging.py :18 import sqlite3
  • db (weak) MockLoop-mockloop-mcp-30d356b/tests/unit/test_schemapin_integration.py :14 import sqlite3

tool registrations 42

  • query_mock_logs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :460
  • discover_mock_servers MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :554
  • manage_mock_data MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :620
  • validate_scenario_config MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :857
  • deploy_scenario MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :874
  • switch_scenario MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :892
  • list_active_scenarios MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :905
  • execute_test_plan MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :918
  • run_test_iteration MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :941
  • run_load_test MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :960
  • run_security_test MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :979
  • analyze_test_results MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :998
  • generate_test_report MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1015
  • compare_test_runs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1033
  • get_performance_metrics MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1050
  • create_test_session MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1065
  • end_test_session MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1080
  • schedule_test_suite MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1093
  • monitor_test_progress MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1108
  • create_test_session_context MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1126
  • create_workflow_context MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1167
  • create_agent_context MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1208
  • get_context_data MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1251
  • update_context_data MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1286
  • create_context_snapshot MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1313
  • restore_context_snapshot MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1350
  • list_contexts_by_type MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1380
  • get_global_context_data MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1442
  • update_global_context_data MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/main.py :1474
  • generate_mock_api MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :89
  • query_mock_logs MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :108
  • discover_mock_servers MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :128
  • manage_mock_data MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :141
  • validate_scenario_config MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :158
  • deploy_scenario MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :172
  • switch_scenario MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :187
  • list_active_scenarios MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :201
  • execute_test_plan MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :213
  • run_test_iteration MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :229
  • run_load_test MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :245
  • run_security_test MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :261
  • analyze_test_results MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/stdio_server.py :283

declared dependencies 22

  • mcp@>=1.10.0
  • fastapi@>=0.104.0
  • uvicorn@>=0.24.0
  • Jinja2@>=3.1.0
  • PyYAML@>=6.0
  • requests@>=2.32.4
  • aiohttp@>=3.12.14
  • schemapin@>=1.0.0
  • pytest@>=7.0.0
  • pytest-cov@>=4.0.0
  • pytest-asyncio@>=0.21.0
  • black@>=23.0.0
  • ruff@>=0.1.0
  • isort@>=5.12.0
  • mypy@>=1.0.0
  • bandit@>=1.7.0
  • safety@>=2.3.0
  • pre-commit@>=3.0.0
  • pip-audit@>=2.6.0
  • semgrep@>=1.45.0
  • types-PyYAML@>=6.0.0
  • types-requests@>=2.31.0

perm:untrusted 1

  • untrusted MockLoop-mockloop-mcp-30d356b/parser.py :16 content = requests.get(path_or_url, timeout=30).text

transport_posture 1

  • network-listening, binds all interfaces, no auth detected MockLoop-mockloop-mcp-30d356b/src/mockloop_mcp/generator.py :720 uvicorn.run(app, host="0.0.0.0", port={business_port})