<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MCP |</title><link>https://clementgodbarge.com/pt/tag/mcp/</link><atom:link href="https://clementgodbarge.com/pt/tag/mcp/index.xml" rel="self" type="application/rss+xml"/><description>MCP</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>pt-pt</language><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>MCP</title><link>https://clementgodbarge.com/pt/tag/mcp/</link></image><item><title>tei-mcp v0.3: codificar em TEI sem reescrever a fonte</title><link>https://clementgodbarge.com/pt/post/tei-mcp-span-locked/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/pt/post/tei-mcp-span-locked/</guid><description>&lt;p&gt;Quando
, o objetivo
era impedir os assistentes de IA de alucinar marcação TEI. A ancoragem no
esquema resolveu parte do problema: com acesso direto, por ferramentas, à
especificação P5, o modelo já não tem de adivinhar o que um elemento significa
nem que atributos aceita. O resultado valida.&lt;/p&gt;
&lt;p&gt;Mas a alucinação tem duas faces na codificação TEI, e o esquema só apanha uma
delas. Validar contra a especificação diz-nos que a &lt;em&gt;marcação&lt;/em&gt; está bem
formada. Nada diz sobre o &lt;em&gt;texto&lt;/em&gt; que essa marcação envolve. E é aí – no
próprio texto – que vivem as alucinações mais nocivas. A composição por
intervalos bloqueados, a grande novidade da v0.3, foi concebida especificamente
para as impedir.&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;Lista de Conteúdos&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#a-alucinação-que-o-esquema-não-apanha"&gt;A alucinação que o esquema não apanha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#a-composição-por-intervalos-bloqueados"&gt;A composição por intervalos bloqueados&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#o-que-isto-é-e-o-que-não-é"&gt;O que isto é, e o que não é&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#porque-é-que-isto-importa-para-lá-da-tei"&gt;Porque é que isto importa para lá da TEI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#obter-a-atualização"&gt;Obter a atualização&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="a-alucinação-que-o-esquema-não-apanha"&gt;A alucinação que o esquema não apanha&lt;/h2&gt;
&lt;p&gt;Peça-se a um modelo que codifique uma carta francesa do século XVI e
receber-se-á muitas vezes um documento TEI de aspeto impecável. O cabeçalho
está preenchido, as etiquetas &lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt; estão bem colocadas, o &lt;code&gt;&amp;lt;dateline&amp;gt;&lt;/code&gt;
está bem formado. Passe-se pelo &lt;code&gt;validate_document&lt;/code&gt; e ele passa.&lt;/p&gt;
&lt;p&gt;Compare-se depois o corpo com a fonte.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mesme&lt;/code&gt; passou a &lt;code&gt;même&lt;/code&gt;. Uma vírgula mudou de sítio. &lt;code&gt;luy&lt;/code&gt; foi silenciosamente
modernizado em &lt;code&gt;lui&lt;/code&gt;. Uma oração de leitura difícil no manuscrito foi
«corrigida» para algo mais limpo. Nenhuma destas alterações foi pedida. Nenhuma
é assinalada. O documento é válido segundo o esquema e está discretamente
errado.&lt;/p&gt;
&lt;p&gt;Para um fluxo de trabalho de arquivo – em que o texto codificado se torna o
registo permanente de que dependem leitores, índices de pesquisa e citações –
é este o modo de falha que mais importa. Uma etiqueta malformada é um incómodo.
Uma grafia modernizada de que ninguém dá conta durante cinco anos é uma
corrupção.&lt;/p&gt;
&lt;h2 id="a-composição-por-intervalos-bloqueados"&gt;A composição por intervalos bloqueados&lt;/h2&gt;
&lt;p&gt;A nova versão (v0.3) traz um mecanismo de prevenção de alucinações apontado
diretamente a este modo de falha. O objetivo de design é tornar as alucinações
no corpo do texto impossíveis por construção, e não apenas improváveis.&lt;/p&gt;
&lt;p&gt;A ideia é simples: &lt;strong&gt;o modelo nunca escreve texto de corpo&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Em vez disso, o fluxo de trabalho é o seguinte:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;O modelo chama &lt;code&gt;get_source(&amp;quot;letter_001&amp;quot;)&lt;/code&gt; e recebe o texto simples da fonte
como cadeia imutável.&lt;/li&gt;
&lt;li&gt;Para cada etiqueta que queira aplicar, chama
&lt;code&gt;tag_span(&amp;quot;letter_001&amp;quot;, start, end, element_path, attrs)&lt;/code&gt; – registando um
elemento TEI sobre um intervalo de caracteres da fonte.&lt;/li&gt;
&lt;li&gt;Quando termina, chama &lt;code&gt;compose(&amp;quot;letter_001&amp;quot;)&lt;/code&gt;. O servidor intercala as
etiquetas registadas com o texto simples original, gera o TEI final e
verifica depois, &lt;em&gt;byte a byte&lt;/em&gt;, que o conteúdo textual plano do documento
gerado é igual à fonte.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Se os bytes coincidem, o documento é devolvido. Se não coincidem – se as
etiquetas do modelo implicarem de algum modo um corpo que difere da fonte num
único caráter que seja –, &lt;code&gt;compose()&lt;/code&gt; lança uma exceção em vez de devolver um
documento corrompido.&lt;/p&gt;
&lt;p&gt;Não há caminho, neste fluxo de trabalho, em que o modelo produza um documento
TEI cujo corpo difira da fonte. O invariante é mecânico, não comportamental.
Não é preciso confiar que o modelo não alucina; basta confiar numa comparação
&lt;code&gt;==&lt;/code&gt; entre duas cadeias de bytes.&lt;/p&gt;
&lt;h2 id="o-que-isto-é-e-o-que-não-é"&gt;O que isto é, e o que não é&lt;/h2&gt;
&lt;p&gt;A composição por intervalos bloqueados é &lt;strong&gt;complementar&lt;/strong&gt; da ancoragem no
esquema; não a substitui. As ferramentas de ancoragem no esquema
(&lt;code&gt;validate_document&lt;/code&gt;, &lt;code&gt;lookup_element&lt;/code&gt;, &lt;code&gt;valid_children&lt;/code&gt; e as restantes das
dezasseis originais) ajudam o modelo a produzir TEI &lt;em&gt;válida&lt;/em&gt;. A composição por
intervalos bloqueados garante que o corpo do texto dentro dessa TEI é &lt;em&gt;fiel&lt;/em&gt; à
fonte. Um fluxo de codificação que se possa pôr em produção tem de satisfazer
os dois eixos, e agora ambos ficam cobertos por um único servidor.&lt;/p&gt;
&lt;p&gt;Também não é uma varinha mágica para tudo. &lt;code&gt;compose()&lt;/code&gt; ainda não verifica se as
etiquetas registadas são admissíveis segundo uma personalização ODD carregada –
fica para uma próxima versão. As etiquetas registadas vivem na memória do
processo e não sobrevivem a um reinício. E os ficheiros-fonte têm de ser
legíveis a partir de onde quer que o servidor corra. Tudo isto tem solução;
nada disto abala o invariante central.&lt;/p&gt;
&lt;h2 id="porque-é-que-isto-importa-para-lá-da-tei"&gt;Porque é que isto importa para lá da TEI&lt;/h2&gt;
&lt;p&gt;O padrão generaliza-se. Sempre que se pede a um modelo que anote, transforme ou
envolva um pedaço de texto – e sempre que a integridade do texto subjacente
importa mais do que a capacidade do modelo para o «melhorar» –, aplica-se a
mesma forma de solução. Não peça ao modelo que reescreva o texto. Peça-lhe que
produza instruções sobre o texto, e deixe que um compositor determinista as
aplique sob um invariante de igualdade.&lt;/p&gt;
&lt;p&gt;Para as edições digitais em particular, isto muda o que se pode pedir a um
modelo com responsabilidade. A codificação torna-se de repente uma tarefa
delegável sem ter de comparar à mão cada resultado com a fonte. A máquina faz
o caminho enfadonho; o editor revê a marcação, não a ortografia.&lt;/p&gt;
&lt;h2 id="obter-a-atualização"&gt;Obter a atualização&lt;/h2&gt;
&lt;p&gt;Se já tem o tei-mcp instalado:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx tei-mcp@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ou de raiz:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para usar a composição por intervalos bloqueados, aponte o servidor para uma
diretoria de ficheiros-fonte em texto simples:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;TEI_MCP_SPAN_SOURCE_ROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/path/to/sources
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O radical do nome de cada ficheiro passa a ser o seu identificador de documento
(&lt;code&gt;letter_001.txt&lt;/code&gt; → &lt;code&gt;letter_001&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Código-fonte, documentação completa e notas de design do invariante:
&lt;/p&gt;</description></item><item><title>tei-mcp</title><link>https://clementgodbarge.com/pt/code/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/pt/code/tei-mcp/</guid><description>&lt;h2 id="tei-mcp-a-tei-p5-ao-alcance-dos-agentes-de-ia"&gt;tei-mcp: a TEI P5 ao alcance dos agentes de IA&lt;/h2&gt;
&lt;p&gt;O tei-mcp é um servidor
de código aberto que dá aos assistentes de programação por IA acesso direto à especificação
. Em vez de se fiar em dados de treino memorizados – o que produz muitas vezes marcação plausível, mas incorreta –, a IA pode consultar a especificação em tempo real.&lt;/p&gt;
&lt;h2 id="funcionalidades"&gt;Funcionalidades&lt;/h2&gt;
&lt;p&gt;O servidor analisa a ODD da TEI P5 e expõe 16 ferramentas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Consultar&lt;/strong&gt; qualquer elemento, classe, macro ou módulo pelo nome, sem distinção de maiúsculas e com sugestões em caso de gralha&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resolver atributos&lt;/strong&gt; ao longo de toda a hierarquia de classes da TEI (locais + herdados)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expandir modelos de conteúdo&lt;/strong&gt; em árvores estruturadas, com resolução de classes e macros&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validar o aninhamento&lt;/strong&gt; – relação direta pai-filho ou acessibilidade recursiva, com registo do caminho&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validar documentos&lt;/strong&gt; contra a TEI P5: modelos de conteúdo, atributos, listas fechadas de valores, integridade das referências e avisos de depreciação&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validar elementos isolados&lt;/strong&gt; para fluxos de edição incremental&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Carregar personalizações ODD&lt;/strong&gt; para restringir o esquema a um subconjunto específico do projeto&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pesquisar&lt;/strong&gt; em todos os tipos de entidade com expressões regulares&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="instalação"&gt;Instalação&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ou executar diretamente com:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="utilização"&gt;Utilização&lt;/h2&gt;
&lt;p&gt;Acrescente-o a qualquer cliente compatível com MCP (Claude, Cursor, Windsurf, etc.):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tei&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;uvx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tei-mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O código-fonte e a documentação estão no
.&lt;/p&gt;</description></item><item><title>tei-mcp: a TEI P5 ao alcance dos agentes de IA</title><link>https://clementgodbarge.com/pt/post/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/pt/post/tei-mcp/</guid><description>&lt;p&gt;Quem já tenha usado um assistente de programação por IA para escrever XML TEI
terá reparado que ele se engana. Aparecem elementos onde não deviam.
Inventam-se atributos. Ignoram-se as regras de aninhamento. O modelo tem uma
ideia vaga do aspeto da TEI, mas nenhum conhecimento fiável da especificação.&lt;/p&gt;
&lt;p&gt;O tei-mcp resolve o problema dando aos agentes de IA acesso direto, por meio de
ferramentas, às Guidelines da TEI P5.&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;Lista de Conteúdos&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#o-que-é-o-mcp"&gt;O que é o MCP?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#o-que-faz-o-tei-mcp"&gt;O que faz o tei-mcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#porque-é-que-isto-importa"&gt;Porque é que isto importa&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#primeiros-passos"&gt;Primeiros passos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="o-que-é-o-mcp"&gt;O que é o MCP?&lt;/h2&gt;
&lt;p&gt;O
(MCP) é uma norma
aberta que permite às aplicações de IA ligar-se a fontes de dados e ferramentas
externas. Pense-se nele como uma porta USB para a IA: um protocolo único que
permite a qualquer cliente compatível – Claude, Cursor, Windsurf e outros –
ligar-se a serviços especializados.&lt;/p&gt;
&lt;p&gt;Um servidor MCP expõe &lt;em&gt;ferramentas&lt;/em&gt; que a IA pode invocar durante uma conversa.
Em vez de se fiar em dados de treino memorizados, o modelo pode consultar uma
fonte viva e autorizada.&lt;/p&gt;
&lt;h2 id="o-que-faz-o-tei-mcp"&gt;O que faz o tei-mcp&lt;/h2&gt;
&lt;p&gt;O tei-mcp analisa a especificação ODD da TEI P5 e expõe 16 ferramentas que
cobrem as perguntas mais frequentes de um editor ou codificador:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;O que é este elemento?&lt;/strong&gt; Consultar qualquer elemento, classe, macro ou
módulo pelo nome, sem distinção de maiúsculas e com sugestões em caso de gralha.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Que atributos aceita?&lt;/strong&gt; Resolver os atributos ao longo de toda a hierarquia
de classes – primeiro os locais, depois os herdados, por ordem.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;O que pode conter?&lt;/strong&gt; Expandir os modelos de conteúdo em árvores
estruturadas, ou obter uma lista simples dos filhos válidos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Este elemento pode ir aqui?&lt;/strong&gt; Verificar o aninhamento pai-filho, ou seguir
a acessibilidade através de toda a hierarquia de elementos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;O meu documento é válido?&lt;/strong&gt; Validar um ficheiro XML TEI contra a
especificação: modelos de conteúdo, valores de atributos, listas fechadas de
valores, integridade das referências e avisos de depreciação.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E o esquema do meu projeto?&lt;/strong&gt; Carregar um ficheiro de personalização ODD
para restringir tudo o que precede ao subconjunto de TEI próprio do seu projeto.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="porque-é-que-isto-importa"&gt;Porque é que isto importa&lt;/h2&gt;
&lt;p&gt;Codificar em TEI exige consultar as Guidelines a toda a hora. Os codificadores
experientes interiorizam os padrões mais comuns, mas até eles têm de verificar
a especificação quando se trata de elementos menos familiares ou de modelos de
conteúdo complexos. Para os assistentes de IA, que não têm esse conhecimento
interiorizado, o problema é pior: alucinam marcação de aspeto plausível, mas
incorreta.&lt;/p&gt;
&lt;p&gt;Com o tei-mcp, a IA não tem de adivinhar. Pode procurar a resposta na
especificação antes de escrever um único parêntese angular. O resultado é
marcação conforme à TEI P5 – ou à personalização ODD do seu projeto.&lt;/p&gt;
&lt;h2 id="primeiros-passos"&gt;Primeiros passos&lt;/h2&gt;
&lt;p&gt;Instale a partir do PyPI:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Depois, acrescente-o à configuração do seu cliente MCP:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tei&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;uvx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tei-mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O servidor descarrega a especificação TEI na primeira execução e funciona com
qualquer cliente compatível com MCP.&lt;/p&gt;
&lt;p&gt;Código-fonte e documentação completa:
&lt;/p&gt;</description></item></channel></rss>