Production-shaped MCP server for Blender with goal-first routing, curated tools, deterministic verification, and vision-assisted 3D modeling workflows.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in PatrykIti/blender-ai-mcp
transport stdio · streamable-http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed analyzer v18 · 7h ago
skills & prompt files 1
- agent-rulesPatrykIti-blender-ai-mcp-4325315/AGENTS.md
danger signals1
- dynamic code execution__import__()PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/contracts/__init__.py:33
module = __import__(module_name, fromlist=[name])
evidence-backed
findings quoted directly from the published source artifact — not inferred
last analysis: fetch-failed · showing evidence from the last successful analysis (2d ago)
filesystem 26
- fs PatrykIti-blender-ai-mcp-4325315/blender_addon/application/handlers/scene_viewport_mixin.py :233
with open(expected_output, "rb") as f: - fs PatrykIti-blender-ai-mcp-4325315/blender_addon/application/handlers/system.py :328
os.remove(filepath) - fs PatrykIti-blender-ai-mcp-4325315/blender_addon/infrastructure/rpc_server.py :13
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/scripts/build_addon.py :5
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/scripts/run_e2e_tests.py :28
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/scripts/translate_docs.py :33
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/scripts/update_openrouter_model_profiles.py :20
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/scripts/vision_harness.py :14
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/areas/reference.py :11
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/areas/reference_checkpoint_compare.py :10
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/areas/reference_current_view.py :10
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/areas/reference_images_runtime.py :9
import shutil - fs PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/platform/runtime_inventory.py :21
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/prompts/prompt_catalog.py :10
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/vision/backends.py :14
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/vision/evaluation.py :9
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/vision/silhouette.py :117
with Image.open(image_path) as image: - fs PatrykIti-blender-ai-mcp-4325315/server/application/tool_handlers/workflow_catalog_handler.py :4
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/infrastructure/tmp_paths.py :16
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/router/application/classifier/embedding_cache.py :11
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/router/application/learning/feedback_collector.py :17
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/router/infrastructure/logger.py :482
with open(filepath, "w") as f: - fs PatrykIti-blender-ai-mcp-4325315/server/router/infrastructure/metadata_loader.py :12
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/router/infrastructure/vector_store/lance_store.py :12
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/router/infrastructure/vector_store/migrations.py :12
from pathlib import Path - fs PatrykIti-blender-ai-mcp-4325315/server/router/infrastructure/workflow_loader.py :12
from pathlib import Path
shell / exec 1
- shell PatrykIti-blender-ai-mcp-4325315/scripts/run_e2e_tests.py :24
import subprocess
network 6
- net PatrykIti-blender-ai-mcp-4325315/blender_addon/infrastructure/rpc_server.py :5
import socket - net PatrykIti-blender-ai-mcp-4325315/scripts/run_e2e_tests.py :23
import socket - net PatrykIti-blender-ai-mcp-4325315/scripts/translate_docs.py :28
import socket - net PatrykIti-blender-ai-mcp-4325315/scripts/update_openrouter_model_profiles.py :18
import urllib.request - net PatrykIti-blender-ai-mcp-4325315/server/adapters/mcp/vision/backends.py :17
import httpx - net PatrykIti-blender-ai-mcp-4325315/server/adapters/rpc/client.py :3
import socket
secrets 1
- secrets PatrykIti-blender-ai-mcp-4325315/scripts/translate_docs.py :390
api_key = os.environ.get("OPENAI_API_KEY", "").strip() or env_fallback.get("OPENAI_API_KEY", "").strip()