Skip to main content
Glama
brigsd

mcp-ia-web

by brigsd

mcp-ia-web

Coleção de servidores MCP (Model Context Protocol) locais. Cada subpasta é um servidor independente, com o seu próprio README.md, e em conjunto eles formam um conjunto de peças para construir uma IA capaz de agir como agente na máquina.

Duas abordagens

Os servidores deste repositório resolvem a relação entre IA e agente por dois caminhos complementares.

O primeiro é expor a máquina local a uma IA: o servidor MCP fornece ao modelo acesso ao terminal e ao sistema de arquivos, de modo que ele próprio execute ações no computador. É o caso do mcp-qwen-coder.

O segundo é delegar raciocínio a uma IA web: um agente host, como o Claude Code ou o Antigravity, encaminha uma tarefa a um modelo disponível na web e recebe a resposta, utilizando-o como capacidade de raciocínio adicional. É o caso do mcp-gemini-web, do mcp-deepseek-web e do mcp-qwen-controller, este último dirigindo o aplicativo Qwen Chat desktop.

As duas abordagens podem ser combinadas: o agente resolve localmente o que é simples e delega ao Gemini, ao DeepSeek ou ao Qwen as tarefas que exigem maior capacidade de raciocínio, reservando o recurso mais custoso para quando ele é de fato necessário.

Related MCP server: Terminal MCP Server

Os servidores

Servidor

Abordagem

Porta

README

mcp-qwen-coder

acesso local

— (stdio/HTTP)

mcp-gemini-web

delegação web

8765

mcp-deepseek-web

delegação web

8766

mcp-qwen-controller

delegação web (app desktop)

CDP 9222

mcp-qwen-coder — acesso ao terminal e aos arquivos

Concede a uma IA acesso ao terminal e ao sistema de arquivos da máquina, permitindo que ela atue como um agente local. Foi pensado para o Qwen Chat desktop, mas funciona com qualquer host MCP. A sessão é persistente: o diretório de trabalho é mantido entre comandos, o que permite navegar pelo sistema, rodar builds e executar scripts em sequência.

As ferramentas expostas são run_command, change_directory, get_working_directory, list_directory, read_file, write_file, edit_file e get_system_info. O servidor opera em dois transportes: stdio, para um host local, e HTTP, para uma IA web acessá-lo pela rede, neste caso com token Bearer e, idealmente, atrás de um túnel seguro. Há ainda uma restrição opcional de diretório (MCP_ALLOWED_DIR) e uma lista de comandos bloqueados, mas a restrição de diretório não se aplica ao run_command e, portanto, não constitui isolamento forte. O README do servidor descreve também como executar várias instâncias logadas do Qwen, por meio da clonagem de perfil, para um esquema multi-agente.

mcp-gemini-web e mcp-deepseek-web — delegação a uma IA web

Permitem que um host encaminhe uma tarefa a um modelo web e receba a resposta. A interação ocorre pelo DOM da página, sem uso do mouse ou do teclado físicos, em uma aba em segundo plano, de modo que o uso do computador não é interrompido.

Cada um oferece três níveis de uso. O envio simples (pergunta_gemini / pergunta_deepseek) faz uma pergunta avulsa. A seleção de capacidade escolhe o modelo ou modo (selecionar_modelo_gemini; no DeepSeek, o modo no configurar mais os toggles de selecionar_modo_deepseek). E o fluxo "API" (configurar_* mais consultar_*) fixa um prompt de sistema e faz chamadas com contexto enxuto. O estado da conexão sai de gemini_status / deepseek_status.

O fluxo "API" transforma o chat em um endpoint com prompt de sistema fixo: configurar_* abre um chat novo e fixa a primeira mensagem como configuração, e cada consultar_* edita a segunda mensagem em vez de enviar uma nova. Como editar regenera a resposta e descarta o que vinha depois, o contexto permanece em configuração + pergunta atual e não cresce a cada chamada. Os detalhes de modelo, modo e limitações estão no README de cada servidor.

Cada servidor inclui ainda um inspecionar_*, ferramenta de diagnóstico de uso excepcional: serve apenas para calibrar os seletores quando o site muda de interface, e não para a operação normal.

mcp-qwen-controller — delegação ao Qwen Chat desktop

Segue a mesma ideia de delegação, mas o alvo é o aplicativo Qwen Chat desktop, e não uma aba do navegador. Por ser um aplicativo Electron iniciado com a porta de depuração aberta, o servidor o controla diretamente pelo Chrome DevTools Protocol, sem extensão. A conversa vive em um webview (chat.qwen.ai) dentro do aplicativo.

A superfície de ferramentas é a mesma dos demais: pergunta_qwen para o envio simples, selecionar_modelo_qwen para trocar o modelo, o par configurar_qwen mais consultar_qwen para o fluxo "API", qwen_status para o estado e inspecionar_qwen para a calibração excepcional. O requisito de operação é que o Qwen desktop esteja aberto, autenticado e iniciado com --remote-debugging-port=9222.

Arquitetura dos servidores de delegação web

Os dois seguem a mesma arquitetura:

host MCP  ──tool──>  servidor (Python)  ──WebSocket──>  extensao Chrome  ──DOM──>  IA web

Quando o host chama pergunta_* com a tarefa, o servidor MCP, que mantém uma ponte WebSocket local, gera um identificador único e aguarda (long-poll) a resposta correspondente a esse identificador. A extensão, conectada como cliente WebSocket, escreve a tarefa no campo da página, envia, acompanha a resposta enquanto ela é gerada e, quando o texto se estabiliza, devolve o resultado. O identificador associa cada resposta ao pedido que a originou.

Para o host, o resultado é uma ferramenta síncrona que leva alguns segundos. Cada servidor utiliza uma porta própria (8765 para o Gemini, 8766 para o DeepSeek), de modo que os dois podem operar simultaneamente. A ausência de rastros perante o provedor decorre do uso da sessão real, já autenticada no navegador, e não de qualquer manipulação de entrada.

Alguns aspectos exigiram tratamento específico na implementação. O service worker do Chrome (Manifest V3) hiberna após cerca de 30 segundos, o que derrubaria a conexão; por isso o servidor envia um ping a cada 20 segundos e a extensão mantém um alarme de reconexão. Além disso, recarregar a extensão deixa o content script órfão na aba aberta, de modo que o background o reinjeta automaticamente quando necessário.

A limitação que permanece é a dependência dos seletores de interface, que mudam quando o site é atualizado. A correção, nesse caso, concentra-se em um único ponto: o objeto SEL, no início do content.js de cada extensão.

O mcp-qwen-controller adota um transporte diferente. Em vez de extensão e WebSocket, o servidor fala Chrome DevTools Protocol direto com o webview do aplicativo: lê o DOM e preenche os campos com Runtime.evaluate e clica por coordenada com um evento confiável (Input.dispatchMouseEvent). Esse clique confiável abre menus, como o seletor de modelo, que um clique sintético não abriria. A espera pela resposta é por estabilização do texto, ignorando o bloco de pensamento do modelo e confirmando o fim pelo rodapé de ações. Os seletores, aqui, ficam no objeto SEL no início do qwen_bridge/driver.js.

Instalação e registro

1. Instalar as dependências

A raiz mantém um ambiente virtual compartilhado e um requirements.txt que reúne os três servidores, incluindo o mcp-qwen-coder como pacote editável:

python -m venv .venv
# Windows:  .venv\Scripts\activate
pip install -r requirements.txt

Cada subpasta também possui o seu próprio requirements.txt, caso prefira manter ambientes separados por servidor.

2. Registrar no host

No Claude Code, o .mcp.json da raiz já declara os quatro servidores (gemini-web, deepseek-web, ia-local e qwen-controller). Basta abrir esta pasta como projeto: o Claude Code os detecta automaticamente e solicita aprovação.

O host precisa utilizar o mesmo interpretador Python em que as dependências foram instaladas. Ative o ambiente virtual antes de iniciar o host, ou aponte o campo command para o Python do ambiente. A falha mais comum de conexão decorre de o host usar outro Python, sem as dependências.

Em outros hosts (Claude Desktop, Antigravity, Qwen Chat), a configuração reside no próprio host, e não no repositório. Utilize os trechos de configuração presentes no README de cada subpasta.

