Give Claude Code 51 research, analysis & media production tools with one command. Video analysis, deep research, academic papers, TTS voice-over, AI video generation, and Weaviate knowledge store — powered by Gemini 3.5 Flash.
Drift inferred · capture-to-capture
- HIGH code analysis flagged hidden prompt content ×2 in Galbaz1/video-research-mcp
transport stdio 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 commit 7b85c66 · analyzer v17 · 1h ago
skills & prompt files 16
- ⚠ hidden: agent-rules: skill-exfilGalbaz1-video-research-mcp-7b85c66/AGENTS.md:153
secret→sink: ```bash - ⚠ hidden: skill: skill-exfilGalbaz1-video-research-mcp-7b85c66/skills/tts-production/SKILL.md:16
secret→sink: ```bash
- agent-rulesGalbaz1-video-research-mcp-7b85c66/CLAUDE.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/ffmpeg-production/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/gemini-visualize/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/gr-advisor/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/image-generation/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/mlflow-traces/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/research-brief-builder/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/video-explainer/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/video-generation/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/video-production/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/video-research/SKILL.md
- skillGalbaz1-video-research-mcp-7b85c66/skills/weaviate-setup/SKILL.md
- agent-rulesGalbaz1-video-research-mcp-7b85c66/src/AGENTS.md
- agent-rulesGalbaz1-video-research-mcp-7b85c66/tests/AGENTS.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 29
- fs Galbaz1-video-research-mcp-7b85c66/packages/video-agent-mcp/src/video_agent_mcp/config.py :7
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/packages/video-agent-mcp/src/video_agent_mcp/dotenv.py :10
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/packages/video-agent-mcp/src/video_agent_mcp/tools/scenes.py :13
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/config.py :6
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/dotenv.py :10
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/prereqs.py :5
import shutil - fs Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/runner.py :10
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/scanner.py :7
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/scripts/detect_review_scope.py :8
import shutil - fs Galbaz1-video-research-mcp-7b85c66/scripts/export_installer_state_matrix.py :14
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/scripts/export_tool_contract_manifest.py :15
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/scripts/run_live_tool_security_checks.py :18
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/cache.py :9
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/config.py :192
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/context_cache.py :12
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/contract/pipeline.py :13
import shutil - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/contract/quality.py :12
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/contract/render.py :12
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/dotenv.py :11
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/local_path_policy.py :5
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/persistence.py :8
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/content.py :7
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/content_batch.py :7
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/research_document_file.py :8
import shutil - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/video.py :9
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/video_batch.py :6
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/video_file.py :10
from pathlib import Path - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/youtube_download.py :11
import shutil - fs Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/url_policy.py :15
from pathlib import Path
shell / exec 2
- shell Galbaz1-video-research-mcp-7b85c66/scripts/detect_review_scope.py :9
import subprocess - shell Galbaz1-video-research-mcp-7b85c66/scripts/export_installer_state_matrix.py :11
import subprocess
network 8
- net Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/academic_client.py :74
_client: Any | None = None # httpx.AsyncClient - net Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/config.py :8
from urllib.parse import urlparse - net Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/errors.py :53
import httpx - net Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/video_url.py :7
from urllib.parse import parse_qs, urlparse - net Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/youtube.py :7
from urllib.parse import parse_qs, urlparse - net Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tracing.py :66
import socket - net Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/url_policy.py :13
import socket - net Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/weaviate_client.py :15
from urllib.parse import urlparse
secrets 3
- secrets Galbaz1-video-research-mcp-7b85c66/scripts/revectorize_openai.py :45
openai_key = os.environ.get("OPENAI_API_KEY", "") - secrets Galbaz1-video-research-mcp-7b85c66/scripts/run_live_tool_security_checks.py :185
api_key = (os.environ.get("GEMINI_API_KEY") or "").strip() - secrets Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/config.py :199
_cohere_key = os.environ.get("COHERE_API_KEY", "")
database 1
- db Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/persistence.py :7
import sqlite3
tool registrations 32
- explainer_sound Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/audio.py :20
- explainer_music Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/audio.py :48
- explainer_generate Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/pipeline.py :50
- explainer_step Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/pipeline.py :89
- explainer_render Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/pipeline.py :119
- explainer_render_start Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/pipeline.py :164
- explainer_render_poll Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/pipeline.py :230
- explainer_short Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/pipeline.py :262
- explainer_create Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/project.py :23
- explainer_inject Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/project.py :53
- explainer_status Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/project.py :99
- explainer_list Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/project.py :130
- explainer_refine Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/quality.py :20
- explainer_feedback Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/quality.py :47
- explainer_factcheck Galbaz1-video-research-mcp-7b85c66/packages/video-explainer-mcp/src/video_explainer_mcp/tools/quality.py :72
- research_paper_search Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/academic.py :47
- research_paper_details Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/academic.py :104
- research_paper_citations Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/academic.py :139
- research_paper_recommendations Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/academic.py :189
- research_author_search Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/academic.py :231
- content_analyze Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/content.py :64
- content_extract Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/content.py :238
- content_batch_analyze Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/content_batch.py :164
- research_deep Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/research.py :37
- research_plan Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/research.py :109
- research_assess_evidence Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/research.py :165
- research_document Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/research_document.py :53
- research_web Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/research_web.py :117
- research_web_status Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/research_web.py :178
- research_web_followup Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/research_web.py :262
- research_web_cancel Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/research_web.py :322
- web_search Galbaz1-video-research-mcp-7b85c66/src/video_research_mcp/tools/search.py :22
declared dependencies 6
- fastmcp@>=3.0.2
- google-api-python-client@>=2.100
- google-genai@>=1.57
- httpx@>=0.27
- pydantic@>=2.0
- weaviate-client@>=4.19.2