HTTP Requests
Un servidor MCP para realizar solicitudes HTTP, que permite a los LLMs obtener y procesar contenido web.
Documentación
mcp-server-requests
Un servidor MCP que proporciona capacidades de solicitudes HTTP, permitiendo a los LLMs obtener y procesar contenido web.
Características
- fetch: Herramienta de obtención de contenido web
- Soporta la conversión de contenido web a formato Markdown
- Soporta el filtrado de contenido web (elementos no visuales como script, style, meta)
- Se alimenta al contexto del LLM, reduciendo el consumo de tokens mediante la conversión a Markdown o el filtrado de elementos no visuales
- fetch_to_file: Herramienta de guardado de contenido web
- El contenido web no se alimenta al contexto del LLM, evitando el consumo excesivo de tokens
- http_request: Herramienta genérica de solicitudes HTTP
- Soporte completo de métodos HTTP (GET, POST, PUT, PATCH, DELETE)
- Soporta cabeceras de solicitud personalizadas
- Soporta cuerpos de solicitud en texto y JSON
- Devuelve información completa de la respuesta HTTP (estado, cabeceras, cuerpo) para los LLMs
- Soporta User-Agent personalizado
- Soporta la generación aleatoria de User-Agent
- Soporta el uso de la capacidad Root de MCP, controlado por
--use-root, utilizable con Clientes MCP que tengan la capacidadroot
Instalación
git clone https://github.com/coucya/mcp-server-requests.git
cd mcp-server-requests
pip install .
Uso
Configuración del Servidor MCP
{
"mcpServers": {
"mcp-server-requests": {
"command": "python",
"args": [
"-m",
"mcp_server_requests"
]
}
}
}
Línea de Comandos
0. Iniciar el Servidor MCP
Inicie el servidor MCP directamente:
python -m mcp_server_requests
Opciones
--user-agent TEXT: Especificar una cadena User-Agent personalizada--random-user-agent [browser=xxx;os=xxx]: Usar un User-Agent generado aleatoriamente--force-user-agent: Forzar el uso del User-Agent especificado en la línea de comandos, ignorando el UA proporcionado por el LLM--list-os-and-browser: Listar los navegadores y sistemas operativos disponibles para la generación aleatoria de User-Agent--use-root: Habilitar el soporte de raíz del espacio de trabajo para operaciones de archivos (requiere un Cliente MCP con soporte de capacidadroot)--allow-external-file-access: Permitir operaciones de archivos fuera del espacio de trabajo (solo con --use-root)
Detalles de las Opciones
-
--user-agenty--random-user-agentson mutuamente excluyentes y no pueden usarse juntos -
Métodos de configuración del User-Agent:
- Cadena personalizada:
--user-agent "Mozilla/5.0 (...)" - Totalmente aleatorio:
--random-user-agent - Generación aleatoria condicional:
- Especificar tipo de navegador:
--random-user-agent browser=chrome - Especificar sistema operativo:
--random-user-agent os=windows - Tanto navegador como sistema operativo:
--random-user-agent browser=chrome;os=windows - Nota: Los parámetros de navegador y sistema operativo no distinguen entre mayúsculas y minúsculas
- Especificar tipo de navegador:
- Cadena personalizada:
-
Use
--list-os-and-browserpara ver los navegadores y sistemas operativos disponibles para--random-user-agent. -
La opción
--force-user-agentcontrola la prioridad del User-Agent:- Cuando
--force-user-agentestá habilitado: Forzar el uso del User-Agent especificado en la línea de comandos (mediante--user-agento--random-user-agent) - Cuando
--force-user-agentestá deshabilitado:- Si el LLM proporciona un User-Agent en
headers, usar el proporcionado por el LLM - De lo contrario, usar el User-Agent especificado en la línea de comandos
- Si el LLM proporciona un User-Agent en
- Si no se especifica ninguno, usar el User-Agent predeterminado:
Mozilla/5.0 (compatible; mcp-server-requests/{version})
- Cuando
-
--use-roothabilita operaciones de archivos relativas a la raíz del espacio de trabajo:- Requisito previo: Requiere un Cliente MCP con soporte de capacidad
root - Cuando está habilitado:
fetch_to_filepermite rutas absolutas o relativas, las rutas relativas son relativas a la raíz del espacio de trabajo - Cuando está deshabilitado:
fetch_to_filedebe usar rutas absolutas, los archivos se guardan en las ubicaciones de ruta absoluta especificadas
- Requisito previo: Requiere un Cliente MCP con soporte de capacidad
-
--allow-external-file-access: Controla si se permiten operaciones de archivos fuera del espacio de trabajo (solo utilizable con --use-root)- Requisito previo: Requiere que
--use-rootesté habilitado, esta opción no tiene efecto si--use-rootno está habilitado - Cuando está habilitado:
fetch_to_filepuede operar en archivos fuera del directorio del espacio de trabajo - Cuando está deshabilitado:
fetch_to_filesolo puede operar en archivos dentro del directorio del espacio de trabajo, incluso si se proporcionan rutas absolutas, no se pueden operar archivos fuera del espacio de trabajo
- Requisito previo: Requiere que
1. fetch - Obtener Contenido Web
El subcomando fetch es equivalente a la funcionalidad de la herramienta MCP fetch, utilizado para demostrar las capacidades de fetch.
python -m mcp_server_requests fetch <URL> [--return-content {raw,basic_clean,strict_clean,markdown}]
Opciones:
--return-content: Tipo de contenido devuelto (predeterminado: markdown)- raw: Devuelve el contenido HTML sin procesar (incluye las cabeceras de respuesta)
- basic_clean: Limpieza básica, eliminando etiquetas no visibles (script, style, meta, etc.) mientras se preserva la estructura
- strict_clean: Limpieza estricta, eliminando etiquetas no visibles y la mayoría de los atributos HTML, manteniendo solo la estructura esencial
- markdown: Convierte HTML a formato Markdown limpio
Funcionalidad
Detalles de las Herramientas MCP
1. fetch - Obtener Contenido Web
Obtiene contenido de la URL especificada y lo devuelve en el formato especificado.
Parámetros:
- url (obligatorio, cadena): URL de destino, soporta protocolos HTTP/HTTPS
- return_content (opcional, enumeración): Formato de procesamiento de contenido, predeterminado a "markdown"
"raw": Devuelve contenido HTML sin procesar con cabeceras de respuesta HTTP completas"basic_clean": Limpieza básica, eliminando etiquetas no visibles (script, style, meta, etc.) mientras se preserva la estructura HTML"strict_clean": Limpieza estricta, eliminando etiquetas no visibles y la mayoría de los atributos HTML, manteniendo solo la estructura esencial"markdown": Convierte contenido HTML a formato Markdown limpio
Devuelve: Contenido procesado según el formato especificado
2. fetch_to_file - Obtener Contenido Web y Guardar en Archivo
Obtiene contenido de la URL especificada y lo guarda en un archivo.
Parámetros:
- url (obligatorio, cadena): URL de destino
- file_path (obligatorio, cadena): Ruta de guardado del archivo
- Cuando
--use-rootestá habilitado: Debe ser una ruta relativa (relativa a la raíz del espacio de trabajo) - Cuando
--use-rootestá deshabilitado: Debe ser una ruta absoluta
- Cuando
- return_content (opcional, enumeración): Formato de procesamiento de contenido, predeterminado a "markdown", mismas opciones que la herramienta fetch
Características:
- Crea automáticamente los directorios padre para rutas anidadas
- Todos los archivos se guardan con codificación UTF-8
- Cuando
--use-rootestá habilitado, puede trabajar con--allow-external-file-accesspara controlar el alcance de acceso a archivos
Devuelve: Resultado de la operación o mensaje de error
3. http_request - Herramienta Genérica de Solicitudes HTTP
Envía solicitudes HTTP usando cualquier método y obtiene respuestas completas.
Parámetros:
- url (obligatorio, cadena): URL de destino
- method (opcional, enumeración): Método HTTP, predeterminado a "GET"
"GET","POST","PUT","PATCH","DELETE"
- query (opcional, objeto): Parámetros de consulta de URL como pares clave-valor, codificados automáticamente en URL
- headers (opcional, objeto): Cabeceras de solicitud HTTP personalizadas
- data (opcional, cadena): Datos del cuerpo de la solicitud en formato texto, mutuamente excluyentes con el parámetro json
- json (opcional, cualquier tipo): Datos del cuerpo de la solicitud en formato JSON, mutuamente excluyentes con el parámetro data
Restricciones de Parámetros:
- Los parámetros
datayjsonno pueden usarse juntos - Al usar el parámetro
json,Content-Type: application/jsonse establece automáticamente - Al usar el parámetro
data, se recomienda establecer manualmente elContent-Typeapropiado
Devuelve: Respuesta HTTP completa (línea de estado, cabeceras de respuesta y cuerpo de respuesta)
Nota: Las herramientas individuales de métodos HTTP (http_get, http_post, http_put, http_patch, http_delete) han sido eliminadas y reemplazadas por la herramienta unificada http_request.
Licencia
MIT