Token导航 LogoToken导航TokenDH.com
MCP Call Recording logo
搜索检索未说明官方级别未说明来源级核验

MCP Call Recording

MCP Server

MCP通话记录服务器是一款利用AI生成结构化摘要的语义搜索工具,支持通过自然语言查询VTT格式的通话记录文本,适用于客户通话分析和商业决策支持。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
搜索商业智能TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

diptigarg23

提供方

diptigarg23

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP呼叫记录服务器

MCP(模型上下文协议)服务器,使用 人工智能驱动的结构化摘要此服务器使业务利益相关者能够通过Claude Desktop和Microsoft Copilot 365 Studio使用自然语言查询客户端呼叫记录。

现在由OpenAI GPT-4-turbo提供支持 以获得一流的摘要质量和结构化提取。

架构图(使用Gemini Nano Banana生成)

数据流

在我们确定了可以在嵌入级别进行的改进后,这是数据流的改进版本。

特性

  • 自动索引:监视VTT转录文件的目录,并在后台自动为其建立索引
  • AI驱动的摘要:使用OpenAI GPT-4-turbo生成具有呼叫类型、参与者、公司/企业、关键主题、行动项目和决策的完美结构化摘要
  • 高级嵌入:OpenAI text-embedding-3-small(1536维),提供卓越的语义搜索质量
  • 自然语言查询问“总结美国银行销售电话”或“Capital One电话中的行动项目是什么?”
  • 100%一致的格式:GPT-4-turbo即使对于长转录本(860+行,286+段)也能保持完美的结构
  • 所有参与者已捕获:绝不会错过会议参与者-所有发言者都被正确识别
  • 无幻觉:正确显示缺失信息的“未知”,而不是捏造数据
  • 单工具界面:简单 query_transcripts 处理所有查询的工具(纯语义搜索)

服务器使用:

  • OpenAI GPT-4涡轮:生成结构化摘要的一流法学硕士(每份成绩单约0.01-0.05美元)
  • OpenAI嵌入:text-embedding-3-small,用于1536维语义搜索(每个转录本约0.0001美元)
  • 色度:矢量数据库;Node.js客户端连接到 ChromaDB服务器 奔跑在 http://localhost:8000。持久数据存储在启动Chroma服务器时配置的目录中(请参阅 CHROMADB_SETUP.md).
  • 文件监视器(chokidar):自动检测新的、更改的或删除的VTT文件并为其建立索引
  • MCP协议:AI辅助集成的标准协议(stdio传输)

