Resolve scholarly identifiers and check citations from inside Gemini CLI
(and, after migration, the Antigravity CLI). Scholar Sidekick turns a DOI (including shortDOI aliases like
10/aabbe), PMID, PMCID, ISBN, arXiv id, ISSN, NASA ADS bibcode, or WHO IRIS URL into
formatted citations (10,000+ CSL styles) and
bibliography exports (BibTeX, RIS, CSL-JSON, EndNote, RefWorks, MEDLINE, Zotero RDF, CSV, text),
and checks retraction status, open-access status, and citation fabrication.
This extension is a thin wrapper around the existing
scholar-sidekick-mcp server and the
scholar-sidekick-cli — both published to npm
and fetched on demand via npx. There is nothing to build.
It gives Gemini two ways to use Scholar Sidekick:
- MCP tools the agent can call autonomously:
resolveIdentifier,formatCitation,exportCitation,checkRetraction,checkOpenAccess,verifyCitation,auditBibliography. - Slash commands you invoke directly:
/scholar:format,:resolve,:export,:verify,:audit,:retraction,:oa.
No API key required. Everything works on the anonymous, rate-limited free tier.
- Gemini CLI installed.
- Node.js ≥ 20 (for the
npx-launched MCP server and CLI). - No API key. An optional free
ssk_key raises rate limits and enables the verifier's LLM screen.
gemini extensions install https://github.com/mlava/scholar-sidekick-geminiLocal development (symlink instead of clone):
gemini extensions link /path/to/scholar-sidekick-geminiManage it with the usual commands:
gemini extensions list
gemini extensions disable scholar-sidekick
gemini extensions uninstall scholar-sidekickgemini extensions config scholar-sidekickThis stores SCHOLAR_API_KEY securely (system keychain) and passes it to the MCP server. It is
optional — the extension works without it. A free ssk_ key from
https://scholar-sidekick.com/account raises rate limits and unlocks the verifier's Stage-3 LLM
screen. SCHOLAR_SIDEKICK_URL overrides the API base URL (defaults to
https://scholar-sidekick.com); RAPIDAPI_KEY routes via the RapidAPI gateway for paid tiers.
The slash commands shell out to the
scholarCLI, which readsSCHOLAR_API_KEYfrom the environment. Ifgemini extensions configdoes not propagate the key into shell-command execution in your version, alsoexport SCHOLAR_API_KEY=ssk_...in your shell. None of the commands need a key to run.
/scholar:format 10.1056/NEJMoa2033700
/scholar:format 10.1056/NEJMoa2033700 --style apa
/scholar:resolve 10.1056/NEJMoa2033700 38000000
/scholar:export 10.1056/NEJMoa2033700 --format bib
/scholar:verify --title "Some claimed title" --doi 10.1056/NEJMoa2033700
/scholar:audit refs.bib
/scholar:retraction 10.1056/NEJMoa2033700
/scholar:oa 10.1056/NEJMoa2033700
Each command runs the corresponding scholar CLI subcommand and asks Gemini to summarize the JSON
output. Gemini will prompt for confirmation before running the shell command.
Because the MCP server is registered, you can also just ask in natural language:
Format this DOI in APA: 10.1056/NEJMoa2033700
Is this citation real? "Invented title", doi 10.1056/NEJMoa2033700
Has 10.1016/j.cell.2020.01.001 been retracted, and is it open access?
Gemini will call the appropriate tool (formatCitation, verifyCitation, checkRetraction,
checkOpenAccess, …) itself.
Gemini CLI is being replaced by the Antigravity CLI (agy) for
individual-tier users. Import this extension as a native Antigravity plugin with:
agy plugin import geminiThis works cleanly here because the extension stays within the portable subset:
- The MCP server is local stdio (
command/args), which carries over unchanged — theurl→serverUrlrename only affects remote HTTP MCP servers, and this extension has none. commands/*.tomlare collapsed into Antigravity skills automatically during import.GEMINI.mdkeeps working as the context file.- No custom themes or Node-only API dependencies (the only things that don't migrate).
Invocation differs from Gemini CLI — this is expected:
- There is no
/scholar:formatslash command inagy. The commands become skills (namedformat,resolve,export,verify,audit,retraction,oaunder~/.gemini/config/plugins/scholar-sidekick/skills/) that the agent invokes, and the MCP tools are called by the agent directly. Just ask in natural language, e.g. "use scholar-sidekick to format 10.1056/NEJMoa2033700 in APA". - No key needed, so nothing to configure. The imported
~/.gemini/config/plugins/scholar-sidekick/mcp_config.jsonhasenv: null, which is fine. To raise limits, add"env": { "SCHOLAR_API_KEY": "ssk_…" }there for the MCP tools, and/orexport SCHOLAR_API_KEY=ssk_…in your shell for the skill shell-outs.
If you'd rather not run the server locally via npx, Scholar Sidekick also exposes a hosted
Streamable-HTTP MCP endpoint with the same seven tools at https://scholar-sidekick.com/api/mcp. This
extension uses the local npx stdio form because it migrates to Antigravity without a serverUrl
rename.
gemini-extension.json # manifest: MCP server + settings + contextFileName
GEMINI.md # context auto-loaded into the model
commands/scholar/ # /scholar:format|resolve|export|verify|audit|retraction|oa (shell out to the CLI)
- Scholar Sidekick: https://scholar-sidekick.com
- MCP server: https://www.npmjs.com/package/scholar-sidekick-mcp
- CLI: https://www.npmjs.com/package/scholar-sidekick-cli
MIT © Scholar Sidekick