Quiver-MCP
README.md
<p align="center">
<img src="examples/logo.svg" width="120" alt="quiver-mcp logo" />
</p>
<h1 align="center">quiver-mcp</h1>
<p align="center">
<a href="https://www.npmjs.com/package/@syntropic/quiver-mcp"><img src="https://img.shields.io/npm/v/@syntropic/quiver-mcp.svg" alt="npm version" /></a>
<a href="https://www.npmjs.com/package/@syntropic/quiver-mcp"><img src="https://img.shields.io/npm/dw/@syntropic/quiver-mcp.svg" alt="npm downloads" /></a>
<a href="https://glama.ai/mcp/servers/syntropicsignal-ai/quiver-mcp"><img src="https://glama.ai/mcp/servers/syntropicsignal-ai/quiver-mcp/badges/score.svg" alt="glama" /></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT" /></a>
</p>
<p align="center">
MCP server for <a href="https://quiverai.com">QuiverAI</a> — generate SVGs from text prompts and vectorize raster images using AI, directly from Claude (or any MCP-compatible client).
</p>
## Examples
Generated by Claude calling this MCP. Each took ~60s at `n: 3, temperature: 0.9`. Both prompts are documented in the tool description, so Claude knows the recipe.
<table>
<tr>
<td width="50%" align="center">
<img src="examples/fountain-pen-detailed.svg" width="280" alt="Exploded isometric fountain pen" />
</td>
<td width="50%" align="center">
<img src="examples/japanese-crane-detailed.svg" width="280" alt="Japanese crane in woodblock style" />
</td>
</tr>
<tr>
<td valign="top">
**Prompt:** _exploded isometric view of a Montblanc Meisterstück fountain pen, technical blueprint drawing, thin line art, dotted grid background, labeled components, engineering illustration_
</td>
<td valign="top">
**Prompt:** _Japanese crane in traditional woodblock illustration style with warm earth tones_
**Instructions:** _Use a warm muted palette with detailed feather work_
</td>
</tr>
</table>
More variants in [`examples/`](examples/).
## Requirements
- Node.js 18+
- A [QuiverAI](https://quiverai.com) API key
## Installation
### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"quiverai": {
"command": "npx",
"args": ["-y", "@syntropic/quiver-mcp"],
"env": {
"QUIVERAI_API_KEY": "your_api_key_here"
}
}
}
}
```
### Manual
```bash
npm install -g @syntropic/quiver-mcp
QUIVERAI_API_KEY=your_api_key_here quiver-mcp
```
## Tools
### `generate_svg`
Generate one or more SVGs from a text prompt.
| Parameter | Type | Required | Description |
|---|---|---|---|
| `prompt` | string | yes | Text description of the SVG to generate |
| `model` | string | yes | Model ID (use `list_models` to discover options) |
| `instructions` | string | no | Additional style or formatting guidance |
| `n` | number | no | Number of SVGs to generate (default: 1) |
| `temperature` | number | no | Sampling temperature 0–2 (default: 1) |
| `references` | array | no | Up to 4 image references (`{url}` or `{base64}`) for palette and composition guidance. Style keywords must still be in the prompt text. |
| `outputPath` | string | no | Absolute file path to save SVG(s) to disk. For multiple variants (`n > 1`), files are saved with `_1`, `_2` … suffixes. Parent directories are created automatically. |
#### Prompt tips
The tool description includes extensive prompt guidance, but in short:
- Structure prompts with three parts: **subject** (concrete object), **style** (aesthetic keywords like `line art`, `isometric`, `flat monochrome`), and **color palette** (hex codes where possible).
- Use famous physical objects the model knows. Avoid abstract software concepts (`AI agent`, `workflow`) — use physical metaphors instead.
- For exploration, generate 3+ variants at `temperature: 0.9`. Some generations produce corrupted tails; extra variants give you options.
### `vectorize_svg`
Convert a raster image (PNG, JPG, etc.) to SVG.
| Parameter | Type | Required | Description |
|---|---|---|---|
| `model` | string | yes | Model ID |
| `image` | object | yes | Image to vectorize — `{url}` or `{base64}` |
| `autoCrop` | boolean | no | Crop to dominant subject before vectorizing (default: false) |
| `targetSize` | number | no | Square resize target in pixels before vectorizing |
| `temperature` | number | no | Sampling temperature 0–2 (default: 1) |
| `outputPath` | string | no | Absolute file path to save the SVG to disk. Parent directories are created automatically. |
### `list_models`
List all available QuiverAI models with supported operations and pricing.
## Environment Variables
| Variable | Description |
|---|---|
| `QUIVERAI_API_KEY` | **Required.** Your QuiverAI API key |
## Development
```bash
npm install
npm run build # compile TypeScript
npm run dev # watch mode
```
## License
MIT
TDQS
A4/5.0
Scored across 3 tools
Disambiguation5/5
Each tool has a distinct purpose: generating SVGs from prompts, listing models, and vectorizing images. There is no overlap.
Naming Consistency5/5
All tool names follow consistent snake_case with verb_noun pattern (generate_svg, list_models, vectorize_svg).
Tool Count4/5
Three tools is on the low side but reasonable for a focused server. The scope is narrow enough that each tool earns its place.
Completeness3/5
Core SVG creation (from text and images) and model listing are covered, but missing operations like fetching/updating/deleting individual SVGs or batch processing.
Maintenance
ActivityInactive
ResponsivenessNo issues