Atlas / MCP servers / iamalexander / Readwise

ReadwiseBLOCK

mcp/iamalexander/readwise

MCP server for Readwise

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
1 1r · 0w · 0d
Transport
sse · stdio · streamable-http
License
MIT
Stars
25
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://smithery.ai/server/@IAmAlexander/readwise-mcp) [](https://cursor.com/install-mcp?name=readwise-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc2VydmVyLnNtaXRoZXJ5LmFpL0BJQW1BbGV4YW5kZXIvcmVhZHdpc2UtbWNwL21jcCJ9) [](https://vscode.dev/redirect/mcp/install?name=readwise-mcp&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A//server.smithery.ai/%40IAmAlexander/readwise-mcp/mcp%22%7D) [](https://smithery.ai/server/@IAmAlexander/readwise-mcp) [](https://www.npmjs.com/package/readwise-mcp)

A Model Context Protocol (MCP) server for Readwise, allowing AI assistants to access your saved articles, books, highlights, and documents.

Features

  • Books & Articles: Browse your collection of saved books and articles
  • Highlights: Access all your highlighted passages
  • Search: Find content across your entire Readwise library
  • Recent Content: Quickly retrieve your latest saved items
  • Tag Management: Organize and filter content with tags
  • Advanced Search: Powerful filtering by author, date, tags, and more
  • Reading Progress: Track your reading status and completion percentage
  • Bulk Operations: Efficiently manage multiple documents at once
  • Content Management: Save, update, and delete content in your library
  • Video Support: Access and interact with videos saved in your Readwise
Read from source at commit ac22eb43f49dOBSERVED · 2026-10-09
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add readwise-mcp -- npx -y [email protected]
03

Exposed tools (1)

1 read · 0 write · 0 destructive.

ToolRiskDescription
echoreadA simple tool that echoes back the input message
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
declared (7 observation(s))
Shell
declared (5 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (23)

CRITICALObfuscation / stealth · obf.decode_then_exec · CWE-506, CWE-94
.smithery/shttp/module.js:16
atob( ... new Function(
Why it matters. decodes a payload and executes it
MEDIUMInventory / provenance · inv.symlink · CWE-1104
agent-skills
agent-skills
Why it matters. link not followed
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/smithery.ts:319
console.log(`API key provided: ${apiKey ? 'Yes' : 'No (lazy loading enabled)'}`);
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/server.ts:349
this.logger.info(`✓ Health check: http://0.0.0.0:${this.port}/health`);
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
.specstory/history/2025-03-14_13-56-deployment-setup-for-mcp-server.md:1242
"GITHUB_PERSONAL_ACCESS_TOKEN": "github_pat_11AAYB2NI0z5MO2milE9Xb_OY1tGivsazjwhOJUGKUuF7ZrrThc0iN3a
LOWInventory / provenance · inv.hidden_file · CWE-1104
.eslintrc.cjs
.eslintrc.cjs
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.specstory/.what-is-this.md
.what-is-this.md
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.specstory/history/.what-is-this.md
.what-is-this.md
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
.github/workflows/claude-security-review.yml:50
4. **Code Execution** - eval() with user input, unsafe deserialization
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/mcp/registry/base-prompt.ts:1
import { ValidationResult, validationSuccess } from '../../types/validation.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/mcp/registry/base-prompt.ts:2
import { Logger } from '../../utils/logger.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/mcp/registry/base-tool.ts:1
import { ValidationResult, validationSuccess } from '../../types/validation.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/mcp/registry/base-tool.ts:2
import type { MCPToolResult } from '../../types/index.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/mcp/registry/base-tool.ts:3
import type { Logger } from '../../utils/logger-interface.js';
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, axios, body-parser, cors, express, serverless-http, yargs, zod
Why it matters. 23 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
.specstory/history/2025-03-12_09-53-improving-the-readme-file.md:2140
+             // Send token to our callback endpoint
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
.specstory/history/2025-03-12_09-53-improving-the-readme-file.md:2934
+             // Send token to our callback endpoint
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
.specstory/history/2025-03-12_09-53-improving-the-readme-file.md:12793
ption":"Unauthorized - Invalid token"},"500":{"description":"Server error"}}}},"/bulk/save":{"post":{"operat
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
.specstory/history/2025-03-14_13-56-deployment-setup-for-mcp-server.md:4232
ption":"Unauthorized - Invalid token"},"500":{"description":"Server error"}}}},"/bulk/save":{"post":{"operat
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOInventory / provenance · inv.oversize · CWE-1104
.smithery/shttp/module.js.map
.smithery/shttp/module.js.map
Why it matters. 1843692 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
.specstory/history/2025-03-20_00-23-codebase-review-for-mcp-server-compliance.md
.specstory/history/2025-03-20_00-23-codebase-review-for-mcp-server-compliance.md
Why it matters. 1374164 bytes not read
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
.specstory/history/2025-03-19_12-46-implementation-plan-discussion.md:7142
==> Checking for `sudo` access (which may request your password)...
Why it matters. asks the agent to read credentials
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
.specstory/history/2025-03-21_22-24-server-testing-with-github-repository.md:11237
cd /Users/alex/Developer/readwise-mcp && cat .env
Why it matters. asks the agent to read credentials

Gates applied: critical_finding, no_behavioural_pass.

Audited 2026-10-09 · audit v0.4.1 · source sha ac22eb43f49dfull audit observations/trust-audit/mcp-server/iamalexander__readwise.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-09ac22eb43f49dBLOCKD69first audit
06

Questions

What is the Readwise MCP server?

MCP server for Readwise

What tools does Readwise expose?

1 in total: 1 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Readwise safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.

What credentials does Readwise need?

It reads READWISE_API_KEY and READWISE_API_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Readwise run?

It speaks sse, stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as readwise-mcp at 1.0.1.

How current is this page?

The grade is for one exact copy of the source (ac22eb43f49d), read on 2026-10-09. The repository is watched and re-audited when it changes.

Advertisement