-
Notifications
You must be signed in to change notification settings - Fork 21
✨ Shopping Tool: MCP Server #100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
501b4ea
8419c1b
fa8638f
5c86cb9
ab08bbd
6dc7fec
567777b
7413e9b
b8963a4
72bdd26
17fb95a
cd38875
825de6d
cf12707
78ac702
ac41e32
d2dbb37
98b7e0b
1cfc2ba
694e198
bf0e472
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,270 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # MCP Tools | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This directory contains Model Context Protocol (MCP) tools that can be used by AI assistants and agents. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Available Tools | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### 1. Weather Tool (`weather_tool/`) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Get weather information for any city. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Features**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Current weather data | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Temperature, wind speed, conditions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Uses Open-Meteo API (no API key required) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Tools**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `get_weather(city: str)` - Get weather info for a city | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### 2. Movie Tool (`movie_tool/`) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Get movie information and reviews from OMDb. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Features**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Movie details (plot, ratings, actors, awards) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Full plot summaries | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Uses OMDb API | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Tools**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `get_full_plot(movie_title: str)` - Get full plot summary | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `get_movie_details(movie_title: str)` - Get full movie details | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Requirements**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - OMDB_API_KEY environment variable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### 3. Slack Tool (`slack_tool/`) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Interact with Slack workspaces. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Features**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - List channels | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Get channel history | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Optional fine-grained authorization | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Tools**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `get_channels()` - Lists all public and private channels | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `get_channel_history(channel_id: str, limit: int)` - Fetches recent messages | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Requirements**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - SLACK_BOT_TOKEN environment variable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Optional: ADMIN_SLACK_BOT_TOKEN for fine-grained auth | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### 4. GitHub Tool (`github_tool/`) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Interact with GitHub repositories (written in Go). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Features**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Repository management | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Issue tracking | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Pull request operations | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Requirements**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - GitHub authentication token | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### 5. Shopping Agent (`shopping_tool/`) ⭐ NEW | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| AI-powered shopping recommendations using LangChain, LangGraph, OpenAI, and SerpAPI. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Features**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Natural language query understanding | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Real-time product search across retailers | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - AI-curated recommendations with reasoning | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Budget-aware suggestions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Multi-step LangGraph workflow | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Tools**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `recommend_products(query: str, maxResults: int)` - Get AI-powered product recommendations | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - `search_products(query: str, maxResults: int)` - Raw product search | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Requirements**: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - OPENAI_API_KEY environment variable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - OPENAI_API_KEY environment variable |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inaccurate documentation. The description states this shopping agent provides "AI-powered shopping recommendations using LangChain, LangGraph, OpenAI, and SerpAPI" and mentions "Multi-step LangGraph workflow", but the actual implementation in shopping_agent.py does not use LangChain, LangGraph, or OpenAI at all. It only uses SerpAPI for product search and returns raw structured data without any AI reasoning.
| AI-powered shopping recommendations using LangChain, LangGraph, OpenAI, and SerpAPI. | |
| **Features**: | |
| - Natural language query understanding | |
| - Real-time product search across retailers | |
| - AI-curated recommendations with reasoning | |
| - Budget-aware suggestions | |
| - Multi-step LangGraph workflow | |
| **Tools**: | |
| - `recommend_products(query: str, maxResults: int)` - Get AI-powered product recommendations | |
| - `search_products(query: str, maxResults: int)` - Raw product search | |
| **Requirements**: | |
| - OPENAI_API_KEY environment variable | |
| Product search and recommendations using SerpAPI. | |
| **Features**: | |
| - Natural language product search | |
| - Real-time product search across retailers | |
| - Budget-aware suggestions (basic filtering) | |
| **Tools**: | |
| - `recommend_products(query: str, maxResults: int)` - Get product recommendations based on your query and budget | |
| - `search_products(query: str, maxResults: int)` - Raw product search | |
| **Requirements**: |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent parameter naming in documentation. The example uses "maxResults" (camelCase) but the actual function parameter in shopping_agent.py is "max_results" (snake_case). This could cause API call failures when users copy this example.
| "maxResults": 5 | |
| "max_results": 5 |
yenayuu marked this conversation as resolved.
Show resolved
Hide resolved
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| # API Keys and Secrets - NEVER COMMIT THESE! | ||
| .env | ||
| .env.local | ||
| .env.*.local | ||
| config.sh | ||
| *.key | ||
| *.pem | ||
|
|
||
| # Python | ||
| __pycache__/ | ||
| *.py[cod] | ||
| *$py.class | ||
| *.so | ||
| .Python | ||
| build/ | ||
| develop-eggs/ | ||
| dist/ | ||
| downloads/ | ||
| eggs/ | ||
| .eggs/ | ||
| lib/ | ||
| lib64/ | ||
| parts/ | ||
| sdist/ | ||
| var/ | ||
| wheels/ | ||
| pip-wheel-metadata/ | ||
| share/python-wheels/ | ||
| *.egg-info/ | ||
| .installed.cfg | ||
| *.egg | ||
| MANIFEST | ||
|
|
||
| # Virtual Environments | ||
| venv/ | ||
| ENV/ | ||
| env/ | ||
| .venv | ||
|
|
||
| # IDE | ||
| .vscode/ | ||
| .idea/ | ||
| *.swp | ||
| *.swo | ||
| *~ | ||
| .DS_Store | ||
|
|
||
| # Logs | ||
| *.log | ||
|
|
||
| # Testing | ||
| .pytest_cache/ | ||
| .coverage | ||
| htmlcov/ | ||
|
|
||
| # uv | ||
| uv.lock | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent parameter naming in documentation. The tool signatures show "maxResults" (camelCase) but the actual function parameters in shopping_agent.py are "max_results" (snake_case). This inconsistency could confuse users about the correct parameter name to use.