Skip to main content
Glama
abrarsavan123

Filesystem MCP Server

Проект интеграции MCP — агент сопоставления резюме

Веха 2: Заменяет прямые импорты инструментов файловой системы на полностью соответствующий спецификации сервер Model Context Protocol (MCP), используемый агентом LangGraph.


Архитектура

User
 │
 ▼
matching_agent.py  (LangGraph state machine)
 │
 │  JSON-RPC 2.0 over stdio
 ▼
mcp_client.py  (subprocess manager + RPC transport)
 │
 ▼
filesystem_mcp_server.py  (MCP server, 6 tools)
 │
 ▼
resumes/  (file system)

Ключевые файлы

Файл

Роль

filesystem_mcp_server.py

JSON-RPC 2.0 MCP сервер, предоставляющий 6 инструментов файловой системы

mcp_client.py

Многоразовый MCP-клиент с stdio-транспортом и управлением подпроцессами

matching_agent.py

Агент LangGraph — обнаруживает и вызывает инструменты через MCP

tests/test_mcp_server.py

Модульные тесты для всех методов JSON-RPC (без подпроцессов)

tests/test_agent.py

Интеграционные тесты с реальным подпроцессом и мостом LangChain

diagrams/workflow_diagram.md

6 диаграмм Mermaid системы


Related MCP server: Filesystem MCP Server

Настройка

1. Установка зависимостей

pip install -r requirements.txt

2. Настройка API-ключа

cp .env.example .env
# Edit .env and set OPENROUTER_API_KEY

Получите бесплатный ключ на openrouter.ai/keys.


Запуск

Запуск агента сопоставления резюме

python matching_agent.py

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

  • "List all resumes in the resumes folder"

  • "Find candidates with Python skills and rank them by experience"

  • "Batch read all resumes and create a skills comparison report"

  • "Watch the resumes folder for new candidates"

  • "Read Alice Johnson's resume and write a one-paragraph summary"

Тестирование MCP-сервера отдельно

# Send a raw JSON-RPC request
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1"}}}' | python filesystem_mcp_server.py

# Test the MCP client
python mcp_client.py

Запуск тестов

# Unit tests (fast, no subprocess)
python -m pytest tests/test_mcp_server.py -v

# Integration tests (spawns subprocess)
python -m pytest tests/test_agent.py -v -s

# All tests
python -m pytest tests/ -v

MCP-сервер — доступные инструменты

Инструмент

Описание

read_file(filepath)

Читает PDF, DOCX или TXT файл; возвращает текст и метаданные

list_files(directory, extension?)

Список файлов в каталоге с необязательным фильтром

write_file(filepath, content)

Записывает текст в файл (создает каталоги при необходимости)

search_in_file(filepath, keyword)

Поиск по ключевому слову без учета регистра с контекстом

watch_directory(directory, reset?)

НОВОЕ — мониторинг изменений (снимок-дифф) для новых/измененных/удаленных файлов

batch_process(filepaths, operation, keyword?)

НОВОЕ — параллельная обработка нескольких файлов через ThreadPoolExecutor

MCP-сервер — методы JSON-RPC

Метод

Описание

initialize

Рукопожатие MCP; возвращает возможности сервера

initialized

Уведомление подтверждения клиента (без ответа)

tools/list

Обнаружение ресурсов — перечисляет все 6 инструментов со схемами

tools/call

Выполняет именованный инструмент с аргументами

resources/list

Список ресурсов файловой системы (каталог резюме)

resources/read

Читает файловый ресурс по URI file://

ping

Проверка активности


Коды ошибок JSON-RPC 2.0

Код

Имя

Когда

-32700

Parse Error

Недопустимый JSON

-32600

Invalid Request

Не является допустимым сообщением JSON-RPC 2.0

-32601

Method Not Found

Неизвестный метод или имя инструмента

-32602

Invalid Params

Отсутствуют или неверные типы аргументов

-32000

Tool Error

Сбой выполнения инструмента


Диаграммы рабочих процессов

См. diagrams/workflow_diagram.md для 6 диаграмм Mermaid:

  1. Обзор архитектуры системы

  2. Конечный автомат LangGraph

  3. Поток сообщений JSON-RPC 2.0 (полная диаграмма последовательности)

  4. Поток опроса watch_directory

  5. Параллельное выполнение batch_process

  6. Поток обработки ошибок


Зависимость от вехи 1

Этот проект является рефакторингом LLM-Powered-File-System-Assistant (веха 1). Четыре исходных инструмента (read_file, list_files, write_file, search_in_file) перенесены в MCP-сервер. Прямой import fs_tools в llm_file_assistant.py заменен на уровень протокола MCP.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables file system operations (read, write, list, search, watch, batch process) via MCP over JSON-RPC 2.0, used by a resume matching agent.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with a sandboxed filesystem via MCP tools for reading, writing, searching, and monitoring files, including batch processing and resource discovery for resume management.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides file system tools for resume matching agents, enabling reading, writing, searching, listing, watching, and batch processing of files via the Model Context Protocol.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides MCP tools for filesystem operations on resume directories, including watch, batch extraction, and saving match results.
    1
    -