simple_mcp
Analyzes Perl code using Perl::Critic, providing structured reports on code quality and potential issues.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@simple_mcpanalyze this Perl code: use strict; my $x = 1;"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP DROSPR Server
MCP-сервер для анализа Perl кода с помощью Perl::Critic.
Проект следует AI Engineering Standard (AES) v1.2, уровень AES-L2. См.
PROJECT_CONSTITUTION.mdиCLAUDE.md.
Инструменты
perlcritic_analyze
Анализирует Perl код и возвращает структурированный отчёт.
Параметры:
Параметр | Тип | Описание |
| string | ОБЯЗАТЕЛЬНО - Perl код для анализа |
| string | Имя файла (для отчёта) |
| int | Уровень строгости 1-5 (по умолчанию 1) |
Пример использования:
{
"method": "tools/call",
"params": {
"name": "perlcritic_analyze",
"arguments": {
"code": "use strict;\nopen FILE, 'test.txt';",
"severity": 1
}
}
}lookup_symbol
Найти где определена функция или метод в Perl-проекте.
{"method": "tools/call", "params": {"name": "lookup_symbol", "arguments": {"name": "process_billing"}}}Доступен только если загружен PPI-индекс (POST /index/upload).
get_file_structure
Карта файла: все функции с номерами строк, импорты, глобальные переменные.
{"method": "tools/call", "params": {"name": "get_file_structure", "arguments": {"filepath": "Finance/Billing.pm"}}}get_callers
Найти все места где реально вызывается функция (только фактические вызовы, не комментарии).
{"method": "tools/call", "params": {"name": "get_callers", "arguments": {"name": "process_billing"}}}index_status
Информация об индексе: дата обновления, количество файлов.
{"method": "tools/call", "params": {"name": "index_status", "arguments": {}}}check_before_push
Проверяет список Perl-файлов перед git push. Severity 4-5 блокирует пуш, severity 3 — предупреждение, 1-2 — игнорируется.
{
"method": "tools/call",
"params": {
"name": "check_before_push",
"arguments": {
"files": [{"filename": "Billing.pm", "code": "open(FILE, $path);"}],
"block_severity": 4
}
}
}Используется pre-push git хуком. Возвращает allow_push: true/false.
Related MCP server: code-graph-mcp
Pre-push git хук — "Husky для Perl"
Автоматически проверяет Perl-файлы перед отправкой в Bitbucket.
Подключение (одна команда)
./setup.shЧто происходит при git push
git push
→ .githooks/pre-push срабатывает локально
→ читает изменённые .pl/.pm файлы
→ отправляет на MCP-сервер
→ severity 4-5 → ❌ пуш заблокирован
→ severity 3 → ⚠ предупреждение, пуш идёт
→ чисто → ✅ пуш проходит молчаНастройка адреса сервера
Поменяй MCP_URL в .githooks/pre-push:
MCP_URL="http://192.168.1.106:8000" # адрес виртуалки банкаТребования на машине разработчика
bash,curl,python3— стандарт, ничего дополнительно ставить не нужноPerl::Critic не нужен — работает в Docker на сервере
PPI-индекс — загрузка
Индекс собирается через TeamCity и загружается на сервер:
# На TeamCity-агенте (или вручную для теста):
perl tools/build_index.pl /path/to/perl/project | gzip > index.json.gz
curl -X POST http://<host>:8000/index/upload \
-H "Authorization: Bearer $MCP_INDEX_TOKEN" \
-H "Content-Encoding: gzip" \
--data-binary @index.json.gzТребует переменную окружения MCP_INDEX_TOKEN на сервере (см. раздел Запуск).
⚠️ Важно: Почему только code параметр
MCP всегда работает удалённо! Сервер запущен в Docker на другом компьютере.
┌─────────────────┐ ┌─────────────────┐
│ Компьютер │ │ MCP Сервер │
│ разработчика │ HTTP │ (Docker) │
│ │ ──────> │ │
│ Файл: │ │ Нет доступа │
│ C:\project\ │ │ к файловой │
│ script.pl │ │ системе! │
└─────────────────┘ └─────────────────┘Проблема:
LLM получает путь
C:\project\script.plLLM "эмулирует" чтение файла
Запускает MCP с
target: "C:\project\script.pl"MCP не видит этот файл! Он на другом компьютере.
Решение: LLM должен:
Прочитать файл реально
Отправить содержимое через параметр
code
Правильный флоу для LLM:
Пользователь: "Проверь C:\project\script.pl"
↓
LLM: Читаю файл C:\project\script.pl...
↓
LLM: Отправляю в MCP:
{
"code": "use strict;\nuse warnings;\n...",
"filename": "script.pl"
}Настройка LLM (Kiloterm/Cline)
Добавь в system prompt:
ПРОВЕРКА PERL КОДА:
1. Всегда читай файл ПОЛНОСТЬЮ перед анализом
2. Используй ТОЛЬКО параметр 'code' для perlcritic_analyze
3. НИКОГДА не используй параметр 'target' - он не работает для удалённого MCPЗапуск
Docker (рекомендуется)
docker pull lenchik8/simple_mcp:latest
docker run -d --name mcp-drospr \
-p 8000:8000 \
-e MCP_INDEX_TOKEN=your_secret_token \
-v mcp_data:/app/data \
lenchik8/simple_mcp:latest-v mcp_data:/app/data — сохраняет index.db между перезапусками контейнера.
Локальная сборка
docker build -t mcp-drospr .
docker run -p 8000:8000 -e MCP_INDEX_TOKEN=your_secret_token mcp-drosprИз исходников
pip install -e .
python server.pyПеременные окружения
Переменная | Обязательна | Описание |
| Для | Bearer-токен для загрузки PPI-индекса |
Структура проекта
mcp-drospr/
├── server.py # FastAPI, SSE, JSON-RPC, роутинг тулов
├── tools/
│ ├── perlcritic.py # Perl::Critic анализ
│ ├── index_store.py # SQLite хранилище PPI-индекса
│ └── build_index.pl # Perl-скрипт сборки индекса (запускается на TeamCity)
├── data/
│ └── index.db # SQLite индекс (создаётся после первой загрузки)
├── docs/
│ └── teamcity_setup.md # Инструкция для TeamCity-администратора
├── Dockerfile
└── pyproject.tomlПодключение к MCP клиенту
{
"mcpServers": {
"DROSPR_JARVIS": {
"url": "http://<IP>:8000",
"transport": "sse"
}
}
}Docker Hub
https://hub.docker.com/r/lenchik8/simple_mcp
GitHub
https://github.com/LENA-EE/simple_mcp
Примеры промптов для анализа Perl кода
Простой анализ файла
Проверь этот Perl файл на ошибки:
/path/to/script.plАнализ с мягким уровнем (только критичные ошибки)
Проверь код, но покажи только серьёзные проблемы (severity 4-5)Анализ кода (отправка кода напрямую)
Проверь этот Perl код:
use strict;
...Анализ проекта
Проанализируй каждый .pl файл в папке /src/Ограничения удалённого MCP
Анализ директорий возможен только если они доступны внутри контейнера
Для полного аудита проекта - отправляй код файлов по одному
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/LENA-EE/simple_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server