Skip to main content
Glama
v3nom

Toon Fetch MCP Server

by v3nom
README.md
# Toto Fetch MCP Server

An MCP server that fetches URL content, converts it to Markdown, and optionally processes it with a local LLM (LaMini-Flan-T5). Returns data in [TOON](https://toonformat.dev) format.

## Features

- **Fetch & Clean**: Fetches HTML, extracts main content using `@mozilla/readability`, and converts to Markdown with `turndown`.
- **Local AI Processing**: Optional local LLM processing using `@huggingface/transformers` (running `Xenova/LaMini-Flan-T5-248M`).
- **TOON Output**: Returns structured data in Token-Oriented Object Notation, optimized for agent consumption.

## Installation

```bash
npm install
```

## Build

```bash
npm run build
```

## Usage

### As an MCP Server

Add to your MCP client configuration (e.g., Claude Desktop config):

```json
{
  "mcpServers": {
    "toon-fetch": {
      "command": "npx",
      "args": ["toon-fetch"]
    }
  }
}
```

### Tool: `fetch_url`

**Arguments:**

- `url` (string, required): The URL to fetch.
- `prompt` (string, optional): Instruction for the local LLM.
    - Example: "Summarize this article"
    - Example: "Extract all dates and events"
    - If omitted, the raw Markdown content is returned.

**Output (TOON):**

```toon
title: Page Title
content: "Markdown content..."
metadata:
  url: "https://example.com"
  excerpt: "..."
  optimized: true
```

## Development

### Workflow

1.  **Install dependencies**: `npm install`
2.  **Run tests**: `npm test` (uses Vitest)
3.  **Build**: `npx tsc`
4.  **Verify**: You can use the `src/verify.ts` script (requires build first or ts-node).

### Testing

Run unit tests:

```bash
npx vitest
```

## License

MIT