Pharus MCP
Pharus MCP
这是一个基于 Python 的 MCP(模型上下文协议)服务器,用于在 Pharus 生态系统中集成发现和查询调查服务。它通过解耦的服务架构,公开了用于分析 RIF、SIMBA、Telefônica、Telemática、KYT 和图数据的专用工具。
特性
服务发现:带有元数据和使用示例的调查服务语义目录
MCP 协议:基于 HTTP Streamable 的完整模型上下文协议实现
多数据源:与 RIF、SIMBA、Telefônica、Telemática、KYT 和图数据的集成
财务分析:用于调查交易和资金流动的专业分析工具
图算法:基于图元数据的自动算法建议语义目录
自动文档:带有可访问 HTTP 路由的 Swagger UI 和 OpenAPI
灵活配置:支持环境变量和按服务配置
先决条件
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 |
|
| RIF 服务基础 URL |
|
| SIMBA 服务基础 URL |
|
| Telefônica 服务基础 URL |
|
| Telemática 服务基础 URL |
|
| KYT 服务基础 URL |
|
| MCP 协议的 HTTP 路径 |
|
| 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 端点 (基于 HTTP 的 MCP 协议) |
示例:
# 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手动冒烟测试 (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 - 异步 Web 框架
httpx - 异步 HTTP 客户端
pydantic - 数据验证
mcp - 模型上下文协议
sqlalchemy - ORM (适用时)
pytest - 测试框架
python-dotenv - .env 支持
贡献
欢迎贡献!请:
Fork 本仓库
为您的功能创建一个分支 (
git checkout -b feature/nova-funcionalidade)提交您的更改 (
git commit -am '添加新功能')推送到分支 (
git push origin feature/nova-funcionalidade)开启 Pull Request
代码规范
使用带有类型提示的 Python 3.12+
遵循 PEP 8 标准(使用
black或autopep8等工具格式化)使用葡萄牙语 docstrings 记录函数和类
为新功能编写单元测试
故障排除
错误: "not a git repository"
使用 git init 初始化仓库。
错误: 调用上游服务时 "Connection refused"
检查 .env 中的 URL 是否正确,以及服务是否在预期的端口上运行。
错误: "Port already in use"
更改 .env 中的端口或在命令行中使用 --port。
测试失败
检查上游服务是否正在运行。使用 --check-only 进行诊断:
.\.venv\Scripts\python .\scripts\start_services.py --check-only许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
作者与维护者
由 MPMG 技术团队开发
如有问题、建议或报告错误,请在 GitHub 仓库中开启 issue。
最后更新: 2026 年 4 月 版本: 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