Skip to main content
Glama

blob-svg-mcp

MCP server for generating organic blob shapes as SVG.

Uses sinusoidal harmonics to produce smooth, rounded curves — no sharp corners. Every blob is reproducible via a seed parameter.

Tools

generate_blob

Generate a single blob shape as a complete SVG.

Parameter

Type

Default

Description

size

number

200

Width and height in px

complexity

number

6

Number of harmonics (2-12). More = more detailed

color

string

#6366f1

Fill color (any CSS color)

opacity

number

1

Fill opacity (0-1)

randomness

number

0.5

Radius irregularity (0 = circle, 1 = very blobby)

seed

number

random

Seed for reproducible shapes

stroke

string

Optional stroke color

stroke_width

number

2

Stroke width in px

generate_gradient_blob

Generate a blob filled with a linear gradient.

Parameter

Type

Default

Description

size

number

200

Width and height in px

complexity

number

6

Number of harmonics (2-12)

gradient_colors

string[]

["#6366f1", "#ec4899"]

Gradient stop colors

gradient_angle

number

0

Gradient angle in degrees

opacity

number

1

Fill opacity (0-1)

randomness

number

0.5

Radius irregularity (0-1)

seed

number

random

Seed for reproducible shapes

generate_blob_set

Generate multiple blobs scattered on a canvas. Useful for backgrounds and hero sections.

Parameter

Type

Default

Description

count

number

12

Number of blobs

canvas_width

number

800

Canvas width in px

canvas_height

number

600

Canvas height in px

colors

string[]

["#6366f1", "#8b5cf6", "#a78bfa", "#c4b5fd"]

Color palette

min_size

number

80

Minimum blob size in px

max_size

number

250

Maximum blob size in px

complexity

number

6

Harmonics per blob (2-12)

opacity

number

0.6

Fill opacity (0-1)

randomness

number

0.5

Radius irregularity (0-1)

seed

number

random

Seed for reproducible compositions

generate_blob_path

Generate only the SVG path data (the d attribute). Useful for embedding in your own SVG.

Parameter

Type

Default

Description

size

number

200

Coordinate space size

complexity

number

6

Number of harmonics (2-12)

randomness

number

0.5

Radius irregularity (0-1)

seed

number

random

Seed for reproducible paths

Related MCP server: icogenie-mcp

Setup

With Claude Code

claude mcp add blob-svg -- npx blob-svg-mcp

Manual (settings.json)

{
  "mcpServers": {
    "blob-svg": {
      "command": "npx",
      "args": ["blob-svg-mcp"]
    }
  }
}

From source

git clone https://github.com/Rixmerz/blob-svg-mcp.git
cd blob-svg-mcp
npm install
npm run build

Then point your MCP config to the built file:

{
  "mcpServers": {
    "blob-svg": {
      "command": "node",
      "args": ["/path/to/blob-svg-mcp/build/index.js"]
    }
  }
}

How it works

Each blob is generated by:

  1. Placing 36 sample points around a circle

  2. Deforming the radius at each point using summed sinusoidal harmonics (amplitude decays with frequency, so high-frequency harmonics add detail without spikes)

  3. Converting the points to a smooth closed path using Catmull-Rom to cubic Bezier conversion with tension factor 1/4

The result is always an organic, rounded shape — never angular.

License

MIT

Available Tools

4 tools
generate_blobA

Generate a single blob shape as a complete SVG. Returns an organic, rounded shape with customizable size, color, complexity, and randomness.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoInteger seed for reproducible shapes. Same seed = same shape (default: random)
sizeNoWidth and height of the SVG in pixels (default: 200)
colorNoFill color, any CSS color value (default: "#6366f1")
strokeNoOptional stroke color
opacityNoFill opacity from 0 to 1 (default: 1)
complexityNoNumber of control points (3-20). More points = more detailed shape (default: 6)
randomnessNoHow much the radius varies (0 = circle, 1 = very irregular). Default: 0.5
stroke_widthNoStroke width in pixels (default: 2)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral disclosure. It does say the tool returns a complete SVG and an organic rounded shape, which is useful. However, it does not explicitly state whether generation is side-effect-free, how output is returned, or any edge behavior beyond what the schema already documents. Adequate but not deeply transparent.

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?

