Fider

Interactúa con Fider, una herramienta de retroalimentación de clientes de código abierto, para gestionar sugerencias y comentarios de usuarios.

Documentación

Servidor MCP para Fider

Un servidor de Model Context Protocol (MCP) que proporciona herramientas para interactuar con Fider, una herramienta de retroalimentación de clientes de código abierto.

Características

Este servidor MCP proporciona las siguientes herramientas:

Publicaciones:

  • list_posts - Lista publicaciones con opciones de filtrado (búsqueda, vista, límite, etiquetas)
  • get_post - Recupera una publicación específica por número
  • create_post - Crea nuevas publicaciones (requiere autenticación)
  • edit_post - Edita publicaciones existentes (requiere rol de colaborador/administrador)
  • delete_post - Elimina publicaciones (requiere rol de administrador)
  • respond_to_post - Cambia el estado de la publicación (abierta, planificada, iniciada, completada, rechazada, duplicada)

Comentarios:

  • list_comments - Lista comentarios de una publicación específica
  • add_comment - Añade un comentario a una publicación (requiere autenticación)
  • update_comment - Actualiza un comentario (requiere autenticación y propiedad)
  • delete_comment - Elimina un comentario (requiere autenticación y propiedad/administrador)

Etiquetas:

  • list_tags - Lista todas las etiquetas disponibles
  • create_tag - Crea una nueva etiqueta (requiere rol de administrador)
  • update_tag - Actualiza una etiqueta existente (requiere rol de administrador)
  • delete_tag - Elimina una etiqueta (requiere rol de administrador)
  • assign_tag - Asigna una etiqueta a una publicación (requiere rol de colaborador/administrador)
  • unassign_tag - Desasigna una etiqueta de una publicación (requiere rol de colaborador/administrador)

Instalación

Usando uvx (recomendado - ¡no requiere instalación!)

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Run directly from PyPI (once published)
uvx --from mcp-fider==2025.06.27.170000 --refresh-package mcp-fider mcp-fider

# Or run from GitHub directly
uvx --from git+https://github.com/ringostat/fider-mcp.git mcp-fider

Usando pip (si prefieres el método tradicional)

# Clone the repository
git clone https://github.com/ringostat/fider-mcp.git
cd fider-mcp

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install the package
pip install -e .

Configuración

