find_pattern
Finds a ready-made, checked architecture diagram for a request such as "three tier network", "serverless api", or "two availability zones". It is a workflow of the MCP server and the HTTP API, with the title "Find pattern".
TL;DR
| Question | Answer |
|---|---|
| What is it? | A workflow: one call does the work of several tools and returns one combined answer. |
| What does it do? | Finds a ready-made, checked architecture diagram for a request such as "three tier network", "serverless api", or "two availability zones". |
| What does it replace? | searching the documentation for an example to copy. |
| How do I call it over HTTP? | POST /v1/patterns/find |
| Does it change anything? | No. It is read-only and idempotent, and it talks to nothing outside itself. It saves no file and returns its answer as data. |
| Which bounds apply? | maxPatternQueryLength, maxPatternTags, maxPatternResults. See the bounds below. |
| Where do I read its schema as data? | An MCP client gets the name, description, and JSON Schema of every tool from tools/list. |
What it does
Workflow. Finds a ready-made, checked architecture diagram for a request such as "three tier network", "serverless api", or "two availability zones". Send the request in plain words, and optionally a provider (neutral, aws, azure, or gcp), tags, a diagram kind, and a limit of up to 5. Returns the best matches first, each with an id, a one-sentence summary, tags, and the flavours it comes in, never the source. Start here when the user asks for a common architecture: a pattern is already validated, laid out, and described, so you adapt it instead of drawing from nothing. Replaces searching the documentation for an example to copy.
Steps
| Operation | Runs | What it does |
|---|---|---|
findPatterns | always | Search the pattern library for an architecture by its words, with optional provider, tag, and kind filters. |
One call performs at most 1 operations.
Example call
The arguments of the call, as JSON:
{ "query": "three tier network", "provider": "azure"}Prompts that lead to it
- Draw a three-tier network with load balancers.
- Which pattern shows a primary and a replica database in two availability zones?
- Find a serverless API pattern for AWS.
Arguments
| Field | Type | Required | Description |
|---|---|---|---|
query | string | yes | The architecture wanted, in plain words, such as "three tier network". at least 1 character; at most 200 characters. |
provider | "neutral" | "aws" | "azure" | "gcp" | no | Only patterns that come in this flavour: neutral, aws, azure, or gcp. |
tags | string[] | no | Tags every result must have, such as "load balancer". Up to 5. |
kind | "flow" | "sequence" | "schema" | "git" | "gantt" | "class" | "state" | "timeline" | "journey" | "mindmap" | "treemap" | "pie" | "quadrant" | "layers" | "c4" | "matrix" | "sankey" | "xychart" | "tree" | "swimlane" | no | Only patterns of this diagram kind: flow, sequence, schema, git, gantt, class, state, timeline, journey, mindmap, treemap, pie, quadrant, layers, c4, matrix, sankey, xychart, tree, or swimlane. |
limit | integer | no | Most results to return, up to 5. minimum 1; maximum 5; default 5. |
Result
| Field | Type | Required | Description |
|---|---|---|---|
query | string | yes | The query that was searched. |
matches | object[] | yes | Up to the limit, best match first. Empty when nothing fits. |
matches[].id | string | yes | The pattern id, as find_pattern returns it, such as three-tier-network. at least 1 character; at most 60 characters. |
matches[].title | string | yes | |
matches[].summary | string | yes | One sentence: what the diagram shows. |
matches[].kind | string | yes | A diagram kind: flow, sequence, schema, git, gantt, class, state, timeline, journey, mindmap, treemap, pie, quadrant, layers, c4, matrix, sankey, xychart, tree, or swimlane today. Later versions add kinds, so expect others. |
matches[].tags | string[] | yes | |
matches[].providers | ("neutral" | "aws" | "azure" | "gcp")[] | yes | The flavours the pattern comes in. |
matches[].score | number | yes | How well it matches; only the order of the results is meaningful. |
next | string | yes | The next step in one sentence. |
Behavior hints
| Hint | Value |
|---|---|
readOnlyHint | true |
destructiveHint | false |
idempotentHint | true |
openWorldHint | false |
Bounds
A bound that is reached is reported in the result; nothing is cut silently.
| Bound | Value | What it limits |
|---|---|---|
maxPatternQueryLength | 200 | Characters in the query. |
maxPatternTags | 5 | Tags a search can require. |
maxPatternResults | 5 | Matches in one answer. |
See also
| Doc | Why |
|---|---|
| Tool reference | Every tool, with the workflows first |
POST /v1/patterns/find | The same operation over HTTP |
| Language reference | What the diagram source may contain |
| Writing diagrams with an agent | The loop in practice |