A single front-loaded sentence with no filler. It names the deliverable first, then the output characteristics and customization dimensions. Every word earns its place.

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?

For an 8-parameter generator with no annotations and no output schema, the description supplies the essential return concept ('complete SVG'), the output quality ('organic, rounded shape'), and the customizable dimensions. It could additionally state that the result is an SVG string and that no state is modified, but schema defaults and parameter descriptions cover most operational detail.

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 description coverage is 100%, so baseline is 3. The description mentions customizable size, color, complexity, and randomness, but does not add meaning beyond the schema's own parameter descriptions. No penalty needed because the schema fully documents all eight optional parameters.

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?

States a specific action and deliverable: 'Generate a single blob shape as a complete SVG.' The 'single' and 'complete SVG' qualifiers distinguish it from siblings generate_blob_set (multiple) and generate_blob_path (path only), while 'organic, rounded shape' sets expectations for output.

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?

The word 'single' and 'complete SVG' imply when to choose this tool, and the sibling names suggest alternatives, but the description never names them or states conditions such as 'for multiple blobs use generate_blob_set' or 'for gradients use generate_gradient_blob.' Usage guidance is therefore only implied, not explicit.

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

generate_blob_pathA

Generate only the SVG path data string (the d attribute). Useful when you want to embed the blob in your own SVG or use it programmatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoSeed for reproducible paths (default: random)
sizeNoCoordinate space size (default: 200)
complexityNoNumber of control points 3-20 (default: 6)
randomnessNoRadius variation 0-1 (default: 0.5)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries behavioral disclosure itself. It clearly states the output is only the d attribute rather than a full SVG element, which prevents an agent from expecting a complete blob. It does not discuss randomness or determinism, but that behavior is already covered by the seed parameter description in the schema.

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 short sentences with no filler. The core behavior is front-loaded in the first sentence, and the use case in the second earns its place by helping an agent decide when to select the tool.

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?

The description plus the 100%-covered schema gives an agent enough to call the tool correctly: output format is specified, params are documented, and the d-attribute-only behavior is explicit. It could strengthen this by explicitly contrasting with generate_blob, but nothing critical is missing for making a correct call.

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 description coverage is 100%, so the schema already explains all four parameters and their defaults. The description adds practical context about embedding the path but does not add parameter-specific semantics, so the baseline of 3 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?

The description names a specific deliverable — the SVG path data string (the d attribute) — and narrows the scope with 'only', which distinguishes it from sibling tools that generate complete blobs or sets. It also signals the intended use (embedding in a custom SVG or using programmatically), so an agent can understand what this tool produces at a glance.

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?

It gives a clear use case: use this when you need the d path alone for embedding or programmatic use. It does not explicitly name alternatives or state when not to use it, but the 'only' qualifier and sibling names make the intended selection reasonably clear.

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

generate_blob_setA

Generate multiple blobs scattered on a canvas. Useful for backgrounds, hero sections, and decorative compositions.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoSeed for reproducible compositions (default: random)
countNoNumber of blobs to generate (default: 12)
colorsNoArray of CSS colors to pick from (default: ["#6366f1", "#8b5cf6", "#a78bfa", "#c4b5fd"])
opacityNoFill opacity 0-1 (default: 0.6)
max_sizeNoMaximum blob size in pixels (default: 250)
min_sizeNoMinimum blob size in pixels (default: 80)
complexityNoNumber of control points per blob (default: 6)
randomnessNoRadius variation 0-1 (default: 0.5)
canvas_widthNoCanvas width in pixels (default: 800)
canvas_heightNoCanvas height in pixels (default: 600)

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations and no output schema, the description carries the full burden of behavioral disclosure. It only states that multiple blobs are generated and scattered, but it does not disclose the output format, whether the result is deterministic via seed, how randomness works, or any side effects. This is a significant gap for a generative tool.

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?

The description is two tight sentences with no filler. The main action is front-loaded, followed by practical use cases, which makes it easy to scan and understand quickly.

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

Completeness2/5

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

Given the tool's complexity (10 parameters), lack of annotations, and lack of an output schema, the description is too sparse. It does not mention the return format, how to choose this over sibling tools, or important behavioral details like determinism and randomness, leaving an agent to make assumptions.

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?

