Description: Scrapes latest new posts from specified subreddits and filters posts containing specific keywords, then analyzes content using intent scoring for market validation and audience sentiment analysis.
Parameters:
puch_user_id(string): User ID for rate limitingquery(string): Descriptive query about what you're looking forsubreddits(list of strings): List of subreddit names (without 'r/' prefix)keywords(list of strings): Keywords to search for using fuzzy matchingthreshold(int, default: 80): Fuzzy match threshold (0-100)post_limit(int, default: 10): Number of new posts to check per subreddit (1-35)
Cooldown: 80 seconds between uses
Example Prompts:
- "Hey Puch, I am trying to promote my MCP with Kubernetes EKS setup, please check if recently anyone is interested in r/mcp or r/saas."
- "I'm building my own payment gateway service, check if there is any discussion around payment gateways in r/saas, and tell me how to approach them."
Description: Generates a labeled bar chart image from lists of labels and numeric data with customizable styling.
Parameters:
puch_labels(list of strings): Label strings for x-axispuch_values(list of floats): Numeric values (same length as labels)width(int, default: 900): Image width in pixelsheight(int, default: 450): Image height in pixelsbg_color(string, default: "#f8fffe"): Background colorbar_color(string, default: "#4ade80"): Bar colortitle(string, optional): Chart title
Example Prompts:
- "Create a bar chart showing sales data: Q1=15000, Q2=18000, Q3=22000, Q4=17000 with title 'Quarterly Sales'."
- "Make a bar chart of programming languages: Python=45, JavaScript=38, Java=32, C++=28, Go=15."
Description: Creates a line chart visualization showing trends over time or relationships between variables.
Parameters:
puch_labels(list of strings): Label strings for x-axispuch_values(list of floats): Numeric values (same length as labels)width(int, default: 900): Image width in pixelsheight(int, default: 450): Image height in pixelsbg_color(string, default: "#f8fffe"): Background colorline_color(string, default: "#4ade80"): Line colortitle(string, optional): Chart title
Example Prompts:
- "Show me a line chart of website traffic over the past 6 months: Jan=1200, Feb=1350, Mar=1100, Apr=1600, May=1850, Jun=2100."
- "Create a line chart showing temperature trends: Mon=22, Tue=24, Wed=19, Thu=25, Fri=27, Sat=23, Sun=21."
Description: Generates a pie chart with modern styling, shadow effects, and detailed legend showing percentages and values.
Parameters:
labels(list of strings): Category labels for the pie chartvalues(list of floats): Numeric values for each categorytitle(string, optional): Chart titlewidth(int, default: 1000): Image width in pixelsheight(int, default: 600): Image height in pixels
Example Prompts:
- "Create a pie chart showing budget allocation: Marketing=5000, Development=8000, Operations=3000, Sales=4000."
- "Make a pie chart of survey responses: Very Satisfied=45, Satisfied=32, Neutral=15, Dissatisfied=8."
Description: Creates a scatter plot to visualize relationships between two numeric variables with optional categorization and custom styling.
Parameters:
x_values(list of floats): X-coordinate valuesy_values(list of floats): Y-coordinate values (same length as x_values)labels(list of strings, optional): Point labelscategories(list of strings, optional): Categories for color codingcolors(list of strings, optional): Custom colors for each point (hex codes)width(int, default: 900): Image width in pixelsheight(int, default: 600): Image height in pixelsbg_color(string, default: "#fafafa"): Background colorpoint_color(string, default: "#4F46E5"): Default point colorpoint_size(int, default: 6): Point radius in pixelstitle(string, optional): Chart titlex_label(string, optional): X-axis labely_label(string, optional): Y-axis label
Example Prompts:
- "Create a scatter plot showing correlation between hours studied (x) and exam scores (y): study hours [2,4,6,8,10,12] and scores [65,72,78,85,90,95]."
- "Make a scatter plot of height vs weight data with categories for different age groups."
Description: Retrieves information about any given medicine from Tata 1mg.
Parameters:
medicine_name(string): Name of the medicine
Example Prompts:
- "Hey, the pharmacy gave me montelukast, is this the right medicine for allergies?"
Description: Retrieves user preferences or a specific preference value by key.
Parameters:
puch_user_id(string): User IDkey(string, optional): Specific preference key to retrieve
Example Prompts:
- "What's my favorite programming language?"
- "Show me all my saved preferences."
Description: Saves user preferences, likes, interests, or any memorable information to persistent storage.
Parameters:
puch_user_id(string): User IDkey(string): Preference category or key (e.g., 'favorite_color')value(string): Value to save under the given key
Example Prompts:
- "Remember that my favorite programming language is Python."
- "Save that I prefer coffee over tea in the mornings."
Description: Adds a new task to the user's TODO list with timestamp.
Parameters:
puch_user_id(string): User IDtask(string): The task or todo item text
Example Prompts:
- "Add 'Finish MCP documentation' to my todo list."
- "I need to remember to 'Call client about project proposal' - please add this to my tasks."
Description: Retrieves and displays all TODO items for a user, sorted by creation date.
Parameters:
puch_user_id(string): User ID
Example Prompts:
- "Show me all my current tasks and todos."
- "What's on my todo list right now?"
Description: Removes a specific task from the user's TODO list by index number.
Parameters:
puch_user_id(string): User IDindex(int): The index number of the todo from list_todos (1-based)
Example Prompts:
- "Delete task number 3 from my todo list."
- "Remove the second item from my tasks."
- Reddit Scraper: 80-second cooldown per user
- Other tools: No cooldown restrictions
- User data stored in
user_data.json - Thread-safe file operations with locking
- Atomic write operations with temporary files
Assuming you have Python installed already.
uv is a fast Python package installer and environment manager.
Install it with:
pip install uvGit clone the repo, populate the .env file, navigate inside, and execute this:
uv run src/main.pyBy default, it will run on port 8085.
Download and install ngrok from:
https://ngrok.com/download
- Go to: https://dashboard.ngrok.com/get-started/your-authtoken
- Copy your authtoken.
- Run the following command to add your token:
ngrok config add-authtoken YOUR_AUTHTOKEN
- run
ngrok http 8085 - Copy the URL, and type
/mcp connect {copied url}/mcp AUTH_TOKEN. The AUTH_TOKEN should be same as the one in.envfile, on puch.ai/hi













