Miro MCP Server
Controle quadros brancos do Miro com IA. 77 ferramentas para gerenciamento de quadros, notas adesivas, formas, conectores, quadros e geração de diagramas Mermaid.
Documentação
Miro MCP Server
Execute seus workshops, retros e sessões de planejamento do Miro pela linha de comando. Leia quadros, crie lembretes, organize frames e gere diagramas por meio do Claude, Cursor ou qualquer cliente MCP.
Projeto comunitário — Não afiliado oficialmente ao Miro. Veja opções oficiais abaixo.
110 ferramentas | Binário único | Todas as plataformas | Todas as principais ferramentas de IA
Documentação
| Documento | Descrição |
|---|---|
| QUICKSTART.md | Comece a usar em 2 minutos |
| SETUP.md | Configuração completa para todas as ferramentas de IA |
| CONFIG.md | Referência de configuração |
| PERFORMANCE.md | Guia de otimização |
| CHANGELOG.md | Histórico de versões |
| ERRORS.md | Tratamento de erros e solução de problemas |
Início Rápido
1. Instalação
Homebrew (macOS/Linux):
brew tap olgasafonova/tap && brew install miro-mcp-server
Comando único (macOS/Linux):
curl -fsSL https://raw.githubusercontent.com/olgasafonova/miro-mcp-server/main/install.sh | sh
Docker:
docker pull ghcr.io/olgasafonova/miro-mcp-server:latest
Download manual: Consulte SETUP.md para todas as plataformas
2. Obtenha um Token do Miro
- Acesse miro.com/app/settings/user-profile/apps
- Crie um aplicativo com permissões de
boards:readeboards:write - Instale no seu time e copie o token
3. Configure Sua Ferramenta de IA
Claude Code:
claude mcp add miro -e MIRO_ACCESS_TOKEN=your-token -- miro-mcp-server
Claude Desktop / Cursor / VS Code: Consulte SETUP.md
Cursor Marketplace:
/add-plugin miro
Não está funcionando? Conte-nos o que dificultou — até uma frase ajuda.
O Que Você Pode Fazer
| Categoria | Exemplos |
|---|---|
| Quadros | Criar, copiar, excluir, atualizar, compartilhar, listar membros |
| Itens | Lembretes, formas, textos, cartões, cartões de aplicativo, imagens, documentos, frames, docs |
| Diagramas | Gerar fluxogramas e diagramas de sequência a partir de Mermaid; listar e inspecionar itens de diagrama nativos |
| Docs | Criar e gerenciar documentos Markdown em quadros |
| Upload | Enviar e substituir arquivos locais de imagem e documento em quadros |
| Tabelas | Descobrir e inspecionar tabelas em quadros |
| Mapas mentais | Criar nós de mapa mental com relações pai-filho |
| Widgets de código | Trechos de código com realce de sintaxe em quadros (v2-experimental) |
| Operações em lote | Criar vários itens de uma vez, grades de lembretes |
| Tags | Criar, anexar, atualizar e organizar com tags |
| Grupos | Agrupar, listar e gerenciar grupos de itens |
| Conectores | Conectar itens com setas estilizadas |
| Exportação | Miniaturas de quadros, exportação em PDF/SVG (Enterprise) |
Exemplos de Comandos de Voz
- "Adicione um lembrete amarelo dizendo 'Revisar PRs'"
- "Crie um fluxograma: Início → Decisão → Fim"
- "Quais quadros eu tenho?"
- "Compartilhe o quadro Design com jane@example.com"
- "Crie um mapa mental com 'Ideias de Projeto' como raiz"
Habilidade Complementar: miro-workflow
Para clientes Claude que suportam habilidades (Claude Code, Claude Desktop), este repositório inclui uma habilidade miro-workflow que descreve como montar alguns layouts comuns de quadros a partir das ferramentas atômicas de criação de itens.
Cinco layouts são abordados:
| Fluxo de trabalho | Exemplos de frases de gatilho |
|---|---|
| Quadro de Sprint | "configure um quadro de sprint para o sprint 42" |
| Retrospectiva | "crie um quadro de retrospectiva para o nosso time" |
| Brainstorm | "quadro de brainstorm para [tópico]" |
| Story Map | "mapeie a jornada do usuário para [produto]" |
| Kanban | "kanban para o nosso backlog" |
Cada um especifica tamanhos de frame, cálculo de espaçamento, posicionamento de lembretes, convenções de cores (a API do Miro usa hex para preenchimentos de frame e valores nomeados para lembretes; dois vocabulários diferentes) e a ordem de chamadas de ferramentas a seguir. Para chamadas de ferramenta única ("adicionar um lembrete") ou inspeção somente leitura, as ferramentas atômicas geralmente são suficientes por conta própria.
A habilidade é nova e provavelmente precisará de ajustes à medida que mais layouts forem testados em quadros reais. Os arquivos ficam em skills/miro-workflow/. O Claude Code descobre habilidades automaticamente a partir de ~/Projects/claude-code-config/skills/; para outros hosts, siga a documentação de instalação de habilidades do seu cliente.
O selo acima é concedido pelo SkillCheck Pro; esta habilidade atualmente pontua 92/100 com zero problemas Críticos e zero Avisos. Habilidades neste repositório ganham o selo com ≥90/100, zero Críticos e zero Avisos; abaixo desse padrão, o selo é removido até que a habilidade passe novamente.
CLI Complementar: miro-cli
Para uso voltado ao shell, este servidor tem um irmão: miro-cli. Mesmo autor, mesma cobertura da API do Miro, runtime diferente. Um verbo por endpoint, JSON na entrada e na saída, além de um espelho SQLite local para busca offline. Use-o ao criar scripts de Miro em CI, migrar lembretes em massa entre quadros ou consultar quadros offline sem gastar cota da API.
O servidor MCP e a CLI se sobrepõem deliberadamente. Use o servidor MCP quando um runtime de agente estiver no circuito (Claude Code, Claude Desktop, Cursor). Use a CLI quando bash, Makefiles ou CI estiverem envolvidos. Use ambos se quiser.
Instalação:
brew install olgasafonova/tap/miro-cli
# or
go install github.com/olgasafonova/miro-cli/cmd/miro-cli@latest
Servidor Complementar de Apps MCP: miro-mcp-apps
Se você quiser que os dados do Miro sejam renderizados como UI interativa no chat (cartões, tabelas, clusters de cores, gráficos SVG) em vez de JSON em fluxo contínuo, há um irmão em TypeScript: miro-mcp-apps. Onze ferramentas construídas sobre a extensão MCP Apps (SEP-1865), reutilizando o mesmo MIRO_ACCESS_TOKEN. Os dois servidores rodam lado a lado: este para a superfície CRUD de 110 ferramentas, aquele para visualizações rápidas e visuais.
| Você quer… | Use |
|---|---|
| Controle programático: criar/atualizar/mover/conectar itens, gerar diagramas | miro-mcp-server (este repositório) |
| Resumos visuais de quadros, clusters de cores de lembretes, gráficos de conectores renderizados inline | miro-mcp-apps |
| O mesmo em bash, CI ou Makefile | miro-cli |
O padrão MCP Apps é somente TypeScript hoje (o SDK Go não tem helpers de ext-apps), por isso este complemento vive em um repositório separado em vez de ser integrado ao servidor Go.
Eficiência de Tokens
A superfície completa de ferramentas (110 ferramentas) custa aproximadamente 20,8 mil tokens de pré-carregamento; o perfil essentials reduz isso para ~2,8 mil. Para sessões em que esse impacto importa, defina MIRO_TOOLS_PROFILE=essentials na configuração do seu cliente; o servidor então registra um subconjunto curado de 14 ferramentas (quadros, listar/buscar/pesquisar, criação de lembrete/texto/frame/conector, listar/obter/atualizar/excluir itens) além de uma meta-ferramenta de descoberta. Os agentes acessam o restante via miro_tool_search sob demanda.
| Perfil | Ferramentas | Tokens de pré-carregamento (est.) |
|---|---|---|
full (padrão) | 110 | ~20.795 |
essentials | 15 | ~2.848 |
Economia: ~17.760 tokens (redução de 86,2%) ao optar por essentials. Os tokens de descrição são exatos (serializados em JSON); o custo do esquema é estimado em 200 bytes por ferramenta. Reproduza localmente com go run ./cmd/token-count/.
miro_tool_search(query?, category?, limit?) é registrado em ambos os perfis. Ele pesquisa nomes de ferramentas, títulos, descrições e categorias com pontuação ponderada por palavras-chave (nome 3×, título 2×, categoria 2,5×, descrição 1×), retorna até 50 correspondências e nunca recomenda a si mesmo. Use-o quando não souber qual ferramenta usar ou para filtrar por categoria antes de navegar. Consulta vazia mais uma categoria retorna as ferramentas da categoria em ordem alfabética.
Consulte CONFIG.md para a referência completa de variáveis de ambiente.
Todas as 110 Ferramentas
Gerenciamento de Quadros (9)
| Ferramenta | Descrição |
|---|---|
miro_list_boards | Listar quadros acessíveis com proprietário, time e carimbos de data/hora |
miro_find_board | Encontrar quadro por nome, com os mesmos metadados da listagem |
miro_get_board | Obter detalhes do quadro |
miro_get_board_summary | Obter estatísticas do quadro e contagens de itens |
miro_get_board_content | Obter todo o conteúdo do quadro para análise de IA |
miro_create_board | Criar um novo quadro |
miro_copy_board | Copiar um quadro existente |
miro_update_board | Atualizar nome/descrição do quadro |
miro_delete_board | Excluir um quadro |
Membros do Quadro (5)
| Ferramenta | Descrição |
|---|---|
miro_list_board_members | Listar usuários com acesso |
miro_get_board_member | Obter detalhes do membro |
miro_share_board | Compartilhar quadro por e-mail (requer MIRO_SHARE_ALLOWED_DOMAINS; falha fechada por padrão) |
miro_update_board_member | Atualizar função do membro (Destrutivo: solicita confirmação antes de elevação de função) |
miro_remove_board_member | Remover membro do quadro |
Ferramentas de compartilhamento e mudança de função são protegidas para segurança contra injeção de prompt. Consulte
SECURITY.mdeCONFIG.md.
Criar Itens (18)
| Ferramenta | Descrição |
|---|---|
miro_create_sticky | Criar um lembrete |
miro_create_sticky_grid | Criar lembretes em layout de grade |
miro_create_shape | Criar uma forma (retângulo, círculo, etc.) |
miro_create_flowchart_shape | Criar forma de fluxograma (API experimental) |
miro_create_text | Criar elemento de texto |
miro_create_frame | Criar um contêiner de frame |
miro_create_card | Criar um cartão com data de vencimento |
miro_create_app_card | Criar cartão de aplicativo com campos personalizados |
miro_create_image | Adicionar imagem a partir de URL |
miro_upload_image | Enviar arquivo de imagem local |
miro_upload_document | Enviar arquivo de documento local (PDF, DOCX, etc.) |
miro_create_doc | Criar documento Markdown |
miro_create_document | Adicionar documento a partir de URL |
miro_create_embed | Incorporar YouTube, Figma, etc. |
miro_create_connector | Conectar dois itens com seta |
miro_create_group | Agrupar itens |
miro_create_mindmap_node | Criar nó de mapa mental |
miro_bulk_create | Criar vários itens de uma vez |
Frames (4)
| Ferramenta | Descrição |
|---|---|
miro_get_frame | Obter detalhes do frame |
miro_update_frame | Atualizar título/cor/tamanho do frame |
miro_delete_frame | Excluir um frame |
miro_get_frame_items | Listar itens dentro de um frame |
Mapas Mentais (3)
| Ferramenta | Descrição |
|---|---|
miro_get_mindmap_node | Obter detalhes do nó |
miro_list_mindmap_nodes | Listar todos os nós do mapa mental |
miro_delete_mindmap_node | Excluir um nó do mapa mental |
Widgets de Código (6, v2-experimental)
| Ferramenta | Descrição |
|---|---|
miro_create_code_widget | Adicionar um trecho de código com realce de sintaxe |
miro_get_code_widget | Obter código-fonte completo e configurações |
miro_list_code_widgets | Listar widgets com pré-visualizações de código |
miro_update_code_widget | Alterar código, idioma, título ou tamanho |
miro_move_code_widget | Mover para uma nova posição |
miro_delete_code_widget | Excluir um widget de código |
Comentários (5, v2-experimental)
| Ferramenta | Descrição |
|---|---|
miro_create_comment | Abrir um tópico de comentários, opcionalmente anexado a um item |
miro_list_comments | Listar tópicos com mensagens e estado de resolução |
miro_get_comment | Obter um tópico com seu histórico completo de mensagens |
miro_reply_comment | Acrescentar uma resposta a um tópico |
miro_resolve_comment | Resolver um tópico, ou reabrir com resolved=false |
Canvas SVG (3, transformação local)
| Ferramenta | Descrição |
|---|---|
miro_read_board_svg | Renderiza itens do quadro como um documento SVG (calculado localmente); frame_id limita a renderização a um frame |
miro_create_from_svg | Cria itens a partir de SVG: formas, textos, post-its e frames (dicas de data-type), triângulos, imagens, conectores (line com data-start/data-end) |
miro_update_from_svg | Aplica um diff SVG baseado em data-miro-id: atualiza no lugar, exclui (data-deleted), cria de forma aditiva; a saída da leitura pode ser reenviada |
Ler Itens (9)
| Ferramenta | Descrição |
|---|---|
miro_list_items | Lista itens em um quadro |
miro_list_all_items | Obtém TODOS os itens com paginação automática |
miro_get_item | Obtém detalhes do item |
miro_get_image | Obtém detalhes da imagem e URL hospedada no Miro |
miro_get_document | Obtém detalhes do documento e URL hospedada no Miro |
miro_get_app_card | Obtém detalhes do app card |
miro_get_doc | Obtém o conteúdo do documento Markdown |
miro_search_board | Pesquisa itens por conteúdo |
miro_who_am_i | Inspeciona o token de acesso: usuário, equipe, organização, aplicativo, escopos |
Atualizar e Excluir Itens (18)
| Ferramenta | Descrição |
|---|---|
miro_update_item | Atualiza conteúdo/posição/cor do item |
miro_update_sticky | Atualiza post-it (forma, cor) |
miro_update_shape | Atualiza forma (preenchimento, cor do texto, tipo) |
miro_update_text | Atualiza elemento de texto |
miro_update_card | Atualiza campos do card |
miro_update_image | Atualiza propriedades da imagem |
miro_update_image_from_file | Substitui arquivo de imagem em item existente |
miro_update_document | Atualiza propriedades do documento |
miro_update_document_from_file | Substitui arquivo de documento em item existente |
miro_update_embed | Atualiza propriedades do embed |
miro_update_group | Atualiza propriedades do grupo |
miro_update_app_card | Atualiza campos do app card |
miro_bulk_update | Atualiza vários itens de uma vez |
miro_delete_item | Exclui um item |
miro_delete_app_card | Exclui um app card |
miro_update_doc | Atualiza conteúdo do documento (completo ou localizar e substituir) |
miro_delete_doc | Exclui um documento Markdown |
miro_bulk_delete | Exclui vários itens de uma vez |
Tags (9)
| Ferramenta | Descrição |
|---|---|
miro_create_tag | Cria uma tag |
miro_list_tags | Lista todas as tags no quadro |
miro_get_tag | Obtém detalhes da tag por ID |
miro_attach_tag | Anexa tag ao item |
miro_detach_tag | Remove tag do item |
miro_get_item_tags | Obtém tags em um item |
miro_get_items_by_tag | Obtém todos os itens com uma tag específica |
miro_update_tag | Atualiza nome/cor da tag |
miro_delete_tag | Exclui uma tag |
Conectores (4)
| Ferramenta | Descrição |
|---|---|
miro_list_connectors | Lista todos os conectores |
miro_get_connector | Obtém detalhes do conector |
miro_update_connector | Atualiza estilo/legenda do conector |
miro_delete_connector | Exclui um conector |
Grupos (4)
| Ferramenta | Descrição |
|---|---|
miro_list_groups | Lista todos os grupos no quadro |
miro_get_group | Obtém detalhes do grupo |
miro_get_group_items | Lista itens em um grupo |
miro_delete_group | Exclui ou desagrupa um grupo |
Exportar (4)
| Ferramenta | Descrição |
|---|---|
miro_get_board_picture | Obtém miniatura do quadro |
miro_create_export_job | Exporta para PDF/SVG (Enterprise) |
miro_get_export_job_status | Verifica o progresso da exportação |
miro_get_export_job_results | Obtém links de download |
Tabelas (2)
| Ferramenta | Descrição |
|---|---|
miro_list_tables | Lista tabelas (data_table_format) em um quadro |
miro_get_table | Obtém metadados da tabela por ID |
Descoberta (1)
| Ferramenta | Descrição |
|---|---|
miro_tool_search | Encontra a ferramenta certa por palavra-chave ou categoria; registrada em ambos os perfis e o único gateway para a superfície completa no modo essentials |
Diagramas e Auditoria (6)
| Ferramenta | Descrição |
|---|---|
miro_generate_diagram | Cria diagrama a partir da sintaxe Mermaid |
miro_list_diagrams | Lista itens de diagrama nativos em um quadro |
miro_get_diagram | Obtém metadados do diagrama nativo por ID |
miro_get_audit_log | Consulta o log de execução local DESTE SERVIDOR |
miro_get_org_audit_logs | Consulta o log de auditoria de toda a organização do MIRO (Enterprise; auditlogs:read) |
miro_get_desire_paths | Consulta padrões de normalização de agentes (o que os agentes enviaram vs. o que foi corrigido automaticamente) |
Geração de Diagramas
Crie fluxogramas e diagramas de sequência a partir da sintaxe Mermaid:
Fluxograma:
flowchart TB
A[Start] --> B{Decision}
B -->|Yes| C[Success]
B -->|No| D[Retry]
D --> B
Diagrama de Sequência:
sequenceDiagram
Alice->>Bob: Hello Bob!
Bob-->>Alice: Hi Alice!
Suportado: flowchart/graph, sequenceDiagram, direções (TB/LR/BT/RL), formas (retângulo [], losango {}, círculo (())), arestas rotuladas.
Por Que Este Servidor?
| Recurso | Este Servidor | Alternativas TypeScript |
|---|---|---|
| Runtime | Binário único | Requer Node.js |
| Tamanho | ~14MB | 100MB+ com node_modules |
| Inicialização | ~50ms | 500ms-2s |
| Memória | ~10MB ocioso | ~50MB ocioso |
| Geração de diagramas | Parser Mermaid integrado | Baseado em IA |
| Limite de taxa | Automático com backoff | Manual |
| Cache | TTL de 2 minutos | Nenhum |
| Disjuntor | Sim | Não |
Oficial vs. Comunitário
A Miro lançou seu servidor MCP oficial em dezembro de 2025 e o expandiu substancialmente desde então. Comparação atualizada em 18-09-2026 enumerando as 45 ferramentas que o servidor hospedado realmente registra em mcp.miro.com, em vez de contar o conjunto documentado — a documentação fica defasada em relação à implantação em ambas as direções, e a superfície muda rápido o suficiente para que uma contagem seja perecível: 65 em 13-08-2026, 63 em 18-08, 61 em 09-09, 45 em 18-09.
A queda de setembro é uma consolidação, não uma redução. Cada uma das dezesseis ferramentas removidas é um caminho de leitura ou escrita de conteúdo substituído pela família canvas_* — board_list_items, board_show, context_explore, context_get, todos os três diagram_*, todos os três doc_*, todos os quatro layout_* — e as próprias instruções de conexão do servidor agora lideram com Canvas Composer SVG como "protocolo unificado de interação/representação da Miro para o canvas". A passagem de 09-09 já previa isso: layout_* ainda estavam registrados, mas já se autodescreviam como obsoletos em favor do canvas. Mudanças anteriores: board_trash e space_delete, presentes em 17-08-2026, desapareceram no dia seguinte, deixando a superfície sem verbos destrutivos fortes; todas as cinco ferramentas code_widget_* presentes em 18-08 desapareceram até 09-09, enquanto canvas_search, canvas_load_format_skill e content_item_list_roles chegaram. Adições recentes vêm dos changelogs deles em novas ferramentas MCP e endpoints de widgets de código.
| Recurso | Este Servidor | Miro MCP Oficial |
|---|---|---|
| Ferramentas | 110 (ou 15 no perfil essentials) | 45 |
| Transporte | stdio + HTTP | Somente HTTPS (hospedado em mcp.miro.com) |
| Auto-hospedagem | Sim | Não |
| Modo offline | Sim | Não |
| Autenticação | Token + OAuth2 | OAuth 2.1, registro dinâmico de cliente (organizações Enterprise precisam de habilitação do administrador) |
| Metadados da lista de quadros | id, proprietário, equipe, timestamps de criação/modificação | nome e URL |
| Geração de diagramas | Mermaid, analisado localmente; itens de diagrama nativos legíveis via miro_list_diagrams/miro_get_diagram | Nenhum desde 18-09-2026 (diagram_create_mermaid, diagram_update_mermaid e diagram_get_mermaid_instructions removidos; diagramas agora passam pelas ferramentas SVG do canvas) |
| Contexto de IA | Não | Nenhum desde 18-09-2026 (context_explore e context_get removidos) |
| DSL de layout | Composto a partir de criação em massa + a habilidade miro-workflow | Nenhum desde 18-09-2026 — todas as quatro ferramentas layout_* removidas, tendo se autodescrito como obsoletas em favor das ferramentas de canvas em 09-09 |
| Canvas como SVG | Leitura + criação + atualização (diff data-miro-id; transformação geométrica local; aproximação espacial). Leituras limitadas a um único frame via frame_id, e a saída da leitura é diretamente reenviável à ferramenta de atualização | Sim (leitura, criação, atualização a partir de SVG). Leituras limitadas a um retângulo ou a uma lista de widget_ids e recusam áreas acima de 500 widgets; canvas_search (padrão e regex sobre o SVG) estreita o escopo primeiro. A saída da leitura é re-escapada, portanto não pode ser realimentada à ferramenta de atualização literalmente |
| Espaços e seções | Não | Sim (10 ferramentas) — agrupamento de quadros em nível de workspace, não conteúdo do quadro |
| Comentários | Sim (criar, listar, obter, responder, resolver; v2-experimental) | Sim (criar, listar, responder, resolver) |
| Protótipos | Não | Sim (ler, criar, enviar URL) |
| Widgets de código | 6 ferramentas incl. mover posição (v2-experimental) | Nenhum desde 09-09-2026 (5 ferramentas em 18-08-2026) |
| Docs e Tabelas | Formatos de doc + leitura de tabela | Somente tabelas (criar/sincronizar/histórico); todas as três ferramentas doc_* removidas em 18-09-2026 |
| Imagens | Criar, enviar, atualizar a partir de arquivo | Criar, enviar URL, obter dados/URL |
| Operações em massa | Sim | Parcial (somente upsert table_sync_rows) |
| Mapas mentais | Sim | Não |
| Tags e Grupos | Sim | Não |
| CRUD de conectores | Sim | Não |
| CRUD em nível de item | Sim (post-it, forma, texto, card, imagem, documento, embed, frame) | Canvas SVG, não verbos por item |
| Compartilhamento / membros do quadro | Sim (restrito por allowlist) | Compartilhamento, atualizações de função e content_item_list_roles para o lado de leitura; sem CRUD de membros |
| Exportação | Sim (PDF/SVG) | Não |
| Usuário atual | Derivado do proprietário do quadro | Sim (user_who_am_i) |
| Recursos MCP | 3 | Não |
| Prompts MCP | 5 fluxos de trabalho | Habilidades de agente empacotadas (navegar, revisão de código, diagrama, doc, tabela) |
| Runtime | Binário Go único | Hospedado (código-fonte fechado) |
| Limite de taxa | Adaptativo | N/A (hospedado) |
| Cache | Integrado (TTL de 2min) | N/A |
| Métricas | Prometheus | Não |
| OpenTelemetry | Integrado (mcp-otel-go, OTel Registry) | Não |
De onde vêm as diferenças. Espaços, seções, canvas-SVG e protótipos não têm endpoints na API REST pública v2 — verificado em 13-08-2026 contra a especificação OpenAPI de 114 caminhos rastreada em api-tracking/, e reverificado sondando a API ao vivo, já que a especificação omite endpoints que a Miro realmente entrega. Esses rodam em APIs internas da Miro. O inverso também é verdadeiro: mapas mentais, tags, grupos, conectores e exportação são superfícies REST públicas que o servidor oficial não encapsulou.
O contexto do quadro costumava ser uma diferença de design em vez de uma lacuna, e a partir de 18-09-2026 não é nenhum dos dois: context_get retornava um resumo de IA do lado do servidor de um quadro e foi removido junto com context_explore. miro_get_board_content retorna o conteúdo estruturado em si — itens por tipo, hierarquia de frames, conectores e tags — e permite que o modelo já na sua sessão faça o resumo, sem um segundo salto de inferência.
Quando usar o servidor oficial: Você quer configuração zero via marketplace de plugins, segurança empresarial OAuth 2.1, espaços e seções, comentários, ou fluxos de trabalho SVG/protótipo. Extração de contexto do quadro não está mais entre eles — essas ferramentas foram removidas em 18-09-2026.
Quando usar este servidor: Você precisa de cobertura REST completa (110 ferramentas, ou um modo essentials ajustável de 15 ferramentas), operação offline/self-hosted, metadados mais ricos de listagem de boards, operações em lote, mapas mentais, tags, conectores ou exportação.
Ambos podem coexistir — use nomes diferentes de servidor MCP na sua configuração.
Performance
- Cache: TTL de 2 minutos reduz chamadas de API
- Limite de taxa: Adapta-se aos cabeçalhos de limite de taxa do Miro
- Circuit breaker: Isola endpoints com falha
- Operações em lote paralelas: Cria itens simultaneamente
- Validação de token: Falha rapidamente na inicialização com erro claro
- Repetição de erros transitórios: Repete automaticamente 502/503/504 com backoff
- OpenTelemetry: Rastreamento e métricas integrados via mcp-otel-go (OTel Registry)
Consulte PERFORMANCE.md para dicas de otimização e benchmarks.
Endpoints do Modo HTTP
Ao executar com -http :8080:
| Endpoint | Descrição |
|---|---|
/ | Protocolo MCP (Streamable HTTP) |
/health | Verificação de saúde (JSON) |
/health?deep=true | Verificação de saúde aprofundada (testa a API do Miro) |
/metrics | Métricas Prometheus |
/.well-known/mcp-server-card | SEP-2127 Server Card (JSON) via mcp-servercard-go |
Resposta da verificação de saúde:
{
"status": "healthy",
"server": "miro-mcp-server",
"version": "1.21.0",
"uptime": "2h30m",
"components": {
"config": {"status": "healthy"},
"miro_api": {"status": "healthy", "latency": "145ms"}
}
}
Desenvolvimento
# Build
make build
# Run tests
make test
# Run with coverage
make test-cover
# Lint
make lint
# Build for all platforms
make build-all
# See all targets
make help
Implantação com Docker
Início rápido:
# Using Docker Compose
export MIRO_ACCESS_TOKEN=your-token
docker compose up -d
# Or build and run manually
docker build -t miro-mcp-server .
docker run -e MIRO_ACCESS_TOKEN=xxx -p 8080:8080 miro-mcp-server
Recursos do docker-compose.yml:
- Verificações de saúde configuradas
- Modelo de limites de recursos
- Repasse de variáveis de ambiente
Depuração com MCP Inspector
Teste e depure o servidor interativamente com MCP Inspector:
# Install and run (no setup required)
npx @modelcontextprotocol/inspector miro-mcp-server
# With environment variables
MIRO_ACCESS_TOKEN=your-token npx @modelcontextprotocol/inspector miro-mcp-server
Abra http://localhost:6274 para:
- Navegar por todas as 110 ferramentas com seus esquemas
- Testar chamadas de ferramentas interativamente
- Visualizar mensagens JSON-RPC brutas
- Depurar validação de parâmetros
Consulte SETUP.md para mais opções de depuração.
Plataformas Suportadas
| Plataforma | Binário |
|---|---|
| macOS (Apple Silicon) | miro-mcp-server-darwin-arm64 |
| macOS (Intel) | miro-mcp-server-darwin-amd64 |
| Linux (x64) | miro-mcp-server-linux-amd64 |
| Linux (ARM64) | miro-mcp-server-linux-arm64 |
| Windows (x64) | miro-mcp-server-windows-amd64.exe |
| Docker | ghcr.io/olgasafonova/miro-mcp-server |
Ferramentas de IA Suportadas
| Ferramenta | Status |
|---|---|
| Claude Code | Testado |
| Claude Desktop | Testado |
| Cursor | Testado |
| VS Code + GitHub Copilot | Suportado |
| Windsurf | Suportado |
| Replit | Suportado |
| Qualquer cliente compatível com MCP | Suportado |
Consulte SETUP.md para guias de configuração.
Compatibilidade de Contas
| Tipo de Conta | Suporte |
|---|---|
| Gratuita | 106 ferramentas |
| Team | 106 ferramentas |
| Business | 106 ferramentas |
| Enterprise | Todas as 110 ferramentas |
Quatro ferramentas precisam de um plano Enterprise e falham com uma dica informando isso: as três ferramentas de exportação PDF/SVG (miro_create_export_job, miro_get_export_job_status, miro_get_export_job_results) e miro_get_org_audit_logs, que adicionalmente precisa do escopo auditlogs:read. miro_get_board_picture funciona em todos os planos. Todo o resto funciona em qualquer plano.
As 6 ferramentas de widget de código e 5 ferramentas de comentários usam a API v2-experimental do Miro; a disponibilidade pode variar por conta ou plano, e os endpoints podem mudar antes do GA.
Gostou deste projeto?
Se este servidor economizou seu tempo, considere dar uma ⭐ no GitHub. Isso ajuda outras pessoas a descobrirem o projeto.
Mais Servidores MCP
Confira meus outros servidores MCP:
| Servidor | Descrição | Estrelas |
|---|---|---|
| gleif-mcp-server | Acesse o banco de dados GLEIF LEI. Consulte identidades de empresas, verifique entidades legais. | |
| mediawiki-mcp-server | Conecte IA a qualquer wiki MediaWiki. Pesquise, leia, edite conteúdo de wiki. | |
| nordic-registry-mcp-server | Acesse registros empresariais nórdicos. Consulte empresas na Noruega, Dinamarca, Finlândia, Suécia. | |
| productplan-mcp-server | Fale com seus roadmaps do ProductPlan. Consulte OKRs, ideias, lançamentos. | |
| tilbudstrolden-mcp | Caça a ofertas de supermercado nórdicas. Encontre ofertas, planeje refeições, acompanhe gastos. | |
| mcp-servercard-go | Biblioteca Go para SEP-2127 Server Cards. Descoberta pré-conexão para servidores MCP. |
Licença
MIT
Construído para as comunidades Miro e MCP.
Miro é uma marca registrada da Miro Inc. Este projeto não é afiliado ou endossado pela Miro.