Cross-Platform MCP Server
Qiongli ships one canonical full local MCP server: qiongli mcp serve --transport stdio. It exposes literature-provider tools plus orchestrator and task-run tools from one Python-backed CLI process. The bundled Node literature MCP runtimes in marketplace plugins and MCPB packages remain lite/no-CLI fallbacks for environments that cannot run the full CLI.
Full CLI Stdio Mode
Use the full CLI server when the desktop or agent client can start a local qiongli command:
qiongli mcp config example --target codex --json
qiongli mcp config example --target claude-code --json
qiongli mcp config example --target antigravity --json
qiongli mcp config example --target hermes --jsonThe server command is:
qiongli mcp serve --transport stdioThis mode does not require a remote server. The client launches the local process, and Qiongli reads provider credentials from the shared provider configuration. It requires the npm, pipx/pip, or full bootstrap runtime so that qiongli is on PATH.
For Codex and Claude Code, the preferred full local shape is a CLI-generated local plugin bundle:
qiongli install --profile full --target codex --surface plugin
qiongli install --profile full --target claude --surface pluginThose local plugins are different from the public marketplace lite plugins. They include a plugin-owned .mcp.json or plugin manifest entry that launches the full Python-backed qiongli mcp serve --transport stdio command.
For Antigravity, Qiongli generates an Antigravity plugin bundle with root mcp_config.json. Hermes still receives a managed client-level MCP config:
qiongli install --profile full --target antigravity
qiongli install --profile full --target hermesUse the combined install when you want the full local surface everywhere:
qiongli install --profile full --target all --surface pluginWith --target all --surface plugin, Codex, Claude Code, and Antigravity get CLI-managed local plugin bundles. Antigravity follows the official plugin layout by bundling mcp_config.json at the plugin root, while Hermes receives its managed MCP config entry. Set ANTIGRAVITY_CONFIG_PATH for legacy or explicit --parts mcp --target antigravity installs, and set HERMES_CONFIG_PATH when Hermes uses a different MCP config file. Existing unmanaged qiongli server entries are preserved and reported as skipped.
The full CLI server exposes literature, provider/configuration, and orchestrator tools:
qiongli_config_status,qiongli_configure_provider,qiongli_save_provider_config,qiongli_list_provider_env, andqiongli_test_providerfor provider configuration and redacted readiness.- External evidence adapter:
qiongli_collect_evidencecovers filesystem, builtin workflow adapters, and external evidence adapter commands. Do not useqiongli_collect_evidenceto judge built-in literature provider config. Direct academic provider names such asopenalexrequireRESEARCH_MCP_<PROVIDER>_CMD; OpenAlex/Semantic Scholar/Crossref/PubMed/arXiv provider availability is checked throughqiongli_literature_statusandqiongli_literature_search. qiongli_literature_status,qiongli_literature_search, andqiongli_literature_export_evidencefor literature provider status, search, and auditable evidence snapshots.qiongli_search_planis the workflow-level literature routing contract used bylit-review,paper-read, and related Stage B skills. It recordssearch_execution_modeashybrid_search,provider_connected,native_only, orstrategy_only, and recordsprovider_capability_modeseparately asprovider_connectedorstrategy_only.qiongli_orchestrator_routefor deciding whether Codex, Claude Code, Antigravity, or another client should upgrade from skill-only workflow routing to full orchestrator tools.qiongli_orchestrator_doctorfor local runtime preflight checks.qiongli_task_planfor a no-agent task plan.qiongli_task_runfor a controlled task-run surface. It defaults to preview and does not launch local runtime agents unless the caller explicitly passes JSON booleanrun_agents: true. It acceptsguidance_mode(off,read,propose, orapply) and echoes that mode in preview arguments. Preview reports whether.qiongli/guidance would be bootstrapped, but only actual task execution writes those files.
Literature search routing has a strict MCP boundary:
hybrid_searchmeans provider MCP calls plus platform native search.provider_connectedmeans provider MCP calls only.native_onlymeans the active agent has platform native search, but the provider layer is not connected.strategy_onlymeans neither provider-connected MCP nor usable platform native search is available.
MCP servers must not call Codex or Claude native search directly. The active agent executes native_search_queries from qiongli_search_plan; the MCP provider layer performs only provider calls. Search evidence must preserve distinct provenance labels, including mcp:openalex, mcp:semantic_scholar, mcp:crossref, mcp:pubmed, mcp:arxiv, native:codex_web_search, native:claude_web_search, and user_corpus.
When task-run agents are launched, formal artifacts are still expected under RESEARCH/[topic]/.... The first non-off task run initializes .qiongli/local_guidance.md and .qiongli/trace/ if they are missing. The project-local guidance layer writes auditable run traces under .qiongli/trace/; this trace location is separate from formal research outputs and from installed skill assets.
Skill-only Qiongli usage also checks .qiongli/local_guidance.md and .qiongli/guidance.d/*.md when they are present in the current project. Full orchestrator task-runs remain the stronger path because they write trace bundles, guidance proposals, validator output, and source metadata.
Use the full CLI server when Codex, Claude Code, Antigravity, or another local client needs the complete local product surface: literature tools, provider configuration, routing, planning, doctor checks, or task-run as MCP tools.
Codex Bundled Plugin MCP
The generated Codex plugin package includes .mcp.json, references it from .codex-plugin/plugin.json, and bundles a zero-dependency Node server under mcp/qiongli-literature-provider/. Codex plugin installs can therefore register and launch the literature-provider MCP server from the plugin bundle instead of requiring users to copy a separate config.toml snippet or install the qiongli CLI. This bundled server is the marketplace lite/no-CLI fallback, not the full local MCP.
The bundled server entry is:
node ./mcp/qiongli-literature-provider/index.mjsProvider keys are not embedded in the plugin manifest. Desktop users can configure keys with the bundled qiongli_configure_provider MCP tool, or script explicit writes with qiongli_save_provider_config. CLI users can configure the same shared provider file with qiongli mcp configure or qiongli provider setup.
Because Codex launches this MCP server from the installed plugin bundle, Codex's MCP settings page should be treated as an enable/disable and tool-policy surface for the bundled server, not as the credential configuration UI. The supported key setup loop is:
- Call
qiongli_config_statusto inspect the redacted status and sharedconfig_path. - Call
qiongli_configure_providerand open the returned127.0.0.1URL. - Enter the OpenAlex API key, optional OpenAlex email, and Semantic Scholar API key in the local browser form.
- Call
qiongli_literature_statusbefore claimingprovider_connected.
Keep provider secrets out of .mcp.json, .codex-plugin/plugin.json, marketplace metadata, and release artifacts. The bundled Node server reads the shared provider config at runtime.
The bundled Codex runtime focuses on literature-provider tools. Use qiongli install --profile full --target codex --surface plugin when you need a Codex-native plugin container backed by the unified full MCP surface with both literature and Python-backed orchestration tools.
qiongli_configure_provider is the platform-neutral setup contract. Codex Desktop, Claude Desktop MCPB, Claude Code, Cursor-style clients, and any local stdio MCP client should prefer it for credentials because it opens a local 127.0.0.1 setup page and returns only redacted status. qiongli_open_config_wizard remains available as a compatibility alias for older clients and docs.
Claude Code Bundled Plugin MCP
The generated Claude Code plugin package declares a bundled qiongli MCP server from .claude-plugin/plugin.json. It uses the same zero-dependency Node literature-provider runtime under mcp/qiongli-literature-provider/ as the Codex plugin.
The bundled server entry is:
node ${CLAUDE_PLUGIN_ROOT}/mcp/qiongli-literature-provider/index.mjsThis bundled runtime covers literature-provider tools such as provider configuration, status, search, search planning, and evidence export without requiring the qiongli CLI. Use qiongli install --profile full --target claude --surface plugin when Claude Code needs Python-backed orchestration tools, including qiongli_orchestrator_route, qiongli_orchestrator_doctor, qiongli_task_plan, or qiongli_task_run. Use --target antigravity, --target hermes, or --target all --surface plugin for local clients that should load the full MCP server instead of a bundled lite provider runtime.
Claude Desktop MCPB
The Claude Desktop qiongli-literature-provider.mcpb also contains the zero-dependency Node literature-provider server. It exposes user configuration fields for OpenAlex API key, optional OpenAlex email, Semantic Scholar API key, and default result limit, so a Desktop user can install the MCPB and configure provider keys without installing qiongli or running npm.
For manual Claude Desktop installs, treat the Skill ZIP and MCPB as complementary assets:
- The
qiongli-claude-desktop-skill-*.zipupload provides the agent instructions, workflows, templates, subject overlays, and skill guidance. - The
qiongli-literature-provider.mcpbinstall provides literature MCP tools such asqiongli_literature_search. - The MCPB does not launch orchestrator agents. If the same Desktop or coding client needs
qiongli_orchestrator_routeorqiongli_task_run, install the full CLI MCP server separately. For Codex/Claude Code useqiongli install --profile full --target all --surface plugin; for a direct stdio integration useqiongli mcp serve --transport stdio.
Provider Keys
CLI users can configure keys directly:
qiongli mcp configure --provider openalex --field email --value you@example.com
qiongli mcp configure --provider semantic-scholar --field api-key --value "$S2_API_KEY"
qiongli mcp doctor --jsonDesktop-only users can use the MCP tools exposed by the bundled Node server or full CLI server:
qiongli_configure_provider: starts a local browser form for provider key setup without putting API keys in chat.qiongli_open_config_wizard: compatibility alias forqiongli_configure_provider.qiongli_save_provider_config: saves one provider field from the desktop client; use it only for explicit scripted writes or when the user deliberately supplied the value in chat.qiongli_config_status: reports redacted provider status.qiongli_literature_search: searches configured OpenAlex, Semantic Scholar, Crossref, PubMed, and arXiv providers with query variants, finance/economics deep-search routing, and sanitized diagnostics. arXiv is enabled without credentials.
The full CLI server exposes the same qiongli_configure_provider flow.
Finance/economics data APIs such as FRED and SEC EDGAR should be exposed through a separate data MCP surface rather than the literature MCPB. See Finance/Economics Data MCP Boundary.
Secrets are written to the same provider config used by qiongli provider setup and qiongli provider doctor. Tool results and doctor output report only configured/missing status, not raw key values.
HTTP Mode
Use HTTP only when a platform needs an HTTP endpoint:
qiongli mcp serve --transport http --host 127.0.0.1 --port 8765For normal desktop use, this can still be local. You need a remote server only when the MCP client cannot run local commands, when several machines must share one always-on endpoint, or when your deployment policy requires a central hosted service. If you expose HTTP remotely, put it behind your normal authentication, TLS, and secret-management controls.
Supported Provider Fields
The MCP server derives provider fields from the Qiongli provider registry. Current fields include:
openalex.api_keyopenalex.emailsemantic_scholar.api_keycrossref.emailpubmed.api_key
When new providers or fields are added to the registry, the config wizard and provider env alias tool pick them up from the same source.