3. Instalar a extensão (servidores de delegação web)

Em chrome://extensions, ative o Modo do desenvolvedor, escolha "Carregar sem compactação" e selecione a pasta extension/ do servidor desejado. Em seguida, abra a página da IA já autenticada (gemini.google.com ou chat.deepseek.com), que pode permanecer fixada em segundo plano. A ferramenta *_status deve então indicar conectada.

4. Preparar o Qwen desktop (mcp-qwen-controller)

O mcp-qwen-controller não usa extensão. Em vez disso, o aplicativo Qwen Chat desktop precisa estar aberto, autenticado e iniciado com a porta de depuração: --remote-debugging-port=9222. Com isso, qwen_status deve indicar conectado. Os detalhes de como iniciar o aplicativo com esse argumento estão no README do servidor.

Uso

Com os servidores registrados, o host invoca as ferramentas como quaisquer outras. As ferramentas gemini_status e deepseek_status confirmam que a extensão está conectada; pergunta_gemini e pergunta_deepseek encaminham a tarefa e devolvem a resposta; e run_command, read_file e edit_file, entre outras, permitem ao agente atuar localmente por meio do mcp-qwen-coder.

Segurança e conformidade

O mcp-qwen-coder executa comandos arbitrários e deve ser tratado como acesso integral ao terminal. O modo HTTP só deve ser exposto com MCP_AUTH_TOKEN definido e atrás de um túnel seguro, lembrando que a restrição de diretório não cobre o run_command.

Os servidores de delegação web automatizam a interface do Gemini, do DeepSeek e do Qwen, o que contraria os respectivos Termos de Serviço; o caminho oficialmente suportado é a API. Como utilizam a sessão já autenticada, o provedor dificilmente distingue esse uso de um uso humano, mas volume elevado e padrões regulares de uso podem ser detectados, e o risco é maior em contas corporativas. O uso é de responsabilidade do usuário.

Estado atual

O mcp-qwen-coder tem as ferramentas de comando, navegação e manipulação de arquivos prontas; o esquema de múltiplas instâncias ainda requer validação, como descrito em seu README. O mcp-gemini-web e o mcp-deepseek-web foram testados de ponta a ponta no Claude Code, incluindo a seleção de modelo/modo e o fluxo "API" (configurar mais consultar com edição da segunda mensagem). O mcp-qwen-controller teve o controlador validado diretamente via CDP (envio simples, seleção de modelo, e o fluxo configurar mais consultar com edição), e falta a validação ponta a ponta com o servidor já registrado no host.

Available Tools

5 tools
change_directoryB

Muda o diretório de trabalho da sessão (relativo ao cwd atual ou absoluto).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states the function but does not disclose error behavior (e.g., invalid path), effects on session, or any side effects. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with no wasted words. It front-loads the verb 'Muda'. While brevity is good, it could benefit from a slightly more structured format (e.g., separate sentence for clarification).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (1 param) and presence of an output schema, the description need not detail return values. However, it lacks behavioral completeness for a mutable tool (no error or confirmation info), and the language mismatch (Portuguese description with English tool name) may hinder comprehension.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds the key detail that the path can be relative or absolute, which goes beyond the schema's type-only specification. However, it omits formatting examples, allowed characters, or default behavior, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool changes the session's working directory, specifying it can be relative to the current directory or absolute. This distinguishes it from sibling tools like get_working_directory (read-only) and list_directory (listing contents).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for changing directory but provides no explicit guidance on when to use versus alternatives, nor any exclusions or prerequisites. It relies on tool name and context for inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_system_infoA

Retorna informações do sistema, shell e sessão (em JSON).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It correctly indicates the return format (JSON) but does not disclose that the tool is read-only or has no side effects. For a zero-parameter tool, this is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, concise and front-loaded. Could be slightly improved by linking to output schema or siblings, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists to document return values, and description covers the high-level return content. No missing critical information given the simplicity of the tool and the presence of output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema, so baseline is 4. Description does not need to add parameter details, and the schema coverage is 100%, making any additional param info unnecessary.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns system, shell, and session info in JSON format. This differentiates it from siblings like change_directory and run_command, which operate on directories and commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. Basic purpose is implied but no exclusions or context about when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_working_directoryA

