Anki MCP
Um servidor Model Context Protocol (MCP) que oferece integração perfeita com o Anki, permitindo que assistentes de IA interajam com sua coleção de flashcards. Crie, leia, atualize e gerencie cartões do Anki programaticamente por meio de uma interface padronizada.
Documentação
Servidor Anki MCP
Um servidor Model Context Protocol (MCP) que fornece integração perfeita com o Anki, permitindo que assistentes de IA interajam com sua coleção de flashcards. Crie, leia, atualize e gerencie cartões do Anki programaticamente por meio de uma interface padronizada.
Recursos
- 🎴 Gerenciamento de Cartões: Crie, recupere e atualize flashcards com personalização completa de campos
- 🔍 Busca Inteligente: Consulte cartões por ID, palavras-chave, tags, baralhos ou qualquer sintaxe de busca do Anki
- 📊 Integração de Revisão: Acesse cartões pendentes, novos cartões e responda cartões programaticamente
- 🎵 Suporte a Mídia: Tratamento automático de áudio e imagens (arquivos locais, URLs ou mídia existente)
- 🔄 Operações em Lote: Crie vários cartões com eficiência em uma única operação
- 🎯 Ferramentas Genéricas: Ferramentas flexíveis que funcionam com qualquer baralho, tipo de nota e configuração de campos
Pré-requisitos
- Anki Desktop App - Deve estar em execução durante o uso do servidor MCP
- AnkiConnect Add-on - Instale pelo Anki: Ferramentas → Complementos → Obter Complementos → Código:
2055492159
⚠️ Importante: O Anki deve estar em execução com o AnkiConnect habilitado para que este servidor MCP funcione.
Recursos
anki://search/deckcurrent- Todos os cartões do baralho atualanki://search/isdue- Cartões pendentes de revisãoanki://search/isnew- Novos cartões ainda não vistos- Consultas personalizadas:
anki://search/tag:vocabulary,anki://search/deck:Spanish, etc.
Ferramentas
update_card- Atualizar cartões/notas (responder, atualizar campos, atualizar tags)add_card- Criar um novo flashcard com baralho, modelo e campos personalizadosbatch_add_card- Criar vários flashcards de uma vezget_due_cards- Obter lista de cartões pendentes de revisãoget_new_cards- Obter lista de novos cartões ainda não vistosget_card- Recuperar informações detalhadas do cartão por ID ou consulta
Desenvolvimento
Instale as dependências:
npm install
Compile o servidor:
npm run build
Para desenvolvimento com recompilação automática:
npm run watch
Arquivos de Mídia
Como os Arquivos de Mídia São Tratados
Ao adicionar cartões com imagens ou arquivos de áudio, o servidor lida automaticamente com diferentes tipos de fontes de mídia:
-
Caminhos de Arquivo Locais: Se você fornecer um caminho absoluto para um arquivo no seu computador (por exemplo,
/Users/mycomputer/Documents/images/prune.jpg), o servidor irá:- Ler o arquivo do seu disco
- Convertê-lo para base64
- Enviá-lo para a coleção de mídia do Anki usando a API
storeMediaFile - Referenciá-lo no cartão pelo nome do arquivo
-
URLs: Se você fornecer uma URL (por exemplo,
https://example.com/image.jpg), o Anki-Connect baixará o arquivo automaticamente quando o cartão for criado. -
Mídia Existente: Se você fornecer apenas um nome de arquivo (por exemplo,
prune.jpg), ele assume que o arquivo já existe na pasta de mídia do Anki.
Solução de Problemas com Imagens
Se as imagens não aparecerem corretamente no Anki:
- Verifique o caminho do arquivo: Certifique-se de que o caminho para o seu arquivo de imagem está correto e que o arquivo existe
- Permissões de arquivo: Garanta que o arquivo possa ser lido pelo aplicativo
- Formatos suportados: O Anki suporta formatos de imagem comuns (JPG, PNG, GIF, SVG, WebP)
- Tamanho do arquivo: Arquivos muito grandes podem causar problemas
- Caracteres especiais: Evite caracteres especiais em nomes de arquivo sempre que possível
O servidor agora lida automaticamente com caminhos de arquivo locais, então você não precisa mais copiar imagens manualmente para a pasta de mídia do Anki.
Instalação e Configuração
Instalação
- Clone ou baixe este repositório
- Instale as dependências:
npm install - Compile o servidor:
npm run build
Configuração com o Claude Desktop
Adicione a configuração do servidor ao seu arquivo de configuração do Claude Desktop:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"anki-mcp-server": {
"command": "/absolute/path/to/anki-mcp-server/build/index.js"
}
}
}
💡 Dica: Substitua
/absolute/path/to/anki-mcp-serverpelo caminho completo real de onde você clonou este repositório.
Configuração com Outros Clientes MCP
Este servidor segue o protocolo MCP padrão e pode ser usado com qualquer cliente compatível com MCP. Configure-o como um servidor baseado em stdio apontando para build/index.js.
Verificação
Após a configuração:
- Reinicie o Claude Desktop (ou seu cliente MCP)
- Certifique-se de que o Anki esteja em execução com o AnkiConnect instalado
- O servidor deve aparecer nos seus servidores MCP disponíveis
- Teste com uma consulta simples como "Mostre-me 5 cartões pendentes do Anki"
Depuração
Como os servidores MCP se comunicam via stdio, a depuração pode ser desafiadora. Recomendamos usar o MCP Inspector, que está disponível como script de pacote:
npm run inspector
O Inspector fornecerá uma URL para acessar ferramentas de depuração no seu navegador, onde você pode:
- Testar chamadas de ferramentas interativamente
- Visualizar logs de requisição/resposta
- Depurar problemas de conexão
- Validar esquemas de ferramentas
Solução de Problemas
Servidor não aparece no Claude Desktop:
- Verifique se o caminho na configuração é absoluto (não relativo)
- Verifique se
build/index.jsexiste (executenpm run build) - Reinicie o Claude Desktop após alterações na configuração
Erros de "Connection refused" ou timeout:
- Certifique-se de que o Anki esteja em execução
- Verifique se o AnkiConnect está instalado (Ferramentas → Complementos)
- Verifique se as configurações do AnkiConnect permitem conexões localhost (padrão)
Cartões não estão sendo atualizados/criados:
- Feche o navegador do Anki se estiver aberto (limitação conhecida do AnkiConnect)
- Verifique se os nomes do baralho e do tipo de nota correspondem exatamente (sensível a maiúsculas/minúsculas)
- Verifique se os nomes dos campos correspondem à configuração de campos do seu tipo de nota
Contribuindo
Contribuições são bem-vindas! Seja corrigindo bugs, adicionando recursos ou melhorando a documentação, sua ajuda é apreciada.
Como Contribuir
- Faça um fork do repositório no GitHub
- Clone seu fork localmente:
git clone https://github.com/YOUR_USERNAME/anki-mcp.git cd anki-mcp - Crie um novo branch para seu recurso ou correção de bug:
git checkout -b feature/your-feature-name - Faça suas alterações e teste minuciosamente
- Compile e teste suas alterações:
npm install npm run build npm run inspector # Test with MCP Inspector - Faça commit das suas alterações com mensagens claras e descritivas:
git commit -m "Add: description of your changes" - Envie para seu fork:
git push origin feature/your-feature-name - Abra um Pull Request no GitHub com uma descrição clara das suas alterações
Diretrizes de Desenvolvimento
- Escreva código TypeScript limpo e legível
- Siga o estilo e a estrutura de código existentes
- Teste suas alterações com o MCP Inspector
- Atualize a documentação se estiver adicionando novos recursos
- Mantenha os commits focados e atômicos
Reportando Problemas
Encontrou um bug ou tem uma solicitação de recurso? Abra uma issue no GitHub com:
- Um título claro e descritivo
- Passos para reproduzir (para bugs)
- Comportamento esperado vs. real
- Seu ambiente (SO, versão do Anki, versão do Node)
Perguntas?
Sinta-se à vontade para abrir uma issue para perguntas ou participar da discussão em issues existentes.
Licença
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENÇA para obter detalhes.
Agradecimentos
- Construído sobre o Model Context Protocol da Anthropic
- Usa AnkiConnect para integração com o Anki
- Desenvolvido com o pacote npm yanki-connect