Content
# eLibrary MCP
MCP server for working with the web interface of [eLIBRARY.RU](https://elibrary.ru) from LLM clients (Cursor and others). Transport: **stdio** (`node dist/index.js`).
## Important: Legal Risks
Automated access may contradict the rules of eLIBRARY.RU. Use only within your rights and subscription. The repository authors do not guarantee performance when changing the layout or site policy.
## Confidentiality
Passwords and cookies are **not** written to the disk by the server; the session is held in the RAM of the process. Do not pass account data in tool arguments — only through environment variables / host secrets.
## Environment Variables
| Variable | Purpose |
|----------|----------|
| `ELIBRARY_BASE_URL` | Base URL (default `https://elibrary.ru`) |
| `ELIBRARY_COOKIE` | Mode C: `Cookie` header string after logging in the browser |
| `ELIBRARY_LOGIN` / `ELIBRARY_PASSWORD` | Mode A: login and password |
| *(without cookie and login)* | Anonymous session: the server requests the main page and receives eLIBRARY cookie (limited access) |
| `ELIBRARY_LOGIN_PAGE` | URL or path of the login form page (required for Mode A) |
| `ELIBRARY_LOGIN_FIELD` | Login field name if auto-detection does not work |
| `MCP_ELIBRARY_TENANT` | Stable user ID from the host (jar isolation in one process) |
| `ELIBRARY_GLOBAL_RPS` / `ELIBRARY_TENANT_RPS` | Request per second limits (see `src/config.ts`) |
Default entity paths: `item.asp`, `author_profile.asp`, `org_profile.asp`, `journal_profile.asp`. Search: loading `querybox.asp` and POST to `query_results.asp` (see `src/search/`). If the browser has different URLs, check and, if necessary, improve `src/urls.ts`.
## Build and Run
```bash
npm ci
npm test
npm run build
npm start
```
Connection in Cursor: `mcpServers` → command `node`, args `["/absolute/path/to/dist/index.js"]`, env with secrets.
## Tools
- `elibrary_search` — search (`query`, optionally `page`)
- `elibrary_publication`, `elibrary_author`, `elibrary_organization`, `elibrary_journal` — cards by `id`
- `elibrary_publication_metrics` — heuristics by page text (citation/metrics)
- `elibrary_fulltext` — link to PDF or refusal code
- `elibrary_logout` — reset cookie in memory
- `elibrary_metrics_snapshot` — success/failure counters by tools
All main tools optionally have `tenant_key` if there is no `MCP_ELIBRARY_TENANT`.
## Publication in Smithery / Cloud
The current format of `smithery.yaml` is described in the [Smithery documentation](https://smithery.ai/docs). For Playwright-fallback (plan, Task 11), a **container** runtime is usually required.
## MVP Limitations
No CAPTCHA bypass; parsers depend on HTML. With `SCHEMA_BREAK`, updating selectors in `src/parsers/` may be required.
Connection Info
You Might Also Like
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
Fetch
Retrieve and process content from web pages by converting HTML into markdown format.
Agent-Reach
Give your AI agent eyes to see the entire internet. Read & search Twitter,...
Context 7
Context7 MCP provides up-to-date code documentation for any prompt.
context7-mcp
Context7 MCP Server provides natural language access to documentation for...
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.