Skip to main content
Glama
bhubbb
by bhubbb

Drawing Guides MCP Server

A Model Context Protocol (MCP) server that provides access to drawing tutorials and guides from easydrawingguides.com, making it easy to find and retrieve step-by-step drawing instructions for artists of all skill levels.

Overview

This MCP server acts as a bridge between AI assistants and popular drawing tutorial websites, specifically designed to:

  • Comprehensive Search: Search across Easy Drawing Guides for drawing tutorials

  • Detailed Tutorials: Retrieve complete drawing guides with step-by-step instructions

  • Content Extraction: Parse and structure drawing instructions for easy consumption

  • Category Navigation: Browse available drawing categories and topics

  • Family-Friendly: Access kid-friendly and beginner-oriented drawing content

Related MCP server: ASCIIFlow MCP Server

Features

πŸ” Search Tool

  • Search across drawing tutorials from Easy Drawing Guides

  • Returns structured metadata and ranked list of relevant guides

  • Validates all returned URLs to ensure they are accessible

  • Includes instructions for LLMs on how to use exact URLs with the get_guide tool

  • Configurable result limits

πŸ“‹ Guide Retrieval Tool

  • Retrieve complete drawing tutorial content from URLs as Markdown

  • Extract content from the main article section (removes ads)

  • Preserve original formatting and structure in Markdown format

  • Clean, readable output with metadata

πŸ“š Categories Tool

  • List available drawing categories from Easy Drawing Guides

  • Discover popular drawing topics and themes

  • Get suggestions for search terms and ideas

Installation & Setup

Prerequisites

  • Python 3.12 or higher

  • uv package manager

Quick Start

Run directly with uvx (once published):

uvx mcp-drawing-guides

Or run from local directory:

uvx --from . mcp-drawing-guides

Or install locally:

  1. Clone or download this project

  2. Install dependencies:

    cd mcp-drawing-guides
    uv sync
  3. Run the server:

    uv run python main.py

Integration with AI Assistants

This MCP server is designed to work with AI assistants that support the Model Context Protocol. Configure your AI assistant to connect to this server via stdio.

Example configuration for Claude Desktop:

{
  "mcpServers": {
    "drawing-guides": {
      "command": "uvx",
      "args": ["--from", "/path/to/mcp-drawing-guides", "mcp-drawing-guides"]
    }
  }
}

Or if using a local installation:

{
  "mcpServers": {
    "drawing-guides": {
      "command": "uv",
      "args": ["run", "python", "/path/to/mcp-drawing-guides/main.py"]
    }
  }
}

Available Tools

Search for drawing tutorials across supported sites.

Parameters:

  • query (required): Search terms (e.g., "cat", "anime character", "flower")

  • limit (optional): Max results to return (1-20, default: 10)

  • source (optional): Which site to search - "easy" (default: "easy")

Returns:

  • Search metadata (query, results count, sources searched)

  • List of matching drawing guides with titles and validated URLs

  • Instructions for using the get_guide tool with exact URLs from the results

Example:

{
  "name": "search",
  "arguments": {
    "query": "cute cat",
    "limit": 5,
    "source": "easy"
  }
}

get_guide

Retrieve detailed content of a specific drawing guide.

Parameters:

  • url (required): URL of the drawing guide from easydrawingguides.com

Returns:

  • Guide metadata (title, source, URL, content length)

  • Complete tutorial content formatted as Markdown

Example:

{
  "name": "get_guide",
  "arguments": {
    "url": "https://easydrawingguides.com/draw-cat/"
  }
}

list_categories

List available drawing categories and popular topics.

Parameters:

  • None required

Returns:

  • Categories from Easy Drawing Guides

  • Popular search terms and suggestions

Example:

{
  "name": "list_categories",
  "arguments": {}
}

Supported Sites

Easy Drawing Guides (easydrawingguides.com)

  • Focus: Step-by-step drawing tutorials for all skill levels

  • Content: Animals, people, plants, cartoons, objects, anime, video games

  • Features: Detailed instructions, printable worksheets, video tutorials

  • Audience: Kids, beginners, and hobbyists

