Perplexity

Búsqueda web utilizando la API de Perplexity con selección automática de modelo basada en la intención de la consulta.

Documentación

Servidor MCP de Perplexity

Un servidor MCP que proporciona capacidades de búsqueda web de Perplexity AI a Claude, con selección automática de modelos, filtros con estado y 10 herramientas diseñadas para propósitos específicos.

Perplexity Server MCP server

Requisitos previos

Instalación

  1. Clona este repositorio:

    git clone https://github.com/RossH121/perplexity-mcp.git
    cd perplexity-mcp
    
  2. Instala las dependencias:

    npm install
    
  3. Compila el servidor:

    npm run build
    

Configuración

Añade el servidor al archivo de configuración de Claude en ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "perplexity-server": {
      "command": "node",
      "args": ["/absolute/path/to/perplexity-mcp/build/index.js"],
      "env": {
        "PERPLEXITY_API_KEY": "your-api-key-here",
        "PERPLEXITY_MODEL": "sonar-pro"
      }
    }
  }
}

Reemplaza /absolute/path/to con la ruta real donde clonaste el repositorio.

Modelos disponibles

El servidor selecciona automáticamente el mejor modelo según tu consulta, pero también puedes establecer un valor predeterminado mediante PERPLEXITY_MODEL:

ModeloIdeal para
sonar-deep-researchInformes completos, investigación exhaustiva de múltiples fuentes
sonar-reasoning-proLógica compleja, matemáticas, análisis de razonamiento encadenado
sonar-proBúsqueda general, consultas factuales (predeterminado)
sonarConsultas rápidas y simples

Para precios y disponibilidad: https://docs.perplexity.ai/guides/pricing

Herramientas

search — Búsqueda web impulsada por IA

La herramienta de búsqueda principal. Selecciona automáticamente el modelo adecuado según tu consulta. Devuelve una respuesta sintetizada con fuentes citadas.

ParámetroOpcionesDescripción
querystringTu consulta de búsqueda
search_context_sizelow / medium / highCuánto contexto web recuperar. low es el más rápido/económico (predeterminado), high es el más exhaustivo
search_typefast / pro / autoNivel del motor de búsqueda (anidado en web_search_options)
reasoning_effortminimal / low / medium / highProfundidad de razonamiento para sonar-deep-research
strip_thinkingbooleanElimina los bloques <think>...</think> de las respuestas del modelo de razonamiento
search_modeweb / academic / secacademic prioriza artículos revisados por pares; sec busca documentos presentados ante la SEC
search_after_date / search_before_dateMM/DD/YYYYFiltra fuentes por fecha de publicación
last_updated_after / last_updated_beforeMM/DD/YYYYFiltra fuentes por fecha de última actualización
search_language_filter["en","de"]Restringe fuentes a idiomas (ISO 639-1)
language_preferenceISO 639-1Idioma preferido de respuesta
disable_searchbooleanResponder solo con datos de entrenamiento (sin búsqueda web)
enable_search_classifierbooleanPermitir que un clasificador decida si buscar
return_imagesbooleanAñadir una sección de Imágenes con las URL de los resultados
image_domain_filter / image_format_filterstring[]Restringir imágenes por dominio o formato
return_related_questionsbooleanAñadir sugerencias de preguntas de seguimiento
country / latitude / longitudeLocalizar resultados mediante user_location
stream_modefull / conciseFormato de eventos de streaming para Pro Search
show_costbooleanAñadir un pie de página con el costo de la solicitud cuando esté disponible
streambooleanHabilitar respuestas en streaming

Ejemplos:

  • "¿Cuál es la última novedad sobre energía de fusión?" → selecciona automáticamente sonar-pro
  • "Análisis de investigación profunda sobre los avances en edición genética CRISPR" → selecciona automáticamente sonar-deep-research
  • "Resuelve este acertijo lógico paso a paso" → selecciona automáticamente sonar-reasoning-pro

raw_search — Resultados clasificados sin procesar (sin LLM)

Devuelve resultados web clasificados directamente sin síntesis de IA. Más rápido y económico — útil para descubrir URL, crear listas de fuentes o pipelines de verificación de datos.

ParámetroOpcionesDescripción
querystring o string[]Consulta de búsqueda, o un array de consultas ejecutadas en una sola solicitud
max_results1–20Número de resultados (predeterminado: 10)
max_tokens / max_tokens_per_pagenumberPresupuesto de tokens total / por resultado
search_modeweb / academic / secCategoría de fuente
search_typeweb / peoplepeople enruta a People Search
recencyhour / day / week / month / yearFiltro de ventana de tiempo
search_after_date / search_before_dateMM/DD/YYYYFiltrar por fecha de publicación
last_updated_after / last_updated_beforeMM/DD/YYYYFiltrar por fecha de última actualización
search_language_filter["en","de"]Restringir a idiomas (ISO 639-1)
countryISO 3166 codeLocalizar resultados (p. ej. US, GB)

Nota: las versiones anteriores enviaban estos parámetros en camelCase, que la API de búsqueda ignoraba silenciosamente — por lo que max_results, recency, search_mode y los filtros de fecha no tenían efecto. Esto se ha corregido; ahora tienen efecto.

