Innaguma MCP Server - Analytics and content management integration with FastMCP
Project description
Innaguma MCP Server
Un servidor Model Context Protocol (MCP) que proporciona integración con la API de Innaguma para acceder a estadísticas, análisis de contenido y datos de gestión de plataformas.
Descripción
Este MCP expone las funcionalidades principales de la API de Innaguma a través de herramientas fáciles de usar, permitiendo a los clientes MCP acceder a:
- Estadísticas Totales: Accesos, noticias, lectores, analistas, descargas, subidas y votos
- Gestión de Lectores: Información de usuarios, historial de visualizaciones, votos y descargas
- Gestión de Noticias: Listados, detalles, votos y estadísticas de visitas
- Gestión de Categorías: Categorías disponibles, suscriptores e información detallada
- Gestión de Analistas: Analistas, publicaciones y análisis de votación
Instalación
Requisitos
- Python 3.10+
- pip
Pasos de instalación
- Clona o crea el proyecto:
cd InnagunaMCP
- Instala las dependencias:
pip install -e .
O instala las dependencias manualmente:
pip install fastmcp>=2.13.0 aiohttp>=3.9.0 python-dotenv>=1.0.0 pyjwt>=2.8.0
Configuración
- Copia el archivo
.env.examplea.env:
cp .env.example .env
- Edita
.envcon tus credenciales de Innaguma:
INNAGUMA_AUTH_URL=https://<tu-subdominio>.innguma.com
INNAGUMA_SITE=<tu-subdominio>
INNAGUMA_USERNAME=<tu-usuario>
INNAGUMA_PASSWORD=<tu-contraseña>
Uso
Iniciar el servidor
python MCP.py
O si está instalado como paquete:
innaguma-mcp
Herramientas Disponibles
Búsqueda
- search_innaguma(query, page, order): Busca contenido en Innaguma usando Elasticsearch
query- Término de búsquedapage- Número de página (default: 1)order- Orden: "relevance" o "date" (default: "relevance")
Estadísticas Totales
- get_platform_totals(): Obtiene estadísticas totales de la plataforma
- get_users_totals(): Obtiene estadísticas totales de usuarios
- get_user_totals(user_id): Obtiene estadísticas de un usuario específico
- get_news_totals(): Obtiene estadísticas de noticias
- get_categories_totals(): Obtiene estadísticas de categorías
- get_most_searched_words(from_date, to_date): Obtiene palabras más buscadas en rango de fechas
Lectores (Readers)
- list_readers(): Lista todos los lectores
- get_readers_overview(): Obtiene resumen completo de lectores
- get_reader_overview(reader_id): Obtiene detalles de un lector específico
- get_reader_viewed_news(reader_id): Obtiene noticias vistas por un lector
- get_reader_voted_news(reader_id): Obtiene noticias votadas por un lector
- get_reader_downloads(reader_id): Obtiene archivos descargados por un lector
Noticias
- list_news_by_date(from_date, to_date): Lista noticias en rango de fechas
- get_news_overview(): Obtiene resumen de todas las noticias
- get_news_details(news_id): Obtiene detalles de una noticia específica
- get_news_votes(news_id): Obtiene votos de una noticia
- get_news_visits(news_id): Obtiene visitas de una noticia
Categorías
- list_categories(): Lista todas las categorías
- get_categories_overview(): Obtiene resumen de categorías
- get_category_details(category_id): Obtiene detalles de una categoría
- get_category_subscriptions(category_id): Obtiene suscriptores de una categoría
Analistas
- list_analysts(): Lista todos los analistas
- get_analysts_overview(): Obtiene resumen de analistas
- get_analyst_overview(analyst_id): Obtiene detalles de un analista
- get_analyst_publications(analyst_id): Obtiene publicaciones de un analista
- get_analyst_voted_publications(analyst_id): Obtiene publicaciones votadas de un analista
Formato de Fechas
Las fechas deben proporcionarse en formato YYYY-MM-DD:
2024-01-15
2024-12-31
Manejo de Errores
El servidor maneja los siguientes tipos de errores:
- 400 Bad Request: Faltan cabeceras requeridas
- 401 Unauthorized: Token de autenticación inválido o expirado
- 404 Not Found: Recurso no encontrado o formato de fecha inválido
- 500 Internal Server Error: Error interno del servidor
Autenticación
El servidor obtiene automáticamente un token JWT durante la primera solicitud. El token se renovará automáticamente si expira (después de 30 días por defecto).
Estructura del Proyecto
InnagunaMCP/
├── MCP.py # Servidor MCP principal
├── pyproject.toml # Configuración del proyecto
├── .env.example # Plantilla de variables de entorno
├── Especificaciones_API_Innguma.txt # Especificaciones de la API
└── README.md # Este archivo
Dependencias
fastmcp>=2.13.0: Framework para Model Context Protocolaiohttp>=3.9.0: Cliente HTTP asincrónicopython-dotenv>=1.0.0: Carga de variables de entornopyjwt>=2.8.0: Soporte para tokens JWTbeautifulsoup4>=4.12.0: Web scraping y parsing HTMLlxml>=4.9.0: Parser XML/HTML rápido
Licencia
Este proyecto es de uso interno de Ingeteam.
Autor
Bruno Izaguirre - bruno.izaguirre@ingeteam.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file innaguma_mcp-0.0.2.tar.gz.
File metadata
- Download URL: innaguma_mcp-0.0.2.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
345a8949bb2b99069b8a1994c93e5a6a9956b7bc594632a2ac7e23ccfe254e8d
|
|
| MD5 |
841b1aac59ac7c16e13e62a625795a7c
|
|
| BLAKE2b-256 |
4c541f0162c371d8776a70e77ad74c9119c389bf563c6e961526e74cf9b356dc
|
File details
Details for the file innaguma_mcp-0.0.2-py3-none-any.whl.
File metadata
- Download URL: innaguma_mcp-0.0.2-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e372282627f7ee688d72442fef84860f163aa100b189ee808a62527918f914d5
|
|
| MD5 |
1a8142e9e6c84a203212b04ef5c01ede
|
|
| BLAKE2b-256 |
364b01ffa54a0431d4a014ec9fec7dc12e7ce6120823932a087470e054044c9f
|