AnkiConnect

Servidor MCP AnkiConnect para interagir com o Anki via AnkiConnect.

Documentação

Servidor MCP Anki Connect

Um servidor Model Context Protocol (MCP) que fornece integração perfeita com o Anki através do add-on AnkiConnect. Este servidor permite que assistentes de IA e outros clientes MCP interajam programaticamente com sua coleção de flashcards do Anki.

Project

O que é o Anki Connect?

AnkiConnect é um poderoso add-on do Anki que expõe as funcionalidades do Anki através de uma API REST. Ele permite que aplicações externas:

  • Criem, modifiquem e excluam flashcards
  • Gerenciem baralhos e suas configurações
  • Controlem a interface gráfica do Anki programaticamente
  • Pesquisem e recuperem informações de cartões
  • Gerenciem tags e tipos de notas
  • Realizem operações em lote em cartões e notas

O que é MCP (Model Context Protocol)?

O Model Context Protocol é uma forma padronizada de assistentes de IA se conectarem a fontes de dados e ferramentas externas. Este servidor MCP atua como uma ponte entre clientes MCP (como o Claude Desktop) e o AnkiConnect, permitindo que assistentes de IA ajudem você a gerenciar seus flashcards do Anki naturalmente através de conversa.

Recursos

Este servidor MCP fornece acesso abrangente às funcionalidades do AnkiConnect através das seguintes ferramentas:

Gerenciamento de Flashcards

  • create_flashcard() - Crie novos flashcards com conteúdo de frente e verso
  • add_note() - Adicione notas com campos e tags personalizados
  • add_notes() - Adicione múltiplas notas em lote
  • update_note_fields() - Atualize campos de notas existentes
  • find_notes() - Pesquise notas usando a sintaxe de consulta do Anki

Gerenciamento de Baralhos

  • deck_names() - Obtenha todos os nomes de baralhos
  • deck_names_and_ids() - Obtenha nomes de baralhos com seus IDs
  • change_deck() - Mova cartões entre baralhos
  • delete_decks() - Exclua baralhos e opcionalmente seus cartões
  • get_deck_config() - Recupere configurações de baralhos

Operações com Cartões

  • find_cards() - Pesquise cartões
  • cards_info() - Obtenha informações detalhadas de cartões
  • suspend() / unsuspend() - Suspenda/ative cartões
  • are_suspended() / are_due() - Verifique o status dos cartões

Controle da Interface Gráfica

  • gui_deck_browser() - Abra o navegador de baralhos
  • gui_deck_review() - Inicie a revisão de baralhos
  • gui_browse() - Abra o navegador de cartões com pesquisa
  • gui_add_cards() - Abra o diálogo de adicionar cartões

Ferramentas Utilitárias

  • version() - Obtenha a versão do AnkiConnect
  • get_tags() - Recupere todas as tags
  • multi() - Execute múltiplas requisições AnkiConnect em lote

Pré-requisitos

1. Instale o Add-on AnkiConnect

  1. Abra o Anki
  2. Vá em Ferramentas → Add-ons
  3. Clique em Obter Add-ons...
  4. Digite o código: 2055492159
  5. Clique em OK e reinicie o Anki

2. Configure o AnkiConnect (Opcional)

O AnkiConnect funciona imediatamente, mas você pode personalizar suas configurações:

  1. Vá em Ferramentas → Add-ons
  2. Selecione AnkiConnect e clique em Config
  3. Modifique as configurações se necessário (a porta padrão é 8765)
  4. Reinicie o Anki após fazer alterações

Instalação

  1. Clone este repositório:
git clone https://github.com/spacholski1225/anki-connect-mcp.git
cd anki-connect-mcp
  1. Instale as dependências:
npm install
  1. Compile o projeto:
npm run build

Configuração do Cliente MCP

Claude Desktop

Para usar este servidor MCP com o Claude Desktop, adicione a seguinte configuração ao seu arquivo de configurações MCP:

Localização do arquivo de configuração MCP:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Opções de Configuração:

Opção 1: Usando Node.js (Instalação Local)