async_research — Investigación profunda de larga duración

Envía un trabajo sonar-deep-research y haz polling, en lugar de bloquear en una llamada síncrona. Útil cuando la investigación puede superar el tiempo de espera síncrono de 5 minutos. Los trabajos expiran 7 días después de su creación.

ParámetroOpcionesDescripción
actionsubmit / status / listQué hacer
querystringPregunta de investigación (requerida para submit)
request_idstringID de trabajo de un submit anterior (requerido para status)
modelSonar modelModelo del trabajo (predeterminado: sonar-deep-research)
reasoning_effortminimal / low / medium / highProfundidad de razonamiento
search_modeweb / academic / secCategoría de fuente
strip_thinkingbooleanElimina los bloques <think> del resultado completado
"Submit async research: comprehensive comparison of solid-state battery startups"
→ returns a request_id
"Check async research status for <request_id>"

agent — Bucle agéntico con herramientas integradas

La API de agente de Perplexity. Ejecuta un agente de múltiples pasos que puede llamar herramientas integradas y, opcionalmente, un modelo de terceros.

ParámetroOpcionesDescripción
inputstringLa tarea o pregunta
modelp. ej. openai/gpt-4.1Modelo calificado por proveedor
modelsstring[]Cadena de respaldo (tiene prioridad sobre model)
presetfast-search / pro-search / deep-researchAjuste predefinido con nombre en lugar de un modelo
instructionsstringPrompt del sistema
max_steps1–10Máximo de pasos agénticos/de herramientas
max_output_tokensnumberMáximo de tokens de salida
toolsweb_search / fetch_urlHerramientas integradas que el agente puede usar

embeddings — Embeddings de texto

Genera embeddings mediante la API de embeddings de Perplexity. Devuelve un resumen compacto (modelo, cantidad de vectores, uso de tokens) de forma predeterminada.

ParámetroOpcionesDescripción
inputstring o string[]Texto(s) a incrustar (máx. 512)
modelpplx-embed-v1-0.6b / pplx-embed-v1-4bModelo de embedding (predeterminado: 0.6b)
dimensionsnumberDimensiones de salida (Matryoshka)
fullbooleanIncluir vectores sin procesar codificados en base64

domain_filter — Dominios en lista de permitidos/bloqueados

Restringe o excluye dominios específicos de los resultados de búsqueda. Los filtros persisten en todas las búsquedas posteriores hasta que se limpien.

  • action: "allow" — restringe los resultados a este dominio (modo de lista de permitidos)
  • action: "block" — excluye este dominio de los resultados (modo de lista de bloqueados)
  • Máximo 20 dominios; no se pueden mezclar permitidos y bloqueados en el mismo conjunto de filtros
"Allow results only from arxiv.org and nature.com"
"Block pinterest.com and reddit.com from search results"

recency_filter — Filtro de ventana de tiempo

Limita los resultados de búsqueda a un período de tiempo específico. Persiste hasta que se cambie.

Opciones: hour, day, week, month, year, none

"Set recency filter to week"
"Remove the recency filter"

clear_filters — Restablecer todos los filtros

Limpia todos los filtros de dominio y de actualidad en una sola llamada.

list_filters — Ver filtros activos

Muestra la lista de permitidos/bloqueados de dominio actualmente activa y la configuración de actualidad.

model_info — Ver o anular la selección de modelo

Ver los modelos disponibles y la selección actual, o forzar manualmente un modelo específico.

"Show model info"
"Set model to sonar-deep-research"

Selección inteligente de modelos

El servidor puntúa tu consulta contra listas de palabras clave para elegir automáticamente el modelo adecuado:

  • Palabras clave de investigación (deep research, comprehensive, in-depth) → sonar-deep-research
  • Palabras clave de razonamiento (solve, logic, mathematical, figure out) → sonar-reasoning-pro
  • Palabras clave simples (quick, brief, basic) → sonar
  • Todo lo demás → sonar-pro

Cada respuesta muestra qué modelo se usó y por qué. Si una consulta coincide fuertemente con un modelo (puntuación ≥ 2), anulará un modelo configurado manualmente.

Flujos de trabajo de ejemplo

Investigación sensible al tiempo con filtrado de dominios:

  1. recency_filterweek
  2. domain_filter → permitir nature.com, permitir arxiv.org
  3. search"Avances recientes en corrección de errores cuánticos"

Investigación de documentos financieros:

  1. raw_search con search_mode: "sec" → encontrar documentos relevantes
  2. search con search_mode: "sec" → análisis sintetizado

Revisión de literatura académica:

  1. search con search_mode: "academic", search_context_size: "high" → resultados completos de fuentes revisadas por pares

Investigación profunda con control de razonamiento:

  1. search con reasoning_effort: "high", strip_thinking: true → análisis exhaustivo sin bloques <think> en la salida

Desarrollo

npm run build   # Compile TypeScript to build/
npm start       # Run the built server

El código fuente está en src/ — después de editar, recompila y reinicia Claude para cargar los cambios.

Licencia

MIT