2Sense
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@2Senseanalyze this ad: https://example.com/sample-ad.mp4"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ads-learnings — eyes & ears for Claude
Give Claude the ability to see and hear short-form video ads, so it can give grounded advice on (a) enhancing future content and (b) designing incrementality tests for a content/series format.
Claude is the brain. The pipeline only does perception, delivered as one MCP tool:
analyze_ad(source) ← MCP tool (CLI + Desktop app)
│ ingest → yt-dlp (URLs) → local mp4
│ ffmpeg → frames @ 3fps → Pillow contact sheets (labeled) + manifest (EYES)
│ ffmpeg → mono wav → Groq whisper-large-v3 → transcript + segments (EARS)
│ numpy → audio energy/rhythm: tempo, energy curve, onsets, dynamics (EARS+)
│ YAMNet → audio-event tags: music/speech/instruments/genre/SFX (EARS+)
▼
returns: [ text (timestamp legend + transcript), sheet image, sheet image, … ]
▼
Claude sees the sheets + reads the transcript → teardown + 2 deliverablesNo model runs on your Mac — locally it's just ffmpeg (bundled), yt-dlp, and Pillow,
managed by uv. The only hosted call is Whisper on Groq.
Where it's wired
The 2Sense MCP server exposes four tools, available in both surfaces:
analyze_ad(source, language="auto")— full eyes + ears: contact-sheet images, transcript, audio energy/rhythm profile, AND YAMNet audio-event tags.transcribe(path, language="auto")— speech transcript only (Groq Whisper).audio_profile(path)— music/energy signals (free numpy): tempo, energy curve, onsets.audio_events(path)— YAMNet tags (free, local): music/speech/instruments/genre/SFXa coarse timeline. No mood (happy/sad) — YAMNet covers events, not affect.
Surface | How | Tool namespace |
Claude Code (CLI + Code apps, any dir) | user-scope MCP in |
|
Claude Desktop app |
|
|
This repo (portable) | project | — |
Claude Code also gets the ad-learnings skill + ad-eyes sub-agent (symlinked into
~/.claude/) for the guided teardown workflow. The Desktop app uses the MCP tool directly.
Related MCP server: ffmpeg-mcp-server
Setup
Prereq: uv. Then one command (idempotent — installs deps,
writes a local .mcp.json, wires the MCP into Claude Code + the Desktop app, links the
skill/agent, runs a health check):
bin/setupThen:
Paste your free Groq key into
.env→GROQ_API_KEY=...(get one)Restart Claude Code and the Claude Desktop app so
2Senseloads.Verify:
bin/ee doc --ping
Notes: the project pins Python 3.12 (TensorFlow/YAMNet). The first
audio_events/analyze_adcall downloads the ~15 MB YAMNet model once (then cached)..mcp.jsonis generated bybin/setup(gitignored — see.mcp.json.example). Disable the audio layers inconfig.toml([audio] profile,yamnet) for speech-only ears.
Use
Claude Code or Desktop: "analyze this ad: " → Claude calls
analyze_ad, sees the sheets, reads the transcript, and produces the analysis.CLI prep only (no LLM):
bin/ee prep "<path-or-url>"→data/out/<slug>/.
Output per video: frames/, sheets/, manifest.json, audio.wav, prep.json
(+ ears.json when transcribed).
Config
Edit config.toml: fps, max_frames, sheet grid (cols/rows), Whisper model,
language.
Pieces
src/eyesears/— prep CLI (ee) + 2Sense MCP (ee-ears:analyze_ad,transcribe,audio_profile)src/eyesears/audio_features.py— free numpy music/energy analysissrc/eyesears/yamnet.py— free YAMNet audio-event tagging (TensorFlow, lazy-loaded).claude/agents/ad-eyes.md— vision sub-agent (Claude Code batch optimization).claude/skills/ad-learnings/— orchestration skillbin/setup— one-time installer/wiring (generates.mcp.json, registers the MCP, links skill/agent).mcp.json.example— template;bin/setupwrites the real.mcp.json(gitignored) with local paths
License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/spxrtiat111/2sense'
If you have feedback or need assistance with the MCP directory API, please join our Discord server