Shopify Liquid MCP Server
Provides instant access to complete Shopify Liquid templating documentation, including 30 tags, 101 filters, and 67 objects for theme development. Offers offline-first search and retrieval of Liquid syntax, parameters, and examples.
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., "@Shopify Liquid MCP Serverhow do I use the forloop object in a collection loop?"
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.
Shopify Liquid MCP Server
๐ Fast, local, offline-first MCP server for Shopify Liquid documentation with 198 comprehensive docs including all tags, filters, and objects.
A specialized Model Context Protocol (MCP) server that provides instant access to complete Shopify Liquid documentation for AI assistants like Claude, Cursor, and other MCP-compatible tools.
๐ฏ Why This MCP Server?
vs. Official Shopify MCP
While Shopify provides an official MCP server that covers all Shopify APIs, this server is specifically optimized for Liquid template development:
Feature | Official Shopify MCP | This (Liquid MCP) |
Focus | All Shopify APIs (Admin, Storefront, Functions, etc.) | Liquid templating only |
Storage | Remote (queries shopify.dev) | Local (no network needed) |
Speed | Network-dependent | Instant (<1ms) |
Offline | โ Requires internet | โ Fully offline |
Customization | Fixed documentation | Add your own docs |
Coverage | General API docs | 198 Liquid-specific docs |
Runtime | Node.js | Python |
Use Cases
Use Official Shopify MCP for:
Admin API/GraphQL development
App development with Shopify APIs
Functions and POS extensions
Real-time schema validation
Use This Liquid MCP for:
Theme development with Liquid
Liquid template debugging
Offline development
Faster Liquid reference lookups
Project-specific Liquid snippets
Use Both! They complement each other perfectly - official MCP for APIs, this for Liquid.
Related MCP server: DocsetMCP
โจ Features
๐ Lightning Fast - Local SQLite FTS5 search (<1ms response time)
๐ Complete Coverage - 30 tags, 101 filters, 67 objects (198 total docs)
๐ Offline First - No network requests, works anywhere
๐ณ Docker Ready - One command deployment
๐จ IDE Integration - Works with VS Code, Cursor, Claude Desktop, Zed
๐ง Customizable - Add your own project-specific Liquid docs
๐ Rich Documentation - Full syntax, parameters, examples for everything
๐ Smart Search - Full-text search with snippet highlighting
๐ฆ Installation
Option 1: Using pip (Recommended)
pip install git+https://github.com/florinel-chis/shopify-liquid-mcp.gitOption 2: Using Docker
# Pull the image
docker pull florinel-chis/shopify-liquid-mcp:latest
# Or build locally
docker build -t shopify-liquid-mcp .
docker run -it shopify-liquid-mcpOption 3: Using docker-compose
docker-compose up -dOption 4: From Source
git clone https://github.com/florinel-chis/shopify-liquid-mcp.git
cd shopify-liquid-mcp
pip install -e .๐ฎ Usage
With VS Code
Using Docker
Create or edit .vscode/settings.json:
{
"mcp.servers": {
"shopify-liquid": {
"type": "docker",
"image": "shopify-liquid-mcp:latest",
"transport": "stdio"
}
}
}Using Local Installation
Create .mcp.json in your project root:
{
"mcpServers": {
"shopify-liquid": {
"type": "stdio",
"command": "shopify-liquid-mcp"
}
}
}Or add to VS Code settings:
{
"mcp.servers": {
"shopify-liquid": {
"command": "shopify-liquid-mcp",
"args": [],
"transport": "stdio"
}
}
}With Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Using Docker
{
"mcpServers": {
"shopify-liquid": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "shopify-liquid-mcp:latest"]
}
}
}Using Local Installation
{
"mcpServers": {
"shopify-liquid": {
"command": "shopify-liquid-mcp"
}
}
}With Cursor
Add to Cursor's MCP configuration (Settings > Features > MCP Servers):
{
"mcpServers": {
"shopify-liquid": {
"command": "shopify-liquid-mcp"
}
}
}Or with Docker:
{
"mcpServers": {
"shopify-liquid": {
"command": "docker",
"args": ["run", "-i", "--rm", "shopify-liquid-mcp:latest"]
}
}
}With Zed Editor
Create .zed/settings.json:
{
"context_servers": {
"shopify-liquid": {
"command": "shopify-liquid-mcp"
}
}
}With Continue.dev
Edit ~/.continue/config.json:
{
"mcpServers": [
{
"name": "shopify-liquid",
"command": "shopify-liquid-mcp"
}
]
}๐ ๏ธ Available Tools
Once configured, your AI assistant has access to 7 specialized tools:
1. search_liquid_docs(queries: List[str])
Full-text search across all Shopify Liquid documentation.
Example:
AI: I'll search for "for loop" in the documentation...2. get_liquid_tag(tag_name: str)
Get complete documentation for a specific tag.
Example:
AI: Let me get the documentation for the 'for' tag...3. get_liquid_filter(filter_name: str)
Get complete documentation for a specific filter.
Example:
AI: I'll look up the 'upcase' filter documentation...4. get_liquid_object(object_name: str)
Get complete documentation for a specific object.
Example:
AI: Let me check the 'product' object properties...5. list_liquid_tags()
List all 30 available tags organized by category.
6. list_liquid_filters()
List all 101 available filters organized by category.
7. list_liquid_objects()
List all 67 available objects organized by category.
๐ฌ Example Queries
Try asking your AI assistant:
Getting Documentation:
"Show me documentation for the for loop tag"
"How does the money filter work in Liquid?"
"What properties are available on the product object?"
Searching:
"Search for documentation about cart functionality"
"Find all filters related to dates"
"What objects can I use for collections?"
Listing:
"List all Shopify Liquid tags"
"Show me all available string filters"
"What iteration tags are available?"
Building:
"Help me display products in a grid"
"How do I format dates in Liquid?"
"Show me how to work with the cart"
๐ Documentation Coverage
Complete Reference
30 Liquid Tags
Control flow:
if,unless,case,elseIteration:
for,break,continue,cycle,tablerow,paginateVariables:
assign,capture,increment,decrement,echoTheme:
layout,section,sections,render,include,content_forHTML/Assets:
form,style,stylesheet,javascriptSyntax:
comment,raw,liquid,doc
101 Liquid Filters
String (24):
upcase,downcase,capitalize,append,prepend, etc.Array (13):
join,sort,reverse,map,where,size, etc.Math (11):
plus,minus,times,divided_by,modulo, etc.Money (4):
money,money_with_currency, etc.Image (5):
image_url,image_tag, etc.Color (9):
color_darken,color_lighten, etc.And more...
67 Liquid Objects
Store:
shop,settings,theme,brandProducts:
product,variant,collection,collectionsCart:
cart,line_item,checkoutCustomer:
customer,address,companyContent:
page,blog,article,commentMedia:
image,video,media,modelAnd more...
๐ณ Docker Usage
Quick Start
# Build the image
docker build -t shopify-liquid-mcp .
# Run the server
docker run -it --rm shopify-liquid-mcp
# Run with persistent data
docker run -it --rm -v mcp-data:/data shopify-liquid-mcpUsing docker-compose
# Start the server
docker-compose up -d
# View logs
docker-compose logs -f
# Stop the server
docker-compose down
# Shell access
docker-compose exec shopify-liquid-mcp bashCustom Documentation
Add your project-specific Liquid docs:
# Create custom docs directory
mkdir custom-docs
# Add your .md files
cp my-snippets.md custom-docs/
# Mount in docker-compose.yml
volumes:
- ./custom-docs:/docs/custom:ro๐ง Development
Running Tests
# Run all tests
pytest
# Run specific test
pytest tests/test_ingest.py
# Run with coverage
pytest --cov=shopify_liquid_mcpManual Testing
# Test the server
python test_server.py
# Test indexing
python -m shopify_liquid_mcp.ingest
# Check database
sqlite3 ~/.mcp/shopify-liquid-docs/database.db "SELECT COUNT(*) FROM liquid_docs;"Reindexing Documentation
# Force reindex
python -m shopify_liquid_mcp.ingest --force
# Custom database location
SHOPIFY_LIQUID_DB_PATH=/custom/path/db.sqlite python -m shopify_liquid_mcp.ingest๐ Documentation
๐ค Contributing
Contributions welcome! Please read our Contributing Guide.
Quick Start
# Fork and clone
git clone https://github.com/florinel-chis/shopify-liquid-mcp.git
cd shopify-liquid-mcp
# Create virtual environment
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
# Install for development
pip install -e ".[dev]"
# Run tests
pytest
# Make changes and submit PR๐ License
MIT License - see LICENSE file for details.
๐ Acknowledgments
Inspired by Gemini API Docs MCP
Built with FastMCP
Documentation from Shopify Liquid API
MCP Protocol by Anthropic
๐ Related Projects
Official Shopify Dev MCP - For Shopify API development
FastMCP - MCP server framework
Model Context Protocol - MCP specification
๐ Support
๐ Issues
๐ฌ Discussions
๐ง Email
โญ Star History
Made with โค๏ธ for the Shopify theme development community
Available Tools
7 toolsget_liquid_filterA
Get documentation for a specific Shopify Liquid filter.
Args: filter_name: Name of the filter (e.g., 'upcase', 'date', 'money')
Returns: Complete filter documentation
| Name | Required | Description | Default |
|---|---|---|---|
| filter_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool returns 'Complete filter documentation,' which is helpful but lacks details like format (e.g., Markdown, JSON), error handling for invalid filter names, or performance characteristics. It adequately describes the core behavior but misses nuanced operational context.
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 appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by structured 'Args' and 'Returns' sections. Every sentence earns its place by providing essential information without redundancy or fluff, making it easy to scan and understand.
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's low complexity (1 parameter), no annotations, and an output schema exists (so return values needn't be explained), the description is mostly complete. It covers purpose, usage, parameter semantics, and return intent. However, it could improve by mentioning sibling tools more explicitly or adding error-handling hints, leaving minor gaps.
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?
The schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'filter_name' as the 'Name of the filter' with examples ('e.g., 'upcase', 'date', 'money''), clarifying what the parameter represents beyond the schema's basic string type. This compensates well for the low coverage, though it doesn't detail constraints like valid filter names.
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 tool's purpose with specific verb ('Get documentation') and resource ('specific Shopify Liquid filter'), distinguishing it from siblings like 'list_liquid_filters' (which lists filters) and 'search_liquid_docs' (which searches documentation). It precisely identifies what the tool does without ambiguity.
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 explicitly states when to use this tool ('for a specific Shopify Liquid filter') and implies alternatives through sibling tool names (e.g., use 'list_liquid_filters' to see available filters, 'get_liquid_object' for objects). It provides clear context for selecting this tool over others in the suite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liquid_objectB
Get documentation for a specific Shopify Liquid object.
Args: object_name: Name of the object (e.g., 'product', 'cart', 'shop')
Returns: Complete object documentation
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns 'Complete object documentation,' which hints at a read-only operation, but doesn't explicitly confirm it's safe (non-destructive) or address other traits like error handling, authentication needs, or rate limits. For a tool with zero annotation coverage, this leaves significant gaps.
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 well-structured and front-loaded, with the core purpose stated first, followed by clear sections for 'Args' and 'Returns.' It avoids unnecessary fluff, though the 'Returns' section could be more concise (e.g., 'Documentation for the object' instead of 'Complete object documentation').
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's low complexity (single parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. It covers the basic purpose and parameter semantics but lacks usage guidelines and behavioral details. With no annotations, it doesn't fully compensate for the missing context, keeping it at a baseline level.
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?
The schema description coverage is 0%, so the description must compensate. It adds meaningful context by explaining the parameter 'object_name' with examples ('e.g., 'product', 'cart', 'shop''), which clarifies its purpose beyond the bare schema. However, it doesn't detail constraints like valid object names or formatting rules, preventing a perfect score.
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 tool's purpose: 'Get documentation for a specific Shopify Liquid object.' It specifies the verb ('Get') and resource ('documentation for a specific Shopify Liquid object'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_liquid_objects' or 'search_liquid_docs', which would be needed for a perfect score.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'list_liquid_objects' (for browsing) or 'search_liquid_docs' (for broader searches), nor does it specify prerequisites or exclusions. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liquid_tagA
Get documentation for a specific Shopify Liquid tag.
Args: tag_name: Name of the tag (e.g., 'if', 'for', 'assign')
Returns: Complete tag documentation
| Name | Required | Description | Default |
|---|---|---|---|
| tag_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the tool's read-only nature by stating it 'Get[s] documentation,' but lacks details on error handling, rate limits, or authentication needs. It adds basic behavioral context but misses deeper operational traits.
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 front-loaded with the core purpose, followed by structured 'Args' and 'Returns' sections. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.
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's low complexity (1 parameter), no annotations, and the presence of an output schema (which handles return values), the description is complete enough. It covers purpose, parameter semantics, and return intent, aligning well with the structured data available.
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?
The schema has 0% description coverage, so the description must compensate. It adds meaning by explaining that 'tag_name' is the 'Name of the tag' with examples ('if', 'for', 'assign'), clarifying its purpose beyond the bare schema. However, it does not detail format constraints or edge cases.
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 specific action ('Get documentation') and resource ('for a specific Shopify Liquid tag'), distinguishing it from siblings like list_liquid_tags (which lists tags) and search_liquid_docs (which searches documentation). It precisely defines the tool's function without redundancy.
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 usage when documentation for a specific tag is needed, but does not explicitly state when to use alternatives like list_liquid_tags (for browsing) or search_liquid_docs (for broader searches). It provides clear context but lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_liquid_filtersA
List all available Shopify Liquid filters.
Returns: List of all filter names with titles organized by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns a list organized by category, which adds useful behavioral context beyond basic listing. However, it lacks details on permissions, rate limits, or error handling, leaving gaps for a tool with no annotation coverage.
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 front-loaded with the core purpose in the first sentence and adds return details in the second. Every sentence earns its place by providing essential information without waste, making it appropriately sized and well-structured.
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's simplicity (0 parameters, no annotations, but has an output schema), the description is mostly complete. It specifies what is listed and how results are organized. However, with no annotations, it could benefit from more behavioral context like performance or limitations, though the output schema reduces the need to explain return values.
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?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description does not need to add parameter semantics, and it correctly avoids redundancy. A baseline of 4 is appropriate as it efficiently handles the no-parameter case without unnecessary details.
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 specific action ('List all available Shopify Liquid filters') and distinguishes it from siblings by focusing on filters rather than objects, tags, or documentation search. It explicitly mentions the resource (Shopify Liquid filters) and scope (all available).
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 usage context by specifying 'Shopify Liquid filters' and organizing results by category, which helps differentiate it from siblings like list_liquid_objects or list_liquid_tags. However, it does not explicitly state when to use this tool versus alternatives like search_liquid_docs or get_liquid_filter, missing explicit exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_liquid_objectsB
List all available Shopify Liquid objects.
Returns: List of all object names with titles organized by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists objects and returns them organized by category, but lacks details on permissions, rate limits, pagination, or error handling. For a read-only tool with no annotations, this is a significant gap in transparency about operational behavior.
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 extremely concise and front-loaded: the first sentence states the core purpose, and the second clarifies the return format. Every sentence earns its place with no wasted words, making it easy for an agent to parse quickly.
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's low complexity (0 parameters, read-only operation) and the presence of an output schema, the description is minimally adequate. It covers the purpose and return format but lacks behavioral context (e.g., permissions, limitations) and usage guidelines relative to siblings. It meets basic needs but leaves gaps that could hinder optimal tool selection.
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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining the return format ('List of all object names with titles organized by category'), which compensates for the absence of an output schema in the context signals (though 'Has output schema: true' is noted, the description still provides useful semantics). Baseline is high due to no parameters.
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 tool's purpose: 'List all available Shopify Liquid objects' with a specific verb ('List') and resource ('Shopify Liquid objects'). It distinguishes from siblings like 'get_liquid_object' (singular) and 'list_liquid_filters/tags' (different resource types), though it doesn't explicitly contrast them. The purpose is unambiguous but could be more precise about sibling differentiation.
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?
No guidance is provided on when to use this tool versus alternatives. The description mentions the return format but doesn't specify contexts (e.g., for reference vs. search), prerequisites, or exclusions. With siblings like 'search_liquid_docs' and 'get_liquid_object', the lack of usage guidelines leaves the agent to infer appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_liquid_tagsA
List all available Shopify Liquid tags.
Returns: List of all tag names with titles
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return format ('List of all tag names with titles'), which is useful behavioral context. However, it lacks details on error handling, pagination, or performance characteristics that might be relevant for a list operation.
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 two sentences with zero waste, front-loading the purpose and then specifying the return format. It could be slightly more structured by combining into one sentence, but it efficiently conveys essential information without 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?
Given the tool's simplicity (0 parameters, no annotations, but with an output schema), the description is reasonably complete. It states the purpose and return format, though it could benefit from clarifying the relationship with sibling tools. The output schema likely covers return details, reducing the need for extensive description.
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?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter-specific information, which is appropriate here. Baseline is 4 for zero parameters, as no compensation is needed.
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 specific action ('List all available') and resource ('Shopify Liquid tags'), distinguishing it from siblings like 'get_liquid_tag' (singular) and 'list_liquid_filters/objects' (different resources). It precisely defines the scope as 'all available' tags.
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 usage for retrieving all tag names, but does not explicitly state when to use this versus alternatives like 'get_liquid_tag' (for a specific tag) or 'search_liquid_docs' (for broader searches). No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_liquid_docsB
Search Shopify Liquid documentation using full-text search.
Args: queries: List of search terms (maximum 3)
Returns: Formatted search results with snippets
| Name | Required | Description | Default |
|---|---|---|---|
| queries | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'maximum 3' for queries, which adds a constraint, but fails to cover other critical aspects like rate limits, authentication needs, error handling, or pagination. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 appropriately sized and front-loaded with the core purpose in the first sentence. The 'Args' and 'Returns' sections add structure without redundancy, making it efficient. However, the formatting could be slightly improved for better readability.
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's moderate complexity (1 parameter, no nested objects) and the presence of an output schema (which handles return values), the description is somewhat complete. It covers the purpose and parameter semantics but lacks usage guidelines and behavioral details, making it adequate but with clear gaps for effective agent use.
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?
The description adds meaningful semantics beyond the input schema: it specifies that 'queries' are 'List of search terms' and includes a 'maximum 3' constraint, which is not in the schema (schema description coverage is 0%). This compensates well for the low schema coverage, though it could elaborate on term formatting or examples.
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 tool's purpose as 'Search Shopify Liquid documentation using full-text search,' which specifies the verb (search), resource (Shopify Liquid documentation), and method (full-text search). However, it doesn't explicitly differentiate from sibling tools like get_liquid_filter or list_liquid_filters, which might retrieve specific documentation items rather than performing searches.
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 provides no guidance on when to use this tool versus alternatives. It lacks any mention of sibling tools (e.g., get_liquid_filter for direct retrieval or list_liquid_filters for listing) or context for when full-text search is preferred over other methods, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no ambiguity: three 'get' tools retrieve specific documentation for filters, objects, and tags respectively; three 'list' tools enumerate all available items in those categories; and one 'search' tool performs full-text queries. The boundaries between tools are well-defined, preventing misselection.
Tool names follow a highly consistent verb_noun pattern throughout: all start with 'get_', 'list_', or 'search_' followed by 'liquid_' and the specific resource type (filter, object, tag, docs). There are no deviations in style or convention, making the set predictable and readable.
With 7 tools, the count is well-scoped for the server's purpose of providing Shopify Liquid documentation. It covers key operations (retrieve specific items, list all items, search) across the main documentation categories (filters, objects, tags), with each tool earning its place without redundancy or bloat.
The tool surface is complete for the domain of Shopify Liquid documentation lookup. It offers full CRUD-like coverage: 'list' tools for discovery, 'get' tools for detailed retrieval, and a 'search' tool for flexible queries. There are no obvious gaps or dead ends, enabling agents to handle all typical documentation needs effectively.
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
Provide your AI coding tools with token-efficient access to up-to-date technical documentation forโฆ
The documentation, as a tool your agent can call: 950+ AI-dev guides. Search + fetch tools.
Provides AI assistants with direct access to Mapbox developer APIs and documentation.
Versioned documentation registry and semantic search for AI tools and coding assistants.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides instant, offline access to comprehensive PrestaShop development documentation including 647+ hooks, module guides, component architecture, APIs, and theme development resources for AI assistants.79MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI assistants with instant access to local Dash documentation docsets and cheatsheets, enabling offline documentation searches across 165+ programming languages, frameworks, and developer tools directly within conversations.9MIT
- FlicenseAqualityDmaintenanceProvides AI models with direct access to documentation for over 600 technologies from DevDocs.io, including popular languages, frameworks, and tools. It enables comprehensive searching, content retrieval, and offline access via an intelligent local caching system.122
- AlicenseNot gradedqualityCmaintenanceEnables searching, fetching, and customizing Mechanic tasks and documentation for Shopify automation. Provides offline access to bundled task library and docs with tools for task code, docs content, and similar task suggestions.19MIT
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/florinel-chis/shopify-liquid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server