How It Works

Content Extraction Process

  1. Web Scraping: Uses requests and BeautifulSoup to fetch and parse web content

  2. Content Targeting: Extracts content specifically from <div class="inside-article">

  3. Ad Removal: Removes <div class="mv-ad-box"> elements to clean up content

  4. Markdown Conversion: Converts HTML content to clean, readable Markdown format

  5. Metadata Generation: Creates structured metadata for each guide

Search Algorithm

  1. Site Search: Queries Easy Drawing Guides for relevant tutorials

  2. Relevance Ranking: Sorts results by keyword relevance in titles

  3. URL Validation: Validates each URL to ensure it's accessible before including in results

  4. Content Filtering: Filters out irrelevant or duplicate results

  5. Source Attribution: Clearly identifies the source of each result

Structured Output Format

All tools return structured responses with separate blocks for:

  • Metadata: Source, URL, content statistics, search parameters

  • Content: Main tutorial content and descriptions

  • Instructions: Step-by-step drawing instructions when available

  • References: Image URLs and alt text for visual reference

Use Cases

For Art Students & Beginners

  • Find step-by-step tutorials for specific subjects

  • Learn fundamental drawing techniques

  • Access beginner-friendly instructions with clear steps

For Parents & Teachers

  • Discover family-friendly drawing activities

  • Find age-appropriate art projects for children

  • Access educational content for art classes

For Digital Artists & Hobbyists

  • Get inspiration for new drawing subjects

  • Find reference materials and instruction guides

  • Learn new drawing styles and techniques

For Content Creators

  • Source tutorial content for art education

  • Find step-by-step processes to reference

  • Access structured drawing instruction data

Quick Start Guide

  1. Clone or download this repository

  2. Install dependencies:

    cd mcp-drawing-guides
    uv sync
  3. Test the server:

    uv run python main.py

    Press Ctrl+C to stop the server.

  4. Configure your AI assistant to use this MCP server

Examples

Ask your AI assistant: "Search for drawing tutorials about dogs"

The server will:

  1. Search Easy Drawing Guides for "dogs"

  2. Return structured metadata (query, result count, sources)

  3. Provide a list of relevant tutorials with validated URLs

  4. Include direct access to full guides

Retrieve Specific Guide

Ask your AI assistant: "Get the detailed instructions for this drawing guide: [URL]"

The server will:

  1. Fetch the complete tutorial content from the URL

  2. Extract content from the main article section (removes ads)

  3. Convert HTML content to clean Markdown format

  4. Return structured metadata and formatted content

Browse Categories

Ask your AI assistant: "What drawing categories are available?"

The server will:

  1. Return organized lists of categories from Easy Drawing Guides

  2. Provide popular search terms and suggestions

  3. Help you discover new drawing topics and themes

Development

Project Structure

mcp-drawing-guides/
β”œβ”€β”€ main.py          # Main MCP server implementation
β”œβ”€β”€ pyproject.toml   # Project dependencies and metadata
β”œβ”€β”€ README.md        # This documentation
└── .venv/           # Virtual environment (created by uv)

Key Dependencies

  • mcp: Model Context Protocol framework

  • requests: HTTP library for web scraping

  • beautifulsoup4: HTML parsing and content extraction

  • lxml: Fast XML and HTML parser

  • markdownify: HTML to Markdown conversion

Customization

The server can be easily customized by modifying main.py:

  • Add New Sites: Extend the search functions to support additional tutorial sites

  • Improve Parsing: Enhance content extraction for better step identification

  • Content Filtering: Add custom filters for content quality or appropriateness

  • Caching: Implement caching to improve performance and reduce server load

Testing the Server

Test the server directly:

cd mcp-drawing-guides
uvx --from . mcp-drawing-guides

Or with local installation:

cd mcp-drawing-guides
uv run python main.py

