Модельный контекстный протокол (MCP) сервер, который предоставляет инструменты для работы с JSON-файлами с использованием jsonPath.
Читает 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"
}Перечисляет все 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
-
Клонирование или копирование проекта
cd C:\_Work\ML\MCPJSON\mcp-json
-
Создание директории для данных
mkdir data mkdir logs
-
Запуск через Docker Compose
docker-compose up -d
-
Проверка работы
docker-compose logs -f
docker-compose downdocker-compose restartmcp-json/
├── main.py # Основной файл MCP-сервера
├── requirements.txt # Зависимости Python
├── Dockerfile # Docker-образ
├── docker-compose.yml # Конфигурация Docker Compose
├── .dockerignore # Исключения для Docker
├── README.md # Документация
├── data/ # Директория для JSON-файлов (создается вручную)
└── logs/ # Директория для логов (создается автоматически)
Сервер поддерживает стандартный синтаксис 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")→100read_json_file("data/config.json")→ все данные
- Доступ к файлам ограничен директорией
data(монтируется как read-only) - Логи записываются в директорию
logs - Используется минимальный набор зависимостей
- Python 3.11
- FastMCP - библиотека для создания MCP-серверов
- Docker - контейнеризация
- Docker Compose - оркестрация контейнеров
MIT License