Skip to main content
Glama

quiver-mcp

npm version npm downloads License: MIT

QuiverAI용 MCP 서버 — Claude(또는 MCP 호환 클라이언트)에서 직접 AI를 사용하여 텍스트 프롬프트에서 SVG를 생성하고 래스터 이미지를 벡터화합니다.

예시

이 MCP를 호출하는 Claude에 의해 생성되었습니다. 각 작업은 n: 3, temperature: 0.9 설정에서 약 60초가 소요되었습니다. 두 프롬프트 모두 도구 설명에 문서화되어 있어 Claude가 레시피를 알고 있습니다.

프롬프트: 몽블랑 마이스터스튁 만년필의 분해된 등각 투영도, 기술 청사진 도면, 가는 선 아트, 점선 그리드 배경, 레이블이 지정된 구성 요소, 엔지니어링 일러스트레이션

프롬프트: 따뜻한 흙색 톤의 전통적인 목판화 스타일의 일본 두루미 지침: 따뜻하고 차분한 팔레트와 상세한 깃털 표현을 사용하세요

더 많은 변형은 examples/에서 확인하세요.

Related MCP server: nakkas

요구 사항

설치

Claude Desktop

claude_desktop_config.json에 추가하세요:

{
  "mcpServers": {
    "quiverai": {
      "command": "npx",
      "args": ["-y", "@syntropic/quiver-mcp"],
      "env": {
        "QUIVERAI_API_KEY": "your_api_key_here"
      }
    }
  }
}

수동 설치

npm install -g @syntropic/quiver-mcp
QUIVERAI_API_KEY=your_api_key_here quiver-mcp

도구

generate_svg

텍스트 프롬프트에서 하나 이상의 SVG를 생성합니다.

매개변수

유형

필수

설명

prompt

string

예

생성할 SVG에 대한 텍스트 설명

model

string

예

모델 ID (list_models를 사용하여 옵션 확인)

instructions

string

아니오

추가 스타일 또는 서식 지침

n

number

아니오

생성할 SVG 수 (기본값: 1)

temperature

number

아니오

샘플링 온도 0–2 (기본값: 1)

references

array

아니오

팔레트 및 구성 지침을 위한 최대 4개의 이미지 참조 ({url} 또는 {base64}). 스타일 키워드는 여전히 프롬프트 텍스트에 포함되어야 합니다.

outputPath

string

아니오

SVG를 디스크에 저장할 절대 파일 경로. 여러 변형(n > 1)의 경우 파일은 _1, _2 … 접미사가 붙어 저장됩니다. 상위 디렉토리는 자동으로 생성됩니다.

프롬프트 팁

도구 설명에는 광범위한 프롬프트 지침이 포함되어 있지만, 요약하자면 다음과 같습니다:

  • 프롬프트를 세 부분으로 구성하세요: 주제(구체적인 객체), 스타일(line art, isometric, flat monochrome과 같은 미적 키워드), 색상 팔레트(가능한 경우 16진수 코드).

  • 모델이 알고 있는 유명한 물리적 객체를 사용하세요. 추상적인 소프트웨어 개념(AI agent, workflow)은 피하고 물리적 은유를 사용하세요.

  • 탐색을 위해 temperature: 0.9에서 3개 이상의 변형을 생성하세요. 일부 생성물은 손상된 꼬리 부분을 가질 수 있으므로, 추가 변형을 통해 선택지를 확보하세요.

vectorize_svg

래스터 이미지(PNG, JPG 등)를 SVG로 변환합니다.

매개변수

유형

필수

설명

model

string

예

모델 ID

image

object

예

벡터화할 이미지 — {url} 또는 {base64}

autoCrop

boolean

아니오

벡터화하기 전에 주요 피사체로 자르기 (기본값: false)

targetSize

number

아니오

벡터화 전 픽셀 단위의 정사각형 크기 조정 대상

temperature

number

아니오

샘플링 온도 0–2 (기본값: 1)

outputPath

string

아니오

SVG를 디스크에 저장할 절대 파일 경로. 상위 디렉토리는 자동으로 생성됩니다.

list_models

지원되는 작업 및 가격 정보와 함께 사용 가능한 모든 QuiverAI 모델을 나열합니다.

환경 변수

변수

설명

QUIVERAI_API_KEY

필수. QuiverAI API 키

개발

npm install
npm run build   # compile TypeScript
npm run dev     # watch mode

라이선스

MIT

Available Tools

3 tools
generate_svgA

Generate one or more SVGs from a text prompt using QuiverAI. Returns raw SVG markup.

Prompt guide

A good prompt has three parts: subject (specific object), style (aesthetic keywords), and color palette (hex codes if possible).

What works

  • Use concrete, famous physical objects the model has seen (AirPods, Nike Dunks, Shure SM7B, Montblanc pen, Leica camera, Nest thermostat, espresso machines). Cylindrical/round objects explode especially cleanly in isometric style.

  • Name the style explicitly: 'line art', 'hand drawn', 'duotone', 'flat monochrome icon', 'geometric', 'minimalist', 'isometric', 'blueprint'.

  • Specify colors with hex codes: 'background: #e9edc9 and logo in #fb8500'.

  • Add composition framing: 'centered icon', 'wide horizontal logo'.

  • Prompt modifiers: 'geometric' → angular shapes, 'detailed' → more elements, 'simple' → clearer shapes, 'minimalist' → fewer details, 'flat monochrome' → single-color, 'duotone' → two-color.

