Token导航 LogoToken导航TokenDH.com
MCP Idico logo
数据服务stdio官方级别未说明来源级核验

MCP Idico

MCP Server

基于FastMCP构建的MCP服务器,用于从NetSuite和PostgreSQL中提取销售、运营和商业绩效的分析查询,提供汇总响应并存储数据集以供后续查询或导出到Excel。

工具数

13

提示词数

0

GitHub Stars

0

资源数

0
数据分析PythonAPI集成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

cristianorregoidico

提供方

cristianorregoidico

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run main.py

详细介绍

IDICO IDRA MCP

Servidor MCP construido con FastMCP para exponer consultas analíticas de ventas, operaciones y desempeño comercial a partir de NetSuite y PostgreSQL. El servicio entrega respuestas resumidas listas para consumo por clientes MCP y, cuando aplica, guarda datasets completos en data/ para consultas posteriores o exportación a Excel.

Qué hace este proyecto

Este repositorio centraliza consultas predefinidas y transformaciones en pandas para responder preguntas de negocio como:

  • cotizaciones por Inside Sales o cliente
  • bookings y margen por periodo
  • oportunidades y conversión comercial
  • items cotizados o vendidos
  • scorecards y performance de Inside Sales
  • OTD, guías Helga e importaciones por cliente
  • recuperación de datasets JSON y archivos Excel generados por tools previas

La aplicación se publica como un servidor MCP HTTP en:

  • host: 0.0.0.0
  • puerto: 8000
  • transporte: streamable-http
  • endpoint: /mcp

Arquitectura

Flujo general:

  1. main.py registra todas las tools MCP.
  2. tools/ encapsula los casos de uso expuestos al cliente MCP.
  3. connections/ construye y ejecuta consultas contra NetSuite y PostgreSQL.
  4. analitycs/ transforma los resultados tabulares en resúmenes JSON.
  5. utils/ guarda datasets, genera Excel y resuelve utilidades de fechas.

Componentes principales:

  • main.py: arranque del servidor MCP y registro de tools.
  • tools/sales.py: tools comerciales y de ventas.
  • tools/operations.py: tools operativas.
  • tools/performance.py: tools de performance y scorecards.
  • tools/files.py: acceso a datasets JSON y archivos Excel generados.
  • connections/netsuite.py: conexión JDBC a NetSuite usando jaydebeapi y NQjc.jar.
  • connections/postgresql.py: ejecución de consultas en PostgreSQL.
  • data/: datasets JSON y Excel generados en tiempo de ejecución.

Requisitos

  • Python >= 3.10.12
  • Java/JDK disponible para el driver JDBC de NetSuite
  • Acceso de red a NetSuite y PostgreSQL
  • Variables de entorno configuradas para ambas conexiones

Dependencias principales definidas en pyproject.toml:

  • fastmcp
  • mcp[cli]
  • pandas
  • openpyxl
  • jaydebeapi
  • psycopg[binary]
  • python-dotenv

Variables de entorno

El proyecto carga variables desde .env para NetSuite mediante load_dotenv(). PostgreSQL se lee desde variables de entorno del proceso.

NetSuite

Variables requeridas por connections/netsuite.py:

  • DRIVER_NETSUITE
  • URL_NETSUITE
  • USER_NETSUITE
  • PWD_NETSUITE

El driver JDBC se toma desde:

PostgreSQL

Variables usadas por connections/postgresql.py:

  • PGHOST
  • PGHOST_DEV
  • PGPORT
  • PGDATABASE
  • PGUSER
  • PGPASSWORD

Notas:

  • execute_pg_query() usa PGHOST.
  • execute_pg_query_dev() usa PGHOST_DEV.
  • varias tools operan actualmente contra PGHOST_DEV.

Instalación y ejecución local

Opción 1: usando uv

uv sync
uv run main.py

Opción 2: usando pip

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py

Si todo está configurado correctamente, el servidor quedará escuchando en http://localhost:8000/mcp.

Ejecución con Docker

Build y arranque

docker compose up --build

La composición actual:

  • expone 8000:8000
  • carga variables desde .env
  • usa una imagen basada en python:3.12-slim
  • instala default-jdk-headless para soportar el driver JDBC de NetSuite

Archivos relacionados:

Catálogo de tools

Los nombres públicos de las tools corresponden a los nombres de función registrados en main.py.

Sales

