Skip to content

deermakov/mcp-jsonpath-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCP-сервер для работы с JSON-файлами

Модельный контекстный протокол (MCP) сервер, который предоставляет инструменты для работы с JSON-файлами с использованием jsonPath.

Функциональность

Инструменты (Tools)

1. read_json_file

Читает JSON-файл и возвращает данные по указанному jsonPath.

Параметры:

  • file_path (str): Путь к JSON-файлу
  • json_path (str, optional): Опциональный jsonPath для получения конкретного значения
    • Примеры: "user.name", "items[0].price", "data.users[1].email"

Возвращает:

{
  "success": true,
  "data": {...},
  "file_path": "/path/to/file.json",
  "path_used": "user.name"
}

2. list_json_files

Перечисляет все JSON-файлы в указанной директории.

Параметры:

  • directory (str): Путь к директории для поиска JSON-файлов

Возвращает:

{
  "success": true,
  "files": ["/path/to/file1.json", "/path/to/file2.json"],
  "count": 2,
  "directory": "/path/to/dir"
}

Логирование

Все операции сервера логируются в файл mcp_json_server.log и выводятся в консоль.

Формат логов:

2024-01-01 12:00:00 - __main__ - INFO - Запрос на чтение JSON-файла: /app/data/config.json, jsonPath: user.name
2024-01-01 12:00:00 - __main__ - INFO - Успешно загружен JSON-файл: /app/data/config.json, размер: 1234 байт
2024-01-01 12:00:00 - __main__ - INFO - Успешно получено значение по jsonPath: user.name

Установка и запуск

Требования

  • Docker
  • Docker Compose

Шаги установки

  1. Клонирование или копирование проекта

    cd C:\_Work\ML\MCPJSON\mcp-json
  2. Создание директории для данных

    mkdir data
    mkdir logs
  3. Запуск через Docker Compose

    docker-compose up -d
  4. Проверка работы

    docker-compose logs -f

Остановка

docker-compose down

Перезапуск

docker-compose restart

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

mcp-json/
├── main.py              # Основной файл MCP-сервера
├── requirements.txt     # Зависимости Python
├── Dockerfile           # Docker-образ
├── docker-compose.yml   # Конфигурация Docker Compose
├── .dockerignore        # Исключения для Docker
├── README.md            # Документация
├── data/                # Директория для JSON-файлов (создается вручную)
└── logs/                # Директория для логов (создается автоматически)

Использование jsonPath

Сервер поддерживает стандартный синтаксис jsonPath:

  • field - доступ к полю объекта
  • field.subfield - доступ к вложенному полю
  • array[0] - доступ к элементу массива по индексу
  • array[0].field - доступ к полю внутри элемента массива

Примеры

Если у вас есть JSON-файл data/config.json:

{
  "user": {
    "name": "John",
    "email": "john@example.com"
  },
  "items": [
    {"id": 1, "price": 100},
    {"id": 2, "price": 200}
  ]
}

Использование:

  • read_json_file("data/config.json", "user.name")"John"
  • read_json_file("data/config.json", "items[0].price")100
  • read_json_file("data/config.json") → все данные

Безопасность

  • Доступ к файлам ограничен директорией data (монтируется как read-only)
  • Логи записываются в директорию logs
  • Используется минимальный набор зависимостей

Технологии

  • Python 3.11
  • FastMCP - библиотека для создания MCP-серверов
  • Docker - контейнеризация
  • Docker Compose - оркестрация контейнеров

Лицензия

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors