Mcp Call Recording — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Call Recording (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP (Model Context Protocol) server that provides semantic search over VTT transcript files using AI-powered structured summaries. This server enables business stakeholders to query client call transcripts using natural language through Claude Desktop and Microsoft Copilot 365 Studio.
Now powered by OpenAI GPT-4-turbo for best-in-class summary quality and structured extraction.
<img width="954" height="906" alt="image" src="https://github.com/user-attachments/assets/a2bee971-9b3e-4a22-b1d7-15ce1136b9f8" />
This is improved version of data flow after we identified improvements we can make at the embedding levels. <img width="736" height="427" alt="image" src="https://github.com/user-attachments/assets/abd7d122-c602-4bed-a89f-1b239432525b" />
query_transcripts tool that handles all queries (pure semantic search)http://localhost:8000. Persisted data is stored in a directory you configure when starting the Chroma server (see CHROMADB_SETUP.md).http://localhost:8000 (see CHROMADB_SETUP.md) npm install npm run build.env file in the project root: OPENAI_API_KEY=sk-proj-your-key-here
VTT_DIRECTORY=/path/to/vtt/transcript/files
CHROMA_DB_PATH=./chroma_dbSee ENV_SETUP.md for detailed environment setup instructions.
The MCP server reads configuration from environment variables (e.g. from a .env file in the project root):
| Variable | Required | Description |
|---|---|---|
OPENAI_API_KEY | Yes | Your OpenAI API key for GPT-4-turbo summaries and embeddings |
VTT_DIRECTORY | Yes | Path to the directory containing VTT transcript files |
CHROMA_DB_PATH | No | Path for Chroma server data (default: ./chroma_db) |
Cost: ~$0.02 per transcript on average (varies with length). Your $5 credit covers approximately 200 transcripts.
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/claude/claude_desktop_config.jsondist/index.js): {
"mcpServers": {
"call-recording": {
"command": "node",
"args": ["/absolute/path/to/MCP_Call_Recording/dist/index.js"]
}
}
}Example config is in config/claude-desktop.json.
.env, index existing VTT files in VTT_DIRECTORY, and watch for new, changed, or deleted files.The server currently uses stdio transport. For Copilot Studio you would need to run it as an HTTP MCP server (e.g. add an HTTP transport in src/index.ts or run behind an adapter).
For reference, config/copilot-studio.json illustrates a possible structure (name, description, transport type, environment variables). Set VTT_DIRECTORY, CHROMA_DB_PATH, and OPENAI_API_KEY in your deployment environment.
Once configured, you can ask Claude Desktop (or Copilot Studio once HTTP is set up) questions about your call transcripts, for example:
The server will:
query_transcriptsOn startup the server:
VTT_DIRECTORY for existing .vtt filesThe server watches the VTT directory with chokidar:
For each query:
minScore, sorted by score, and formatted with summary text and metadataIf you need to refresh the index for one file or the whole directory:
npm run reindex -- path/to/file.vtt
# or: tsx reindex-file.ts path/to/file.vttVTT_DIRECTORY (force reindex everything): npm run reindex-all
# or: tsx reindex-all.tsBoth scripts use your .env (e.g. VTT_DIRECTORY, CHROMA_DB_PATH, OPENAI_API_KEY). The Chroma server must be running.
Note: Re-indexing costs OpenAI API credits (~$0.02 per transcript).
MCP_Call_Recording/
├── src/
│ ├── index.ts # Entry point: init services, index existing files, start file watcher, start MCP server
│ ├── server.ts # MCP server setup and tool registration (query_transcripts)
│ ├── tools/
│ │ └── query.ts # query_transcripts tool (embedding + vector search + format answer)
│ ├── services/
│ │ ├── vttParser.ts # VTT file parsing
│ │ ├── summaryService.ts # OpenAI GPT-4-turbo for structured summaries
│ │ ├── embeddingService.ts # OpenAI text-embedding-3-small (1536-dim)
│ │ ├── vectorDb.ts # Chroma client (connects to http://localhost:8000)
│ │ ├── metadataExtractor.ts # Metadata from filename and VTT content
│ │ ├── indexer.ts # Index one file or directory into Chroma
│ │ └── fileWatcher.ts # chokidar-based file watcher
│ ├── types/
│ │ └── transcript.ts # TypeScript interfaces
│ └── utils/
│ └── chunking.ts # Legacy chunking utilities (now using full-transcript summaries)
├── config/
│ ├── claude-desktop.json # Example Claude Desktop MCP config
│ └── copilot-studio.json # Example structure for Copilot Studio (HTTP not implemented)
├── reindex-file.ts # Script to reindex a single VTT file
├── reindex-all.ts # Script to reindex all VTT files in VTT_DIRECTORY
├── check-embeddings.sql # Optional: SQL for inspecting Chroma SQLite DB (chroma_db)
├── start_chroma.sh # Helper to start Chroma server (see CHROMADB_SETUP.md)
├── start_chroma.py
├── package.json
├── tsconfig.json
├── CHROMADB_SETUP.md
└── README.mdnpm run build
npm startnpm run devnpm run watchnpm run reindex -- vtt_files/SomeFile.vtt
npm run reindex-allThe server expects WebVTT files (.vtt extension). Example:
WEBVTT
00:00:00.000 --> 00:00:05.000
Hello, this is a transcript segment.
00:00:05.000 --> 00:00:10.000
<v Speaker Name>This segment has a speaker identifier.</v>Metadata is derived from:
{ClientName}_{Date}_{Type}.vttExample: BankOfAmerica_2026-01-15_Sales.vtt
.env (especially OPENAI_API_KEY and VTT_DIRECTORY).http://localhost:8000 (see CHROMADB_SETUP.md).dist/index.js.VTT_DIRECTORY points to the correct directory and files have .vtt extension.npm run reindex -- path/to/file.vtt.minScore (e.g. 0.0) to see more results; the tool default is 0.0..env files to version control.If you're upgrading from the previous Ollama-based version, see docs/OPENAI_MIGRATION.md for complete migration instructions.
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.