HTTP Requests
Um servidor MCP para fazer requisições HTTP, permitindo que LLMs obtenham e processem conteúdo da web.
Documentação
mcp-server-requests
Um servidor MCP que fornece capacidades de requisição HTTP, permitindo que LLMs busquem e processem conteúdo web.
Recursos
- fetch: Ferramenta de busca de conteúdo web
- Suporta conversão de conteúdo web para formato Markdown
- Suporta filtragem de conteúdo web (elementos não visuais como script, style, meta)
- Alimenta o contexto do LLM, reduzindo o consumo de tokens através da conversão para Markdown ou filtragem de elementos não visuais
- fetch_to_file: Ferramenta de salvamento de conteúdo web
- O conteúdo web não é alimentado no contexto do LLM, evitando consumo excessivo de tokens
- http_request: Ferramenta genérica de requisição HTTP
- Suporte completo a métodos HTTP (GET, POST, PUT, PATCH, DELETE)
- Suporta cabeçalhos de requisição personalizados
- Suporta corpos de requisição em texto e JSON
- Retorna informações completas da resposta HTTP (status, cabeçalhos, corpo) para LLMs
- Suporta User-Agent personalizado
- Suporta geração aleatória de User-Agent
- Suporta o uso da capacidade MCP Root, controlado por
--use-root, utilizável com Clientes MCP que possuem a capacidaderoot
Instalação
git clone https://github.com/coucya/mcp-server-requests.git
cd mcp-server-requests
pip install .
Uso
Configuração do Servidor MCP
{
"mcpServers": {
"mcp-server-requests": {
"command": "python",
"args": [
"-m",
"mcp_server_requests"
]
}
}
}
Linha de Comando
0. Iniciar Servidor MCP
Inicie o servidor MCP diretamente:
python -m mcp_server_requests
Opções
--user-agent TEXT: Especifica string de User-Agent personalizada--random-user-agent [browser=xxx;os=xxx]: Usa User-Agent gerado aleatoriamente--force-user-agent: Força o uso do User-Agent especificado na linha de comando, ignorando o UA fornecido pelo LLM--list-os-and-browser: Lista navegadores e SO disponíveis para geração aleatória de User-Agent--use-root: Habilita suporte à raiz do workspace para operações de arquivo (requer Cliente MCP com suporte à capacidaderoot)--allow-external-file-access: Permite operações de arquivo fora do workspace (somente com --use-root)
Detalhes das Opções
-
--user-agente--random-user-agentsão mutuamente exclusivos e não podem ser usados juntos -
Métodos de configuração do User-Agent:
- String personalizada:
--user-agent "Mozilla/5.0 (...)" - Totalmente aleatório:
--random-user-agent - Geração aleatória condicional:
- Especificar tipo de navegador:
--random-user-agent browser=chrome - Especificar SO:
--random-user-agent os=windows - Navegador e SO:
--random-user-agent browser=chrome;os=windows - Nota: Os parâmetros de navegador e SO não diferenciam maiúsculas de minúsculas
- Especificar tipo de navegador:
- String personalizada:
-
Use
--list-os-and-browserpara visualizar navegadores e SO disponíveis para--random-user-agent. -
A opção
--force-user-agentcontrola a prioridade do User-Agent:- Quando
--force-user-agentestá habilitado: Força o uso do User-Agent especificado na linha de comando (via--user-agentou--random-user-agent) - Quando
--force-user-agentestá desabilitado:- Se o LLM fornecer User-Agent em
headers, use o fornecido pelo LLM - Caso contrário, use o User-Agent especificado na linha de comando
- Se o LLM fornecer User-Agent em
- Se nenhum for especificado, use o User-Agent padrão:
Mozilla/5.0 (compatible; mcp-server-requests/{version})
- Quando
-
--use-roothabilita operações de arquivo relativas à raiz do workspace:- Pré-requisito: Requer Cliente MCP com suporte à capacidade
root - Quando habilitado:
fetch_to_filepermite caminhos absolutos ou relativos, caminhos relativos são relativos à raiz do workspace - Quando desabilitado:
fetch_to_filedeve usar caminhos absolutos, os arquivos são salvos nos locais de caminho absoluto especificados
- Pré-requisito: Requer Cliente MCP com suporte à capacidade
-
--allow-external-file-access: Controla se operações de arquivo fora do workspace são permitidas (somente utilizável com --use-root)- Pré-requisito: Requer que
--use-rootesteja habilitado, esta opção não tem efeito se--use-rootnão estiver habilitado - Quando habilitado:
fetch_to_filepode operar em arquivos fora do diretório do workspace - Quando desabilitado:
fetch_to_filesó pode operar em arquivos dentro do diretório do workspace, mesmo que caminhos absolutos sejam fornecidos, arquivos fora do workspace não podem ser operados
- Pré-requisito: Requer que
1. fetch - Buscar Conteúdo Web
O subcomando fetch é equivalente à funcionalidade da ferramenta fetch do MCP, usado para demonstrar as capacidades de fetch.
python -m mcp_server_requests fetch <URL> [--return-content {raw,basic_clean,strict_clean,markdown}]
Opções:
--return-content: Tipo de conteúdo retornado (padrão: markdown)- raw: Retorna conteúdo HTML bruto não processado (inclui cabeçalhos de resposta)
- basic_clean: Limpeza básica, removendo tags não exibíveis (script, style, meta, etc.) preservando a estrutura
- strict_clean: Limpeza estrita, removendo tags não exibíveis e a maioria dos atributos HTML, mantendo apenas a estrutura essencial
- markdown: Converte HTML para formato Markdown limpo
Funcionalidade
Detalhes das Ferramentas MCP
1. fetch - Buscar Conteúdo Web
Busca conteúdo da URL especificada e o retorna no formato especificado.
Parâmetros:
- url (obrigatório, string): URL de destino, suporta protocolos HTTP/HTTPS
- return_content (opcional, enum): Formato de processamento do conteúdo, padrão é "markdown"
"raw": Retorna conteúdo HTML bruto com cabeçalhos de resposta HTTP completos"basic_clean": Limpeza básica, removendo tags não exibíveis (script, style, meta, etc.) preservando a estrutura HTML"strict_clean": Limpeza estrita, removendo tags não exibíveis e a maioria dos atributos HTML, mantendo apenas a estrutura essencial"markdown": Converte conteúdo HTML para formato Markdown limpo
Retorna: Conteúdo processado de acordo com o formato especificado
2. fetch_to_file - Buscar Conteúdo Web e Salvar em Arquivo
Busca conteúdo da URL especificada e o salva em um arquivo.
Parâmetros:
- url (obrigatório, string): URL de destino
- file_path (obrigatório, string): Caminho de salvamento do arquivo
- Quando
--use-rootestá habilitado: Deve ser um caminho relativo (relativo à raiz do workspace) - Quando
--use-rootestá desabilitado: Deve ser um caminho absoluto
- Quando
- return_content (opcional, enum): Formato de processamento do conteúdo, padrão é "markdown", mesmas opções da ferramenta fetch
Recursos:
- Cria automaticamente diretórios pai para caminhos aninhados
- Todos os arquivos salvos com codificação UTF-8
- Quando
--use-rootestá habilitado, pode trabalhar com--allow-external-file-accesspara controlar o escopo de acesso a arquivos
Retorna: Resultado da operação ou mensagem de erro
3. http_request - Ferramenta Genérica de Requisição HTTP
Envia requisições HTTP usando qualquer método e obtém respostas completas.
Parâmetros:
- url (obrigatório, string): URL de destino
- method (opcional, enum): Método HTTP, padrão é "GET"
"GET","POST","PUT","PATCH","DELETE"
- query (opcional, objeto): Parâmetros de consulta da URL como pares chave-valor, codificados automaticamente em URL
- headers (opcional, objeto): Cabeçalhos de requisição HTTP personalizados
- data (opcional, string): Dados do corpo da requisição em formato texto, mutuamente exclusivo com o parâmetro json
- json (opcional, qualquer tipo): Dados do corpo da requisição em formato JSON, mutuamente exclusivo com o parâmetro data
Restrições de Parâmetros:
- Os parâmetros
dataejsonnão podem ser usados juntos - Ao usar o parâmetro
json,Content-Type: application/jsoné definido automaticamente - Ao usar o parâmetro
data, é recomendado definir manualmente oContent-Typeapropriado
Retorna: Resposta HTTP completa (linha de status, cabeçalhos de resposta e corpo da resposta)
Nota: As ferramentas individuais de método HTTP (http_get, http_post, http_put, http_patch, http_delete) foram removidas e substituídas pela ferramenta unificada http_request.
Licença
MIT