{
  "mcpServers": {
    "anki-connect-mcp": {
      "command": "node",
      "args": [
        "dist/index.js"
      ],
      "env": {},
      "disabled": false,
      "alwaysAllow": [
        "deck_names",
        "cards_info",
        "deck_names_and_ids",
        "gui_deck_browser"
      ]
    }
  }
}

Opção 2: Usando npx (Pacote NPM)

Em seguida, configure seu cliente MCP:

{
  "mcpServers": {
    "anki-connect": {
      "command": "npx",
      "args": [
        "@spacholski1225/anki-connect-mcp"
      ],
      "env": {},
      "disabled": false,
      "alwaysAllow": [
        "deck_names",
        "cards_info",
        "deck_names_and_ids",
        "gui_deck_browser"
      ]
    }
  }
}

Opção 3: Usando Docker

{
  "mcpServers": {
    "anki-connect": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--network=host",
        "-e", "ANKI_CONNECT_URL=http://host.docker.internal:8765",
        "spacholski/anki-connect-mcp:latest"
      ],
      "env": {},
      "disabled": false,
      "alwaysAllow": [
        "deck_names",
        "cards_info",
        "deck_names_and_ids",
        "gui_deck_browser"
      ]
    }
  }
}

Configuração Específica do AnkiConnect para Docker:

Ao usar a opção Docker, você deve configurar o AnkiConnect com configurações específicas para permitir o acesso do contêiner Docker:

  1. Vá em Ferramentas → Add-ons no Anki
  2. Selecione AnkiConnect e clique em Config
  3. Atualize a configuração com as seguintes configurações:
{
    "apiKey": null,
    "apiLogPath": null,
    "ignoreOriginList": [],
    "webBindAddress": "0.0.0.0",
    "webBindPort": 8765,
    "webCorsOriginList": [
        "http://localhost",
        "http://host.docker.internal",
        "http://host.docker.internal:3000"
    ]
}

Pontos-chave da Configuração Docker:

  • webBindAddress: "0.0.0.0" - Permite que o AnkiConnect aceite conexões de qualquer endereço IP (necessário para contêineres Docker)
  • webCorsOriginList - Deve incluir "http://host.docker.internal" e origens relacionadas para permitir requisições de origens cruzadas de contêineres Docker
  • Reinicie o Anki após fazer essas alterações de configuração

Notas Importantes:

  • Para a opção Node.js: Substitua o caminho em args pelo caminho real do seu arquivo index.js compilado
  • Para a opção npx: Usa o pacote NPM publicado @spacholski1225/anki-connect-mcp - nenhuma instalação local é necessária
  • Para a opção Docker: Usa a imagem Docker pré-compilada spacholski/anki-connect-mcp:latest
  • O array alwaysAllow contém ferramentas que não exigirão confirmação a cada vez
  • Certifique-se de que o Anki esteja rodando com o AnkiConnect habilitado antes de usar o servidor MCP
  • Para a opção Docker, a flag --network=host permite que o contêiner acesse o AnkiConnect na máquina host

Exemplos de Uso

Uma vez configurado com um cliente MCP como o Claude Desktop, você pode interagir com sua coleção do Anki naturalmente:

  • "Crie um flashcard sobre a capital da França"
  • "Mostre-me todos os nomes dos meus baralhos"
  • "Encontre todos os cartões com a tag 'vocabulário'"
  • "Suspenda todos os cartões no baralho 'Palavras Difíceis'"
  • "Abra o navegador de baralhos no Anki"

Solução de Problemas

Problemas Comuns

  1. Conexão recusada: Certifique-se de que o Anki está rodando e o AnkiConnect está instalado
  2. Conflitos de porta: Verifique se a porta 8765 está disponível ou configure o AnkiConnect para usar uma porta diferente
  3. Erros de permissão: Garanta que o servidor MCP tenha as permissões adequadas do sistema de arquivos
  4. Ferramenta não encontrada: Verifique a configuração do cliente MCP e reinicie o cliente

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar issues, solicitações de recursos ou pull requests.

Licença

Licença ISC

Referências