Mousetaile
Servidor MCP do Anki
Documentação
O servidor MCP mais simples e estável para Anki
O objetivo do Mousetail é ser a forma mais simples e confiável de conectar o Anki a um LLM. Ele não requer nenhum addon, basta ter o Anki instalado e um LLM que você queira conectar aos seus baralhos.
Executar o servidor é tão simples quanto:
uvx mousetail
Para instruções detalhadas sobre integração com Claude Code, Claude Desktop e outras ferramentas de LLM:
Recursos
- Mínimo - suporta operações principais do Anki: criar, ler, atualizar e excluir
- Estável - funciona diretamente com a API estável pylib do Anki, sem addons ou dependências
- Simples - não requer configuração, descobre automaticamente suas coleções do Anki
Casos de Uso
Comitar seletivamente o que você aprende em conversas com um LLM para a memória
"Crie um baralho baseado na nossa conversa para eu não esquecer detalhes críticos"
Use um LLM para interagir com seu baralho
"Crie um cartão - o que é um coeficiente?, crie um cartão - identifique o primeiro coeficiente neste polinômio"
Use um LLM para limpar um baralho
"Verifique meu baralho de vocabulário de francês quanto à correção e corrija quaisquer erros, erros de digitação ou enganos"
Sincronização
O Mousetail suporta sincronizar sua coleção do Anki com o AnkiWeb ou um servidor de sincronização auto-hospedado. Isso permite que você mantenha sua coleção sincronizada entre dispositivos.
Início Rápido
Sincronize com o AnkiWeb (salva as credenciais para sincronizações futuras):
> "Save my AnkiWeb credentials: username is myuser@example.com and password is mypassword"
> "Sync my collection with AnkiWeb"
Gerenciamento de Credenciais
O Mousetail armazena credenciais com segurança no gerenciador de credenciais do seu sistema:
- macOS: Keychain
- Windows: Gerenciador de Credenciais
- Linux: Secret Service (GNOME Keyring, KWallet, etc.)
Ferramentas de credenciais disponíveis:
save_sync_credentials- Salvar nome de usuário/senha com segurançaload_sync_credentials- Carregar credenciais salvasdelete_sync_credentials- Remover credenciais salvas
Opções de Sincronização
A ferramenta sync_collection suporta:
- Sincronização AnkiWeb (padrão) - Deixe o endpoint vazio
- Servidores auto-hospedados - Forneça uma URL de endpoint personalizada (ex.:
https://sync.example.com) - Sincronização de mídia - Habilitada por padrão, inclui imagens e arquivos de áudio
- Sincronização apenas da coleção - Defina
sync_media: falsepara pular a mídia
Exemplos
Configuração inicial com AnkiWeb:
> "Save my sync credentials for AnkiWeb - username: user@example.com, password: mypass123"
> "Sync my collection"
Usando um servidor auto-hospedado:
> "Save my sync credentials - username: john, password: secret, endpoint: https://sync.myserver.com"
> "Sync my collection"
Sincronização única sem salvar credenciais:
> "Sync my collection with AnkiWeb using username user@example.com and password mypass123"
Sincronização apenas da coleção (pular mídia):
> "Sync my collection but don't sync media files"
Configuração
Você pode definir um endpoint de sincronização padrão em config.json:
{
"sync": {
"endpoint": "https://sync.example.com"
}
}
Deixe endpoint como null para usar o AnkiWeb por padrão.
Notas Importantes
- Feche o Anki primeiro: A sincronização falhará se o aplicativo Anki estiver em execução
- Sincronização de mídia: A sincronização de mídia é mais lenta e usa mais largura de banda, mas garante que imagens/áudio sejam sincronizados
- Conflitos: Se ocorrerem conflitos, tente sincronizar pelo desktop do Anki primeiro para resolvê-los
- Segurança: As credenciais nunca são armazenadas em texto simples - elas são mantidas no armazenamento seguro de credenciais do seu sistema
Configuração do Servidor de Sincronização Auto-Hospedado
Para sincronizar com seu próprio servidor:
- Configure um servidor de sincronização Anki
- Configure as credenciais no servidor (usando variáveis de ambiente como
SYNC_USER1=user:password) - Salve suas credenciais no Mousetail com o endpoint do servidor
- Sincronize normalmente
Para configuração detalhada do servidor de sincronização, consulte a documentação oficial do Anki.
Notas Importantes
Como as Coleções São Acessadas
O servidor MCP encontra as coleções do Anki em seus locais padrão:
- macOS:
~/Library/Application Support/Anki2/[Profile]/collection.anki2 - Linux:
~/.local/share/Anki2/[Profile]/collection.anki2 - Windows:
%APPDATA%\Anki2\[Profile]\collection.anki2
Você não precisa configurar caminhos - o servidor descobre automaticamente as coleções disponíveis, isso pode ser personalizado usando configuração.
Configuração
O servidor pode ser personalizado através de um arquivo config.json. Consulte o Guia de Uso para opções de configuração.
Desenvolvimento
Configuração de Desenvolvimento Local
Para desenvolver e testar o Mousetail localmente com Claude Code:
-
Clone o repositório:
git clone https://github.com/listfold/mousetail.git cd mousetail -
Instale as dependências:
uv sync -
Configure o Claude Code: O projeto inclui um arquivo
.mcp.jsonque configura o servidor MCP para desenvolvimento local:{ "mcpServers": { "mousetail": { "type": "stdio", "command": "uv", "args": ["run", "python", "-m", "mousetail.mcp.stdio_server"], "env": { "PYTHONUNBUFFERED": "1" } } } } -
Reinicie o Claude Code: Após a configuração estar no lugar, reinicie o Claude Code para carregar o servidor MCP.
-
Verifique o servidor:
- Use
/contextno Claude Code para ver as ferramentas MCP disponíveis - O servidor mousetail deve aparecer com todas as ferramentas disponíveis (list_collections, create_note, sync_collection, etc.)
- Use
-
Testando a funcionalidade de sincronização:
- Feche o aplicativo desktop do Anki antes de testar
- Teste o gerenciamento de credenciais:
save_sync_credentials,load_sync_credentials,delete_sync_credentials - Teste a sincronização:
sync_collectioncom suas credenciais do AnkiWeb ou servidor auto-hospedado
Objetivos principais
O Mousetail foi escrito porque todas as ferramentas MCP Anki existentes dependem do addon AnkiConnect.
O AnkiConnect é um servidor HTTP para Anki, foi originalmente criado para suportar a conexão de extensões de navegador como yomichan ao Anki. Para desenvolvimento MCP, não é necessário e introduz problemas:
- introduz complexidade, ex.: um servidor HTTP dedicado para Anki ocupa uma porta
- introduz risco, ex.: se a API do AnkiConnect mudar ou tiver um bug, a ferramenta MCP quebrará
- introduz uma etapa extra, ex.: todas as ferramentas MCP atuais exigem a instalação do addon AnkiConnect
O Mousetail tem uma abordagem muito mais simples. Ele integra diretamente com o pylib do Anki. Esta é uma API estável que faz parte do núcleo do Anki, portanto não está sujeita a mudanças arbitrárias ou frequentes, e não requer nenhum addon de terceiros.
Como prioriza a simplicidade, o mousetail permanecerá mais estável que as alternativas. A compensação é que o Mousetail nunca se integrará à interface do Anki. Também é razoável assumir que o Mousetail só funcionará com ferramentas LLM e baralhos Anki no mesmo sistema (colocalizados).
Construindo Documentação
O projeto usa Sphinx com o tema Furo para gerar documentação a partir de docstrings Python.
-
Instale as dependências de documentação:
uv pip install ".[docs]" -
Construa a documentação:
uv run python -m sphinx -b html docs docs/_build/html -
Veja a documentação: Abra
docs/_build/html/index.htmlno seu navegador.
A documentação é automaticamente construída e implantada no GitHub Pages a cada push para o branch main.
Licença
Licença MIT - veja o arquivo LICENSE para detalhes.