The server communicates via JSON-RPC over stdin/stdout, so you'll need an MCP client or AI assistant to interact with it properly.

Troubleshooting

Common Issues

  1. Import Errors: Make sure all dependencies are installed with uv sync

  2. Network Issues: Check internet connectivity for accessing tutorial sites

  3. Parsing Errors: Some pages may have different structures; the server handles this gracefully

  4. Rate Limiting: Be respectful of the source sites' server resources

Debugging

Enable debug logging by modifying the logging level in main.py:

logging.basicConfig(level=logging.DEBUG)

Ethical Considerations

  • Respect: This server respects the robots.txt and terms of service of source sites

  • Attribution: All content is properly attributed to its original source

  • Non-Commercial: Intended for educational and personal use

  • Fair Use: Extracts only necessary content for tutorial purposes

Contributing

This is a simple, single-file implementation designed for clarity and ease of modification. Feel free to:

  • Add support for additional drawing tutorial sites

  • Improve content extraction algorithms

  • Add caching for better performance

  • Extend with additional drawing-related features

License

This project uses the same license as its dependencies. The drawing tutorial content accessed through this server remains the property of the original sites and creators.


This MCP server makes drawing tutorials more accessible by providing structured access to step-by-step drawing guides from trusted educational sources.

Available Tools

3 tools
get_guideC

Get detailed content of a specific drawing guide from a URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the drawing guide to retrieve

TDQS

C2.9/5.0
Behavior2/5

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 retrieves content, implying a read operation, but doesn't cover aspects like authentication needs, rate limits, error handling, or what 'detailed content' entails. This leaves significant 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a single parameter with good schema coverage, the description is incomplete. It doesn't explain what 'detailed content' includes, potential return formats, or behavioral traits, which are crucial for an agent to use the tool effectively in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'url' parameter clearly documented. The description adds minimal value beyond the schema by specifying it's for a 'drawing guide', but doesn't provide additional context like URL format constraints or examples, so it meets the baseline for high schema coverage.

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?

The description clearly states the action ('Get detailed content') and resource ('specific drawing guide'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list_categories' or 'search', which might also retrieve drawing guides in different ways, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'list_categories' or 'search'. It mentions retrieving from a URL, but doesn't specify prerequisites, exclusions, or contextual usage scenarios, leaving the agent with minimal direction.

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

list_categoriesB

List available drawing categories from Easy Drawing Guides

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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 action ('List') but doesn't describe traits like whether it's read-only, if there are rate limits, what the return format is, or any authentication needs. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any waste. It's appropriately sized and front-loaded, 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.

Completeness3/5

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 output schema), the description is adequate as a minimum viable explanation. However, with no annotations and no output schema, it lacks details on behavior and return values, leaving gaps that could hinder an agent's correct invocation.

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?

The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The baseline for this scenario is 4, as the description appropriately doesn't add unnecessary param info, but it could slightly enhance context (e.g., noting no filters are available).

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?

The description clearly states the verb ('List') and resource ('available drawing categories from Easy Drawing Guides'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'search' or 'get_guide', which might also relate to categories or guides, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'search' or 'get_guide'. The description implies it's for listing categories, but without explicit context or exclusions, the agent might struggle to choose between this and sibling tools in practice.

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

TDQS

B3.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: get_guide retrieves specific content, list_categories enumerates categories, and search finds tutorials. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_guide, list_categories, search), with no deviations in style or convention. This predictability enhances usability and clarity.

Tool Count3/5

With only 3 tools, the set feels thin for a drawing guides server, potentially lacking operations like creating or updating guides. While the tools cover basic retrieval and listing, the scope seems limited compared to typical domain coverage needs.

Completeness2/5

The tool surface is severely incomplete for a drawing guides domain, as it only supports read-only operations (get, list, search) with no ability to create, update, or delete guides. This will likely cause agent failures when full lifecycle management is required.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/bhubbb/mcp-drawing-guides'

If you have feedback or need assistance with the MCP directory API, please join our Discord server