El servidor requiere las siguientes variables de entorno:

  • FIDER_BASE_URL o FIDER_URL - La URL de tu instancia de Fider (por ejemplo, https://feedback.example.com)
  • FIDER_API_KEY - Clave API opcional para autenticación (requerida para crear, editar y eliminar publicaciones)

Cómo obtener una clave API de Fider

  1. Inicia sesión en tu instancia de Fider como administrador
  2. Ve a Configuración → API
  3. Genera una nueva clave API
  4. Copia la clave y establécela como variable de entorno FIDER_API_KEY

Uso

Con Claude Desktop

  1. Añade el servidor a tu archivo de configuración de Claude Desktop:

    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. Añade la siguiente configuración:

{
  "mcpServers": {
    "fider": {
      "command": "uvx",
      "args": ["--from", "mcp-fider==2025.06.27.170000", 
               "--refresh-package", "mcp-fider", "mcp-fider"],
      "env": {
        "FIDER_BASE_URL": "https://your-fider-instance.com",
        "FIDER_API_KEY": "your-api-key-here"
      }
    }
  }
}
  1. Reinicia Claude Desktop

Ejecución Directa

También puedes ejecutar el servidor directamente para pruebas:

# Set environment variables
export FIDER_BASE_URL="https://your-fider-instance.com"
export FIDER_API_KEY="your-api-key-here"

# Run from PyPI (once published)
uvx --from mcp-fider==2025.06.27.170000 --refresh-package mcp-fider mcp-fider

# Or run from GitHub directly
uvx --from git+https://github.com/ringostat/fider-mcp.git mcp-fider

Desarrollo

Ejecutar Pruebas

uv run pytest

Formato de Código

uv run black .
uv run ruff check .

Publicación en PyPI

# Build the package
uv build

# Publish to PyPI
uv publish

Descripciones de Herramientas

list_posts

Lista publicaciones de Fider con filtrado opcional.

Parámetros:

  • query (cadena) - Palabras clave de búsqueda
  • view (cadena) - Opciones de filtro y orden: all, recent, my-votes, most-wanted, most-discussed, planned, started, completed, declined, trending
  • limit (entero) - Número de entradas a devolver (1-100, predeterminado: 30)
  • tags (cadena) - Lista separada por comas de etiquetas para filtrar

get_post

Obtiene una publicación específica por su número.

Parámetros:

  • number (entero, requerido) - El número de la publicación a recuperar

create_post

Crea una nueva publicación (requiere autenticación).

Parámetros:

  • title (cadena, requerido) - El título de la publicación
  • description (cadena) - La descripción de la publicación

edit_post

Edita una publicación existente (requiere rol de colaborador/administrador).

Parámetros:

  • number (entero, requerido) - El número de la publicación a editar
  • title (cadena, requerido) - El nuevo título de la publicación
  • description (cadena) - La nueva descripción de la publicación

delete_post

Elimina una publicación (requiere rol de administrador).

Parámetros:

  • number (entero, requerido) - El número de la publicación a eliminar
  • reason (cadena) - Razón para la eliminación

respond_to_post

Responde a una publicación cambiando su estado (requiere rol de colaborador/administrador).

Parámetros:

  • number (entero, requerido) - El número de la publicación a responder
  • status (cadena, requerido) - El nuevo estado: open, planned, started, completed, declined, duplicate
  • text (cadena) - Descripción opcional del cambio de estado
  • originalNumber (entero) - Requerido cuando el estado es 'duplicate' - el número de la publicación en la que fusionar

Herramientas de Comentarios

list_comments

Lista comentarios de una publicación específica.

Parámetros:

  • number (entero, requerido) - El número de la publicación para obtener comentarios

add_comment

Añade un comentario a una publicación (requiere autenticación).

Parámetros:

  • number (entero, requerido) - El número de la publicación para comentar
  • content (cadena, requerido) - El contenido del comentario

update_comment

Actualiza un comentario (requiere autenticación y propiedad).

Parámetros:

  • post_number (entero, requerido) - El número de la publicación
  • comment_id (entero, requerido) - El ID del comentario a actualizar
  • content (cadena, requerido) - El nuevo contenido del comentario

delete_comment

Elimina un comentario (requiere autenticación y propiedad/administrador).

Parámetros:

  • post_number (entero, requerido) - El número de la publicación
  • comment_id (entero, requerido) - El ID del comentario a eliminar

Herramientas de Etiquetas

list_tags

Lista todas las etiquetas disponibles.

Parámetros: Ninguno

create_tag

Crea una nueva etiqueta (requiere rol de administrador).

Parámetros:

  • name (cadena, requerido) - El nombre de la etiqueta
  • color (cadena, requerido) - El color de la etiqueta (formato hexadecimal, por ejemplo, #FF0000)
  • isPublic (booleano) - Si la etiqueta es pública (predeterminado: true)

update_tag

Actualiza una etiqueta existente (requiere rol de administrador).

Parámetros:

  • slug (cadena, requerido) - El slug de la etiqueta a actualizar
  • name (cadena, requerido) - El nuevo nombre de la etiqueta
  • color (cadena, requerido) - El nuevo color de la etiqueta (formato hexadecimal, por ejemplo, #FF0000)
  • isPublic (booleano) - Si la etiqueta es pública

delete_tag

Elimina una etiqueta (requiere rol de administrador).

Parámetros:

  • slug (cadena, requerido) - El slug de la etiqueta a eliminar

assign_tag

Asigna una etiqueta a una publicación (requiere rol de colaborador/administrador).

Parámetros:

  • post_number (entero, requerido) - El número de la publicación
  • slug (cadena, requerido) - El slug de la etiqueta a asignar

unassign_tag

Desasigna una etiqueta de una publicación (requiere rol de colaborador/administrador).

Parámetros:

  • post_number (entero, requerido) - El número de la publicación
  • slug (cadena, requerido) - El slug de la etiqueta a desasignar

Solución de Problemas

Problemas de Conexión

  • Asegúrate de que tu instancia de Fider sea accesible desde tu red
  • Verifica que FIDER_BASE_URL sea correcto y no tenga una barra diagonal al final
  • Verifica que tu clave API sea válida si estás recibiendo errores de autenticación

Errores de Permisos

  • Crear, editar y eliminar publicaciones requiere autenticación adecuada
  • Asegúrate de que tu clave API tenga los permisos necesarios para las operaciones que intentas realizar

Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).