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: video-edit-tools
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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