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.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server for obtaining the README content, metadata and search function of CPAN packages.Last updated31Apache 2.0
- Alicense-qualityDmaintenanceMCP server for comprehensive code analysis, navigation, and quality assessment across 25+ programming languages.Last updated88MIT
- Alicense-qualityDmaintenanceCode linting and style checking tools for AI agents, exposed as an MCP server. Supports style checks, naming conventions, complexity analysis, dead code detection, and import analysis.Last updated49MIT
- Alicense-qualityFmaintenanceA code review tool server based on Model Context Protocol (MCP) providing multi-dimensional code review and scoring.Last updated9MIT
Related MCP Connectors
MCP server for ScanMalware.com URL scanning, malware detection, and analysis.
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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