{"id":1125,"date":"2026-08-21T04:01:28","date_gmt":"2026-08-21T07:01:28","guid":{"rendered":"https:\/\/adrianosantostreina.com.br\/blog\/mcp-na-pratica-conectando-ia-a-sistemas-reais\/"},"modified":"2026-08-21T04:01:35","modified_gmt":"2026-08-21T07:01:35","slug":"mcp-na-pratica-conectando-ia-a-sistemas-reais","status":"publish","type":"post","link":"https:\/\/adrianosantostreina.com.br\/blog\/mcp-na-pratica-conectando-ia-a-sistemas-reais\/","title":{"rendered":"MCP na Pr\u00e1tica: Como Parar de Colar Contexto Manualmente e Deixar sua IA Falar Direto com os Sistemas"},"content":{"rendered":"<p>Voc\u00ea j\u00e1 deve ter vivido essa cena: o agente de IA est\u00e1 no meio de uma tarefa, precisa checar o status de um ticket no Jira, olhar um log no Datadog ou consultar uma tabela no banco de produ\u00e7\u00e3o \u2014 e voc\u00ea, sentado ali, vira o intermedi\u00e1rio. Copia o resultado de uma consulta, cola no chat, espera a IA processar, copia a resposta de volta, aplica manualmente em outro sistema. O modelo \u00e9 brilhante para raciocinar sobre o problema, mas est\u00e1 isolado atr\u00e1s de uma caixa de texto, dependente de voc\u00ea para ser as m\u00e3os e os olhos dele no mundo real.<\/p>\n<p>Esse gargalo tem nome t\u00e9cnico: falta de <em>tool calling<\/em> padronizado. Cada ferramenta de IA que voc\u00ea usa \u2014 Claude Desktop, Cursor, um agente customizado em Python \u2014 historicamente exigia sua pr\u00f3pria integra\u00e7\u00e3o propriet\u00e1ria para acessar arquivos, APIs ou bancos de dados. Resultado: voc\u00ea reescreve a mesma &#8220;cola&#8221; de integra\u00e7\u00e3o N vezes, uma para cada par (modelo, ferramenta). \u00c9 exatamente o problema que o MCP (Model Context Protocol) se prop\u00f5e a resolver, e \u00e9 sobre isso \u2014 a arquitetura, o protocolo em si e como implementar na pr\u00e1tica \u2014 que vamos tratar aqui.<\/p>\n<h2>O que o MCP resolve, tecnicamente<\/h2>\n<p>O Model Context Protocol \u00e9 um padr\u00e3o aberto, criado pela Anthropic e hoje adotado por diversos players do ecossistema, que define como aplica\u00e7\u00f5es de IA se conectam a fontes de dados e ferramentas externas. A ideia central \u00e9 simples de enunciar e poderosa na pr\u00e1tica: em vez de cada integra\u00e7\u00e3o ser um adaptador propriet\u00e1rio e \u00fanico, o MCP define um protocolo comum \u2014 baseado em JSON-RPC \u2014 para que qualquer cliente compat\u00edvel converse com qualquer servidor compat\u00edvel.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Dica do Mestre:<\/strong> O Google Cloud resume bem o valor arquitetural do protocolo: ele cria uma &#8220;conex\u00e3o padronizada e bidirecional&#8221; entre aplica\u00e7\u00f5es de IA e fontes de dados, permitindo que LLMs se conectem facilmente a ferramentas diversas sem reinventar a integra\u00e7\u00e3o a cada vez. Vale a leitura completa em <a href=\"https:\/\/cloud.google.com\/discover\/what-is-model-context-protocol\" target=\"_blank\" rel=\"noopener\">cloud.google.com\/discover\/what-is-model-context-protocol<\/a>.<\/p><\/blockquote>\n<p>A analogia mais precisa \u2014 e a que o pr\u00f3prio ecossistema usa \u2014 \u00e9 a de uma porta USB-C para IA. Antes do USB-C, cada dispositivo tinha seu pr\u00f3prio conector: um para carregar, outro para transferir dados, outro para v\u00eddeo. O USB-C unificou isso em uma interface f\u00edsica comum. O MCP faz o equivalente no plano de software: unifica a interface entre &#8220;c\u00e9rebro&#8221; (o modelo) e &#8220;m\u00e3os&#8221; (as ferramentas e dados), independente de quem fabricou cada lado.<\/p>\n<h3>As tr\u00eas pe\u00e7as do protocolo<\/h3>\n<p>Para implementar ou depurar MCP com seguran\u00e7a, voc\u00ea precisa ter claro o papel de cada componente:<\/p>\n<ul>\n<li><strong>Host<\/strong>: a aplica\u00e7\u00e3o que o usu\u00e1rio final utiliza \u2014 Claude Desktop, Claude Code, Cursor, uma aplica\u00e7\u00e3o customizada constru\u00edda com o SDK. \u00c9 quem inicia as conex\u00f5es.<\/li>\n<li><strong>Client<\/strong>: vive dentro do host e mant\u00e9m uma conex\u00e3o 1:1 com um servidor MCP espec\u00edfico, cuidando do protocolo de comunica\u00e7\u00e3o.<\/li>\n<li><strong>Server<\/strong>: o processo que exp\u00f5e capacidades \u2014 <em>tools<\/em> (fun\u00e7\u00f5es que o modelo pode chamar), <em>resources<\/em> (dados que podem ser lidos) e <em>prompts<\/em> (templates reutiliz\u00e1veis). \u00c9 aqui que mora a l\u00f3gica de integra\u00e7\u00e3o com o sistema real: seu banco, sua API, seu sistema de arquivos.<\/li>\n<\/ul>\n<p>O ponto crucial, muitas vezes ignorado por quem come\u00e7a a mexer com isso, \u00e9 que o servidor MCP n\u00e3o decide sozinho quando ser\u00e1 chamado. Ele apenas anuncia suas capacidades. Quem decide invocar uma tool \u00e9 o modelo, com base na descri\u00e7\u00e3o que voc\u00ea escreveu para ela. Isso significa que a qualidade das suas descri\u00e7\u00f5es de tool \u00e9, na pr\u00e1tica, sua interface de programa\u00e7\u00e3o com o racioc\u00ednio do LLM \u2014 um ponto que volta a aparecer mais adiante, nas armadilhas.<\/p>\n<h2>Construindo um servidor MCP do zero<\/h2>\n<p>Vamos a um exemplo com contexto real: uma equipe que quer que o agente de IA consulte o status de deploys em um sistema interno, sem que o desenvolvedor precise copiar e colar logs manualmente. Usando o SDK oficial em TypeScript (h\u00e1 tamb\u00e9m SDKs em Python, Java, Kotlin e C#, todos documentados em <a href=\"https:\/\/modelcontextprotocol.io\" target=\"_blank\" rel=\"noopener\">modelcontextprotocol.io<\/a>):<\/p>\n<pre><code>import { McpServer } from \"@modelcontextprotocol\/sdk\/server\/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol\/sdk\/server\/stdio.js\";\nimport { z } from \"zod\";\n\nconst server = new McpServer({\n  name: \"deploy-status-server\",\n  version: \"1.0.0\",\n});\n\nserver.registerTool(\n  \"get_deploy_status\",\n  {\n    title: \"Consulta status de deploy\",\n    description:\n      \"Retorna o status atual de um deploy pelo ID do servi\u00e7o. \" +\n      \"Use quando o usu\u00e1rio perguntar sobre o estado de uma implanta\u00e7\u00e3o \" +\n      \"em produ\u00e7\u00e3o, staging ou homologa\u00e7\u00e3o.\",\n    inputSchema: {\n      serviceId: z.string().describe(\"Identificador do servi\u00e7o, ex: 'checkout-api'\"),\n      environment: z.enum([\"production\", \"staging\", \"homolog\"]),\n    },\n  },\n  async ({ serviceId, environment }) =&gt; {\n    const status = await fetchDeployStatus(serviceId, environment);\n\n    return {\n      content: [\n        {\n          type: \"text\",\n          text: `Servi\u00e7o ${serviceId} em ${environment}: ${status.state} ` +\n                `(\u00faltima atualiza\u00e7\u00e3o: ${status.updatedAt})`,\n        },\n      ],\n    };\n  }\n);\n\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n<\/code><\/pre>\n<p>Repare em dois detalhes que fazem diferen\u00e7a em produ\u00e7\u00e3o: o <code>description<\/code> da tool \u00e9 escrito como uma instru\u00e7\u00e3o para o modelo, n\u00e3o como um coment\u00e1rio para o pr\u00f3ximo desenvolvedor humano. E o <code>inputSchema<\/code>, validado com Zod, funciona como contrato \u2014 o servidor rejeita chamadas malformadas antes de tocar em qualquer l\u00f3gica de neg\u00f3cio.<\/p>\n<h3>Conectando o servidor a um cliente real<\/h3>\n<p>Depois de constru\u00eddo, o servidor precisa ser registrado no host. No Claude Code, por exemplo, isso \u00e9 feito via configura\u00e7\u00e3o de projeto ou globalmente:<\/p>\n<pre><code>{\n  \"mcpServers\": {\n    \"deploy-status\": {\n      \"command\": \"node\",\n      \"args\": [\".\/mcp-servers\/deploy-status\/dist\/index.js\"]\n    }\n  }\n}\n<\/code><\/pre>\n<p>A partir desse ponto, qualquer prompt no Claude Code que envolva &#8220;verificar o status do checkout-api em produ\u00e7\u00e3o&#8221; pode disparar automaticamente a tool, sem que voc\u00ea precise sair do terminal para consultar um painel externo. O mesmo servidor, sem altera\u00e7\u00e3o de c\u00f3digo, pode ser plugado no Claude Desktop, no Cursor ou em qualquer outro host compat\u00edvel \u2014 esse \u00e9 o ganho real de padroniza\u00e7\u00e3o.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Dica do Mestre:<\/strong> A Backslash Security tem uma explica\u00e7\u00e3o direta sobre por que isso importa em termos de arquitetura de software: o MCP resolve o problema de &#8220;M integra\u00e7\u00f5es vezes N ferramentas&#8221;, transformando uma explos\u00e3o combinat\u00f3ria de conectores customizados em uma \u00fanica interface compartilhada. Leia em <a href=\"https:\/\/www.backslash.security\/blog\/what-is-mcp-model-context-protocol\" target=\"_blank\" rel=\"noopener\">backslash.security\/blog\/what-is-mcp-model-context-protocol<\/a>.<\/p><\/blockquote>\n<h2>Servidores prontos: quando n\u00e3o reinventar a roda<\/h2>\n<p>Antes de escrever seu pr\u00f3prio servidor, vale checar o ecossistema de servidores de refer\u00eancia e comunit\u00e1rios mantidos em <a href=\"https:\/\/github.com\/modelcontextprotocol\/servers\" target=\"_blank\" rel=\"noopener\">github.com\/modelcontextprotocol\/servers<\/a>. H\u00e1 implementa\u00e7\u00f5es prontas para Git, PostgreSQL, Google Drive, Slack, Puppeteer, entre outras. Para um cen\u00e1rio generalista \u2014 um time que usa Python no backend, TypeScript no front e precisa que o agente acesse o reposit\u00f3rio Git local \u2014 a configura\u00e7\u00e3o pode ser t\u00e3o simples quanto:<\/p>\n<pre><code>{\n  \"mcpServers\": {\n    \"git\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-server-git\", \"--repository\", \"\/caminho\/do\/projeto\"]\n    },\n    \"postgres\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\/server-postgres\",\n               \"postgresql:\/\/usuario:senha@localhost\/mydb\"]\n    }\n  }\n}\n<\/code><\/pre>\n<p>Com isso configurado, voc\u00ea pode pedir diretamente ao agente: &#8220;verifique se existe uma migration pendente que altera a tabela orders e me mostre o diff do \u00faltimo commit que tocou nela&#8221;. O modelo vai orquestrar chamadas \u00e0s duas tools \u2014 Git e Postgres \u2014 sem que voc\u00ea precise escrever nenhum c\u00f3digo de integra\u00e7\u00e3o.<\/p>\n<h2>Armadilhas comuns e como depurar<\/h2>\n<p>Na teoria o fluxo \u00e9 elegante. Na pr\u00e1tica, alguns problemas aparecem com frequ\u00eancia quando times colocam MCP em produ\u00e7\u00e3o.<\/p>\n<h3>1. Descri\u00e7\u00f5es de tool amb\u00edguas geram chamadas erradas<\/h3>\n<p>Se duas tools t\u00eam descri\u00e7\u00f5es parecidas \u2014 por exemplo, <code>search_users<\/code> e <code>find_user<\/code> \u2014 o modelo pode escolher a errada, ou pior, chamar as duas em sequ\u00eancia desnecessariamente, gastando tokens e lat\u00eancia. O ajuste fino aqui \u00e9 editorial: descri\u00e7\u00f5es devem ser mutuamente exclusivas e explicitar quando usar cada tool. Trate isso como voc\u00ea trataria nomes de m\u00e9todos em uma API p\u00fablica \u2014 ambiguidade no nome \u00e9 d\u00edvida t\u00e9cnica.<\/p>\n<h3>2. Excesso de tools carregadas de uma vez<\/h3>\n<p>Cada tool registrada consome espa\u00e7o no contexto do modelo com sua descri\u00e7\u00e3o e schema. Conectar dez servidores MCP simultaneamente, cada um expondo dezenas de tools, pode inflar o prompt de sistema a ponto de degradar a qualidade do racioc\u00ednio ou estourar limites de contexto. A pr\u00e1tica recomendada \u00e9 modular: ative apenas os servidores relevantes para a sess\u00e3o de trabalho atual, e em ferramentas como o Claude Code, use escopos de configura\u00e7\u00e3o por projeto em vez de registrar tudo globalmente.<\/p>\n<h3>3. Falhas silenciosas de transporte<\/h3>\n<p>Servidores locais (transporte <code>stdio<\/code>) falham de forma diferente de servidores remotos (transporte HTTP com Server-Sent Events). Um erro comum \u00e9 o processo do servidor morrer silenciosamente \u2014 por exemplo, uma exce\u00e7\u00e3o n\u00e3o tratada dentro do handler de uma tool \u2014 e o host simplesmente reportar &#8220;tool indispon\u00edvel&#8221; sem stack trace \u00fatil. Para depurar, rode o servidor manualmente fora do host primeiro:<\/p>\n<pre><code>node .\/dist\/index.js\n# Envie uma requisi\u00e7\u00e3o JSON-RPC manual via stdin para validar\n# se o servidor responde antes de conectar ao cliente\n<\/code><\/pre>\n<p>Ferramentas como o <a href=\"https:\/\/github.com\/modelcontextprotocol\/inspector\" target=\"_blank\" rel=\"noopener\">MCP Inspector<\/a> permitem testar chamadas de tool isoladamente, fora do fluxo do agente, isolando se o problema est\u00e1 no servidor ou na decis\u00e3o do modelo.<\/p>\n<h3>4. Seguran\u00e7a: tools com poder demais<\/h3>\n<p>Um servidor MCP mal projetado que exp\u00f5e uma tool gen\u00e9rica como <code>execute_sql(query: string)<\/code> abre a porta para o modelo (ou para um prompt injection vindo de um dado externo) executar comandos destrutivos. O princ\u00edpio aqui \u00e9 o mesmo de qualquer API exposta: privil\u00e9gio m\u00ednimo. Prefira tools granulares (<code>get_order_by_id<\/code>, <code>list_pending_invoices<\/code>) a uma tool universal que aceita SQL arbitr\u00e1rio. Se seu servidor precisa de acesso de escrita, isole-o do de leitura e exija confirma\u00e7\u00e3o expl\u00edcita do usu\u00e1rio nos hosts que suportam esse fluxo, como o Claude Code faz ao pedir aprova\u00e7\u00e3o antes de executar certas a\u00e7\u00f5es.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Dica do Mestre:<\/strong> Um artigo recente resume bem essa mudan\u00e7a de mentalidade no t\u00edtulo: pare de fazer hard-code das integra\u00e7\u00f5es de IA. A ideia \u00e9 tratar cada capacidade externa como uma tool desacoplada e reutiliz\u00e1vel, n\u00e3o como l\u00f3gica embutida no prompt. Vale conferir em <a href=\"https:\/\/medium.com\/@kapildevkhatik2\/stop-hard-coding-ai-tools-the-2026-guide-to-model-context-protocol-mcp-5d25fabff608\" target=\"_blank\" rel=\"noopener\">medium.com\/@kapildevkhatik2<\/a>.<\/p><\/blockquote>\n<h3>5. Versionamento e compatibilidade entre clientes<\/h3>\n<p>O protocolo evolui, e diferentes hosts implementam vers\u00f5es distintas da especifica\u00e7\u00e3o em ritmos diferentes. Um servidor que usa recursos mais recentes \u2014 como <em>sampling<\/em>, em que o servidor pode pedir ao modelo para gerar texto \u2014 pode n\u00e3o funcionar em um cliente mais antigo. Fixe a vers\u00e3o do SDK no seu <code>package.json<\/code> ou <code>requirements.txt<\/code>, e teste explicitamente contra os hosts que sua equipe realmente usa antes de considerar o servidor pronto para uso compartilhado.<\/p>\n<h2>MCP em contexto multi-linguagem<\/h2>\n<p>Um ponto que costuma passar despercebido: o servidor MCP n\u00e3o precisa ser escrito na mesma linguagem do seu projeto principal. Times que trabalham com Delphi em sistemas legados, por exemplo, podem expor uma camada de integra\u00e7\u00e3o via um servidor MCP escrito em Python ou Node.js, que por sua vez conversa com a API REST ou com o banco de dados da aplica\u00e7\u00e3o Delphi \u2014 sem tocar uma linha do c\u00f3digo legado. O protocolo \u00e9 agn\u00f3stico de linguagem por design, exatamente porque a comunica\u00e7\u00e3o acontece via JSON-RPC sobre stdio ou HTTP, n\u00e3o por bibliotecas nativas compartilhadas.<\/p>\n<p>Isso abre um padr\u00e3o de arquitetura interessante: um &#8220;hub&#8221; de servidores MCP mantidos centralmente pela equipe de plataforma, cada um especializado em um dom\u00ednio (billing, autentica\u00e7\u00e3o, observabilidade), consumidos por qualquer agente de IA que qualquer time decida usar \u2014 Claude Code, Cursor, ou um agente interno constru\u00eddo com o SDK. \u00c9 a mesma l\u00f3gica de microsservi\u00e7os aplicada \u00e0 camada de contexto de IA.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Dica do Mestre:<\/strong> Para uma introdu\u00e7\u00e3o em portugu\u00eas sobre o motivo de o MCP estar ganhando tra\u00e7\u00e3o como padr\u00e3o de mercado, vale a leitura de Elisa Terumi: &#8220;O MCP visa criar um padr\u00e3o universal para conectar modelos de IA a diversas fontes de dados e ferramentas, de forma segura e eficiente.&#8221; Dispon\u00edvel em <a href=\"https:\/\/elisaterumi.substack.com\/p\/mcp-o-protocolo-aberto-da-anthropic\" target=\"_blank\" rel=\"noopener\">elisaterumi.substack.com<\/a>.<\/p><\/blockquote>\n<h2>Aprofunde essa discuss\u00e3o na Comunidade Dev&#8217;s AI<\/h2>\n<p>MCP \u00e9 um daqueles temas em que a teoria explica 20% do trabalho e a pr\u00e1tica \u2014 depurar um servidor que falha silenciosamente, decidir onde colocar o limite entre tool granular e tool gen\u00e9rica, versionar SDKs entre projetos \u2014 resolve os outros 80%. Se voc\u00ea est\u00e1 implementando servidores MCP no seu fluxo de trabalho, ou avaliando se vale a pena migrar integra\u00e7\u00f5es propriet\u00e1rias para esse padr\u00e3o, vale trocar experi\u00eancias com quem j\u00e1 passou pelas mesmas decis\u00f5es.<\/p>\n<p>Na <a href=\"https:\/\/adrianosantos.link\/ComunidadeDevAI\" target=\"_blank\" rel=\"noopener\">Comunidade Dev&#8217;s AI<\/a> discutimos exatamente esse tipo de decis\u00e3o de arquitetura no dia a dia \u2014 com exemplos reais de projetos em produ\u00e7\u00e3o, n\u00e3o apenas teoria de documenta\u00e7\u00e3o oficial. Se voc\u00ea trabalha com Claude Code, Cursor ou est\u00e1 construindo seus pr\u00f3prios agentes, esse \u00e9 o lugar para comparar notas e evitar repetir os mesmos erros que outras equipes j\u00e1 mapearam.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>O MCP n\u00e3o \u00e9 apenas mais uma sigla no vocabul\u00e1rio de IA generativa \u2014 \u00e9 uma mudan\u00e7a estrutural em como aplica\u00e7\u00f5es de IA se conectam ao resto do seu ecossistema t\u00e9cnico. Ao padronizar a interface entre modelo e ferramenta, ele elimina a necessidade de reescrever integra\u00e7\u00f5es a cada nova combina\u00e7\u00e3o de cliente e sistema, e abre espa\u00e7o para que equipes construam bibliotecas de capacidades reutiliz\u00e1veis, test\u00e1veis e version\u00e1veis, exatamente como j\u00e1 fazem com APIs internas.<\/p>\n<p>Mas, como qualquer pe\u00e7a de infraestrutura nova, o diabo mora nos detalhes: descri\u00e7\u00f5es de tool malfeitas confundem o modelo, servidores com privil\u00e9gios excessivos criam risco de seguran\u00e7a real, e a aus\u00eancia de observabilidade adequada transforma qualquer falha em uma sess\u00e3o frustrante de tentativa e erro. Trate seus servidores MCP com o mesmo rigor de engenharia que voc\u00ea aplicaria a qualquer servi\u00e7o exposto em produ\u00e7\u00e3o \u2014 porque, tecnicamente, \u00e9 exatamente isso que eles s\u00e3o.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea j\u00e1 deve ter vivido essa cena: o agente de IA est\u00e1 no meio de uma tarefa, precisa checar o status de um ticket no Jira, olhar um log no Datadog ou consultar uma tabela no banco de produ\u00e7\u00e3o \u2014 e voc\u00ea, sentado ali, vira o intermedi\u00e1rio. Copia o resultado de uma consulta, cola no [&hellip;]<\/p>\n","protected":false},"author":127,"featured_media":1126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1125","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/1125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/users\/127"}],"replies":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1125"}],"version-history":[{"count":1,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/1125\/revisions"}],"predecessor-version":[{"id":1127,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/1125\/revisions\/1127"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/media\/1126"}],"wp:attachment":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}