What does NOT work

  • NEVER mention 'AI', 'machine learning', 'voice assistant', 'workflow automation', or abstract software concepts — produces garbage. Use physical metaphors instead (microphone for voice, watch movement for precision).

  • Abstract concepts without physical objects: 'knowledge graph', 'automation pipeline', 'data flow'.

  • Obscure B2B hardware the model hasn't seen (e.g. Loxone Miniserver → generic blob).

  • 'minimalist line icon' constraints — model ignores them and fills with color.

Iteration strategy

Start specific, not vague. Bad: 'Tech logo'. Better: 'Tech startup logo with geometric shapes, blue gradient'. Best: 'SaaS productivity logo with connected geometric nodes, electric blue to purple gradient, clean modern style'.

Verified template

exploded isometric view of a {FAMOUS_OBJECT}, technical blueprint drawing, thin line art, dotted grid background, labeled components, engineering illustration

Known issues

  • ~1 in 10 generations have corrupted SVG tails (malformed XML). Generate 3+ variants as insurance.

  • Model may ignore 'no fills'/'monochrome' and hardcode its own palette. Post-process with find/replace for brand colors.

  • First call may 504 — retry succeeds.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesWHAT to generate. Be specific: name a concrete famous object, add style keywords, and specify colors with hex codes. Example: 'Heraldic lion crest with ornate medieval style details and gold gradient accents'. Never use abstract concepts like 'AI agent' or 'workflow' — use physical metaphors instead.
modelYesModel ID to use. Recommended: 'arrow-preview' (Arrow 1.0, #1 on SVG Arena). Use list_models to discover all options.
instructionsNoHOW it should look — style guidance separate from the subject. Think of prompt as 'what' and instructions as 'how'. Example: prompt='Japanese crane', instructions='Use a warm muted palette with detailed feather work'.
nNoNumber of SVG variants to generate (max 16). Recommended: 3+ at higher temperature for best results, since ~1 in 10 generations can have corrupted tails.
temperatureNoSampling temperature (0–2). Lower (0.4) = more consistent, higher (0.9) = more creative variation. Use 0.9 with n≥3 for exploration.
referencesNoUp to 4 reference images for style, color, and composition guidance. References pull palette/color hints from the image, but style keywords ('blueprint', 'isometric', 'flat') must still be in the text prompt — references alone won't change drawing style.
outputPathNoOptional absolute file path to save the SVG(s) to disk. If omitted, SVG markup is returned in the response only. For multiple variants (n > 1), files are saved with _1, _2 … suffixes. Parent directories are created automatically.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers behavioral traits: it mentions return format (raw SVG markup), corruption rate (~1 in 10), timeout behavior (504 with retry), and model's tendency to ignore palette constraints. This gives the agent a clear understanding of tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with clear headings and sections. It front-loads the core purpose and then provides detailed guidance. While verbose, every section serves a purpose; however, some redundancy could be trimmed for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no output schema, no annotations), the description is remarkably complete. It covers prompt crafting, iteration strategies, known issues, and error recovery. The 'Prompt guide' alone provides rich context that an agent needs to succeed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema description coverage is 100%, the description adds substantial value beyond schema. The 'Prompt guide' provides concrete examples, do's and don'ts, and detailed reasoning for parameters like n and temperature. It also explains how references work and their limitations, which the schema does not fully convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate one or more SVGs from a text prompt using QuiverAI. Returns raw SVG markup.' It specifies the verb (generate), resource (SVGs), and distinguishes from sibling tools like list_models and vectorize_svg.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive guidelines on when and how to use, including prompt structure, what works, what does not work, iteration strategy, and a verified template. It also covers known issues like corrupted tails and 504 errors, giving failure recovery guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsA

List all models available on QuiverAI, including supported operations (svg_generate, svg_vectorize, etc.) and pricing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, but description is straightforward (list only). Does not mention read-only nature or auth requirements, but these are implicit for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple list tool with no parameters and no output schema. Describes what is included (operations, pricing). Could mention output format but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema; baseline for 0 params is 4. Description adds no param info (none needed).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb (List), resource (models), and includes what info is returned (supported operations and pricing). Distinguishes from siblings generate_svg and vectorize_svg which are different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage: use to discover available models before generating or vectorizing. No explicit when-not-to-use or alternatives, but context makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vectorize_svgA

Convert a raster image (PNG, JPG, etc.) into an SVG using QuiverAI. Provide the image as a URL or base64-encoded string.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesModel ID to use. Use list_models to find models that support svg_vectorize.
imageYesThe image to vectorize — either a URL or base64 data.
autoCropNoAuto-crop to the dominant subject before vectorizing. Defaults to false.
targetSizeNoSquare resize target in pixels before vectorizing.
temperatureNoSampling temperature (0–2). Defaults to 1.
outputPathNoOptional absolute file path to save the vectorized SVG to disk. If omitted, SVG markup is returned in the response only. Parent directories are created automatically.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description carries full burden; it lacks details on failure modes, rate limits, output quality, or side effects beyond basic conversion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no extraneous information—efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers basic purpose and input method but omits return value format, side effects of optional parameters, and behavioral traits; adequate given schema coverage but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions, so description adds no new semantics beyond mentioning input image formats; baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool converts raster images (PNG, JPG) to SVG using QuiverAI, distinguishing it from sibling generate_svg which likely creates SVGs from scratch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage when a raster image needs conversion, but no explicit guidance on when not to use or alternatives like generate_svg or list_models.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.0
    • First observedgenerate_svg
    • First observedlist_models
    • First observedvectorize_svg

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

Related MCP Connectors

Related MCP Servers