Anki AI MCP Server
by Kyura77
README.md
# Anki AI MCP Server đ€đ
Este Ă© um repositĂłrio completo que fornece um servidor **MCP (Model Context Protocol)** para integrar o seu **Anki Desktop** com InteligĂȘncias Artificiais modernas. Ele oferece duas formas de uso:
1. **Cliente Local (via TypeScript/Stdio):** Ideal para editores locais como **Cursor, Windsurf, Claude Desktop**, etc.
2. **Cliente Web (via Python/SSE + ngrok):** Ideal para conectar diretamente ao site do **ChatGPT (Web)** no formato Sandbox (seguro).
Com este servidor, a IA ganha "superpoderes" para ler, criar, buscar, editar e analisar seu banco de estudos diretamente pelo chat, inclusive extraindo textos e mĂdias de documentos PDF.
---
## đ 1. PrĂ©-requisitos Gerais (Para Ambos os MĂ©todos)
Para que qualquer uma das integraçÔes funcione, o seu computador precisa estar configurado:
### A. Instalar o Anki Desktop đ»
O servidor MCP precisa se comunicar com o aplicativo instalado no seu computador.
* Baixe e instale o [Anki Desktop](https://apps.ankiweb.net/).
* *(Opcional)* Crie uma conta no [AnkiWeb](https://ankiweb.net/) para sincronizar seus cartÔes.
### B. Instalar o add-on AnkiConnect đ
O Anki precisa de uma extensĂŁo para conseguir conversar com o nosso servidor MCP.
1. Abra o seu **Anki Desktop**.
2. VĂĄ no menu superior em **Ferramentas** -> **Complementos** (Add-ons).
3. Clique em **Adquirir Complementos...** (Get Add-ons).
4. Insira o cĂłdigo do [AnkiConnect](https://ankiweb.net/shared/info/2055492159): `2055492159` e clique em OK.
5. Reinicie o Anki para ativar a extensĂŁo.
> [!IMPORTANT]
> **O Anki Desktop deve estar sempre aberto** e rodando em segundo plano no seu computador para que a InteligĂȘncia Artificial consiga se comunicar com os seus cartĂ”es!
---
## đ ïž MĂ©todo A: Servidor Local TypeScript (Cursor, Claude Desktop, etc.)
Este método executa o servidor localmente através do terminal (`stdio`). Ele tem acesso completo de leitura/escrita e suporte ao processamento de PDFs locais.
### Requisitos:
* [Node.js](https://nodejs.org/) instalado (versĂŁo 18+).
* DependĂȘncias do script Python de PDF: `pip install pymupdf pillow`.
### Configuração:
1. Abra a pasta do projeto no terminal e rode:
```bash
npm install
npx tsc
```
2. Adicione o servidor nas configuraçÔes MCP do seu editor/cliente. Exemplo de configuração para o `claude_desktop_config.json`:
```json
{
"mcpServers": {
"anki-server": {
"command": "node",
"args": [
"C:/caminho/do/projeto/build/index.js"
]
}
}
}
```
---
## đ MĂ©todo B: Ponte Sandbox Python (ChatGPT Web)
Este mĂ©todo expĂ”e um servidor HTTP/SSE local na porta `8000` e utiliza o **ngrok** para criar um tĂșnel seguro. Ele foi desenvolvido em **modo Sandbox** (sem acesso aos seus arquivos locais), permitindo que vocĂȘ conecte o ChatGPT (Web) com segurança.
### Requisitos:
* Python 3.10+ instalado.
* Conta e CLI do [ngrok](https://ngrok.com/) configurada.
### Como Rodar e Conectar:
1. Inicie o servidor MCP rodando o arquivo `run.bat` ou executando no terminal:
```bash
pip install -r requirements.txt
python server.py
```
2. Abra um terminal e inicie o tĂșnel do ngrok:
```bash
ngrok http 8000
```
*(Dica: Registre 1 domĂnio estĂĄtico gratuito no site do ngrok e rode `ngrok http --url=seu-dominio.ngrok-free.dev 8000` para manter a URL permanente).*
3. Acesse o **ChatGPT Web**, vĂĄ em **Settings -> Apps**, ative o **Developer Mode** e clique em **Add Custom Connector**.
4. Configure a URL gerada pelo ngrok com `/sse` no final:
* **URL:** `https://seu-dominio.ngrok-free.dev/sse`
---
## đ§° Lista de Superpoderes DisponĂveis (MCP Tools)
* **`list_decks` / `anki_get_deck_names`**: Lista todos os seus baralhos locais.
* **`create_deck` / `anki_create_deck`**: Cria um novo baralho no Anki.
* **`list_models`**: Lista os modelos de nota disponĂveis no Anki (ex: `BĂĄsico`, `Basic`).
* **`list_model_fields`**: Lista os campos especĂficos de um modelo de nota (ex: `['Frente', 'Verso']`).
* **`add_card` / `anki_add_note`**: Cria e adiciona um card (Frente e Verso) no baralho escolhido. Mapeia automaticamente as perguntas/respostas para os campos do modelo (ex: Frente/Verso ou Front/Back).
* **`add_multiple_cards`**: Adiciona mĂșltiplos cards ao mesmo tempo de forma otimizada.
* **`search_cards` / `anki_find_notes`**: Busca e lista cards existentes com base em termos de busca (ex: `"deck:Biologia DNA"`).
* **`edit_card` / `anki_update_note_fields`**: Atualiza a pergunta ou resposta de um card existente usando seu ID.
* **`delete_card` / `anki_delete_decks`**: Remove cards ou baralhos.
* **`sync_anki`**: Força a sincronização dos seus cartÔes locais com o AnkiWeb.
* **`store_media_file` / `anki_store_media_file`**: Salva imagens ou mĂdias diretamente no Anki (Ăștil para cards com imagens criadas pelo ChatGPT).
* **`add_card_with_media`**: Cria o card e faz o upload da imagem de forma atĂŽmica em um Ășnico comando. Resolve automaticamente o mapeamento de campos (Frente/Verso ou Front/Back).
* **`get_capabilities`**: Retorna a lista completa de ferramentas e instruçÔes recomendadas para o assistente de IA.
* **`anki_parse_pdf`**: (*Apenas no MĂ©todo A*) LĂȘ PDFs locais, extrai textos/mĂdias e anexa automaticamente as imagens extraĂdas na pasta de mĂdia do seu Anki.
---
## đĄ Exemplos de Prompts
* *"Crie 5 cards de inglĂȘs no meu baralho de VocabulĂĄrio sobre palavras corporativas avançadas."*
* *"Procure no meu Anki por cards que mencionam 'MitocĂŽndria' e me traga os textos deles."*
* *"Altere a resposta do card de ID 1685890000000 para '42'."*
* *"Sincronize o meu Anki."*
---
## đ Licença
Licença ISC. Desenvolvido para uso pessoal e integraçÔes seguras.
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues