Ookcite MCP
Valide DOIs em um banco de dados real de citações, formate referências em mais de 2900 estilos CSL (APA, IEEE, Chicago, Nature, etc.) e identifique referências acadêmicas alucinadas antes que cheguem ao seu artigo, documentação ou apresentação. Gerencie coleções de citações, importe/exporte BibTeX e processe referências em lote. 29 ferramentas.
Documentação
Servidor MCP OokCite
Dê a ferramentas compatíveis com MCP a capacidade de validar DOIs, formatar citações, gerenciar coleções de bibliografia e detectar referências fabricadas. Retorna apenas metadados de citação — não PDFs ou artigos em texto completo. Funciona com clientes que suportam servidores MCP por entrada e saída padrão.
Início Rápido
Um comando para instalar e configurar:
npx @turtletech/ookcite-mcp setup
Isso detecta automaticamente clientes MCP compatíveis e escreve a configuração para você. Conecte uma conta OokCite para limites de taxa mais altos e ferramentas de coleção sem colocar uma chave de API em argumentos de shell ou configuração MCP:
npx @turtletech/ookcite-mcp setup --connect
O comando abre o painel TurtleTech, cria ou ativa o plano Free, armazena a chave emitida no armazenamento de credenciais da plataforma e escreve apenas uma referência de credencial para os clientes detectados. Use setup --connect --device em uma máquina sem interface gráfica.
Uma chave de API existente continua suportada:
npx @turtletech/ookcite-mcp setup --key YOUR_API_KEY
Nenhuma chave de API é necessária para uso básico (20 consultas/dia). Cadastre-se para mais.
Após alterar a configuração do MCP, reinicie o cliente ou recarregue seus servidores MCP. Muitos clientes não recarregam a quente alterações de variáveis de ambiente para servidores stdio já em execução.
Instalação (Métodos Alternativos)
npm (recomendado):
npm install -g @turtletech/ookcite-mcp
cargo-binstall (mais rápido, sem Node.js):
cargo binstall ookcite-mcp
cargo install (a partir do código-fonte):
cargo install ookcite-mcp
Binários pré-compilados: Baixe de GitHub Releases para Linux (x86_64, aarch64), macOS (x86_64, aarch64) e Windows.
Configurar
Se você usou setup, está pronto. Caso contrário, adicione à configuração do seu cliente MCP:
{
"mcpServers": {
"ookcite": {
"command": "npx",
"args": ["-y", "@turtletech/ookcite-mcp"]
}
}
}
Com uma chave de API:
{
"mcpServers": {
"ookcite": {
"command": "npx",
"args": ["-y", "@turtletech/ookcite-mcp"],
"env": {
"OOKCITE_API_KEY": "your_key_here"
}
}
}
}
Se você instalou globalmente (npm install -g ou cargo install), pode usar
"command": "ookcite-mcp" diretamente em vez de npx.
Mantendo a chave fora do arquivo de configuração
setup --connect usa o armazenamento de credenciais da plataforma por padrão. Ele se recusa a substituir uma credencial de plataforma existente ou uma configuração nomeada do OokCite MCP, a menos que --replace-credential ou --replace-config seja fornecido explicitamente.
Um gerenciador de credenciais genérico pode ser usado em vez disso. O comando de armazenamento recebe a nova chave na entrada padrão; ele não deve esperar a chave em um argumento de linha de comando. O comando de recuperação imprime a chave na saída padrão quando o servidor MCP inicia:
npx @turtletech/ookcite-mcp setup --connect \
--store-command "credential-cli store ookcite" \
--retrieve-command "credential-cli read ookcite"
Para um arquivo explícito somente do proprietário em vez de um gerenciador de credenciais:
npx @turtletech/ookcite-mcp setup --connect \
--credential-file "$HOME/.config/ookcite/api-key"
O arquivo é criado com permissões somente do proprietário e nunca é sobrescrito. As formas de plataforma, comando auxiliar e arquivo colocam referências como estas na configuração do cliente:
{
"mcpServers": {
"ookcite": {
"command": "npx",
"args": ["-y", "@turtletech/ookcite-mcp"],
"env": {
"OOKCITE_API_KEY_COMMAND": "credential-cli read ookcite"
}
}
}
}
Na inicialização, a precedência da fonte permanece OOKCITE_API_KEY,
OOKCITE_API_KEY_COMMAND, OOKCITE_API_KEY_FILE e, em seguida, a referência de credencial da plataforma. Com nenhuma delas, o servidor inicia anônimo. setup --key permanece disponível para implantações existentes que intencionalmente mantêm a chave na configuração do cliente.
A recuperação de credenciais obedece a duas restrições:
- A recuperação recebe entrada padrão fechada, portanto não pode consumir MCP JSON-RPC.
- A recuperação é limitada por
OOKCITE_API_KEY_TIMEOUT, que tem como padrão 10 segundos, e sua saída nunca é copiada para diagnósticos.
Consulte a documentação MCP do seu cliente para a localização do arquivo de configuração. Use o JSON mcpServers.ookcite acima quando a configuração automática não estiver disponível, depois reinicie o cliente ou recarregue seus servidores MCP.
Env opcional (stdio MCP, todos os clientes):
| Variável | Finalidade |
|---|---|
OOKCITE_API_KEY | Limites de taxa mais altos + ferramentas de coleção (opcional para consulta/formatação básica) |
OOKCITE_API | Substituir URL base da API (padrão https://ookcite-api.turtletech.us) |
OOKCITE_MCP_READ_ONLY | 1 desativa permanentemente mutações de coleção (revisão / automação de CI) |
OOKCITE_MCP_ALLOW_MUTATE | 0 nega mutações; não definido ou 1 permite (chave de API ainda necessária no servidor) |
OOKCITE_STARTUP_PROBES | 1 executa verificações de autenticação + atualização do npm no stderr antes de aceitar conexões MCP (padrão desligado para conexão mais rápida) |
OOKCITE_API_KEY_COMMAND | Comando que imprime a chave no stdout; stdin é fechado |
OOKCITE_API_KEY_FILE | Arquivo protegido do proprietário cuja primeira linha é a chave |
OOKCITE_API_KEY_TIMEOUT | Segundos permitidos para recuperação de credenciais (padrão 10) |
OOKCITE_CREDENTIAL_STORE | platform para carregar uma referência de credencial da plataforma |
OOKCITE_CREDENTIAL_SERVICE | Nome do serviço de credencial da plataforma (padrão ookcite-mcp) |
OOKCITE_CREDENTIAL_ACCOUNT | Nome da conta de credencial da plataforma (padrão default) |
Dicas de uso do MCP
- Prefira ferramentas em lote (
verify_references,batch_format,batch_add_to_collection,import_bibliography) em vez de muitas chamadas de citação única. - Mutações de coleção exigem
OOKCITE_API_KEY. Ferramentas destrutivas (delete_collection,remove_from_collection,unshare_collection) são anotadas para clientes que honram dicas de ferramentas MCP. - O servidor escreve diagnósticos no stderr apenas no caminho MCP; stdout é reservado para JSON-RPC.
Ferramentas
Consulta e Validação
| Ferramenta | Finalidade |
|---|---|
validate_doi | Verificar se um DOI existe (anti-alucinação) |
lookup_isbn | Consultar um livro por ISBN |
reverse_lookup | Encontrar um artigo a partir de texto de citação confuso |
batch_resolve | Resolver muitas strings de citação em uma solicitação (máx. 50) |
enhanced_search | Busca em corpus com facetas de autor / categoria / citação |
health_check | Verificar disponibilidade e saúde da API |
Formatação
| Ferramenta | Finalidade |
|---|---|
format_citation | Formatar um DOI em qualquer um dos 2900+ estilos CSL |
verify_references | Verificação em lote de uma lista de DOIs |
batch_format | Formatar várias citações de uma vez |
search_styles | Encontrar IDs de estilo CSL por nome |
list_styles | Paginar pela lista completa de estilos CSL |
group_cite | Gerar marcadores de texto agrupados (ex.: [1-3]) |
Conta
| Ferramenta | Finalidade |
|---|---|
usage | Plano em vigor mais consultas diárias (e mensais) restantes |
ORCID
| Ferramenta | Finalidade |
|---|---|
orcid_search | Encontrar perfis ORCID por nome, afiliação ou ID ORCID |
orcid_profile | Buscar um perfil ORCID por ID |
ingest_orcid | Indexar as publicações do perfil ORCID para que sejam pesquisáveis |
Coleções (requer login)
Coleções são um recurso para usuários conectados. Defina OOKCITE_API_KEY para usar estas ferramentas.
| Ferramenta | Finalidade |
|---|---|
list_collections | Listar coleções de citações salvas |
add_to_collection | Adicionar uma citação (por DOI ou texto livre) |
batch_add_to_collection | Adicionar várias citações de uma vez |
import_bibliography | Importar arquivos BibTeX/RIS para uma coleção |
export_collection | Exportar coleção como BibTeX |
search_collection | Pesquisar dentro de uma coleção; retorna entry_id por correspondência |
check_duplicates | Verificar duplicatas; retorna entry_id para correspondências |
delete_collection | Excluir uma coleção |
update_collection | Atualizar nome, descrição ou estilo |
remove_from_collection | Remover uma entrada por entry_id, DOI simples ou doi:10.x/y |
update_entry_metadata | Corrigir título, autores, ano, DOI, … de uma entrada salva |
merge_entries | Mesclar duas entradas de uma coleção em uma |
update_tags | Definir tags em uma coleção |
reorder_collection | Reordenar entradas |
Fluxo de trabalho típico:
- Mantenha
references.biboulibrary.bibsob controle de versão no seu projeto - Importe esse arquivo para uma coleção OokCite com
import_bibliography - Use
search_collection,check_duplicateseexport_collectiondurante a revisão - Trate a coleção como um complemento de auditoria/exportação, não como a única cópia da sua bibliografia
Removendo uma única entrada: chame search_collection (ou check_duplicates) para
ver cada resultado como entry_id: … (e opcionalmente aliases: doi:… quando o id armazenado
for opaco). Passe esse entry_id para remove_from_collection, ou passe o
DOI simples / doi:10.x/y do artigo — o servidor resolve aliases localmente antes da chamada à API.
Compartilhamento e Operações de Coleção
| Ferramenta | Finalidade |
|---|---|
share_collection | Criar um link compartilhável |
unshare_collection | Revogar compartilhamento |
view_shared | Visualizar uma coleção compartilhada por token |
merge_collections | Mesclar várias coleções |
batch_move_entries | Mover entradas entre coleções |
O compartilhamento está disponível para contas conectadas com coleções. Contas gratuitas podem importar e adicionar em lote dentro de sua cota diária. Mesclar e mover em lote exigem um plano Academic ou Business.
Utilitários
| Ferramenta | Finalidade |
|---|---|
generate_citation_keys | Chaves estilo Better BibTeX para uma lista de DOIs |
expand_journal | Expandir uma abreviação de periódico para seu nome completo |
normalize_bibliography | Re-renderizar BibTeX ou RIS como BibTeX canônico |
Estas três exigem um plano Academic ou Business.
Planos e Preços
| Nível | Preço | Consultas/dia | Chamadas de API/mês | Coleções | Entradas/coleção |
|---|---|---|---|---|---|
| Anônimo | Grátis | 20 | -- | 0 | -- |
| Free | Grátis | 60 | -- | 4 | 200 |
| Academic | EUR 4/mês | 20.000 | 10.000 | 10 | 1.000 |
| Business | EUR 10/mês | 20.000 | 40.000 | 20 | 4.000 |
Re-consultas podem ser atendidas sem uso de cota quando os metadados da coleção já estão disponíveis para a API. Uma recuperação que precisa resolver o artigo novamente pode contar contra a cota do plano atual. O checkout pago Academic é destinado a estudantes, pesquisadores e educadores em instituições credenciadas; um ORCID verificado também pode qualificar uma conta conectada para limites Academic.
Anti-Alucinação
Adicione isto ao seu prompt de sistema:
Antes de citar qualquer artigo, use validate_doi para confirmar que a referência existe. Se a validação falhar, não inclua a citação.
Para fluxos de trabalho de revisão, adicione:
Mantenha a bibliografia do projeto em um arquivo local
.bibsob controle de versão. Use coleções OokCite para verificação, deduplicação e exportação.
Como Funciona
O servidor MCP conecta-se à API pública OokCite para consultar e formatar citações. É um wrapper MCP leve em torno da API REST OokCite, sem banco de dados local e sem dependências pesadas.
Cadastre-se para uma conta gratuita (60 consultas/dia), ou atualize para Academic (EUR 4/mês) ou Business (EUR 10/mês) para limites mensais de API mais altos, coleções maiores, utilitários pagos, mesclagem e movimentação em lote.
Estrutura do código-fonte
A crate é um wrapper MCP (stdio) leve em torno da API REST pública OokCite. Não há banco de dados de citações local; todo o estado vive na API.
| Caminho | Função |
|---|---|
src/main.rs | Entrada binária: --version, setup, inicia o servidor MCP |
src/cli.rs | Sondas de inicialização (valida OOKCITE_API_KEY via /api/v1/me, verificação de atualização) |
src/setup.rs | Instalador de configuração do cliente ookcite-mcp setup / npx add-mcp |
src/server.rs | Manipuladores de ferramentas MCP Server + #[tool_router] (mais testes unitários no final) |
src/tool_args.rs | Estruturas de argumentos de ferramentas (serde + schemars) |
src/constants.rs | URL base da API, versão do pacote, limite de confiança para busca reversa |
src/http_error.rs | Classificação de error_detail e status HTTP para mensagens voltadas ao cliente |
src/collection_entries.rs | IDs de itens de coleção, resolução de alias DOI simples / doi:, linhas de busca |
src/resolve_helpers.rs | Auxiliares de payload para busca reversa e resolução de texto livre |
src/endpoints.rs | Registro de endpoints (superfície da crate lib); testado por contrato |
src/lib.rs | Raiz da biblioteca (exporta apenas endpoints) |
tests/api_contract.rs | Descriptografa contract/openapi.json.age; verifica que todo endpoint existe |
contract/ | Snapshot OpenAPI criptografado por idade + regen.sh |
npm/ | Instalador/empacotador @turtletech/ookcite-mcp (baixa o binário da versão) |
demo/ | Scripts de gravação Asciinema |
scripts/set-version.sh | Gancho pré-bump do Cocogitto: versão Cargo.toml + npm/package.json |
Coleções / IDs de itens: search_collection e check_duplicates emitem
linhas entry_id: …. remove_from_collection aceita esse ID, um DOI simples ou
doi:10.x/y (resolvido localmente em collection_entries antes da chamada DELETE).
Lançamento: a tag v* executa .github/workflows/release.yml (assets de lançamento
GitHub multi-arquitetura, crates.io, npm). Aumentos de versão usam cocogitto
(cog.toml + scripts/set-version.sh).
Por que server.rs é grande: as macros #[tool_router] / #[tool] de rmcp mantêm
os manipuladores em um único impl Server. Divisões adicionais de arquivos sem soluções alternativas de macro
agregam pouco valor ao usuário; extraia testes ou adicione pequenos auxiliares (resolve_many, tipo
compartilhado Me) antes de enfrentar a macro.
Contribuindo / verificações locais
cargo test --bin ookcite-mcp # unit tests (no contract key needed)
cargo build --release
./target/release/ookcite-mcp --version
# Contract tests (optional locally; required in CI with secret):
export OOKCITE_CONTRACT_KEY="value-from-your-credential-manager"
cargo test --test api_contract
Teste de fumaça MCP ao vivo (opcional; requer OOKCITE_API_KEY): adicionar/buscar/remover com um
DOI simples em uma coleção descartável, depois delete_collection.
Documentação
Licença
MIT. veja LICENSE.