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

MIT License Crates.io npm

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ávelFinalidade
OOKCITE_API_KEYLimites de taxa mais altos + ferramentas de coleção (opcional para consulta/formatação básica)
OOKCITE_APISubstituir URL base da API (padrão https://ookcite-api.turtletech.us)
OOKCITE_MCP_READ_ONLY1 desativa permanentemente mutações de coleção (revisão / automação de CI)
OOKCITE_MCP_ALLOW_MUTATE0 nega mutações; não definido ou 1 permite (chave de API ainda necessária no servidor)
OOKCITE_STARTUP_PROBES1 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_COMMANDComando que imprime a chave no stdout; stdin é fechado
OOKCITE_API_KEY_FILEArquivo protegido do proprietário cuja primeira linha é a chave
OOKCITE_API_KEY_TIMEOUTSegundos permitidos para recuperação de credenciais (padrão 10)
OOKCITE_CREDENTIAL_STOREplatform para carregar uma referência de credencial da plataforma
OOKCITE_CREDENTIAL_SERVICENome do serviço de credencial da plataforma (padrão ookcite-mcp)
OOKCITE_CREDENTIAL_ACCOUNTNome 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

FerramentaFinalidade
validate_doiVerificar se um DOI existe (anti-alucinação)
lookup_isbnConsultar um livro por ISBN
reverse_lookupEncontrar um artigo a partir de texto de citação confuso
batch_resolveResolver muitas strings de citação em uma solicitação (máx. 50)
enhanced_searchBusca em corpus com facetas de autor / categoria / citação
health_checkVerificar disponibilidade e saúde da API

Formatação

FerramentaFinalidade
format_citationFormatar um DOI em qualquer um dos 2900+ estilos CSL
verify_referencesVerificação em lote de uma lista de DOIs
batch_formatFormatar várias citações de uma vez
search_stylesEncontrar IDs de estilo CSL por nome
list_stylesPaginar pela lista completa de estilos CSL
group_citeGerar marcadores de texto agrupados (ex.: [1-3])

Conta

FerramentaFinalidade
usagePlano em vigor mais consultas diárias (e mensais) restantes

ORCID

FerramentaFinalidade
orcid_searchEncontrar perfis ORCID por nome, afiliação ou ID ORCID
orcid_profileBuscar um perfil ORCID por ID
ingest_orcidIndexar 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.

FerramentaFinalidade
list_collectionsListar coleções de citações salvas
add_to_collectionAdicionar uma citação (por DOI ou texto livre)
batch_add_to_collectionAdicionar várias citações de uma vez
import_bibliographyImportar arquivos BibTeX/RIS para uma coleção
export_collectionExportar coleção como BibTeX
search_collectionPesquisar dentro de uma coleção; retorna entry_id por correspondência
check_duplicatesVerificar duplicatas; retorna entry_id para correspondências
delete_collectionExcluir uma coleção
update_collectionAtualizar nome, descrição ou estilo
remove_from_collectionRemover uma entrada por entry_id, DOI simples ou doi:10.x/y
update_entry_metadataCorrigir título, autores, ano, DOI, … de uma entrada salva
merge_entriesMesclar duas entradas de uma coleção em uma
update_tagsDefinir tags em uma coleção
reorder_collectionReordenar entradas

Fluxo de trabalho típico:

  1. Mantenha references.bib ou library.bib sob controle de versão no seu projeto
  2. Importe esse arquivo para uma coleção OokCite com import_bibliography
  3. Use search_collection, check_duplicates e export_collection durante a revisão
  4. 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

FerramentaFinalidade
share_collectionCriar um link compartilhável
unshare_collectionRevogar compartilhamento
view_sharedVisualizar uma coleção compartilhada por token
merge_collectionsMesclar várias coleções
batch_move_entriesMover 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

FerramentaFinalidade
generate_citation_keysChaves estilo Better BibTeX para uma lista de DOIs
expand_journalExpandir uma abreviação de periódico para seu nome completo
normalize_bibliographyRe-renderizar BibTeX ou RIS como BibTeX canônico

Estas três exigem um plano Academic ou Business.

Planos e Preços

NívelPreçoConsultas/diaChamadas de API/mêsColeçõesEntradas/coleção
AnônimoGrátis20--0--
FreeGrátis60--4200
AcademicEUR 4/mês20.00010.000101.000
BusinessEUR 10/mês20.00040.000204.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 .bib sob 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.

CaminhoFunção
src/main.rsEntrada binária: --version, setup, inicia o servidor MCP
src/cli.rsSondas de inicialização (valida OOKCITE_API_KEY via /api/v1/me, verificação de atualização)
src/setup.rsInstalador de configuração do cliente ookcite-mcp setup / npx add-mcp
src/server.rsManipuladores de ferramentas MCP Server + #[tool_router] (mais testes unitários no final)
src/tool_args.rsEstruturas de argumentos de ferramentas (serde + schemars)
src/constants.rsURL base da API, versão do pacote, limite de confiança para busca reversa
src/http_error.rsClassificação de error_detail e status HTTP para mensagens voltadas ao cliente
src/collection_entries.rsIDs de itens de coleção, resolução de alias DOI simples / doi:, linhas de busca
src/resolve_helpers.rsAuxiliares de payload para busca reversa e resolução de texto livre
src/endpoints.rsRegistro de endpoints (superfície da crate lib); testado por contrato
src/lib.rsRaiz da biblioteca (exporta apenas endpoints)
tests/api_contract.rsDescriptografa 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.shGancho 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.