Retorna o diretório de trabalho atual da sessão.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Sem anotações, a descrição não revela se a operação é somente leitura, se requer permissões especiais ou se tem efeitos colaterais. Apenas afirma o que faz, sem aprofundar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Descrição em uma única frase, direta e sem redundâncias. Ocupa o espaço mínimo necessário para transmitir a função.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Para uma ferramenta simples sem parâmetros e com esquema de saída presente, a descrição é adequada mas poderia mencionar o formato do diretório retornado (caminho absoluto) ou possíveis falhas (ex.: sessão não inicializada).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Não há parâmetros; a cobertura do esquema é 100%. A descrição não precisa adicionar informações sobre parâmetros, e o valor base para 0 parâmetros é 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Descreve claramente o propósito: retornar o diretório de trabalho atual. Diferencia-se dos irmãos (change_directory, list_directory) por ser específico para obter o diretório atual.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Não fornece orientação sobre quando usar esta ferramenta em vez das alternativas, como get_system_info ou list_directory. Não menciona contextos de uso ou exclusões.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_directoryC

Lista arquivos e pastas (default: diretório atual da sessão).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It only states basic listing behavior without disclosing if it is recursive, shows hidden files, or has output limits. The output schema exists but is not described here, so agent lacks insight into return structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. For a simple tool with one parameter, it is appropriately concise, though it could include more useful details without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple but the description lacks completeness. It does not specify whether the listing includes hidden files, whether it is recursive, or how errors (e.g., invalid path) are handled. An output schema exists but its content is not hinted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage. The description adds value by stating the default behavior (current directory when path is null). However, it does not clarify path format (absolute/relative) or any constraints beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists files and folders with a default of current directory. The verb 'list' and resource 'directory' are specific. Sibling tools (change_directory, get_working_directory, etc.) are distinct, but the description does not explicitly differentiate itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, limitations, or context where this tool is preferred over siblings like get_working_directory or run_command.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_commandA

Executa um comando no terminal local (CMD/PowerShell/bash) e retorna a saída.

A sessão é persistente: o diretório de trabalho definido por change_directory é mantido entre chamadas. Use timeout (segundos) para comandos demorados; o limite máximo é controlado por MCP_MAX_TIMEOUT.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description bears full burden. It discloses persistent session, directory state preservation, and timeout mechanism. But lacks details on error handling, output format, or security implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise paragraphs. Front-loaded with core purpose. No unnecessary fluff, though could be slightly more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and a simple schema, the description covers key aspects like persistent session, timeout, and purpose. Output schema exists, so lack of return format detail is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no descriptions (0% coverage). Description clarifies that 'timeout' is in seconds and that the command is executed as a string, but does not elaborate on command syntax or expected format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes a local terminal command and returns output. It distinguishes from sibling tools (e.g., change_directory, get_system_info) by focusing on running arbitrary commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context about persistent session and directory maintenance, and explains timeout usage. However, it does not explicitly state when to use this tool versus alternatives like change_directory or list_directory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv0.1.0
    • First observedchange_directory
    • First observedget_system_info
    • First observedget_working_directory
    • First observedlist_directory
    • First observedrun_command

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: directory navigation, listing, command execution, and system info retrieval, with no overlaps.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores, e.g., change_directory, get_system_info.

Tool Count5/5

5 tools is well-scoped for a shell session management server, covering all essential operations without bloat.

Completeness5/5

The tool set fully covers the intended domain of persistent shell sessions, including navigation, listing, command execution, and system information.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    An MCP server that allows AI models to execute system commands on local machines or remote hosts via SSH, supporting persistent sessions and environment variables.
    1
    36
    28
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A lightweight MCP server that provides AI assistants with access to a system's terminal through a secure terminal tool. It enables users to execute shell commands and receive stdout, stderr, and exit codes directly within an MCP-compatible client.
    1
    -
  • A
    license
    B
    quality
    A
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    13
    204
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brigsd/mcp-ia-web'

If you have feedback or need assistance with the MCP directory API, please join our Discord server