The schema description coverage is 100%, so the structured schema already documents all 10 parameters. The description adds no extra parameter-level meaning, which is acceptable because the baseline is 3 when the schema handles the heavy lifting.

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 states a specific verb and resource: 'Generate multiple blobs scattered on a canvas.' It clearly differentiates from siblings like generate_blob by emphasizing multiple blobs and from generate_blob_path by focusing on a composed set rather than a single path.

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?

The description provides clear usage context: 'Useful for backgrounds, hero sections, and decorative compositions.' However, it does not explicitly mention when not to use this tool or directly compare it with sibling tools, so it stops short of a full when/when-not guide.

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

generate_gradient_blobA

Generate a blob filled with a linear gradient. Great for modern UI elements and hero illustrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoSeed for reproducible shapes (default: random)
sizeNoWidth and height of the SVG in pixels (default: 200)
opacityNoFill opacity 0-1 (default: 1)
complexityNoNumber of control points 3-20 (default: 6)
randomnessNoRadius variation 0-1 (default: 0.5)
gradient_angleNoGradient angle in degrees (default: 0 = left to right)
gradient_colorsNoGradient stop colors (default: ["#6366f1", "#ec4899"])

TDQS

A3.7/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of disclosing behavior. It does not mention the output format (e.g., SVG string), whether it returns a file or URL, or how seed/randomness affect the result. The description adds little beyond the basic action; the only concrete hint (SVG) lives in the parameter schema, not the description.

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?

The description is a two-sentence, front-loaded statement that gets straight to the point: what it generates and a typical use case. There is no filler or redundant phrasing, and every sentence earns its place.

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?

The schema fully documents 7 parameters with defaults, which covers the input side well. However, with no output schema and no annotation, the description is incomplete about the tool's return value and output behavior. An agent can infer SVG from 'Width and height of the SVG' in the schema, but the description itself does not confirm this, leaving a notable gap.

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 description coverage is 100%, so the baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides for fields like gradient_angle and gradient_colors. It references gradients generally but does not clarify usage beyond the schema.

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 states a specific verb and object: 'Generate a blob filled with a linear gradient.' This clearly distinguishes it from sibling tools like generate_blob (plain blob), generate_blob_path (path only), and generate_blob_set (multiple blobs) via the 'linear gradient' qualifier.

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?

It provides a clear use context: 'Great for modern UI elements and hero illustrations.' However, there is no explicit guidance on when to prefer this tool over the siblings, such as 'use generate_blob_path when only a path is needed.' Thus it offers clear context but no exclusions.

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. 4 tool updatesv0.1.0
    • First observedgenerate_blob
    • First observedgenerate_blob_path
    • First observedgenerate_blob_set
    • First observedgenerate_gradient_blob

TDQS

A3.8/5.0

Scored across 4 tools

Disambiguation4/5

Each tool targets a distinct output format or use case: single blob, multiple blobs, gradient-filled blob, and raw path data. However, generate_blob and generate_gradient_blob overlap somewhat since both produce a single blob SVG, with the only differentiator being the fill style.

Naming Consistency4/5

All tool names follow a clear generate_blob base with modifier suffixes, and snake_case is used consistently. There is minor inconsistency in modifier placement: generate_blob_set vs generate_gradient_blob vs generate_blob_path, but the pattern remains predictable.

Tool Count4/5

Four tools is an appropriate, focused scope for a blob-SVG generation server. It avoids bloat while covering the primary variations one would expect, though it is on the smaller side.

Completeness4/5

The server covers the main use cases: individual blobs, background sets, gradient styling, and raw path extraction for custom embedding. Missing niche features like animated blobs or advanced shape controls are minor gaps, not critical failures.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    AI-powered SVG icon generation MCP server. Generate production-ready SVG icons from text descriptions with customizable styles, sizes, and themes.
    41 npm
    6
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server that turns AI into an SVG artist. One rendering engine with a rich JSON schema, AI controls all design parameters. Renders animated SVGs with CSS @keyframes and SMIL animations. Supports 16+ element types, parametric curves, pattern groups, gradient/filter/clip/mask definitions, and PNG preview. No external dependencies, runs locally via npx.
    3
    187 npm
    22
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for creating and manipulating generative art with p5.js, Three.js, GLSL, Canvas2D, and SVG, featuring workspace management, parameter control, and screenshot capture.
    45 npm
    MIT