先决条件

  • Node.js 18+
  • OpenAI API密钥(在https://platform.openai.com/api-keys)
  • 5美元+OpenAI学分(涵盖约200份成绩单)
  • 包含VTT转录文件的目录
  • ChromaDB服务器 运行于 http://localhost:8000 (参见 CHROMADB_SETUP.md)

安装

  1. 克隆或下载此存储库。
  1. 安装依赖项:
   npm install
  1. 构建TypeScript代码:
   npm run build
  1. 创建一个 .env 项目根目录中的文件:
   OPENAI_API_KEY=sk-proj-your-key-here
   VTT_DIRECTORY=/path/to/vtt/transcript/files
   CHROMA_DB_PATH=./chroma_db

ENV_SETUP.md 有关详细的环境设置说明。

  1. 在运行MCP服务器之前,启动ChromaDB服务器(在单独的终端中)——请参阅 CHROMADB_SETUP.md.

配置

环境变量

MCP服务器从环境变量(例如从 .env 项目根目录中的文件):

变量必填描述
OPENAI_API_KEYGPT-4-turbo摘要和嵌入的OpenAI API密钥
VTT_DIRECTORY包含VTT转录文件的目录路径
CHROMA_DB_PATHNoChroma服务器数据的路径(默认值: ./chroma_db)

成本:平均每份成绩单约0.02美元(因长度而异)。您的5美元信用额度约为200份成绩单。

Claude桌面设置

  1. 编辑您的Claude Desktop配置文件:

- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 视窗: %APPDATA%\Claude\claude_desktop_config.json - Linux: ~/.config/claude/claude_desktop_config.json

  1. 添加MCP服务器(使用 绝对的 通往 dist/index.js):
   {
     "mcpServers": {
       "call-recording": {
         "command": "node",
         "args": ["/absolute/path/to/MCP_Call_Recording/dist/index.js"]
       }
     }
   }

示例配置位于 config/claude-desktop.json.

  1. 重新启动克劳德桌面。
  1. 服务器将加载 .env,索引中的现有VTT文件 VTT_DIRECTORY,并注意新的、更改的或删除的文件。

Microsoft Copilot 365 Studio安装程序

服务器当前正在使用 标准 运输。对于Copilot Studio,您需要将其作为HTTP MCP服务器运行(例如,在中添加HTTP传输 src/index.ts 或在适配器后面运行)。

作为参考, config/copilot-studio.json 说明了可能的结构(名称、描述、传输类型、环境变量)。集 VTT_DIRECTORY, CHROMA_DB_PATH,以及 OPENAI_API_KEY 在您的部署环境中。

用法

配置后,您可以向Claude Desktop(或设置HTTP后的Copilot Studio)询问有关通话记录的问题,例如:

  • “上次与美国银行通话时讨论的主要风险是什么?”
  • “确定上次与美国银行销售部客户通话中确定的最大风险”
  • “本月与Acme Corp的电话会议做出了哪些决定?”
  • “总结1月15日与TechCorp通话的要点”

服务器将:

  1. 为您的问题生成嵌入
  2. 跑a 语义搜索 在矢量数据库中(无元数据过滤)
  3. 返回包含相关片段、元数据(客户、日期、发言人)和相关性得分的格式化答案

工具: query_transcripts

  • question (必填):关于成绩单的自然语言问题。
  • limit (可选,默认值:10):返回的最大结果数。
  • minScore (可选,默认值:0.0):最小相关性得分(0-1)。以下部分不包括在内。

运作原理

自动索引

启动服务器时:

  1. 扫描 VTT_DIRECTORY 对于现有的 .vtt 文件
  2. 将每个文件解析为带有时间戳的片段
  3. 从文件名和VTT内容中提取元数据(客户端名称、日期、参与者、调用类型)
  4. 使用OpenAI GPT-4-turbo生成AI驱动的结构化摘要
  5. 使用OpenAI text-embedding-3-small(1536个维度)创建整个摘要的语义嵌入
  6. 在ChromaDB中存储摘要和嵌入以进行语义搜索
  7. 当文件监视器检测到新文件或更改的文件时,使用相同的管道

文件监视

服务器使用chokidar监视VTT目录:

  • 新文件:自动索引
  • 更改文件:重新索引(首先删除该文件的现有段)
  • 已删除的文件:从数据库中删除该文件的段

查询处理

对于每个查询:

  1. 该问题使用OpenAI text-embedding-3-small嵌入(与索引使用的模型相同)
  2. Chroma通过嵌入相似度(余弦距离→ 转换为0-1分)
  3. 结果按以下方式过滤 minScore,按分数排序,并使用摘要文本和元数据进行格式化

重新索引

如果需要刷新一个文件或整个目录的索引:

  • 单个文件 (强制重新索引一个VTT文件):
  npm run reindex -- path/to/file.vtt
  # or: tsx reindex-file.ts path/to/file.vtt
  • 所有文件VTT_DIRECTORY (强制重新索引所有内容):
  npm run reindex-all
  # or: tsx reindex-all.ts

这两个脚本都使用您的 .env (例如。 VTT_DIRECTORY, CHROMA_DB_PATH, OPENAI_API_KEY).Chroma服务器必须正在运行。

备注:重新索引需要OpenAI API信用额度(每份成绩单约0.02美元)。

文件结构

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.md

发展

运行(生产构建)

npm run build
npm start

开发模式(tsx,无构建步骤)

npm run dev

手表(根据变化重建)

npm run watch

重新索引

npm run reindex -- vtt_files/SomeFile.vtt
npm run reindex-all

VTT文件格式

服务器需要WebVTT文件(.vtt 扩展)。例子:

WEBVTT

00:00:00.000 --> 00:00:05.000
Hello, this is a transcript segment.

00:00:05.000 --> 00:00:10.000
This segment has a speaker identifier.

元数据抽取

元数据来源于:

  1. 文件名模式: {ClientName}_{Date}_{Type}.vtt\

例子: BankOfAmerica_2026-01-15_Sales.vtt

  1. VTT标头:注释注释或其他标头元数据
  2. 文件修改时间:在文件名或内容中找不到日期时回退

故障排除

服务器无法启动

  • 确保在中设置了所有必需的环境变量 .env (尤其是 OPENAI_API_KEYVTT_DIRECTORY).
  • 验证您的OpenAI API密钥是否有效并具有信用。
  • 确保 ChromaDB服务器 正在运行 http://localhost:8000 (参见 CHROMADB_SETUP.md).
  • 在Claude Desktop配置中,使用 绝对的 通往 dist/index.js.
  • 检查stderr/logs是否有错误。

文件未被索引

  • 确认 VTT_DIRECTORY 指向正确的目录和文件 .vtt 扩展。
  • 检查文件权限和stderr是否存在索引错误。
  • 对于单个文件,请尝试: npm run reindex -- path/to/file.vtt.

搜索结果不佳或为空

  • 确保成绩单是有效的VTT并且已被索引(查看启动日志或使用重新索引脚本)。
  • 降低 minScore (例如0.0)以查看更多结果;工具默认值为0.0。
  • 检查OpenAI API的使用情况以确认正在生成嵌入。

OpenAI API问题

  • 费率限制:OpenAI有速率限制。如果为多个文件编制索引,则按顺序处理它们。
  • 成本监控:请在以下网址查看您的使用情况https://platform.openai.com/usage
  • 预算警报:将限制设置为https://platform.openai.com/settings/organization/billing/limits

安全注意事项

  • API密钥安全:确保您的OpenAI API密钥的安全。永不承诺 .env 文件到版本控制。
  • 成本控制:在您的OpenAI帐户中设置使用限制,以防止意外收费。
  • 数据隐私:成绩单被发送到OpenAI进行处理。确保符合您的数据政策。
  • 验证并约束文件路径以避免目录遍历。
  • 根据需要对用户查询输入进行消毒或限制。
  • 考虑对生产或HTTP部署进行速率限制和访问控制。

从Ollama移民

如果要从以前的基于Ollama的版本升级,请参阅 docs/OPENAI_MIGRATION.md 获取完整的迁移说明。

许可证

麻省理工学院

目录标签

目录标签

搜索商业智能TypeScriptClaude语义搜索本地部署AI摘要通话分析自然语言处理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP