npm package: @iflow-mcp/yukukotani-monoread
Description: CLI tool for reading any URL in AI-optimized format
Author: Yuku Kotani
Latest version: 0.4.2

# monoread

![NPM Version](https://img.shields.io/npm/v/monoread?link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fmonoread)

[日本語](README_ja.md)

Gives your LLM the context of web pages in the smartest way.

## Features

- **High-Quality Content Extraction**: Powered by [@mizchi/readability](https://github.com/mizchi/readability) (Mozilla Readability) and llms.txt standards for reliable extraction from any web content
- **Provider-Specific Optimization**: Specialized content extraction tailored for some providers such as GitHub
- **MCP Server Integration**: Seamlessly integrates as a Model Context Protocol server, enabling AI assistants to fetch and process web content intelligently

## Usage

### CLI Usage

```bash
# You can read any url
npx monoread read https://example.com/article
npx monoread read https://github.com/yukukotani/monoread/blob/main/README.md
npx monoread read https://notion.so/your-page-id
```

### MCP Usage

Add to Claude Code:

```bash
# Add to user scope (available across all projects)
claude mcp add monoread -s user -- npx -y monoread@latest mcp

# Or add to project scope to share with your team
claude mcp add monoread -s project -- npx -y monoread@latest mcp

# Also you can configure environment variables described below.
claude mcp add monoread -s user -e NOTION_API_KEY=your-integration-token -- npx -y monoread@latest mcp
```

Then add something like this to your CLAUDE.md:

```
Use `mcp__monoread__read_url_content` tool instead of builtin Fetch tool to read web pages.
```

### Library Usage

```typescript
import { monoread } from 'monoread';

// Basic usage
const result = await monoread('https://example.com/article');
if (result.success) {
  console.log(result.content);
  console.log(result.title);
  console.log(result.url);
}

// For Notion pages, set NOTION_API_KEY environment variable
process.env.NOTION_API_KEY = 'your-integration-token';
const notionResult = await monoread('https://notion.so/your-page-id');
```

## Providers

monoread has special supports for some providers:

### GitHub

No requirements.

```bash
monoread read https://github.com/owner/repo/blob/main/README.md
```

### Notion

Requires setting up the `NOTION_API_KEY` environment variable:

1. Create a Notion integration at [https://www.notion.so/my-integrations](https://www.notion.so/my-integrations)
2. Copy the Internal Integration Token
3. Share your Notion pages with the integration:
   - Open the page in Notion
   - Click "Share" → "Add people, emails, or integrations"
   - Select your integration
4. Set the environment variable:
   ```bash
   export NOTION_API_KEY="your-integration-token"
   monoread read https://notion.so/your-page-id
   ```

### Other Providers

monoread attempts to extract content using [@mizchi/readability](https://github.com/mizchi/readability) or [llms.txt](https://llmstxt.org/).

Feel free to open pull requests or issues to add more specific provider supports.

## License

Apache License 2.0

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.