Make scite opt-in: its subscription allows 250 calls a month
Summary
Makes scite opt-in. Its subscription allows 250 MCP calls a month, and one day in the default search set spent all of it.
After #7, every paper-fetch search asked scite, and a profile search asked it up to three times (once per query variant). With the research-rag gateway and about a dozen sessions searching, the month’s allowance was gone within a day. scite now answers “You have reached your monthly MCP usage limit (250 calls)”.
What changes
- Default set: scite is no longer in
DEFAULT_SEARCH. An ordinary search doesn’t touch it. - Opting in: a search asks scite on top of the usual providers with
also=["scite"]in Python,--sciteon the CLI, orscite: trueon the MCPsearchtool. Naming it inPAPER_FETCH_SEARCH_PROVIDERSorproviders=still works. - One call per search:
Provider.meteredis new and is True for scite. A metered provider is asked the query as written, once, and never a profile’s variants. - Session reuse: the opted-in provider is built once per
Library, so scite’s MCP session is reused instead of opened per search. One thread uses that session at a time. - Docs: README and
CLAUDE.mdrecord the limit and how to opt in.
Test plan
uv run pytest: 329 passed, 95% coverage. New tests cover:- scite is asked only when told to;
alsodoesn’t ask a provider twice and reuses the session;- a metered provider is skipped for profile variants;
- the CLI flag and the MCP parameter pass the opt-in through.
ruff check,ruff format --checkandpyrightare clean.- Live: a default
paper-fetch searchreports the nine usual providers and no scite. - Live:
--sciteasks scite by name. It currently returns scite’s monthly-limit message, reported asunavailable. - A successful live scite search through the opt-in path. This can’t run until the allowance resets.
🤖 Generated with Claude Code