ShapeWords MCP
Allows generating word clouds shaped like the Airtable logo.
Allows generating word clouds shaped like the Cloudflare logo.
Allows generating word clouds shaped like the Figma logo.
Allows generating word clouds shaped like the Firebase logo.
Allows generating word clouds shaped like Font Awesome icons.
Allows generating word clouds shaped like the GitHub logo.
Allows generating word clouds shaped like the Linear logo.
Allows generating word clouds shaped like the Netlify logo.
Allows generating word clouds shaped like the Notion logo.
Allows generating word clouds shaped like the Replit logo.
Allows generating word clouds shaped like the Stripe logo.
Allows generating word clouds shaped like the Supabase logo.
Allows generating word clouds shaped like the Vercel logo.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ShapeWords MCPGenerate a word cloud from this text about AI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ShapeWords MCP
Universal MCP server for generating word clouds with ShapeWords.
It exposes ShapeWords rendering tools through the Model Context Protocol, so any MCP-capable client can create SVG, JSON, or PNG word clouds from text, workshop notes, prompts, research snippets, or agent output. By default it uses the hosted ShapeWords Render API; with engine: "skia" it renders locally inside the MCP server with the shared layout core and CanvasKit/Skia.
Tools
All tools use stdio MCP transport.
render_word_cloud
Creates a ShapeWords render job, polls until it is finished, and returns:
public artifact URL for hosted renders, or a local inline artifact for
engine: "skia";job metadata;
optional image content for MCP clients that support image results.
Use this tool for one-shot generation when the caller wants the final artifact.
create_word_cloud_job
Starts a render job and returns the job/status/artifact URLs without waiting.
Use this tool for asynchronous workflows where the client will poll later.
get_word_cloud_job
Checks a render job by ID.
Use this tool with the jobId returned by create_word_cloud_job or render_word_cloud.
Related MCP server: genart-mcp
Input Schema
render_word_cloud accepts all render options below. create_word_cloud_job accepts the hosted options only: engine: "skia" is local-only and is supported by render_word_cloud.
Field | Type | Default | Limits | Description |
| enum |
|
| Default option profile. |
| string | optional | 1-100,000 chars | Source text for the word cloud. Required unless |
| object[] | optional | 1-1000 items | Explicit weighted words. Use when the caller already tokenized, lemmatized, or scored text. |
| enum |
|
| Render/UI locale passed to ShapeWords. |
| enum |
|
| Artifact format. SVG is the fastest default. JSON returns layout data. PNG is rasterized from the same shared layout. |
| integer |
| 240-4096 | Canvas width in pixels. |
| integer |
| 240-4096 | Canvas height in pixels. |
| enum |
|
| Output background. |
| enum |
|
| Standard or high-quality render. |
| enum |
|
| Renderer engine. |
| boolean |
| true/false | Include layout metadata when supported. |
| string |
| 1-80 chars | Shape id. Use a built-in id or |
| object | omitted | see below | Custom SVG path shape. Required when |
| integer |
| 1-1000 | Maximum number of words to place. |
| integer |
| 0-4294967295 | Unsigned 32-bit layout seed for reproducible browserless renders. Same input, options, and seed produce the same SVG/layout. |
| string |
| 1-80 chars | ShapeWords font family name, for example |
| integer |
| 4-400 | Minimum word font size. |
| integer |
| 8-700 | Maximum word font size. |
| integer |
| 0-100 | Pixel padding used by collision detection. |
| enum |
| see below | Rotation preset matching the main ShapeWords canvas. |
| integer[] | omitted | -90 to 90, max 64 values | Explicit rotation angles. When provided, these override |
| enum |
|
| Placement spiral algorithm. |
| enum |
|
| Shape filling strategy. |
| string[] | service default | up to 12 colors | Hex colors: |
| enum | service default |
| How palette colors are assigned to words. |
| boolean |
|
| Download the finished SVG/PNG artifact and return it as MCP image content. |
| integer | env/default | 250-10,000 | Polling interval for |
| integer | env/default | 1,000-180,000 | Maximum wait time for |
get_word_cloud_job accepts:
Field | Type | Limits | Description |
| string | 6-64 chars | ShapeWords render job id. |
words items use this shape:
Field | Type | Default | Limits | Description |
| string | required | 1-120 chars | Display word or emoji. |
| integer |
| 1-100,000 | Weight/frequency used for sizing. |
| enum |
|
| Word type. Emoji are kept horizontal by the renderer. |
| number | omitted | 0.1-5 | Optional extra size multiplier used by the ShapeWords layout core when available. |
| boolean |
| true/false | Whether the layout may repeat this word to improve shape filling. |
Rotation presets:
horizontal, vertical, orthogonal, crossing, crossingVoids, dancing,
positiveSlope, negativeSlope, random, custom, mixed, angled, freerenderProfile: "canvas" sends the same practical defaults as the main editor canvas: shapeType: "cloud", width: 800, height: 600, quality: "hq", maxWords: 700, seed: 0, fontFamily: "Montserrat", minFontSize: 18, maxFontSize: 96, padding: 3, rotationPreset: "orthogonal", spiralType: "archimedean", and fillMode: "fill".
Use renderProfile: "api" only when you need the older compact Render API defaults: circle shape, 1024x640, SQ quality, and 120 max words.
Text Input
The MCP server can send either raw text, explicit words, or both:
repeated words increase frequency, for example
cloud cloud cloud render render API;words[]preserves caller-provided weights and avoids differences in tokenization, stop words, or lemmatization;when both
textandwords[]are present, ShapeWords renders fromwords[]and keepstextas source context;paragraphs, meeting notes, workshop notes, prompts, research snippets, and keyword lists are valid;
files such as CSV, Excel, or Google Sheets are not uploaded through this MCP server; paste or generate the text content first.
Example weighted text:
{
"text": "MCP MCP MCP ShapeWords ShapeWords word cloud word cloud render API agents tools",
"shapeType": "cloud",
"format": "svg",
"seed": 12345
}Example explicit weighted words:
{
"words": [
{ "text": "ShapeWords", "value": 12 },
{ "text": "MCP", "value": 9 },
{ "text": "canvas", "value": 7 },
{ "text": "layout", "value": 6 },
{ "text": "render", "value": 5 }
],
"shapeType": "cloud",
"format": "svg"
}Shapes
Use shapeType to choose the word-cloud mask.
Stable built-in shape ids accepted by the production renderer include:
rectangle, circle, heart, star, cloud, diamond, tree, triangle, arrow,
square, pentagon, hexagon, octagon, cross, plus, moon, sun, drop,
flame, leaf, flower, mountain, apple, house, book, camera, music,
chat, location, trophy, rocket, plane, car, shield, lightning, check,
infinity, tagBuilt-in brand shape ids include:
brand-product-hunt, brand-y-combinator, brand-hacker-news,
brand-indie-hackers, brand-github, brand-figma, brand-notion,
brand-stripe, brand-vercel, brand-linear, brand-supabase,
brand-railway, brand-netlify, brand-firebase, brand-cloudflare,
brand-airtable, brand-replit, brand-anthropicThe production renderer may also accept additional generated ShapeWords ids. For portable automation, prefer the stable ids above or pass a custom SVG shape.
The local engine: "skia" path currently supports rectangle, square, circle, diamond, triangle, star, heart, cloud, custom SVG shapes, and vendored Font Awesome shape ids such as fa-cat. Unsupported local shape ids are rejected instead of silently changing the requested shape.
Custom Shapes
Set shapeType to custom and provide customShapeDefinition:
Field | Type | Required | Limits | Description |
| string | yes | 1-100,000 chars | SVG path data used as the mask. |
| string | yes | 1-120 chars | SVG viewBox, for example |
| enum | no |
| SVG fill rule. Defaults to renderer behavior when omitted. |
| string | no | 1-80 chars | Optional human-readable name. |
| string | no | 1-80 chars | Optional English name. |
Custom heart example:
{
"text": "love love design care product community team support",
"shapeType": "custom",
"customShapeDefinition": {
"name": "Heart",
"path": "M 50 90 C 25 70, 0 50, 0 30 A 25 25 0 0 1 50 30 A 25 25 0 0 1 100 30 C 100 50, 75 70, 50 90 Z",
"viewBox": "0 0 100 100",
"fillRule": "nonzero"
},
"format": "svg"
}Output
render_word_cloud returns:
text content with the completed job id and artifact location;
structuredContent.jobwith normalized job metadata;structuredContent.artifactUrlfor hosted renders;structuredContent.localArtifactforengine: "skia";structuredContent.siteUrl;optional MCP image content when
returnImageistrueandformatissvgorpng.
For engine: "skia", render_word_cloud always returns inline MCP image content for format: "png" or format: "svg" because there is no hosted artifact URL.
create_word_cloud_job returns the same metadata immediately after job creation, without waiting for completion.
get_word_cloud_job returns the latest job status and artifact URL.
Generated artifact URLs are short-lived because the ShapeWords Render API stores render jobs in memory.
Format and Engine Notes
svgis the recommended automation format: it is fast, compact, and works with the browserless shared-core renderer.jsonreturns layout data from the same shared-core placement.pngis rasterized from the same generated SVG/layout, so word placement matches SVG/JSON for the same input and options.engine: "auto"is recommended unless you need to force a specific path.engine: "browserless"supportssvg,json, andpng.engine: "browser"supportssvgandpng, notjson.engine: "skia"is local-only and supported byrender_word_cloud. It does not create pollable hosted jobs. Layout is generated by the vendored ShapeWords shared core; PNG is drawn directly with CanvasKit/Skia.seedis honored by browserless/shared-core renders. Useengine: "auto"orengine: "browserless"for reproducible API/MCP output.Non-zero
seedwith forcedengine: "browser"is rejected by the Render API because the browser fallback does not use the deterministic shared-core seed path.
Quick Start
Run directly from GitHub:
npx -y github:kirrrr-2423/shapewords-mcpOr clone locally:
git clone https://github.com/kirrrr-2423/shapewords-mcp.git
cd shapewords-mcp
npm install
npm startClient Configuration
Use stdio transport in any MCP-compatible client.
{
"mcpServers": {
"shapewords": {
"command": "npx",
"args": ["-y", "github:kirrrr-2423/shapewords-mcp"],
"env": {
"SHAPEWORDS_API_BASE_URL": "https://shapewords.fun"
}
}
}
}For a local clone:
{
"mcpServers": {
"shapewords": {
"command": "node",
"args": ["/absolute/path/to/shapewords-mcp/src/index.js"],
"env": {
"SHAPEWORDS_API_BASE_URL": "https://shapewords.fun"
}
}
}
}Environment
Variable | Default | Description |
|
| ShapeWords app URL. |
| empty | Optional bearer token if your Render API requires one. |
| empty | Backward-compatible alias for |
|
| Polling interval for completed renders. |
|
| Render wait timeout. |
|
| Per-request timeout for hosted API and artifact requests. |
|
| Max downloaded artifact size when |
Example Prompt
Create a fast SVG word cloud about MCP, universal tools, word cloud generation, AI agents, and ShapeWords. Use the default ShapeWords canvas profile and return the artifact URL.Example tool input:
{
"text": "MCP MCP MCP Model Context Protocol word cloud word cloud ShapeWords tools resources prompts stdio server client universal integration connector API render PNG SVG artifact agents automation context protocol schema",
"locale": "en",
"format": "svg",
"width": 800,
"height": 600,
"background": "white",
"quality": "hq",
"engine": "auto",
"returnLayout": false,
"shapeType": "cloud",
"seed": 12345,
"palette": ["#7c3aed", "#ddd6fe", "#14b8a6", "#111827"],
"returnImage": false
}More Examples
Transparent PNG
{
"text": "launch launch startup product customers retention growth metrics roadmap",
"format": "png",
"engine": "auto",
"shapeType": "rocket",
"width": 1200,
"height": 900,
"background": "transparent",
"quality": "hq",
"returnImage": true
}Local Skia PNG
{
"words": [
{ "text": "MCP", "value": 12 },
{ "text": "ShapeWords", "value": 10 },
{ "text": "Skia", "value": 8 },
{ "text": "CanvasKit", "value": 7 },
{ "text": "local", "value": 6 },
{ "text": "renderer", "value": 5 }
],
"format": "png",
"engine": "skia",
"shapeType": "cloud",
"width": 800,
"height": 600,
"quality": "sq",
"seed": 12345
}JSON Layout
{
"text": "design system tokens components variants accessibility contrast typography layout",
"format": "json",
"engine": "browserless",
"shapeType": "diamond",
"returnLayout": true,
"seed": 7,
"maxWords": 80
}Reproducible SVG
{
"text": "MCP shared core browserless renderer reproducible seed deterministic layout",
"format": "svg",
"engine": "browserless",
"shapeType": "cloud",
"returnLayout": true,
"seed": 12345
}Custom Palette and Font
{
"text": "research synthesis interview persona journey insight opportunity experiment",
"format": "svg",
"shapeType": "book",
"fontFamily": "Roboto",
"palette": ["#111827", "#2563eb", "#14b8a6", "#f59e0b"],
"colorMode": "byFrequency",
"maxWords": 160
}Development
npm install
npm run smoke
npm run smoke:skia
npm run inspectThe server uses stdio and writes protocol messages to stdout. Diagnostics are written to stderr.
Notes
Set
returnImage: trueinrender_word_cloudwhen the MCP client supports image content and needs hosted-render bytes inline. Local Skia image renders are inline automatically.For automation-heavy use, prefer SVG or JSON layout artifacts; request PNG only when the caller needs raster pixels.
Set
seedwhen the caller needs repeatable SVG/JSON/PNG placement across MCP runs.engine: "skia"is deterministic by default.Local Skia PNG output is capped at 40,000,000 pixels after quality scaling to avoid excessive local memory use.
Local Skia font rendering currently supports bundled
MontserratandOpenDyslexiconly. Hosted renders may support more font families.The MCP schema currently exposes rendering and style options only. It does not expose ShapeWords UI-only workflows such as the advanced word editor, 2D/3D view switching, CSV/Excel upload, Google Sheets import, or live room controls.
padding,rotationPreset,rotations,spiralType, andfillModeare exposed so MCP callers can match the main ShapeWords canvas more closely.
See THIRD_PARTY_NOTICES.txt for bundled Font Awesome and font asset notices.
Available Tools
3 toolscreate_word_cloud_jobCreate word cloud jobA
Start a ShapeWords render job and return status/artifact URLs without waiting for completion.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Unsigned 32-bit layout seed for reproducible browserless ShapeWords renders. Canvas-profile default: 0. Use engine auto or browserless; browser fallback does not support non-zero seed. | |
| text | No | Words, phrases, notes, or source text for the word cloud. Optional when words[] is provided. | |
| width | No | Canvas width in pixels. Canvas-profile default: 800. | |
| words | No | Explicit weighted words. Use this when another system already tokenized, lemmatized, or scored the input. | |
| engine | No | Hosted renderer engine. auto uses the hosted renderer default path. | |
| format | No | Output artifact format. Canvas-profile default: svg. | |
| height | No | Canvas height in pixels. Canvas-profile default: 600. | |
| locale | No | ShapeWords UI/render locale. Canvas-profile default: en. | |
| padding | No | Word collision padding in pixels. Canvas-profile default: 3. | |
| palette | No | ||
| quality | No | sq is faster, hq renders at higher device scale. Canvas-profile default: hq. | |
| fillMode | No | Shape filling strategy. Canvas-profile default: fill. | |
| maxWords | No | Maximum number of words to lay out. Canvas-profile default: 700. | |
| colorMode | No | ||
| rotations | No | Explicit rotation angles in degrees. When provided, these override rotationPreset. | |
| shapeType | No | ShapeWords shape id, for example circle, rectangle, heart, star, cloud, diamond, custom. Canvas-profile default: cloud. | |
| background | No | Output background style. Canvas-profile default: white. | |
| fontFamily | No | ShapeWords font family name. Canvas-profile default: Montserrat. | |
| spiralType | No | Placement spiral algorithm. Canvas-profile default: archimedean. | |
| maxFontSize | No | ||
| minFontSize | No | ||
| returnLayout | No | Include layout JSON when supported. Canvas-profile default: false. | |
| renderProfile | No | Default option profile. canvas matches the main ShapeWords canvas; api keeps the older compact Render API defaults. | canvas |
| rotationPreset | No | Rotation preset matching the ShapeWords canvas. Canvas-profile default: orthogonal. | |
| customShapeDefinition | No | Custom SVG shape definition used when shapeType is custom. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not destructive, so the description need not repeat that. The description adds valuable behavior: that it starts a job and returns status/artifact URLs immediately, implying asynchronous execution. This goes beyond annotation hints and clarifies the tool's execution model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence containing exactly the essential information: starts a job and returns URLs without waiting. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 25 parameters and no output schema, the description provides a high-level summary of the return (status/artifact URLs) and the async nature. It lacks details about job tracking or polling, but those are covered by sibling tools. The description is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 84%, so parameters are well-documented in the schema. The description adds no parameter-specific details, but the schema carries the burden. Baseline 3 is appropriate because the description doesn't compensate beyond the schema, but the schema does a sufficient job.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Start' with resource 'ShapeWords render job', clearly indicating an asynchronous job creation. It distinguishes from siblings by noting 'without waiting for completion', which contrasts with render_word_cloud's likely synchronous behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without waiting for completion' clearly implies a background/async use case, distinguishing this from synchronous rendering. It doesn't explicitly name alternatives like render_word_cloud or get_word_cloud_job, but the context is clear and no exclusions are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_word_cloud_jobGet word cloud jobARead-onlyIdempotent
Check a ShapeWords render job status by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | ShapeWords render job id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds only domain context ('ShapeWords render job') but no additional behavioral details such as rate limits, authorization requirements, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly conveys the tool's purpose without any wasted words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), and the description adequately states the action. However, it does not explain what status information will be returned or how to interpret statuses, which could be important for selecting and using the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the jobId parameter is already described as 'ShapeWords render job id.' The description's 'by ID' adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Check') and the resource ('ShapeWords render job status') with a specific identifier ('by ID'). This distinguishes it from sibling tools like render_word_cloud and create_word_cloud_job, which are for creation/rendering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is used to check the status of a previously created job, which is clear from the sibling context. However, it does not explicitly mention when to avoid using it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_word_cloudRender word cloudA
Create a ShapeWords word cloud, wait for completion, and return the artifact URL plus optional image content.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Unsigned 32-bit layout seed for reproducible browserless ShapeWords renders. Canvas-profile default: 0. Use engine auto or browserless; browser fallback does not support non-zero seed. | |
| text | No | Words, phrases, notes, or source text for the word cloud. Optional when words[] is provided. | |
| width | No | Canvas width in pixels. Canvas-profile default: 800. | |
| words | No | Explicit weighted words. Use this when another system already tokenized, lemmatized, or scored the input. | |
| engine | No | Renderer engine. auto uses the hosted renderer; skia uses the local MCP shared-core + CanvasKit renderer without server-side Chromium. | |
| format | No | Output artifact format. Canvas-profile default: svg. | |
| height | No | Canvas height in pixels. Canvas-profile default: 600. | |
| locale | No | ShapeWords UI/render locale. Canvas-profile default: en. | |
| padding | No | Word collision padding in pixels. Canvas-profile default: 3. | |
| palette | No | ||
| quality | No | sq is faster, hq renders at higher device scale. Canvas-profile default: hq. | |
| fillMode | No | Shape filling strategy. Canvas-profile default: fill. | |
| maxWords | No | Maximum number of words to lay out. Canvas-profile default: 700. | |
| colorMode | No | ||
| rotations | No | Explicit rotation angles in degrees. When provided, these override rotationPreset. | |
| shapeType | No | ShapeWords shape id, for example circle, rectangle, heart, star, cloud, diamond, custom. Canvas-profile default: cloud. | |
| background | No | Output background style. Canvas-profile default: white. | |
| fontFamily | No | ShapeWords font family name. Canvas-profile default: Montserrat. | |
| spiralType | No | Placement spiral algorithm. Canvas-profile default: archimedean. | |
| maxFontSize | No | ||
| minFontSize | No | ||
| returnImage | No | Download the artifact and return it as MCP image content when supported by the client. | |
| returnLayout | No | Include layout JSON when supported. Canvas-profile default: false. | |
| pollTimeoutMs | No | ||
| renderProfile | No | Default option profile. canvas matches the main ShapeWords canvas; api keeps the older compact Render API defaults. | canvas |
| pollIntervalMs | No | ||
| rotationPreset | No | Rotation preset matching the ShapeWords canvas. Canvas-profile default: orthogonal. | |
| customShapeDefinition | No | Custom SVG shape definition used when shapeType is custom. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations (readOnlyHint=false, openWorldHint=true) the bar is lower. The description adds valuable behavioral context beyond annotations: it waits for completion and returns a URL plus optional image content. It does not detail potential side effects or time costs, but the wait behavior is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the main action ('Create a ShapeWords word cloud') and then states the completion behavior and return value. Every phrase is meaningful and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately explains the return value (artifact URL and optional image content). It also conveys the synchronous wait behavior, which is essential for a 28-parameter tool. Some additional context about fallback engines or error cases would be nice, but the provided information is adequate given the rich parameter schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 79%, near the baseline threshold. The description itself does not explain any parameters; it only mentions returning an artifact URL and optional image content, which is partially tied to returnImage. The schema already documents the parameters well, so the description adds minimal parameter-specific value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('ShapeWords word cloud'), then explains the synchronous behavior ('wait for completion') and output ('return the artifact URL plus optional image content'). This clearly distinguishes it from siblings like create_word_cloud_job (async) and get_word_cloud_job (retrieval).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies synchronous usage by saying 'wait for completion', which contrasts with the sibling job-based tools. However, it does not explicitly state when to use this instead of create_word_cloud_job/get_word_cloud_job, nor does it name alternatives. 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. Dates show when Glama detected each change.
3 tool updates
v0.2.2- First observed
create_word_cloud_job - First observed
get_word_cloud_job - First observed
render_word_cloud
TDQS
Each tool has a clearly distinct purpose: one performs the full operation synchronously, one initiates an async job, and one checks job status. No overlap or ambiguity exists.
Names follow verb_noun pattern and are readable, but 'render_word_cloud' vs 'create_word_cloud_job' uses different verbs for similar actions. Minor inconsistency, but 'job' suffix clarifies async nature.
3 tools is well-scoped for a job-based word cloud service: sync, async, and status check. Each tool earns its place without redundancy or bloat.
The surface covers the full workflow: create a job, check status, and get the result. No obvious missing operations for the stated domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Qwen Image 3 AI image generation
MCP server for Flux AI image generation
MCP server for Text-to-Speech
MCP server for Wan AI video generation
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for xmorf API enabling AI image editing and generation via natural language prompts.334MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for creating and manipulating generative art with p5.js, Three.js, GLSL, Canvas2D, and SVG, featuring workspace management, parameter control, and screenshot capture.72MIT
- FlicenseAqualityDmaintenanceMCP server for generating professionally formatted Word documents (.docx). Supports corporate templates (colors, fonts, logo), headers/footers, and Markdown conversion.4-
- AlicenseAqualityDmaintenanceMCP server for generating organic, customizable blob shapes as SVG using sinusoidal harmonics, with tools for single blobs, gradient blobs, blob sets, and raw paths.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kirrrr-2423/shapewords-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server