An MCP (Model Context Protocol) server that connects your Mendeley reference library to LLM applications like Claude Desktop, Cursor, and other MCP-compatible clients. - Search your library - Find papers by title, author, abstract, or notes - Browse folders - Navigate your collection structure - Get full metadata - Retrieve complete document details including abstracts - Search global catalog - Ac
Add this skill
npx mdskills install pallaprolus/mendeley-mcpWell-documented MCP server with useful tools for academic reference management and comprehensive setup instructions
1<p align="center">2 <img src="https://raw.githubusercontent.com/pallaprolus/mendeley-mcp/main/mendeley-mcp.png" alt="Mendeley MCP Logo" width="200">3</p>45# Mendeley MCP Server67An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that connects your Mendeley reference library to LLM applications like Claude Desktop, Cursor, and other MCP-compatible clients.89[](https://opensource.org/licenses/MIT)10[](https://www.python.org/downloads/)11[](https://pypi.org/project/mendeley-mcp/)12[](https://pepy.tech/project/mendeley-mcp)13[](https://github.com/pallaprolus/mendeley-mcp/pkgs/container/mendeley-mcp)1415<a href="https://glama.ai/mcp/servers/@pallaprolus/mendeley-mcp">16 <img width="380" height="200" src="https://glama.ai/mcp/servers/@pallaprolus/mendeley-mcp/badge" alt="Mendeley MCP server on Glama" />17</a>1819## Features2021- **Search your library** - Find papers by title, author, abstract, or notes22- **Browse folders** - Navigate your collection structure23- **Get full metadata** - Retrieve complete document details including abstracts24- **Search global catalog** - Access Mendeley's 100M+ paper database25- **DOI lookup** - Find papers by their DOI26- **Add documents** - Create new entries in your library2728## Prerequisites29301. **Mendeley Account** - Sign up at [mendeley.com](https://www.mendeley.com/) (uses Elsevier authentication)312. **Mendeley API App** - Register at [dev.mendeley.com/myapps.html](https://dev.mendeley.com/myapps.html)32 - Sign in with your Elsevier credentials33 - Click "Register a new app"34 - Set redirect URL to `http://localhost:8585/callback`35 - Select "Authorization code" flow (not Legacy)36 - Note your **Client ID** and **Client Secret**3738## Installation3940### Using pip4142```bash43pip install mendeley-mcp44```4546### Using uv (recommended)4748```bash49uv tool install mendeley-mcp50```5152### Using Docker5354```bash55docker run -it \56 -e MENDELEY_CLIENT_ID="your-client-id" \57 -e MENDELEY_CLIENT_SECRET="your-client-secret" \58 -e MENDELEY_REFRESH_TOKEN="your-refresh-token" \59 ghcr.io/pallaprolus/mendeley-mcp60```6162Or build locally:63```bash64git clone https://github.com/pallaprolus/mendeley-mcp.git65cd mendeley-mcp66docker build -t mendeley-mcp .67```6869### From source7071```bash72git clone https://github.com/pallaprolus/mendeley-mcp.git73cd mendeley-mcp74pip install -e .75```7677## Quick Start7879### 1. Authenticate with Mendeley8081Run the authentication wizard:8283```bash84mendeley-auth login85```8687This will:881. Prompt for your Client ID and Client Secret892. Open your browser to authorize the app903. Save your credentials securely in your system keyring9192### 2. Add to Claude Desktop9394Edit your Claude Desktop config file:9596**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`97**Linux**: `~/.config/Claude/claude_desktop_config.json`98**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`99100```json101{102 "mcpServers": {103 "mendeley": {104 "command": "mendeley-mcp"105 }106 }107}108```109110If installed with uv:111```json112{113 "mcpServers": {114 "mendeley": {115 "command": "uvx",116 "args": ["mendeley-mcp"]117 }118 }119}120```121122### 3. Restart Claude Desktop123124The Mendeley tools should now be available in Claude.125126## Available Tools127128| Tool | Description |129|------|-------------|130| `mendeley_search_library` | Search documents in your library |131| `mendeley_get_document` | Get full details of a specific document |132| `mendeley_list_documents` | List documents, optionally filtered by folder |133| `mendeley_list_folders` | List all folders/collections |134| `mendeley_search_catalog` | Search Mendeley's global paper database |135| `mendeley_get_by_doi` | Look up a paper by DOI |136| `mendeley_add_document` | Add a new document to your library |137138## Example Usage139140Once configured, you can ask Claude things like:141142- "Search my Mendeley library for papers about transformer architectures"143- "What papers do I have in my 'Machine Learning' folder?"144- "Find the paper with DOI 10.1038/nature14539 and summarize it"145- "Search the Mendeley catalog for recent papers on protein folding"146- "Add this paper to my library: [title, authors, etc.]"147148## Configuration149150### Environment Variables151152If you prefer not to use `mendeley-auth login`, you can configure credentials via environment variables:153154```bash155# Required156export MENDELEY_CLIENT_ID="your-client-id"157export MENDELEY_CLIENT_SECRET="your-client-secret"158159# One of the following (refresh token recommended - access tokens expire quickly)160export MENDELEY_REFRESH_TOKEN="your-refresh-token"161# OR162export MENDELEY_ACCESS_TOKEN="your-access-token"163```164165Or in your MCP config:166167```json168{169 "mcpServers": {170 "mendeley": {171 "command": "mendeley-mcp",172 "env": {173 "MENDELEY_CLIENT_ID": "your-client-id",174 "MENDELEY_CLIENT_SECRET": "your-client-secret",175 "MENDELEY_REFRESH_TOKEN": "your-refresh-token"176 }177 }178 }179}180```181182### Auth Commands183184```bash185# Check authentication status186mendeley-auth status187188# Show environment variables for manual config189mendeley-auth show-env190191# Remove saved credentials192mendeley-auth logout193```194195## Development196197### Setup198199```bash200git clone https://github.com/pallaprolus/mendeley-mcp.git201cd mendeley-mcp202python -m venv .venv203source .venv/bin/activate204pip install -e ".[dev]"205```206207### Testing208209```bash210# Run tests211pytest212213# Run with coverage214pytest --cov=mendeley_mcp215216# Type checking217mypy src/mendeley_mcp218219# Linting220ruff check src/221```222223### Testing with MCP Inspector224225```bash226# Install MCP inspector227npm install -g @modelcontextprotocol/inspector228229# Run your server with inspector230npx @modelcontextprotocol/inspector mendeley-mcp231```232233## Architecture234235```236┌─────────────────┐ ┌──────────────────┐ ┌───────────────────┐237│ Claude Desktop │────▶│ mendeley-mcp │────▶│ Mendeley API │238│ (MCP Client) │◀────│ (MCP Server) │◀────│ api.mendeley.com │239└─────────────────┘ └──────────────────┘ └───────────────────┘240 │241 ▼242 ┌──────────────────┐243 │ Local Keyring │244 │ (credentials) │245 └──────────────────┘246```247248**Important**: This server runs locally on your machine. Your credentials and data never pass through any third-party servers - all communication is directly between your computer and Mendeley's API.249250**Credential Storage**: Your OAuth tokens and client secret are stored securely in your system's native keyring (macOS Keychain, Windows Credential Locker, or Linux Secret Service). Only the non-sensitive client ID is stored in `~/.config/mendeley-mcp/credentials.json`.251252## Rate Limits253254Mendeley API rate limits are per-user. If you hit rate limits:255256- The server implements automatic token refresh257- Wait a few minutes and retry258- For heavy usage, consider spreading requests over time259260## Troubleshooting261262### "No credentials found"263264Run `mendeley-auth login` to authenticate.265266### "Token expired"267268Your access token has expired. The server will attempt to refresh it automatically using your refresh token. If this fails, run `mendeley-auth login` again.269270### "401 Unauthorized"271272Your app may have been deauthorized. Re-authenticate with `mendeley-auth login`.273274### Server not appearing in Claude2752761. Check the config file path is correct for your OS2772. Ensure JSON is valid (no trailing commas)2783. Restart Claude Desktop completely2794. Check Claude's logs for errors280281## Contributing282283Contributions are welcome! Please:2842851. Fork the repository2862. Create a feature branch2873. Make your changes2884. Run tests and linting2895. Submit a pull request290291## License292293MIT License - see [LICENSE](LICENSE) file.294295## Disclaimer296297This project is not affiliated with, endorsed by, or sponsored by Mendeley or Elsevier. Mendeley is a trademark of Elsevier B.V.298299## Acknowledgments300301- [Model Context Protocol](https://modelcontextprotocol.io/) by Anthropic302- [FastMCP](https://github.com/jlowin/fastmcp) Python framework303- [Mendeley API](https://dev.mendeley.com/) documentation304
Full transparency — inspect the skill content before installing.