DeskMCP
Gateway de políticas MCP de código aberto para Windows, que permite acesso controlado do ChatGPT a arquivos locais e sessões de terminal, com permissões limitadas ao workspace, gravações protegidas, processos de propriedade da sessão e registro de auditoria.
Documentação
DeskMCP
DeskMCP é um gateway de políticas MCP local-first de código aberto que dá ao ChatGPT acesso controlado a arquivos locais, sessões de terminal e à interface de desktop do Windows. Ele executa a aplicação de políticas no seu computador, expõe uma superfície estável de ferramentas MCP e conecta-se por meio de um OpenAI Tunnel, mantendo o endpoint MCP local vinculado a 127.0.0.1.
O perfil padrão é Somente leitura. O acesso ao sistema de arquivos é limitado a um workspace que você escolhe localmente, caminhos sensíveis são excluídos antes da pesquisa e as capacidades elevadas de processo pertencem à sessão, em vez de controle arbitrário de PID.
Projeto pessoal de código aberto por edmen12.
Por que DeskMCP?
| Local-first | O Gateway e a aplicação de políticas são executados no seu computador. |
| Escopo de workspace | Perfis seguros mantêm as ferramentas de arquivo dentro da pasta que você seleciona explicitamente. |
| Seguro por padrão | A primeira execução inicia no modo Somente leitura; Controle total e Totalmente desbloqueado nunca são persistidos. |
| Fácil de instalar | A instalação autossuficiente não requer Node.js, npm, .NET, Git ou um checkout do código-fonte. |
Prévia do produto
O Painel de controle na bandeja mostra a saúde do Gateway/Tunnel, o perfil de permissão ativo, o workspace selecionado, as associações do Agent Desktop, as configurações de inicialização do Windows e a configuração do Tunnel sem expor segredos.
Início rápido no Windows
- Baixe
DeskMCP-Setup-<version>.exeda última versão do GitHub e execute-o. - Escolha o workspace ao qual o DeskMCP pode acessar.
- No OpenAI Platform, crie um Tunnel e copie o Tunnel ID e a Runtime API Key para a Primeira execução.
- No ChatGPT, abra o plugin DeskMCP existente, se já houver um. Use Plugins → New plugin somente quando o DeskMCP não estiver presente.
- Para um novo plugin, use Name: DeskMCP, Connection: Tunnel, Auth: No auth. Se o ChatGPT informar Connector name already exists, cancele a criação e reutilize o plugin DeskMCP existente.
- Selecione o Tunnel, marque I understand and want to continue e depois Scan tools.
Resultado esperado: 27 ferramentas DeskMCP.
A Runtime API Key é protegida com DPAPI do Windows e não é gravada em settings.json. As gravações de segredos são verificadas por leitura imediata do DPAPI; as configurações usam substituição atômica com backup recuperável. Você pode pular a configuração do Tunnel durante a Primeira execução e configurá-lo mais tarde.
Arquitetura
ChatGPT
↕ OpenAI Tunnel
DeskMCP Gateway (127.0.0.1:8765)
↕ local policy enforcement
├─ DeskMCP backend
│ ↳ selected workspace
│ ↳ Gateway-owned process sessions
├─ Agent Runtime
│ ↳ Workspace-bound recoverable Task Rooms
│ ↳ verified expiring artifacts
│ ↳ dynamic Streamable HTTP MCP facade
│ ↳ versioned model-readable Skills
├─ Browser Runtime
│ ↳ DeskMCP-owned Chromium profile / loopback CDP / verified screenshots
└─ Windows Computer Use backend
↳ Microsoft WinApp CLI / UI Automation / screenshot / input
O Tunnel fornece o transporte remoto. O Gateway local verifica a política antes de mutações no sistema de arquivos, processos, uso do computador, publicação de artefatos, MCP dinâmico ou Skills. O estado recuperável da tarefa permanece local em Task Rooms vinculadas ao Workspace: janelas de chat paralelas recebem capacidades opacas de sala separadas por padrão, a listagem de tarefas exige a capacidade da sala atual, e um chat interrompido pode se reanexar explicitamente pelo ID exato da tarefa ou por um ID de sala descoberto com rótulo correspondente. Artefatos e versões instaladas de Skills permanecem locais sob a raiz de dados do DeskMCP; Skills expõem instruções/recursos ao modelo, mas nunca executam scripts empacotados automaticamente. Servidores MCP dinâmicos são configurados pelo usuário e apenas sua configuração não secreta, além dos nomes de variáveis de ambiente, são persistidos. O Windows Computer Use é empacotado como um backend fixo por trás do esquema MCP estável do próprio DeskMCP, para que mudanças no backend não se tornem mudanças na API remota.
Perfis de permissão
- Read — padrão; leitura, listagem, metadados, pesquisa limitada, descoberta de Task Room além de inspeção de tarefas quando a capacidade da sala atual já está disponível, inspeção/leitura de artefatos, descoberta de MCP dinâmico em cache e listagem/obtenção/leitura de Skills instaladas, além de validação local de pacotes.
- Write — adiciona operações protegidas de criar/editar/gravar/mover, além de criação/reanexação de Task Room e mutação de tarefas, publicação/exclusão de artefatos e instalação/ativação/rollback de Skills locais no Workspace.
- Full — somente sessão; mantém o limite do sistema de arquivos do Workspace e adiciona sessões de terminal/processos, Windows Computer Use, Automação de Navegador isolada, atualização/chamadas ao vivo de MCP dinâmico e validação/instalação remota de Skills por fontes HTTPS verificadas.
- Unlock (
fully-unlocked) — somente sessão; desativa o Workspace do DeskMCP, os guardas de caminhos sensíveis e de observação de arquivos recentes, e também permite injeção de teclas em todo o sistema quando solicitada explicitamente. ACL/UAC do Windows e Secure Desktop permanecem como limites do host.
Full e Unlock nunca são persistidos. Reiniciar o DeskMCP retorna ao último perfil seguro persistido: Read ou Write. Nenhum perfil ignora ACL/UAC do Windows ou qualquer política de segurança do cliente remoto.
Superfície de ferramentas
O DeskMCP atualmente expõe uma superfície MCP estável de 27 ferramentas:
desktop_policy_status
desktop_read_file
desktop_list_directory
desktop_get_file_info
desktop_search
desktop_create_directory
desktop_write_file
desktop_edit_file
desktop_move_file
desktop_start_process
desktop_read_process
desktop_interact_process
desktop_terminate_process
desktop_ui_windows
desktop_ui_snapshot
desktop_ui_action
desktop_agent_desktop
desktop_task_manage
desktop_artifact_manage
desktop_mcp_manage
desktop_mcp_tool_search
desktop_mcp_tool_inspect
desktop_mcp_tool_call
desktop_skill_manage
desktop_browser_session
desktop_browser_snapshot
desktop_browser_act
Os esquemas permanecem descobríveis entre perfis para que a conexão remota permaneça estável. Descobrível não significa permitido: cada invocação ainda é verificada pela política local do DeskMCP antes de poder ser executada. A fachada de MCP dinâmico mantém esquemas arbitrários de servidores upstream atrás de pesquisa → inspeção → chamada, em vez de expandir a lista de ferramentas de nível superior do DeskMCP para cada servidor conectado.
O Windows Computer Use é UI Automation primeiro. desktop_ui_snapshot retorna um computer_observation_id opaco de curta duração; cada desktop_ui_action deve consumir uma observação nova. Qualquer ação invalida observações irmãs para aquela janela, e entrada física/global também invalida observações de outras janelas porque pode alterar o estado global do desktop. Mutações de GUI são serializadas em todo o processo. A captura de tela é opcional e limitada antes de ser retornada como image/png MCP; use-a quando o contexto visual for necessário, em vez de pagar o custo da imagem a cada etapa. Veja docs/COMPUTER_USE.md.
No Windows, window_mode controla apenas se o console CMD/PowerShell em si está oculto ou visível. É independente da elevação de privilégios. window_mode: "hidden" permanece o padrão para trabalho de agente em segundo plano; use window_mode: "visible" somente quando o usuário local deve ver e interagir com a janela do console. Sessões visíveis recebem entrada interativa do teclado do console do Windows em vez de desktop_interact_process.
elevation: "admin" usa o broker runas do Windows e sempre depende do fluxo normal de aprovação UAC local. É válido com qualquer modo de janela: hidden + admin mostra o prompt UAC padrão e, após a aprovação, executa o processo de administrador sem uma janela extra de CMD/PowerShell; visible + admin mostra o UAC e depois abre o console de administrador visível. Cancelamento ou negação do UAC é retornado como erro; o DeskMCP não ignora o UAC.
Pool de Agent Desktop no Windows
O Desktop 1 é reservado para o usuário local. Crie o Desktop 2 ou posterior com os Virtual Desktops do Windows, alterne para cada desktop que você deseja oferecer aos agentes e use Settings → Agent Desktop → Bind Current. Vários desktops vinculados formam um pool: cada nova concessão do Agent Control recebe o primeiro desktop ativo livre, e agentes concorrentes não podem ocupar o mesmo slot.
As configurações listam cada desktop vinculado separadamente com seu estado atual. Ready significa que o slot está disponível, Controlling significa que um agente possui o slot, e Unavailable significa que o GUID original do virtual desktop do Windows foi removido ou se tornou o Desktop 1. Associações ociosas ou indisponíveis podem ser removidas com Unbind; um desktop em controle deve sair do Agent Control primeiro. O DeskMCP resolve o número ativo do desktop do Windows a partir do GUID estável do desktop antes da alocação, para que a renumeração normal de desktops do Windows não direcione mal uma concessão.
As sessões de navegador do Agent Desktop pertencem à concessão do Agent Control, e não a uma única chamada de ferramenta. O navegador permanece aberto, incluindo estado de página/login, até que essa concessão saia, seja revogada ou sua Task Room vinculada seja concluída. A borda/HUD de segurança azul é mostrada apenas no Agent Desktop controlado atualmente em exibição; alternar de volta para o Desktop 1 oculta a sobreposição sem interromper agentes em execução em outros desktops vinculados.
Modelo de segurança
- O Gateway HTTP vincula-se apenas a
127.0.0.1:8765. - Nos modos Leitura, Gravação e Completo, o acesso permitido ao sistema de arquivos é restrito ao Workspace selecionado localmente, e verificações de caminho lexical/canônico bloqueiam escapes por symlink/junction.
- Caminhos sensíveis como
.env,.npmrc,.pypirc,.netrc,.ssh,.gnupge.aws/credentialssão negados por padrão, e a busca os exclui antes que o backend DeskMCP/ripgrep leia candidatos. - Nos modos Leitura/Gravação/Completo,
desktop_read_fileemite umobservation_idopaco de uso único. Editar, mover ou sobrescrever um arquivo existente deve apresentar a capability nova correspondente; capabilities são vinculadas a caminho/versão, de uso único, limitadas a 1024 entradas, e mutações no mesmo caminho são serializadas entre instâncias do Gateway, de modo que agentes concorrentes não podem sobrescrever uns aos outros silenciosamente a partir da mesma versão observada. - Desbloquear desativa intencionalmente essas três proteções de sistema de arquivos do DeskMCP para a sessão atual. A auditoria permanece habilitada e as permissões da conta Windows continuam sendo o limite local final.
- As ferramentas de processo usam IDs de sessão opacos de propriedade do Gateway em vez de expor controle arbitrário de PID do Windows. A capacidade conta sessões ativas mais reservas de início em andamento, de modo que no máximo 32 sessões de propriedade podem estar ativas/iniciando ao mesmo tempo. O próprio
list_sessionsdo backend DeskMCP é a fonte de verdade da sessão ativa (em vez de suposições de vivacidade de PID do SO); capabilities de sessões concluídas permanecem legíveis em um histórico limitado, qualquer reutilização posterior do mesmo PID do SO invalida capabilities mais antigas para aquele PID, e o desligamento do Gateway limpa sessões ativas de propriedade. - Computer Use expõe capabilities
window_idopacas em vez de alvos HWND/PID. Umcomputer_observation_idnovo é exigido para cada ação, observações expiram após 30 segundos e são de uso único, e a primeira ação em uma janela invalida observações irmãs do mesmo estado de interface. Entrada física/global também invalida observações de outras janelas porque pode alterar o estado global da área de trabalho. - Computer Use está disponível apenas no modo Controle Total somente de sessão ou Totalmente Desbloqueado. Ele não contorna ACL/UAC do Windows, a tela de bloqueio ou a Área de Trabalho Segura do UAC. Injeção de teclas em todo o sistema exige Totalmente Desbloqueado; chamadores remotos não podem selecionar o transporte de teclado
post-messagede integridade cruzada do WinApp. O modo de segundo plano do Agent Desktop pode selecionar internamente um transporte restrito direcionado a janelas após validação de lease/janela, de modo que não roube a área de trabalho em primeiro plano do usuário. - Todas as operações de interface gráfica compartilham um coordenador de todo o processo, de modo que múltiplos clientes MCP não podem alterar a área de trabalho simultaneamente. Ações de Automação de Interface são preferidas em vez de entrada injetada; capturas de tela são opcionais, limitadas em tamanho, e arquivos PNG temporários são removidos após a captura.
- Tarefas recuperáveis são persistidas em Salas de Tarefas vinculadas ao Workspace. Cada sala usa uma capability opaca cujo segredo é armazenado apenas como hash SHA-256 localmente; chamadas normais de listar/obter/alterar tarefas exigem essa capability, de modo que janelas de chat paralelas não compartilham estado de tarefa por padrão. Recuperação explícita pode emitir uma capability adicional apenas a partir de um ID de tarefa exato ou um ID de contexto descoberto exato mais rótulo correspondente. As capabilities da sala também são vinculadas à impressão digital do Workspace selecionado. Mutações dentro de uma sala permanecem serializadas, e uma tarefa não pode ser concluída até que todas as etapas declaradas estejam completas e uma revisão final passe com evidência verificada e sem
open_risksoumissing_checksrestantes. - Artefatos só podem ser publicados a partir de caminhos aprovados pela política do DeskMCP. O DeskMCP copia o payload para sua própria raiz de estado, registra metadados SHA-256/tamanho, reverifica a integridade nas leituras, expira artefatos após um período de retenção limitado e assina URLs de download. URLs de artefatos HTTP simples são permitidas apenas para hosts de loopback; URLs de artefatos remotas exigem HTTPS e credenciais em URL são rejeitadas. Mutações de artefatos são serializadas entre Gateways e o armazenamento impõe um orçamento total de payload limitado.
- Servidores MCP dinâmicos usam uma fachada fixa de busca → inspeção → chamada. HTTP remoto simples e credenciais embutidas em URL são rejeitados; dados de registro persistidos contêm nomes de variáveis de ambiente em vez de valores secretos. OAuth suporta tanto registro automático de clientes quanto clientes pré-registrados: estes últimos registram um ID de cliente público mais um nome de variável de ambiente local para o segredo do cliente, nunca o próprio segredo. Atualização e chamadas upstream ao vivo exigem Completo ou Desbloqueado. Mutações de registro são serializadas entre instâncias do Gateway, tamanhos de servidor/ferramenta/esquema/resultado são limitados, e a atualização de múltiplos servidores tem um prazo total. Esta implementação suporta apenas Streamable HTTP; stdio é intencionalmente não exposto porque iniciar servidores MCP filhos arbitrários contornaria o limite de processos de propriedade do DeskMCP.
- Skills são pacotes versionados de instruções/recursos legíveis por modelo por trás da fachada única
desktop_skill_manage. Instalações locais devem vir de um caminho de Workspace aprovado pela política; validação/instalação de ZIP remoto exige Completo ou Desbloqueado, HTTPS sem credenciais em URL e um SHA-256 fornecido pelo chamador. Arquivos rejeitam travessia, symlinks, entradas criptografadas, caminhos inseguros para Windows, expansão excessiva e conflitos mutáveis de versão/digest declarados. O conteúdo instalado do pacote é reverificado contra seu manifesto imutável antes de leitura/ativação/rollback/reutilização.scripts/de Skill são apenas recursos e nunca são executados automaticamente por este subsistema. - Automação de Navegador exige Completo ou Desbloqueado. Configurações → Automação de Navegador detecta automaticamente um Edge, Chrome ou Chromium local por padrão; Escolher Navegador fixa um
.exeexplícito, Limpar desativa a Automação de Navegador e Detecção Automática reativa a descoberta.DESKTOP_MCP_BROWSER_EXECUTABLEpermanece uma substituição explícita de desenvolvimento/ambiente apenas enquanto a detecção automática estiver habilitada e nenhuma seleção local salva existir. O DeskMCP permanece o único proprietário do processo do navegador por meio de ProcessHost/Objetos de Trabalho do Windows e nunca se anexa a uma sessão pessoal de navegador/CDP existente. O mecanismo de controle padrão éplaywright-coresobre uma porta CDP aleatória somente de loopback; o Playwright nunca inicia ou fecha o navegador de propriedade do DeskMCP. Snapshots de acessibilidade de IA fornecem referências de elementos com escopo de observação, incluindo referências entre quadros comof1e2, e valores de entrada de senha são redigidos antes que qualquer dado de snapshot seja retornado. Ações de navegador exigem umbrowser_observation_idnovo de uso único, rejeitam estado de acessibilidade obsoleto e autorizam no máximo uma ação de alteração de estado. Navegadores do Agent Desktop restringem toda a árvore de processos de propriedade ao lease ativo. Uploads permanecem sob a política de sistema de arquivos do DeskMCP; downloads são autorizados por observação, preparados sob estado privado do DeskMCP, verificados por tamanho, publicados por meio do armazenamento de Artefatos verificado e então removidos do armazenamento temporário. Perfis persistentes têm bloqueios de propriedade entre Gateways, além de contagem limitada de perfis e ciclo de vida explícito de listar/excluir; perfis efêmeros são excluídos ao fechar. Capturas de tela de navegador são limitadas em pixels/bytes antes da publicação de Artefato. Observação de console/rede é opt-in explícito: nenhum histórico é armazenado em buffer até queinclude_console/include_networkseja solicitado para aquela página, e então apenas histórico em memória limitado é retido. Registros de rede expõem método/recurso/status mais uma URL sem credenciais, consulta e fragmento; corpos e cabeçalhos de solicitação/resposta nunca são capturados. Texto de console é limitado e redige valores no estilo Authorization/Cookie/Set-Cookie.DESKTOP_MCP_BROWSER_ENGINE=legacy-cdpé apenas uma alternativa explícita de migração local; falhas do Playwright nunca rebaixam silenciosamente o mecanismo, e observabilidade/ações somente do Playwright falham explicitamente sob o mecanismo legado. - A auditoria registra apenas metadados; ela não registra conteúdo de arquivos, entrada/saída de terminal, cabeçalhos Authorization, chaves de API, pixels de capturas de tela ou IDs reais de processo/janela. Gravações e mutações de interface gráfica são serializadas dentro de seus respectivos domínios de segurança, e os logs de auditoria giram em 10 MB com quatro backups limitados.
Relatórios de segurança devem usar Relato de vulnerabilidade privado do GitHub, não uma issue pública.
Os dados do usuário ficam em:
%APPDATA%\DesktopMCP\settings.json
%LOCALAPPDATA%\DesktopMCP\secrets\tunnel-runtime-key.dpapi
%LOCALAPPDATA%\DesktopMCP\logs\audit.jsonl
%LOCALAPPDATA%\DesktopMCP\workspace\
%LOCALAPPDATA%\DesktopMCP\tasks\
%LOCALAPPDATA%\DesktopMCP\artifacts\
%LOCALAPPDATA%\DesktopMCP\mcp-hub\
%LOCALAPPDATA%\DesktopMCP\skills\
%LOCALAPPDATA%\DesktopMCP\browser\
Esses caminhos internos retêm intencionalmente DesktopMCP para compatibilidade de atualização, mesmo que o nome público do produto seja DeskMCP.
Comportamento da bandeja
- Sair do Painel de Controle (Manter Serviços em Execução) fecha apenas a interface.
- Sair do DeskMCP interrompe o Gateway e qualquer processo de Túnel de propriedade deste Painel e, em seguida, fecha a interface.
- Processos de Túnel gerenciados externamente não são encerrados pelo DeskMCP.
A desinstalação remove os arquivos do programa. Configurações, segredos, logs e o Workspace padrão são mantidos, a menos que o usuário escolha explicitamente limpar os dados do usuário.
Fluxo de trabalho do desenvolvedor
Requisitos do usuário final e requisitos de desenvolvimento de código-fonte são intencionalmente separados.
npm.cmd ci --ignore-scripts
npm.cmd test
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\control-panel\wpf\validate.ps1
Para desenvolvimento local, control-panel\wpf\launch.cmd compila o Gateway e o Painel de Controle .NET 10 e, em seguida, inicia a compilação de desenvolvimento atual.
Compile o release completo do Windows com:
scripts\build-installer.cmd
O pipeline de release executa compilação do Gateway, geração limpa de dist, publicação WPF autocontida, instalação de dependências somente de produção, inventário/aviso de licenças de terceiros, verificações de proveniência/arquitetura do CLI WinApp fixado, smoke de preparação, validação de 27 ferramentas, validação de Instância Única, verificações de órfãos/bloqueios, compilação do Setup de marca, geração de integridade SHA-256 de arquivos críticos, rollback por falha injetada, recuperação de instalação corrompida/interrompida, smoke de instalação → atualização → execução → desinstalação e geração final de metadados de release.
Artefatos gerados ficam sob runtime\release\ ignorado e devem ser anexados aos Releases do GitHub em vez de commitados.
Verificação de release
Uma compilação de release concluída grava SHA256SUMS.txt e release-manifest.json ao lado do instalador final.
Get-FileHash .\runtime\release\DeskMCP-Setup-<version>.exe -Algorithm SHA256
Compare o resultado com SHA256SUMS.txt antes de executar uma compilação não assinada.
Política de assinatura de código
O DeskMCP enviou sua aplicação ao programa de assinatura de código aberto da SignPath Foundation e aguarda aprovação do projeto. Consulte CODE_SIGNING_POLICY.md para as funções de assinatura, regras de proveniência, política de aprovação e modelo de fixação de editor.
Aguardando aprovação do projeto: Assinatura de código gratuita fornecida por SignPath.io, certificado pela SignPath Foundation. Nenhum release é representado como assinado pela SignPath até que carregue uma assinatura válida do fluxo de trabalho de assinatura aprovado.
Privacidade e comportamento de rede são documentados em PRIVACY.md.
Limitações atuais
- Os releases atuais do Windows fornecem artefatos nativos separados para x64 e ARM64. O pipeline de release do Windows valida preparação de release, instalação/atualização, rollback/recuperação, execução e desinstalação; artefatos permanecem não assinados até que uma identidade de assinatura de produção seja configurada.
- Um cliente nativo de barra de menus para macOS ARM64 e um Developer Preview para download são validados em CI Apple Silicon. O preview é assinado ad-hoc e não notarizado; um release para usuários gerais do macOS ainda exige assinatura Developer ID, notarização e verificações de prontidão de paridade de produção. Consulte macOS Developer Preview.
- As configurações implementam o fluxo de atualização segura controlado pelo usuário por meio de verificações de release de repositório fixo, metadados imutáveis, verificação local de SHA-256/tamanho, verificação opcional de editor Authenticode, Atualizar Agora com um clique e verificação de versão/perfil pós-instalação. Releases não assinados podem usar o caminho de atualização verificado após as portas de integridade passarem; assinaturas inválidas ou incompatibilidades de fixação de editor configuradas são bloqueadas.
- O Setup do Windows de código aberto pode ser distribuído não assinado; o Windows ainda pode mostrar avisos de Editor Desconhecido / SmartScreen até que uma identidade de assinatura de release seja configurada.
- Algumas dependências transitivas do npm emitem avisos de depreciação, embora o
npm auditde produção atual relate zero vulnerabilidades.
Roadmap
O trabalho atual do roadmap é rastreado publicamente com critérios de aceitação explícitos:
- 🚧 #5 — Validação completa de ponta a ponta para novo usuário Windows — ainda requer uma passagem de instalação/inicialização/Primeira Execução/desinstalação com usuário limpo fora da conta de desenvolvimento.
- 🚧 #6 — Assinatura Authenticode opcional — aprovação da SignPath Foundation, primeira verificação de artefato assinado e fixação do editor de produção permanecem pendentes.
- ✅ #7 — Empacotamento e validação Windows ARM64 — pipeline de runtime/instalador ciente do alvo e passagem de validação nativa de cadeia completa Windows ARM64 tanto no branch de recurso quanto no commit principal mesclado; issue encerrada.
- ✅ #8 — Mecanismo de atualização seguro — validação de confiança, download verificado, reversão/recuperação, preservação de perfil, tratamento de falhas e fallback manual implementados; issue encerrada. Assinatura de produção permanece rastreada pela #6.
- ✅ #9 — Variação de inicialização do backend DeskMCP — perfilada, atribuída à variação de inicialização upstream, evidenciada com diagnósticos de inicialização e encerrada.
- 🚧 #10 — Interface de atualização controlada pelo usuário — o caminho de atualização verificada em um clique está implementado; Authenticode de produção permanece um aprimoramento opcional de identidade do editor rastreado separadamente da disponibilidade básica do atualizador.
Suporte ao DeskMCP
DeskMCP é gratuito e de código aberto. Se ele economiza seu tempo e você deseja apoiar a manutenção contínua, você pode patrocinar o projeto por meio do GitHub Sponsors assim que o perfil de edmen12 Sponsors for aprovado.
O patrocínio é totalmente opcional e nunca altera o acesso ao DeskMCP, a disponibilidade de recursos, o tratamento de segurança ou a prioridade de suporte. O botão de financiamento do repositório está configurado em .github/FUNDING.yml.
Suporte
Comece com docs/TROUBLESHOOTING.md. Para bugs reproduzíveis, solicitações de recursos e relatórios de segurança privados, consulte SUPPORT.md. Nunca publique chaves de runtime Tunnel, chaves de API ou conteúdos de arquivos privados em uma issue pública.
Arquivos do projeto
SUPPORT.md— canais de suporte e orientações de relatoSECURITY.md— relato de vulnerabilidades e limites de segurança- PRIVACY.md — dados locais e comportamento de rede controlado pelo usuário
- CODE_SIGNING_POLICY.md — funções SignPath, proveniência de build, política de aprovação e fixação de editor
CONTRIBUTING.md— fluxo de contribuiçãoCHANGELOG.md— mudanças do projetoRELEASE_CHECKLIST.md— QA de lançamentoTHIRD_PARTY_NOTICES.md— licenciamento de dependências empacotadasdocs/USER_GUIDE.md— guia ilustrado de instalação e usodocs/COMPUTER_USE.md— fluxo de Computer Use do Windows, permissões, segurança de observação e empacotamento do backenddocs/MACOS_DEVELOPER_PREVIEW.md— download da Developer Preview para Apple Silicon, checksum e orientações sobre Gatekeeperdocs/TROUBLESHOOTING.md— caminhos comuns de configuração e recuperaçãodocs/UPDATE_SECURITY.md— modelo de confiança de atualização, portões de execução e contrato de reversão/recuperação- docs/SIGNPATH_APPLICATION.md — status da aplicação à SignPath Foundation e plano de integração pós-aprovação
docs/BRAND.md— identidade visual e regras de marca do DeskMCP
Licença
DeskMCP é licenciado sob a Apache License 2.0. Consulte LICENSE.
Componentes de terceiros mantêm suas próprias licenças; consulte THIRD_PARTY_NOTICES.md e os arquivos de licença incluídos no lançamento.
Construído como um projeto pessoal de código aberto por edmen12.