# Agents Universal MCP > O assistente de IA falando com o sistema que roda o negócio: um CSV, uma > pasta de exportações, uma API com contrato, um aparelho por WebSocket ou um > programa com a biblioteca. A pessoa aponta para o sistema, a ponte descobre o > resto, e ninguém escreve um servidor MCP. Produto da linha Agents (https://myagents.click). Lido do código em 02/11/2026 (agents/universal: ponte, bibliotecas, servidor e painel). ## 0. Estado - No ar. Painel: https://universal.dashboard.myagents.click - Entrada: https://universal.dashboard.myagents.click/auth/signin - Servidor MCP: um endereço por sistema, `https://universal.worker.myagents.click/mcp/`. O endereço está na tela do sistema, em Conectar. - Não há preço público e nada é cobrado. Se perguntarem: "Ainda não há planos, e nada é cobrado." - Limites: 10 pontes e 30 sistemas por conta; arquivos de até 50 MB. ## 1. Entrar e instalar a ponte - Login pelo Auth (aplicação Agents): chega um código no e-mail da pessoa, e ela o cola. Sem senha. O primeiro login cria a conta. - No painel, Pontes, "Instalar uma ponte" gera um código que vale dez minutos. - Num computador (Mac ou Linux), na máquina que alcança o sistema: `curl -fsSL https://universal.worker.myagents.click/install | sh`, depois `universal-mcp pair --code ` e `universal-mcp run`. O instalador põe o Bun se faltar. No Windows: instalar o Bun, baixar https://universal.worker.myagents.click/universal-mcp.js e rodar `bun universal-mcp.js pair --code ` e `bun universal-mcp.js run`. - Dentro de um programa: a biblioteca da linguagem, com o mesmo código (veja a seção 3). - A ponte abre uma conexão de saída (WebSocket). Nenhuma porta é aberta na rede da pessoa. Só o hash da chave da ponte fica no servidor. ## 2. Ligar um sistema - No painel, "Novo sistema": a ponte e onde o sistema está, como a ponte vê: - um arquivo ou pasta: CSV, TSV (separador farejado, UTF-8 ou Windows-1252), JSON; - uma API com contrato OpenAPI 3 ou Swagger 2 em JSON (`http(s)://…`): GET é leitura, as outras operações são escrita; - um aparelho por WebSocket (`ws(s)://…`): a ponte escuta e agrupa as mensagens; nunca envia para aprender; - um programa com a biblioteca (`app://`), que se propõe sozinho. - O inventário da ponte (macOS e Linux) sugere o que achou na máquina: arquivos de dados abertos e portas em escuta. - A ponte descreve o sistema só lendo: entidades, campos com tipo (inclusive `4.250,00` e `02/11/2026`), listas fechadas, a chave e as ações. - Cabeçalhos de uma API (uma chave, por exemplo) ficam na máquina da ponte: `universal-mcp header "Nome: valor"`. ## 3. As bibliotecas Baixam em https://universal.worker.myagents.click/libraries/ e no painel, em Pontes. O programa declara as entidades que se leem e as ações que se executam; a biblioteca pareia com o código, guarda a chave e liga para fora. - JavaScript (Node 22+, Bun, Deno; sem dependência): `universal-mcp-program.js`, função `connectProgram`. - Python (3.9+, com `pip install websockets`): `universal_mcp.py`, classe `Program`, com `@program.entity` e `@program.action`. - Arduino (ESP32, com ArduinoJson 7 e WebSockets de Markus Sattler): `UniversalMCP.zip`, para "Adicionar biblioteca .ZIP"; a chave fica na flash. A parte de Wi-Fi e TLS ainda não rodou numa placa; o núcleo do protocolo foi testado. - Swift (iOS 15+, macOS 12+; sem dependência): `UniversalMCP.swift`, classe `UniversalProgram`. - Uma ação `write` responde com um ensaio até a pessoa aprovar; uma ação `read` roda na hora. ## 4. Conectar o cliente - Adicione o endereço do sistema ao cliente MCP. Exemplo, no Claude Code: `claude mcp add --transport http https://universal.worker.myagents.click/mcp/` - Não há chave. O endereço responde 401 com `WWW-Authenticate: Bearer resource_metadata="https://universal.worker.myagents.click/.well-known/oauth-protected-resource/mcp/"`. O cliente abre o login do Auth no navegador e a pessoa autoriza aquele sistema. Passo humano obrigatório. Não tente contornar. - O token vale só para aquele endereço. O token do painel não abre o MCP. - Streamable HTTP sem sessão: envie cada chamada como POST. - Conferido no claude.ai (conector personalizado). Outros clientes com OAuth devem funcionar, mas não foram medidos. ## 5. As ferramentas - `describe`: o que o sistema tem. Chame primeiro. - `read`: registros de uma entidade, com `filter` (campo = valor), `contains` (texto em qualquer campo, sem acento nem caixa), `limit` (até 200) e `offset`. Diz quantos casaram. - `act`: uma ação do sistema. A que lê roda na hora. A que escreve nunca roda na primeira chamada: volta um ensaio e um `approval_id`; quando a pessoa aprovar no painel (Aprovações), chame `act` de novo com o `approval_id`. Roda o que foi aprovado, não argumentos novos, uma vez. - `raw`: a chamada crua do contrato, também com aprovação. - Perguntas fixadas no painel aparecem como ferramentas com nome próprio. - Permissões por sistema, para ler e para escrever: livre, com aprovação ou bloqueado. Padrão: ler livre, escrever com aprovação. ## 6. Mudanças e histórico - A ponte descreve os sistemas de novo a cada hora; as bibliotecas, a cada conexão. Uma descrição diferente vira uma versão pendente, com o que mudou, até a pessoa aceitar. - O histórico guarda cada chamada (ferramenta, resumo, contagem), nunca os registros. ## 7. O que fica guardado - Os registros do sistema não: cada leitura vai até a ponte e volta. - A descrição: nomes, tipos, um valor de exemplo por campo e os valores das listas fechadas. - Os pedidos de aprovação: os argumentos e o ensaio da escrita pedida. - O histórico: ferramenta, resumo e contagem. ## 8. O que NÃO existe - Banco de dados (Firebird, SQL Server, MySQL, PostgreSQL), COBOL (copybook, EBCDIC, 3270), operar a tela de um programa, app de celular, extensão de navegador, escrever sozinha a peça de um formato novo. - Bibliotecas de Android (Kotlin), C# ou Java. - Instalador e inventário no Windows. - Equipes, mais de uma pessoa por conta, plano ou preço. - Não diga "qualquer sistema" nem "todos os sistemas": diga o que a ponte lê hoje. ## 9. Sem nuvem `universal-mcp serve ` serve um sistema por MCP local (stdio), na própria máquina. A escrita fica em ensaio, a menos que se passe `--allow-write`.