Skip to main content
Glama
rfalexandre
by rfalexandre

Pharus MCP

Python 3.12+ FastAPI Model Context Protocol

这是一个基于 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/activate

2. 安装依赖

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

配置

支持的环境变量:

变量

描述

默认值

HOST

服务器绑定的 IP 地址

127.0.0.1

PORT

HTTP 端口

8000

LOG_LEVEL

日志级别 (DEBUG, INFO, WARNING, ERROR)

INFO

GRAFO_API_URL

图服务基础 URL

http://localhost:8001

RIF_API_URL

RIF 服务基础 URL

http://localhost:8082

SIMBA_API_URL

SIMBA 服务基础 URL

http://localhost:8003

TELEFONICA_API_URL

Telefônica 服务基础 URL

http://localhost:8004

TELEMATICA_API_URL

Telemática 服务基础 URL

http://localhost:8005

KYT_API_URL

KYT 服务基础 URL

http://localhost:8006

MCP_STREAMABLE_HTTP_PATH

MCP 协议的 HTTP 路径

/mcp

DOCS_PATH

HTTP 文档路径

/docs

运行

启动 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 端点(不适合浏览器直接访问)。用于检查和验证:

路由

描述

/

重定向到 /docs

/health

服务器健康检查

/docs

交互式 Swagger UI

/docs/openapi.json

完整的 OpenAPI 规范

/docs/services

调查服务目录

/docs/tools

已注册的 MCP 工具列表

/docs/prompts

MCP 提示词列表

/docs/resources

语义资源列表

/docs/resource?uri=...

特定资源的内容

/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'

服务目录

可用服务

  1. Grafo - 包含案例图、标签、KYT 和算法的关系分析

  2. KYT - 通过证件、电子邮件和电话进行人员信息丰富

  3. RIF - 包含交易和统计数据的财务情报报告分析

  4. SIMBA - 银行账户和资金流动查询

  5. Telefônica - 包含 CDR、位置和携号转网的电话分析

  6. 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 GET

bash/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 支持

贡献

欢迎贡献!请:

  1. Fork 本仓库

  2. 为您的功能创建一个分支 (git checkout -b feature/nova-funcionalidade)

  3. 提交您的更改 (git commit -am '添加新功能')

  4. 推送到分支 (git push origin feature/nova-funcionalidade)

  5. 开启 Pull Request

代码规范

  • 使用带有类型提示的 Python 3.12+

  • 遵循 PEP 8 标准(使用 blackautopep8 等工具格式化)

  • 使用葡萄牙语 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 状态: 活跃

Install Server
F
license - not found
C
quality
Not graded
maintenance - not tested

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

View all MCP Connectors

Latest Blog Posts

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