Pharus MCP
Pharus MCP
Ein Python-MCP-Server (Model Context Protocol) für die integrierte Erkennung und Abfrage von investigativen Diensten im Pharus-Ökosystem. Er stellt spezialisierte Tools zur Analyse von RIF-, SIMBA-, Telefônica-, Telemática-, KYT- und Graph-Daten über eine entkoppelte Dienstarchitektur bereit.
Funktionen
Diensterkennung: Semantischer Katalog investigativer Dienste mit Metadaten und Anwendungsbeispielen
MCP-Protokoll: Vollständige Implementierung des Model Context Protocol über HTTP Streamable
Mehrere Datenquellen: Integration mit RIF, SIMBA, Telefônica, Telemática, KYT und Graphen
Finanzanalyse: Spezialisierte Analysetools zur Untersuchung von Transaktionen und Bewegungen
Graph-Algorithmen: Semantischer Katalog mit automatischen Algorithmus-Vorschlägen basierend auf Graph-Metadaten
Automatische Dokumentation: Swagger UI und OpenAPI mit zugänglichen HTTP-Routen
Flexible Konfiguration: Unterstützung für Umgebungsvariablen und dienstspezifische Konfigurationen
Voraussetzungen
Python 3.12+
pip (Python-Paketmanager)
PowerShell 5.1+ (für Windows) oder bash (für Linux/macOS)
Upstream-Dienste: RIF, SIMBA, Telefônica, Telemática, KYT, Graphen (nach Bedarf)
Installation
1. Virtuelle Umgebung einrichten
Erstellen und aktivieren Sie die virtualenv:
python -m venv .venv
.\.venv\Scripts\Activate.ps1Unter Linux/macOS:
python3 -m venv .venv
source .venv/bin/activate2. Abhängigkeiten installieren
python -m pip install --upgrade pip
python -m pip install -e .[dev]3. Umgebungsvariablen konfigurieren
Kopieren Sie die Beispieldatei (optional):
Copy-Item .env.example .envBearbeiten Sie die .env-Datei mit den Basis-URLs der Dienste entsprechend Ihrer Umgebung:
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:8006Konfiguration
Unterstützte Umgebungsvariablen:
Variable | Beschreibung | Standard |
| IP-Adresse für den Server-Bind |
|
| HTTP-Port |
|
| Log-Level (DEBUG, INFO, WARNING, ERROR) |
|
| Basis-URL des Graph-Dienstes |
|
| Basis-URL des RIF-Dienstes |
|
| Basis-URL des SIMBA-Dienstes |
|
| Basis-URL des Telefônica-Dienstes |
|
| Basis-URL des Telemática-Dienstes |
|
| Basis-URL des KYT-Dienstes |
|
| HTTP-Pfad für das MCP-Protokoll |
|
| Pfad zur HTTP-Dokumentation |
|
Ausführung
MCP-Server starten (via HTTP)
Methode 1: Über Python-Modul (empfohlen)
.\.venv\Scripts\python -m pharus_mcp --transport http --host 127.0.0.1 --port 8000Methode 2: Über Startskript
.\.venv\Scripts\python .\scripts\start_server.pyMethode 3: Über Verknüpfung (nach Installation mit -e .[dev])
pharus-start-serverUpstream-Dienste verwalten
RIF, SIMBA, Telefônica, Telemática, KYT und Graphen starten:
.\.venv\Scripts\python .\scripts\start_services.pyWartet auf den Start mit einem Standard-Timeout von 60s.
Konnektivität prüfen, ohne Prozesse zu starten:
.\.venv\Scripts\python .\scripts\start_services.py --check-onlyBenutzerdefiniertes Timeout und strikten Modus festlegen:
.\.venv\Scripts\python .\scripts\start_services.py --timeout 90 --strictAlle Dienste stoppen (Windows):
.\.venv\Scripts\python .\scripts\stop_services.pyPIDs auflisten, ohne zu beenden (Dry-Run):
.\.venv\Scripts\python .\scripts\stop_services.py --dry-runZugriff auf den Server
Verfügbare HTTP-Routen
Das MCP-Protokoll läuft auf dem Endpunkt /mcp (nicht browserfreundlich). Zur Inspektion und Validierung:
Route | Beschreibung |
| Leitet zu |
| Health-Check des Servers |
| Interaktive Swagger UI |
| Vollständige OpenAPI-Spezifikation |
| Katalog investigativer Dienste |
| Liste der registrierten MCP-Tools |
| Liste der MCP-Prompts |
| Liste semantischer Ressourcen |
| Inhalt einer spezifischen Ressource |
| MCP-Endpunkt (MCP-Protokoll über HTTP) |
Beispiele:
# 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'Dienstekatalog
Verfügbare Dienste
Grafo - Relationale Analyse mit Fallgraphen, Labels, KYT und Algorithmen
KYT - Anreicherung von Personen durch Dokumente, E-Mails und Telefonnummern
RIF - Analyse von Finanzberichten mit Transaktionen und Statistiken
SIMBA - Abfrage von Bankkonten und Bewegungen
Telefônica - Telefonie-Analyse mit CDRs, Standorten und Portabilität
Telemática - Analyse von Messaging-Apps und Kontakten
Jeder Dienst stellt eine Reihe spezialisierter Tools und einen semantischen Katalog für die empfohlene Nutzung bereit.
Entwicklung
Projektstruktur
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 arquivoTests ausführen
.\.venv\Scripts\python -m pytestMit Ausführlichkeit:
.\.venv\Scripts\python -m pytest -vEinen spezifischen Test ausführen:
.\.venv\Scripts\python -m pytest tests/test_catalog.py::test_catalog_contains_expected_services -vManueller Smoke-Test (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 .Projektabhängigkeiten
Hauptabhängigkeiten gelistet in pyproject.toml:
fastapi - Asynchrones Web-Framework
httpx - Asynchroner HTTP-Client
pydantic - Datenvalidierung
mcp - Model Context Protocol
sqlalchemy - ORM (falls zutreffend)
pytest - Test-Framework
python-dotenv - .env-Unterstützung
Mitwirken
Beiträge sind willkommen! Bitte:
Forken Sie das Repository
Erstellen Sie einen Branch für Ihr Feature (
git checkout -b feature/neue-funktion)Committen Sie Ihre Änderungen (
git commit -am 'Fügt neue Funktion hinzu')Pushen Sie auf den Branch (
git push origin feature/neue-funktion)Öffnen Sie einen Pull Request
Code-Standards
Verwenden Sie Python 3.12+ mit Type Hints
Befolgen Sie den PEP 8-Standard (formatiert mit Tools wie
blackoderautopep8)Dokumentieren Sie Funktionen und Klassen mit Docstrings auf Portugiesisch
Schreiben Sie Unit-Tests für neue Funktionen
Fehlerbehebung
Fehler: "not a git repository"
Initialisieren Sie das Repository mit git init.
Fehler: "Connection refused" beim Aufruf eines Upstream-Dienstes
Überprüfen Sie, ob die URL in .env korrekt ist und ob der Dienst auf dem erwarteten Port aktiv ist.
Fehler: "Port already in use"
Ändern Sie den Port in der .env oder verwenden Sie --port in der Befehlszeile.
Tests schlagen fehl
Überprüfen Sie, ob die Upstream-Dienste laufen. Verwenden Sie --check-only zur Diagnose:
.\.venv\Scripts\python .\scripts\start_services.py --check-onlyLizenz
Dieses Projekt steht unter der MIT-Lizenz. Siehe die Datei LICENSE für Details.
Autoren und Betreuer
Entwickelt vom Technologie-Team MPMG
Für Fragen, Vorschläge oder Fehlerberichte öffnen Sie bitte ein Issue im GitHub-Repository.
Letzte Aktualisierung: April 2026
Version: 1.0.0
Status: Aktiv
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