Skip to main content

An MCP server for the ORLY tool.

Project description

o-rly-mcp

An MCP (Model Context Protocol) server for generating O'RLY? (O'Reilly parody) book covers that display directly in Claude Desktop application.

Quick Start

Installation

# Clone the repository
git clone [your-repo-url]
cd o-rly-mcp

# Create a virtual environment and install dependencies
uv venv .venv
uv pip install -r requirements.txt

Local Development

# Test a sample image generation
uv run python test_mcp.py

# Run comprehensive tests
uv run python test_comprehensive.py

# Start the MCP server for development
python start_server.py

Claude Desktop Configuration

Add this MCP server to your Claude Desktop configuration file (claude_desktop_config.json):

Recommended Configuration

{
  "mcpServers": {
    "orly-local": {
      "command": "uv",
      "args": [
        "run",
        "--with", "fastmcp",
        "--with", "pillow",
        "--with", "fonttools",
        "--with", "requests",
        "python",
        "/path/to/your/o-rly-mcp/orly_mcp/server.py"
      ],
      "cwd": "/path/to/your/o-rly-mcp"
    }
  }
}

Important: Replace /path/to/your/o-rly-mcp with your actual project path.

Alternative: Package Installation

# Install in editable mode
uv pip install -e .

# Claude Desktop config
{
  "mcpServers": {
    "orly-local": {
      "command": "uvx",
      "args": ["--from", "/your/path/to/o-rly-mcp", "orly-mcp"]
    }
  }
}

Troubleshooting

"ModuleNotFoundError: No module named 'mcp'" Error

If you see this error, the MCP dependencies aren't available:

cd /path/to/your/o-rly-mcp
uv pip install -r requirements.txt

Make sure your Claude Desktop configuration includes all required dependencies with --with flags.

"ModuleNotFoundError: No module named 'fontTools'" Error

Ensure all dependencies are specified in your Claude Desktop configuration:

"args": [
  "run",
  "--with", "fastmcp",
  "--with", "pillow",
  "--with", "fonttools", 
  "--with", "requests",
  "python",
  "/your/path/to/orly_mcp/server.py"
]

Testing Your Setup

Run the comprehensive test to verify everything works:

uv run python test_comprehensive.py

Using the ORLY Tool in Claude

Once configured, you can ask Claude to generate O'RLY book covers like this:

  • "Create an O'RLY book cover with the title 'Advanced Debugging' and author 'Jane Developer'"
  • "Generate a book cover titled 'Machine Learning Mistakes' with subtitle 'What Could Go Wrong?' by 'AI Enthusiast'"
  • "Make an O'RLY cover for 'CSS Grid Mastery' with theme 7 and image 15"

✨ The generated book cover images will be displayed directly in the chat!

The tool supports these parameters:

  • title (required): Main book title
  • subtitle (optional): Text at the top of the cover
  • author (optional): Author name (bottom right)
  • image_code (optional): Animal/object image 1-40 (random if not specified)
  • theme (optional): Color theme 0-16 (random if not specified)
  • guide_text_placement (optional): Position of guide text - 'top_left', 'top_right', 'bottom_left', 'bottom_right'
  • guide_text (optional): Custom guide text (defaults to "The Definitive Guide")

License

This project is licensed under the MIT License - see the LICENSE.txt file for details.

The original O'RLY book cover generation code in the orly_generator/ directory is based on work by Charles Berlin (2016) and is also licensed under the MIT License - see orly_generator/LICENSE.txt for details.

Acknowledgments

This project builds upon the excellent work by Charles Berlin. The core image generation code in the orly_generator/ directory is adapted from his original o-rly-mcp repository, updated to work with Python 3 and integrated into an MCP server for Claude Desktop.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orly_mcp-0.1.0.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

orly_mcp-0.1.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file orly_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: orly_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for orly_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f67f1faab80280505f7fac6f2c09284d6a7a1cd13cf00c3bcc4b7435875bd3c7
MD5 0a607af177c2cd31d38548e6b4546c1a
BLAKE2b-256 c32200d4af053165e36b33904f08efa09823fe186e2ec4329a4f8500dae60b05

See more details on using hashes here.

File details

Details for the file orly_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: orly_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for orly_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 87160b8074362ec5a55792fde4f301de12e62aa1a3b38c0920d5ea271cfbd2ab
MD5 719caf70453d072341d243416457f451
BLAKE2b-256 90b3514ca53f8b2284aea759bbd37872aacfd8ee008638e526908072ee4206d4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page