Atlas / MCP servers / korovin-aa97 / korovin-aa97-talkthrough

korovin-aa97-talkthroughSAFE

mcp/korovin-aa97/talkthrough-mcp

Recordings in. Agent-ready evidence out. Local-first MCP for transcripts, keyframes, OCR, speakers, and wall-clock evidence.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
9 8r · 1w · 0d
Transport
stdio
License
MIT
Stars
31
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/korovin-aa97/talkthrough-mcp/actions/workflows/ci.yml) [](LICENSE) [](pyproject.toml) [](https://pypi.org/project/talkthrough-mcp/)

Quickstart · Tools · Benchmarks · FAQ · Troubleshooting · Changelog · Contributing

Don't write a bug report. Record it.

Give Claude Code or Codex a narrated .mov/.mp4 — or a public video link — and talkthrough turns it into searchable transcript, exact frames, OCR and wall-clock timestamps, locally — so your agent writes an evidence-backed issue draft or investigates the fix.

Also works for meetings, workshops, product demos, and production incidents.

Illustration — an animation of the `/talkthrough:bug` storyline, not a screen capture: the recording is indexed locally (transcript · keyframes · OCR · wall-clock), the evidence checkpoint is assembled, and the draft is ready to file with your own tracker tooling (`gh`, Jira, a GitHub MCP server — talkthrough itself never leaves your machine and never posts anything).

Real runs, no animation:

  • [▶ Watch the demo with sound (1:18)](https://youtu.be/nHfGfEiVdE8) — an

unedited session: a narrated recording goes in, a ready-to-file bug-report.md comes out.

  • Silent recording → issue draft —

the whole thing as files you can re-run: a Playwright-recorded, audio-free

Read from source at commit b3c731f6ee1fOBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code (pypi)
claude mcp add talkthrough-mcp -- uvx talkthrough-mcp==0.4.2
03

Exposed tools (9)

8 read · 1 write · 0 destructive.

ToolRiskDescription
extract_framereadmanifest = _load(job_id)
get_framesreadmanifest = _load(job_id)
get_momentreadif end_ms < start_ms:
get_transcriptreadmanifest = _load(job_id)
label_speakerswritePersist a validated speaker-name patch under the existing job lock.
list_jobsreadmanifests = jobs.list_jobs()
process_mediareadresult = await _run_with_progress(
process_urlread# The initial message names the network step honestly and never echoes
searchreadmanifest = _load(job_id)
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (6 observation(s))
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (19)

LOWInventory / provenance · inv.binary · CWE-1104
tests/fixtures/meeting-demo.m4a
meeting-demo.m4a
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.binary · CWE-1104
tests/fixtures/meeting-interrupt.m4a
meeting-interrupt.m4a
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.binary · CWE-1104
tests/fixtures/meeting-two-voices.m4a
meeting-two-voices.m4a
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.binary · CWE-1104
tests/fixtures/multilang-ru-demo.m4a
multilang-ru-demo.m4a
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
scripts/gen_integrations.py:154
"\nAgent-followable install steps for any client: [`llms-install.md`](../../llms-install.md).\n"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
scripts/gen_integrations.py:233
"[`llms-install.md`](../../llms-install.md)."
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/unit/test_url_ingest.py:128
("https://169.254.169.254/latest/meta-data", UnsafeUrlError, "private, loopback"),
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
tests/unit/test_url_ingest.py:148
"127.0.0.1", "10.1.2.3", "172.16.5.5", "192.168.1.1", "169.254.169.254",
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/unit/test_cli.py:47
("GET", f"https://203.0.113.10/clip.mp4?{CANARY}", "HTTP/1.1 200 OK"),
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/unit/test_url_ingest.py:126
("https://127.0.0.1/clip.mp4", UnsafeUrlError, "private, loopback"),
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/unit/test_url_ingest.py:127
("https://10.0.0.5/clip.mp4", UnsafeUrlError, "private, loopback"),
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/unit/test_url_ingest.py:128
("https://169.254.169.254/latest/meta-data", UnsafeUrlError, "private, loopback"),
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/unit/test_url_ingest.py:131
("https://100.64.0.1/clip.mp4", UnsafeUrlError, "private, loopback"),
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
tests/unit/test_guidance.py:176
decoded = json.loads(base64.b64decode(urllib.parse.unquote(cursor.group(1))))
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
tests/unit/test_guidance.py:180
decoded_lm = json.loads(base64.b64decode(urllib.parse.unquote(lm_studio.group(1))))
LOWObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
tests/unit/test_server_tools.py:627
"Vera Smith\nVERA-SMITH\nИрина Петрова\n张伟\n12345\n"  # noqa: RUF001
INFOInventory / provenance · inv.oversize · CWE-1104
assets/demo.gif
assets/demo.gif
Why it matters. 4560862 bytes not read
INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
README.md:48
`curl -LsSf https://astral.sh/uv/install.sh | sh`).
INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
llms-install.md:11
`curl -LsSf https://astral.sh/uv/install.sh | sh`

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha b3c731f6ee1ffull audit observations/trust-audit/mcp-server/korovin-aa97__talkthrough-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-11b3c731f6ee1fSAFEB89first audit
06

Questions

What is the korovin-aa97-talkthrough MCP server?

Recordings in. Agent-ready evidence out. Local-first MCP for transcripts, keyframes, OCR, speakers, and wall-clock evidence.

What tools does korovin-aa97-talkthrough expose?

9 in total: 8 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is korovin-aa97-talkthrough safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does korovin-aa97-talkthrough need?

No credential environment variables were found in its source, so it appears to need none.

How does korovin-aa97-talkthrough run?

It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as talkthrough-mcp.

How current is this page?

The grade is for one exact copy of the source (b3c731f6ee1f), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement