Skip to main content
Glama

Make Venn diagram

make_venn
Read-onlyIdempotent

Use this when the user wants a Venn diagram of 2 or 3 lists or groups, for example "Venn diagram of these two customer lists" or "draw the overlap of skills for 3 candidates". Takes 2 or 3 named sets of items (up to 500 per set, 80 characters per item) or only region counts, a layout (symmetric, or proportional for 2 sets) and a case option. Returns the count of each region, which items are drawn, a check that each drawn label sits inside its region, an interactive diagram, and SVG, PDF and CSV downloads. Does not read files or images, and does not draw 4 or more sets. Lists are not kept after the call; download files of large diagrams are stored for 1 hour.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "make_venn"
  }
}

Input Schema

NameRequiredDescriptionDefault
setsNo2 or 3 named lists to compare. Each set: {"name":"Team A","items":["Ann","Bo","Cy"]}. Names up to 40 characters; up to 500 items per set, each up to 80 characters. Give this or set_names with region_counts.
titleNoDiagram title, e.g. "Skills of two candidates". Up to 80 characters. Default: the set names joined with "vs".
layoutNosymmetric (default): circles of equal size, areas not to scale. proportional: 2 sets only, both with at least one item, circle and overlap areas to scale with the counts.
set_namesNoOnly with region_counts: the 2 or 3 set names in order a, b, c, e.g. ["Email","SMS"].
region_countsNoUse when only the counts are known, not the items. Keys name one region each: 2 sets a, b, ab; 3 sets a, b, c, ab, ac, bc, abc (a = only the first set; ab = in the first and second set but not the third). Example: {"a":120,"b":80,"ab":45}.
case_sensitiveNofalse (default): "Apple" and "apple" are the same item. true: case matters.

Output Schema

NameRequiredDescriptionDefault
pdfYes
modeYes
setsYes
titleYes
layoutYes
regionsYes
warningsYes
downloadsYes
set_countYes
union_countYes
proportionalNo
normalizationYes
preview_countNo
placement_checkYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, and the description adds genuinely non-obvious behavior: lists are not retained after the call, large-diagram download files live for 1 hour, and per-set/per-item size caps. These are operational facts an agent can't get from the structured fields.

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?

Sentences are front-loaded in a sensible order: trigger, inputs, outputs, exclusions, side effects. It is dense but nearly every clause carries information; the return-value sentence is somewhat long and largely duplicated by the output schema, which is the only real slack.

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?

For a 6-parameter tool with nested objects, an output schema, and full annotation coverage, the description covers trigger, both input modes, limits, exclusions, and retention behavior. Nothing an agent needs to invoke it correctly is missing.

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?

Schema coverage is 100%, so the baseline would be 3, but the description still adds value by presenting the two mutually exclusive input modes together (named sets of items vs. region counts only) and by noting proportional layout is 2-set only. It doesn't restate region key naming or defaults, which the schema already handles well.

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

Purpose4/5

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

Specific verb+resource ("Make Venn diagram" / "Venn diagram of 2 or 3 lists or groups") backed by two concrete user-utterance examples, so the agent can match intent quickly. It also states hard scope limits (no 4+ sets, no file/image reading). It does not, however, reference the sibling compare_lists, so an agent choosing between the two gets no direct differentiation.

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?

Opens with an explicit "Use this when..." trigger, gives two paraphrase-worthy examples, and names when-not conditions ("Does not read files or images, and does not draw 4 or more sets"). Combined with the schema's "Give this or set_names with region_counts", the agent knows which of the two input paths to take.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources