Ravelry MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | HTTP mode bind address. | 127.0.0.1 |
| PORT | No | HTTP mode port. | 3000 |
| DATA_DIR | No | With sign-in enabled: where the SQLite sign-in database is kept. | ./data |
| AUTH_PASS | No | Legacy alias for RAVELRY_PASSWORD (read-only API password). | |
| AUTH_USER | No | Legacy alias for RAVELRY_USERNAME (read-only API username). | |
| PUBLIC_URL | No | With sign-in enabled: the public origin, e.g. https://ravelry.example.com. | |
| AUTH_SECRET | No | With sign-in enabled: 32+ random characters; encrypts stored tokens and signs cookies. | |
| TRUST_PROXY | No | HTTP mode: identify clients by CF-Connecting-IP / X-Forwarded-For. | false |
| MCP_TRANSPORT | No | Transport to use: 'stdio', or 'http' to serve Streamable HTTP at /mcp. | stdio |
| MCP_URL_SECRET | No | HTTP mode: serve at /mcp/<secret> instead of /mcp (16+ characters). | |
| RAVELRY_PASSWORD | Yes | Ravelry read-only API password (required). The legacy name AUTH_PASS is still accepted. | |
| RAVELRY_USERNAME | Yes | Ravelry read-only API username (required). The legacy name AUTH_USER is still accepted. | |
| MCP_ALLOWED_HOSTS | No | HTTP mode: public hostnames accepted besides localhost, comma-separated. | |
| RAVELRY_TIMEOUT_MS | No | Timeout for each Ravelry API request, in milliseconds. | 15000 |
| RATE_LIMIT_PER_MINUTE | No | HTTP mode: requests per client per minute; 0 disables. | 60 |
| RAVELRY_OAUTH_CLIENT_ID | No | Ravelry OAuth 2.0 app client ID; enables 'Sign in with Ravelry' and /account/mcp. The app's redirect URL must be <PUBLIC_URL>/oauth/ravelry/callback. | |
| RAVELRY_OAUTH_CLIENT_SECRET | No | Ravelry OAuth 2.0 app client secret; enables 'Sign in with Ravelry' and /account/mcp. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_patternsA | Search the Ravelry pattern database by keyword and filters: craft, category, yarn weight, yardage, difficulty, fit, techniques and construction (attributes), language, designer and price. Returns a page of matches; call get_pattern_details with the ids for yarn, gauge, needles and notes. |
| get_pattern_detailsA | Get full details for one or more Ravelry patterns by id: designer, price, difficulty, rating, yarn weight, yardage, gauge, needle/hook sizes, sizes, techniques, crochet terminology (US/UK), and the designer notes. |
| search_yarnsA | Search the Ravelry yarn database by name, weight, fiber and attributes (superwash, hand-dyed, self-striping...). Excludes discontinued yarns unless asked. Returns yardage and grams per skein, washability and rating for each match. |
| get_yarn_detailsA | Get full details for one or more yarns by id: fiber content, recommended needles and hooks, gauge, care, texture, color/dye attributes, where it is made, and notes. |
| find_yarns_for_patternA | Yarn substitution: lists the yarns other Ravelry users actually used to make a pattern, ranked by how many projects used each one, next to the yarn weight, yardage and gauge the pattern calls for and the yarns its designer suggested. |
| match_yarnsA | Finds the Ravelry yarn behind text read from a ball band, receipt or invoice. Pass one item per yarn with the raw label plus whatever you could read (brand, name, weight, fiber, yards/meters and grams per skein). Returns the best match with a confidence and alternatives; use the yarn ids with add_to_my_stash or get_yarn_details. |
| find_yarn_shopsA | Find local yarn shops from Ravelry's shop directory, either around a point (latitude/longitude + radius, nearest first) or by shop name or city. For "near me" or "in ", prefer coordinates: use the coordinates of the place the user names. |
| adjust_for_gaugeA | Compares the user's swatch with a pattern's gauge: whether to change needles, how big the piece comes out if they follow the pattern as written, and pattern numbers (cast-on, stitch counts, rows) recalculated for their gauge so the size stays right. Give the pattern gauge, or a pattern_id to read it from Ravelry. |
| spread_evenlyA | Spaces increases or decreases evenly across a row or round, e.g. "increase 13 stitches evenly across 97": returns the exact written instruction. Knitting uses M1 / k2tog, crochet uses 2 sts in one / sc2tog. |
| yarn_neededA | Works out how many skeins to buy for a pattern with a given yarn, with a safety margin. Reads the yardage from a Ravelry pattern (smallest and largest size) and the skein length from a Ravelry yarn, or takes the numbers directly. Can account for a gauge difference or a bigger size (scale). |
| count_stitchesA | Reads written knitting or crochet instructions row by row ("*k2, p2; rep from * to last 2 sts, k2", "(sc, inc) x 6 (18)") and counts the stitches each step uses and makes. Flags rows that do not use every stitch and counts that differ from the one printed in the pattern. Use it to walk someone through a row or to check a pattern for errors. |
| convert_yarn_amountA | Converts an amount of yarn between grams and length (meters/yards) and skeins, e.g. "I have 200 g of Rios" or "how many grams is 300 m of DK?". Uses the yarn's own skein data (yarn_id) when given, else a typical ratio for the yarn weight (an estimate). Yarn is sold by weight in much of the world, but patterns need a length. |
| crafting_referenceA | Reference tables: needle and hook sizes (metric, US, UK, Japanese), yarn weights across regions (US worsted = UK aran = AU 10 ply, with typical needles and gauge), US↔UK crochet and knitting terms (UK "dc" is US "sc"!), and standard abbreviations. Use |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| find_a_pattern | Describe what you want to make and get matching Ravelry patterns. |
| substitute_yarn | Find yarns that work for a pattern, based on what other makers used. |
| use_my_yarn | Get pattern ideas for yarn you already have. |
| find_yarn_shops | Find local yarn shops around a place. |
| read_me_this_row | Paste a row or a few rows and get them explained step by step. |
| chart_to_written | Turn a chart (photo) into written rows, or written rows into a chart. |
| pattern_from_photo | Attach a photo of something you saw and find patterns like it. |
| fix_my_problem | Describe what went wrong (or attach a photo) and get help fixing it. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Ravelry view | Pattern, yarn, stash and shop cards for Ravelry results. |
TDQS
Scored across 13 tools
Most tools have clearly distinct purposes, but there is mild overlap in the yarn-finding cluster (search_yarns vs match_yarns vs find_yarns_for_pattern) and in the amount calculators (yarn_needed vs convert_yarn_amount). The descriptions do a good job of drawing boundaries, so an agent can mostly select correctly.
The set predominantly follows a verb_noun snake_case pattern (search_patterns, get_yarn_details, find_yarn_shops, adjust_for_gauge, convert_yarn_amount). A few noun-phrase outliers (yarn_needed, crafting_reference) slightly break the convention but remain clear and readable.
13 tools is well-scoped for a domain that spans pattern search, yarn search, substitution, gauge math, stitch counting, and reference lookups. Each tool earns its place without redundancy.
The surface covers the core crafting workflow (search/details for patterns and yarns, substitution, gauge adjustment, calculators, shops, reference tables) with no obvious functional dead ends. Minor gaps exist: it references an add_to_my_stash tool that is not part of the set, and stash/project/favorites management is absent.