OmenDilly/thiings_mcp
If you are the rightful owner of thiings_mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Thiings Icon Search MCP Server allows users to search and download icons from the Thiings website directly into their projects, optimized for Cursor integration.
search_thiings_icons
Search for icons on the Thiings website.
download_thiings_icon
Download a specific icon from a URL.
search_and_download_icon
Search for an icon and download the first match automatically.
Thiings Icon Search MCP Server
This MCP (Model Context Protocol) server allows you to search for and download icons from the Thiings website (https://www.thiings.co/things) directly into your project. Optimized for Cursor!
Features
- Search Icons: Search for icons on the Thiings website using keywords
- Download Icons: Download specific icons by URL
- One-Click Download: Search and download the first matching icon in one command
- Automatic Organization: Icons are saved to your project directory
- Cursor Integration: Easy setup and configuration for Cursor
Quick Setup for Cursor
-
Run the setup script:
python3 setup_cursor.py
-
Restart Cursor to load the MCP server
-
Start using it in Cursor chat:
"Search for home icons on the Thiings website"
That's it! The setup script will automatically:
- Install all dependencies
- Configure the MCP server for Cursor
- Create usage documentation
Manual Installation
If you prefer to set it up manually:
-
Install Dependencies:
pip install -r requirements.txt
-
Configure Cursor: Create or edit
.cursor/mcp.json
in your project:{ "mcpServers": { "thiings-icon-search": { "command": "python3", "args": ["thiings_icon_mcp.py"], "cwd": ".", "description": "Search and download icons from the Thiings website" } } }
-
Restart Cursor to load the new MCP server
Available Tools
1. search_thiings_icons
Search for icons on the Thiings website.
Parameters:
query
(optional): Search query for finding specific icons
Example:
{
"query": "home"
}
2. download_thiings_icon
Download a specific icon from a URL.
Parameters:
icon_url
(required): URL of the icon to downloadfilename
(required): Filename for the downloaded iconoutput_dir
(optional): Directory to save the icon (default: current directory)
Example:
{
"icon_url": "https://www.thiings.co/icons/home.svg",
"filename": "home_icon.svg",
"output_dir": "./icons"
}
3. search_and_download_icon
Search for an icon and download the first match automatically.
Parameters:
query
(required): Search query for finding the iconoutput_dir
(optional): Directory to save the icon (default: current directory)
Example:
{
"query": "settings",
"output_dir": "./assets/icons"
}
Usage Examples
Basic Search
Use the search_thiings_icons tool to find icons related to "navigation"
Download Specific Icon
Download the icon from https://www.thiings.co/icons/user.svg and save it as "user_icon.svg"
Quick Search and Download
Search for a "hamburger menu" icon and download the first result to the ./icons directory
File Structure
thiings_mcp/
āāā server.py # Main MCP server implementation
āāā requirements.txt # Python dependencies
āāā mcp_config.json # MCP server configuration
āāā README.md # This file
Technical Details
How It Works
- Web Scraping: The server uses
aiohttp
andBeautifulSoup
to scrape the Thiings website - Icon Detection: It searches for common icon patterns using CSS selectors
- Download Management: Icons are downloaded asynchronously and saved to the specified directory
- Duplicate Handling: The server removes duplicate icons based on URL
Icon Detection Strategy
The server looks for icons using these CSS selectors:
img[src*="icon"]
- Images with "icon" in the src attributeimg[alt*="icon"]
- Images with "icon" in the alt text.icon img
- Images within icon classes[class*="icon"] img
- Images within elements with icon-related classessvg[class*="icon"]
- SVG elements with icon classes.thing img
- Images within "thing" elements[class*="thing"] img
- Images within thing-related elements
Error Handling
The server includes comprehensive error handling for:
- Network failures
- Invalid URLs
- File system errors
- HTML parsing errors
Development
To test the server locally:
# Install dependencies
pip install -r requirements.txt
# Run the server (for testing)
python server.py
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
License
This project is open source and available under the MIT License.
Notes
- The server respects the Thiings website's structure and may need updates if the site changes
- Downloaded icons retain their original format (PNG, SVG, etc.)
- The server creates output directories automatically if they don't exist
- Large icons are downloaded efficiently using streaming