Pharus MCP
Pharus MCP
Python-сервер MCP (Model Context Protocol) для интегрированного обнаружения и запроса следственных услуг в экосистеме Pharus. Он предоставляет специализированные инструменты для анализа данных RIF, SIMBA, Telefônica, Telemática, KYT и графов через архитектуру разделенных сервисов.
Характеристики
Обнаружение сервисов: Семантический каталог следственных услуг с метаданными и примерами использования
Протокол MCP: Полная реализация Model Context Protocol через HTTP Streamable
Множественные источники данных: Интеграция с RIF, SIMBA, Telefônica, Telemática, KYT и графами
Финансовый анализ: Специализированные аналитические инструменты для расследования транзакций и движений средств
Алгоритмы графов: Семантический каталог с автоматическими предложениями алгоритмов на основе метаданных графов
Автоматическая документация: Swagger UI и OpenAPI с доступными HTTP-маршрутами
Гибкая конфигурация: Поддержка переменных окружения и конфигураций для каждого сервиса
Предварительные требования
Python 3.12+
pip (менеджер пакетов Python)
PowerShell 5.1+ (для Windows) или bash (для Linux/macOS)
Входящие сервисы: RIF, SIMBA, Telefônica, Telemática, KYT, Графы (по мере необходимости)
Установка
1. Настройка виртуального окружения
Создайте и активируйте virtualenv:
python -m venv .venv
.\.venv\Scripts\Activate.ps1В Linux/macOS:
python3 -m venv .venv
source .venv/bin/activate2. Установка зависимостей
python -m pip install --upgrade pip
python -m pip install -e .[dev]3. Настройка переменных окружения
Скопируйте файл примера (необязательно):
Copy-Item .env.example .envОтредактируйте .env с базовыми URL-адресами сервисов в соответствии с вашей средой:
HOST=127.0.0.1
PORT=8000
LOG_LEVEL=INFO
GRAFO_API_URL=http://localhost:8001
RIF_API_URL=http://localhost:8082
SIMBA_API_URL=http://localhost:8003
TELEFONICA_API_URL=http://localhost:8004
TELEMATICA_API_URL=http://localhost:8005
KYT_API_URL=http://localhost:8006Конфигурация
Поддерживаемые переменные окружения:
Переменная | Описание | По умолчанию |
| IP-адрес для привязки сервера |
|
| HTTP-порт |
|
| Уровень логирования (DEBUG, INFO, WARNING, ERROR) |
|
| Базовый URL сервиса графов |
|
| Базовый URL сервиса RIF |
|
| Базовый URL сервиса SIMBA |
|
| Базовый URL сервиса Telefônica |
|
| Базовый URL сервиса Telemática |
|
| Базовый URL сервиса KYT |
|
| HTTP-путь для протокола MCP |
|
| Путь к HTTP-документации |
|
Запуск
Запуск сервера MCP (через HTTP)
Метод 1: Через модуль Python (рекомендуется)
.\.venv\Scripts\python -m pharus_mcp --transport http --host 127.0.0.1 --port 8000Метод 2: Через скрипт инициализации
.\.venv\Scripts\python .\scripts\start_server.pyМетод 3: Через ярлык (после установки с -e .[dev])
pharus-start-serverУправление входящими сервисами
Запуск RIF, SIMBA, Telefônica, Telemática, KYT и графов:
.\.venv\Scripts\python .\scripts\start_services.pyОжидает запуска с тайм-аутом по умолчанию 60 секунд.
Проверка подключения без запуска процессов:
.\.venv\Scripts\python .\scripts\start_services.py --check-onlyУстановка пользовательского тайм-аута и строгого режима:
.\.venv\Scripts\python .\scripts\start_services.py --timeout 90 --strictОстановка всех сервисов (Windows):
.\.venv\Scripts\python .\scripts\stop_services.pyСписок PID без завершения (dry-run):
.\.venv\Scripts\python .\scripts\stop_services.py --dry-runДоступ к серверу
Доступные HTTP-маршруты
Протокол MCP работает на эндпоинте /mcp (не предназначен для браузера). Для проверки и валидации:
Маршрут | Описание |
| Перенаправляет на |
| Проверка работоспособности сервера |
| Интерактивный Swagger UI |
| Полная спецификация OpenAPI |
| Каталог следственных услуг |
| Список зарегистрированных инструментов MCP |
| Список промптов MCP |
| Список семантических ресурсов |
| Содержимое конкретного ресурса |
| Эндпоинт MCP (протокол MCP через HTTP) |
Примеры:
# Health check
curl http://127.0.0.1:8000/health
# Catálogo de serviços
curl http://127.0.0.1:8000/docs/services
# Detalhe de um serviço (RIF)
curl 'http://127.0.0.1:8000/docs/resource?uri=pharus://services/rif'Каталог сервисов
Доступные сервисы
Grafo - Реляционный анализ с графами дел, метками, KYT и алгоритмами
KYT - Обогащение данных о людях по документам, электронной почте и телефонам
RIF - Анализ отчетов финансовой разведки с транзакциями и статистикой
SIMBA - Запрос банковских счетов и движений средств
Telefônica - Анализ телефонии с CDR, местоположениями и переносимостью номеров
Telemática - Анализ мессенджеров и контактов
Каждый сервис предоставляет набор специализированных инструментов и семантический каталог рекомендуемого использования.
Разработка
Структура проекта
pharus-mcp/
├── src/pharus_mcp/
│ ├── adapters/ # Adaptadores para serviços upstream (RIF, SIMBA, etc.)
│ ├── catalog/ # Catálogo semântico de serviços e algoritmos
│ ├── config/ # Configuração e settings
│ ├── models/ # Modelos de dados (Pydantic)
│ ├── server/ # Servidor FastAPI e registro MCP
│ ├── app.py # Aplicação FastAPI principal
│ ├── cli.py # Interface de linha de comando
│ ├── commands.py # Comandos e orquestração
│ └── __main__.py # Ponto de entrada
├── tests/ # Suite de testes
├── scripts/ # Scripts auxiliares de inicialização
├── pyproject.toml # Configuração Poetry/pip
└── README.md # Este arquivoЗапуск тестов
.\.venv\Scripts\python -m pytestС подробным выводом:
.\.venv\Scripts\python -m pytest -vЗапуск конкретного теста:
.\.venv\Scripts\python -m pytest tests/test_catalog.py::test_catalog_contains_expected_services -vРучной Smoke-тест (HTTP)
PowerShell:
$headers = @{ Accept = "application/json" }
Invoke-WebRequest -Uri "http://127.0.0.1:8000/health" -Headers $headers -Method GET
Invoke-WebRequest -Uri "http://127.0.0.1:8000/docs/services" -Headers $headers -Method GET
Invoke-WebRequest -Uri "http://127.0.0.1:8000/docs/resource?uri=pharus://services/rif" -Headers $headers -Method GETbash/curl:
curl -s http://127.0.0.1:8000/health | jq .
curl -s http://127.0.0.1:8000/docs/services | jq .
curl -s 'http://127.0.0.1:8000/docs/resource?uri=pharus://services/rif' | jq .Зависимости проекта
Основные зависимости, перечисленные в pyproject.toml:
fastapi - Асинхронный веб-фреймворк
httpx - Асинхронный HTTP-клиент
pydantic - Валидация данных
mcp - Model Context Protocol
sqlalchemy - ORM (где применимо)
pytest - Фреймворк для тестирования
python-dotenv - Поддержка .env
Вклад в проект
Мы приветствуем ваш вклад! Пожалуйста:
Сделайте форк репозитория
Создайте ветку для вашей функции (
git checkout -b feature/new-feature)Закоммитьте изменения (
git commit -am 'Добавлена новая функция')Отправьте изменения в ветку (
git push origin feature/new-feature)Откройте Pull Request
Стандарты кода
Используйте Python 3.12+ с подсказками типов (type hints)
Следуйте стандарту PEP 8 (форматирование с помощью инструментов, таких как
blackилиautopep8)Документируйте функции и классы с помощью docstrings на португальском языке
Пишите модульные тесты для новых функций
Устранение неполадок
Ошибка: "not a git repository"
Инициализируйте репозиторий с помощью git init.
Ошибка: "Connection refused" при вызове входящего сервиса
Проверьте, правильный ли URL указан в .env и запущен ли сервис на ожидаемом порту.
Ошибка: "Port already in use"
Измените порт в .env или используйте --port в командной строке.
Тесты не проходят
Убедитесь, что входящие сервисы запущены. Используйте --check-only для диагностики:
.\.venv\Scripts\python .\scripts\start_services.py --check-onlyЛицензия
Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.
Авторы и сопровождающие
Разработано командой технологий MPMG
По вопросам, предложениям или сообщениям об ошибках открывайте issue в репозитории GitHub.
Последнее обновление: Апрель 2026 г. Версия: 1.0.0 Статус: Активен
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
An MCP server for deep research or task groups
Appeared in Searches
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/rfalexandre/pharus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server