
PuchAI MCP Server
A multi-purpose MCP server that enables Reddit research for market validation, data visualization with charts, medicine information lookup, user preference management, and task management tools. Provides comprehensive utilities for research, data analysis, and personal productivity through natural language interactions.
README
PuchAI Hackathon
🌟 CLICK TO USE THE MCP
<img src="media/mcp.png">
Reddit Research Tool
<img src="media/reddit_demo1.png">
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."
Data Visualization Tools
Make Bar Chart
<img src="media/bar_chart.png">
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."
Make Line Chart
<img src="media/line_chart.png">
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."
Make Pie Chart
<img src="media/pie.png">
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."
Make Scatter Plot
<img src="media/scatter.png">
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."
Medicine Information Provider
<img src="media/med.png">
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?"
User Preference Management
Get User Preference
<img src="media/pref_get.png">
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."
Save User Preference
<img src="media/pref_store.png"> <img src="media/memo_json.png">
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."
Task Management Tools
Add Todo
<img src="media/todo_set.png">
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."
List Todos
<img src="media/todo_get.png">
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?"
Delete Todo
<img src="media/todo_del.png">
<img src="media/todo_json.png">
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."
NOTE
- 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
Setup Guide
Install uv
Assuming you have Python installed already.
uv
is a fast Python package installer and environment manager.
Install it with:
pip install uv
Run
Git clone the repo, populate the .env
file, navigate inside, and execute this:
uv run src/main.py
By default, it will run on port 8085.
Setup NGROK
1. Install ngrok
Download and install ngrok from:
https://ngrok.com/download
2. Get Your Authtoken
- 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.env
file, on puch.ai/hi
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.