ToolParámetrosDescripción
get_quotesinitial_date, final_date, inside_sales, customer_nameResume cotizaciones por periodo, Inside Sales y cliente. Genera dataset JSON y archivo Excel.
get_bookingsinitial_date, final_date, customer_name, inside_salesResume bookings, margen, términos, top clientes y KPIs agregados. Genera dataset JSON.
get_quoted_itemsinitial_date, final_date, customer_name, inside_salesAnaliza items cotizados por cliente, marca, vendor e Inside Sales. Genera dataset JSON.
get_sold_itemsinitial_date, final_date, customer_name, inside_salesAnaliza items vendidos, marcas, vendors y distribución comercial. Genera dataset JSON.
get_opportunitiesinitial_date, final_date, inside_salesResume oportunidades por periodo e Inside Sales. Genera dataset JSON.
get_vendors_to_quotecustomer_name, brandSugiere vendors a cotizar combinando histórico por cliente/marca y país/marca desde PostgreSQL.

Operations

ToolParámetrosDescripción
get_helga_guidespo, status, serviceRecupera guías Helga filtradas por PO, estado o servicio. Genera dataset JSON.
get_otd_indicatorsinitial_date, final_date, so_numberCalcula indicadores OTD por mes y, si se envía so_number, devuelve detalle de la orden. Genera dataset JSON.
get_customer_importscustomer_nameResume importaciones de un cliente: montos FOB/CIF, marcas, vendors, años e indicadores asociados.

Performance

ToolParámetrosDescripción
get_inside_sales_performance_reportinitial_date, final_dateCalcula tiempos de respuesta, hitrates y score de performance de Inside Sales. Genera dataset JSON.
get_scorecard_by_isinside_salesDevuelve scorecards diario, mensual y anual desde PostgreSQL.

Files

ToolParámetrosDescripción
get_datasetdata_set_referenceRecupera un dataset JSON generado previamente.
get_excel_filefile_nameDevuelve un archivo .xlsx previamente generado. Incluye validación contra path traversal.

Comportamiento por defecto de fechas

Las tools no usan exactamente la misma ventana por defecto. Según implementación:

  • get_quotes: hoy a hoy
  • get_opportunities: hoy a hoy
  • get_inside_sales_performance_report: hoy a hoy
  • get_bookings: primer día del mes actual a hoy
  • get_quoted_items: primer día del mes actual a hoy
  • get_sold_items: primer día del mes actual a hoy
  • get_otd_indicators: primer día del mes actual a hoy

El helper que define estas fechas está en utils/date.py.

Datasets y archivos generados

Varias tools persisten el resultado completo de las consultas para poder reutilizarlo después.

JSON

Los datasets se guardan en data/ con nombre timestamped, por ejemplo:

20260129_152522_get_quotes.json

La estructura es:

{
  "data_set_description": "Descripción del dataset",
  "columns": ["col1", "col2"],
  "rows": [
    ["valor1", "valor2"]
  ]
}

Excel

Algunas tools también exportan el DataFrame completo a .xlsx, por ejemplo:

20260129_152522_get_quotes.xlsx

La lógica de persistencia está en:

Detalles operativos importantes

  • El servidor registra las tools con readOnlyHint=True y destructiveHint=False.
  • El proyecto no expone escritura sobre bases de datos; las tools actuales son de consulta y análisis.
  • Las consultas SQL están predefinidas en connections/netsuite_querys.py y connections/postgresql_querys.py.
  • Algunas tools guardan referencias al dataset completo bajo la clave full_data_reference.
  • get_quotes también devuelve excel_file cuando genera una exportación.

Desarrollo

Script auxiliar disponible:

  • test.py: script manual de prueba y exploración local. No corresponde a una suite automatizada formal.

Estado actual del repositorio:

  • no se detectó una carpeta de tests automatizados
  • la documentación debe considerarse alineada con la implementación actual de main.py y tools/

Sugerencia de .env

Ejemplo mínimo:

DRIVER_NETSUITE=...
URL_NETSUITE=...
USER_NETSUITE=...
PWD_NETSUITE=...

PGHOST=...
PGHOST_DEV=...
PGPORT=5432
PGDATABASE=...
PGUSER=...
PGPASSWORD=...

目录标签

目录标签

数据分析PythonAPI集成商业分析本地部署数据查询销售绩效运营分析数据导出

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

13

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP