Skip to main content
Glama
deermakov

JSON Path MCP Server

by deermakov

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"
}

Related MCP server: jq-mcp

Логирование

Все операции сервера логируются в файл 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

Related MCP Connectors

Related MCP Servers