Files and Speech

Integrates with
File Finder, Whisper STT

MCP Серверы

Этот репозиторий содержит два MCP (Model Context Protocol) сервера:

  1. File Finder MCP - для поиска файлов
  2. Whisper STT MCP - для преобразования речи в текст

File Finder MCP Server

Это сервер Model Context Protocol (MCP), который предоставляет функциональность поиска файлов. Он позволяет искать файлы, содержащие указанный текстовый фрагмент в их именах.

Предварительные требования

  • Node.js (версия 14 или выше)
  • npm (версия 6 или выше)
  • Python 3.6 или выше (для HTTP сервера)

Установка

  1. Клонируйте или скачайте этот репозиторий
  2. Перейдите в директорию проекта
  3. Установите зависимости:
    npm install
    
  4. Соберите проект:
    npm run build
    

Запуск сервера

Проект предоставляет несколько вариантов запуска MCP сервера:

Вариант 1: Прямой запуск MCP сервера

Вы можете запустить MCP сервер напрямую с помощью Node.js:

npm start

или

node build/index.js

Это запустит сервер, и он будет ожидать JSON-RPC запросы на stdin/stdout.

Вариант 2: Запуск HTTP сервера и MCP прокси

Этот вариант использует Python HTTP сервер и MCP прокси, который перенаправляет запросы к HTTP серверу:

  1. Сначала запустите HTTP сервер:

    npm run start:python
    

    или

    python main.py
    
  2. Затем в другом терминале запустите MCP прокси:

    npm run start:http
    

    или

    node build/index-http.js
    
Вариант 3: Интеграция с VS Code (расширение Cline)

Для интеграции сервера с VS Code и расширением Cline:

  1. Найдите файл настроек MCP:

    • Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. Добавьте следующую конфигурацию в объект mcpServers в файле настроек:

"file-finder-mcp": {
  "command": "node",
  "args": ["<ПОЛНЫЙ_ПУТЬ_К_ПРОЕКТУ>/build/index.js"],
  "disabled": false,
  "autoApprove": []
}

Для использования HTTP прокси:

"file-finder-mcp-http": {
  "command": "node",
  "args": ["<ПОЛНЫЙ_ПУТЬ_К_ПРОЕКТУ>/build/index-http.js"],
  "disabled": false,
  "autoApprove": []
}

Замените <ПОЛНЫЙ_ПУТЬ_К_ПРОЕКТУ> на фактический путь к директории вашего проекта.

  1. Перезапустите VS Code для загрузки обновленных настроек.

Доступные инструменты

MCP сервер предоставляет один инструмент:

  • search_files: Ищет файлы, содержащие указанный фрагмент в их именах
    • Параметры:
      • fragment (строка, обязательный): Текстовый фрагмент для поиска в именах файлов

Пример использования

<use_mcp_tool>
<server_name>file-finder-mcp</server_name>
<tool_name>search_files</tool_name>
<arguments>
{
  "fragment": ".py"
}
</arguments>
</use_mcp_tool>

Этот пример ищет все файлы, содержащие ".py" в их именах.

HTTP сервер (main.py)

В корневой директории проекта находится файл main.py, который реализует HTTP сервер для поиска файлов. Этот сервер предоставляет REST API для поиска файлов, содержащих указанный фрагмент в их именах.

Запуск HTTP сервера
  1. Перейдите в корневую директорию проекта
  2. Запустите сервер с помощью Python:
    python main.py
    
  3. Сервер будет запущен на http://localhost:8080
Использование API

Для поиска файлов отправьте GET запрос на /search с параметром запроса q:

http://localhost:8080/search?q=.json

Этот запрос вернет JSON-массив с информацией о всех файлах, содержащих ".json" в их именах. Каждый элемент массива содержит следующие поля:

  • name: имя файла
  • path: абсолютный путь к файлу
  • size: размер файла в байтах
  • created: дата и время создания файла

Пример ответа:

[
    {
        "name": "package.json",
        "path": "/absolute/path/to/package.json",
        "size": 1234,
        "created": "Wed Feb 26 17:00:00 2025"
    }
]

Whisper STT MCP Server

Это сервер Model Context Protocol (MCP), который предоставляет функциональность преобразования речи в текст с использованием библиотеки faster-whisper. Он позволяет транскрибировать аудиоданные в текст с автоматическим определением языка.

Предварительные требования

  • Node.js (версия 14 или выше)
  • npm (версия 6 или выше)
  • Python 3.6 или выше
  • faster-whisper (установите с помощью pip install faster-whisper)

Установка

  1. Клонируйте или скачайте этот репозиторий
  2. Перейдите в директорию проекта
  3. Установите зависимости:
    npm install
    pip install faster-whisper
    
  4. Соберите проект:
    npm run build
    

Запуск сервера

Проект предоставляет несколько вариантов запуска Whisper MCP сервера:

Вариант 1: Прямой запуск MCP сервера

Вы можете запустить MCP сервер напрямую с помощью Node.js:

npm run start:whisper

или

node build/whisper-index.js

Это запустит сервер, и он будет ожидать JSON-RPC запросы на stdin/stdout.

Вариант 2: Запуск HTTP сервера и MCP прокси

Этот вариант использует Python HTTP сервер и MCP прокси, который перенаправляет запросы к HTTP серверу:

  1. Сначала запустите HTTP сервер:

    npm run start:whisper:python
    

    или

    python whisper_server.py
    
  2. Затем в другом терминале запустите MCP прокси:

    npm run start:whisper:http
    

    или

    node build/whisper-index-http.js
    
Вариант 3: Интеграция с VS Code (расширение Cline)

Для интеграции сервера с VS Code и расширением Cline:

  1. Найдите файл настроек MCP:

    • Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings\cline_mcp_settings.json
    • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. Добавьте следующую конфигурацию в объект mcpServers в файле настроек:

"whisper-stt-mcp": {
  "command": "node",
  "args": ["<ПОЛНЫЙ_ПУТЬ_К_ПРОЕКТУ>/build/whisper-index.js"],
  "disabled": false,
  "autoApprove": []
}

Для использования HTTP прокси:

"whisper-stt-mcp-http": {
  "command": "node",
  "args": ["<ПОЛНЫЙ_ПУТЬ_К_ПРОЕКТУ>/build/whisper-index-http.js"],
  "disabled": false,
  "autoApprove": []
}

Замените <ПОЛНЫЙ_ПУТЬ_К_ПРОЕКТУ> на фактический путь к директории вашего проекта.

  1. Перезапустите VS Code для загрузки обновленных настроек.

Доступные инструменты

MCP сервер предоставляет один инструмент:

  • transcribe_audio: Преобразует аудиоданные в текст с использованием faster-whisper
    • Параметры:
      • audio_base64 (строка, обязательный): Аудиоданные в формате base64
      • language (строка, необязательный): Код языка (например, "en", "ru"). Если не указан, язык будет определен автоматически.

Пример использования

<use_mcp_tool>
<server_name>whisper-stt-mcp</server_name>
<tool_name>transcribe_audio</tool_name>
<arguments>
{
  "audio_base64": "BASE64_ENCODED_AUDIO_DATA",
  "language": "ru"
}
</arguments>
</use_mcp_tool>

Этот пример преобразует аудиоданные в текст, предполагая, что аудио на русском языке.

HTTP сервер (whisper_server.py)

В корневой директории проекта находится файл whisper_server.py, который реализует HTTP сервер для преобразования речи в текст. Этот сервер предоставляет REST API для транскрибирования аудиоданных в текст.

Запуск HTTP сервера
  1. Перейдите в корневую директорию проекта
  2. Запустите сервер с помощью Python:
    python whisper_server.py
    
  3. Сервер будет запущен на http://localhost:8081
Использование API

Для транскрибирования аудио отправьте POST запрос на /transcribe с JSON-телом, содержащим:

  • audio: строка в формате base64, содержащая аудиоданные
  • language (необязательно): код языка (например, "en", "ru")

Пример запроса:

{
  "audio": "BASE64_ENCODED_AUDIO_DATA",
  "language": "ru"
}

Ответ будет содержать:

  • text: полный транскрибированный текст
  • segments: массив сегментов с временными метками
  • language: определенный язык
  • language_probability: вероятность определения языка

Пример ответа:

{
  "text": "Это пример транскрибированного текста.",
  "segments": [
    {
      "start": 0.0,
      "end": 2.5,
      "text": "Это пример"
    },
    {
      "start": 2.5,
      "end": 4.0,
      "text": "транскрибированного текста."
    }
  ],
  "language": "ru",
  "language_probability": 0.98
}

Устранение неполадок

  • Если вы получаете ошибку "No connection found for server", убедитесь, что вы перезапустили VS Code после обновления настроек MCP.
  • Если сервер не отвечает, проверьте, что путь в настройках MCP правильный и указывает на собранный JavaScript файл.
  • Убедитесь, что сервер правильно собран, выполнив npm run build перед попыткой его использования.
  • Для использования HTTP прокси убедитесь, что соответствующий HTTP сервер запущен (на порту 8080 для file-finder или 8081 для whisper-stt).
  • Если возникают проблемы с faster-whisper, убедитесь, что библиотека правильно установлена и у вас есть необходимые зависимости для работы с GPU (если вы используете GPU).

Структура проекта

Ниже приведен список основных файлов проекта и их назначение:

Корневая директория

  • src/index.ts - Исходный код TypeScript MCP сервера для поиска файлов (прямая реализация)
  • src/index-http.ts - Исходный код TypeScript MCP прокси для HTTP сервера поиска файлов
  • src/whisper-index.ts - Исходный код TypeScript MCP сервера для преобразования речи в текст (прямая реализация)
  • src/whisper-index-http.ts - Исходный код TypeScript MCP прокси для HTTP сервера преобразования речи в текст
  • build/index.js - Скомпилированный JavaScript код MCP сервера для поиска файлов
  • build/index-http.js - Скомпилированный JavaScript код MCP прокси для поиска файлов
  • build/whisper-index.js - Скомпилированный JavaScript код MCP сервера для преобразования речи в текст
  • build/whisper-index-http.js - Скомпилированный JavaScript код MCP прокси для преобразования речи в текст
  • tsconfig.json - Конфигурация TypeScript
  • package.json - Описание пакета и зависимости
  • main.py - HTTP сервер на Python для поиска файлов
  • whisper_server.py - HTTP сервер на Python для преобразования речи в текст
  • README.md - Документация проекта (этот файл)