SteamMCP
by rayyan2099
README.md
# š® SteamMCP
### AI-Powered Steam Game Recommendation Agent
SteamMCP is an agentic AI application that recommends Steam games based on natural language preferences. It uses the **Model Context Protocol (MCP)** to allow an LLM agent to dynamically discover and invoke specialized recommendation tools.
The application supports game search, similarity-based recommendations, tag-based recommendations, platform filtering, and detailed game metadata retrieval.
š **Live Demo:** https://steam-mcp-alpha.vercel.app/
---
## š Features
- š¤ AI-powered game recommendations using an LLM agent
- š Model Context Protocol (MCP) tool integration
- š Search Steam games by name
- š® Find games similar to a selected game
- š·ļø Recommend games based on Steam tags and preferences
- š» Filter recommendations by platform
- Windows
- macOS
- Linux
- š Retrieve detailed game information
- š REST API built with FastAPI
- āļø React frontend
- āļø Cloud deployment using Render and Vercel
---
## šļø Architecture
```text
User
ā
ā¼
React Frontend
ā
ā¼
FastAPI API
ā
ā¼
AI Agent
ā
ā¼
Groq LLM API
ā
Tool Selection
ā
ā¼
MCP Client / Server
ā
āāāāāāāāāāāāāāā¼āāāāāāāāāāāāāā
ā¼ ā¼ ā¼
Game Search Tag Recommender Game Details
ā ā ā
āāāāāāāāāāāāāāā¼āāāāāāāāāāāāāā
ā
ā¼
Steam Dataset
````
---
## š§ How It Works
SteamMCP uses an LLM agent to understand the user's request and decide which tools should be used.
For example:
### User Request
> "I want a relaxing farming game."
The AI agent:
1. Understands the user's preferences.
2. Selects the appropriate MCP recommendation tool.
3. Calls the tool through the MCP server.
4. Receives game recommendations.
5. Generates a final response based only on the returned tool results.
---
## š MCP Tools
The MCP server exposes the following tools.
### `search_for_games`
Search for Steam games by name.
```text
Input:
Game name
Output:
Matching Steam games and app IDs
```
---
### `recommend_similar_games`
Find games similar to a selected Steam game.
```text
Input:
appid
platform (optional)
Output:
Similar games
```
---
### `recommend_by_preferences`
Recommend games based on Steam tags.
Example:
```text
Tags:
farming
crafting
simulation
management
```
Optional platform filtering:
```text
windows
mac
linux
```
---
### `get_game_details_tool`
Retrieve detailed metadata for a Steam game.
Example information includes:
* Game name
* Genres
* Tags
* Platform support
* Ratings
* Price
* Description
---
## š ļø Tech Stack
### Backend
* Python
* FastAPI
* Model Context Protocol (MCP)
* Groq
* Pandas
* NumPy
### Frontend
* React
* JavaScript
* CSS
### Deployment
* Render
* Vercel
---
## š Project Structure
```text
SteamMCP/
ā
āāā src/
ā ā
ā āāā agent/
ā ā āāā steam_agent.py
ā ā
ā āāā api/
ā ā āāā main.py
ā ā
ā āāā mcp/
ā ā āāā server.py
ā ā
ā āāā recommenders/
ā ā āāā tag_recommender.py
ā ā āāā hybrid_recommender.py
ā ā
ā āāā search/
ā ā āāā game_search.py
ā ā āāā game_details.py
ā ā
ā āāā utils/
ā āāā data_loader.py
ā āāā filters.py
ā
āāā data/
ā
āāā requirements.txt
ā
āāā README.md
```
---
## āļø Installation
### 1. Clone the Repository
```bash
git clone https://github.com/rayyan2099/SteamMCP.git
```
```bash
cd SteamMCP
```
---
### 2. Create a Virtual Environment
```bash
python -m venv venv
```
Activate it.
#### macOS / Linux
```bash
source venv/bin/activate
```
#### Windows
```bash
venv\Scripts\activate
```
---
### 3. Install Dependencies
```bash
pip install -r requirements.txt
```
---
### 4. Configure Environment Variables
Create a `.env` file:
```text
GROQ_API_KEY=your_groq_api_key_here
```
---
## ā¶ļø Running the Backend
Start the FastAPI server:
```bash
uvicorn src.api.main:app --reload
```
The API will be available at:
```text
http://localhost:8000
```
---
## š API Documentation
FastAPI automatically generates interactive API documentation.
Open:
```text
http://localhost:8000/docs
```
---
## š® API Usage
### Recommendation Endpoint
```text
POST /recommend
```
### Request
```json
{
"query": "I want a relaxing farming game"
}
```
### Response
```json
{
"recommendation": "Based on your preferences, here are some recommended games..."
}
```
---
## š¤ Agent Workflow
```text
User Query
ā
ā¼
FastAPI Endpoint
ā
ā¼
SteamMCP Agent
ā
ā¼
Groq LLM
ā
ā¼
Tool Selection
ā
ā¼
MCP Tool Call
ā
ā¼
Steam Recommendation Engine
ā
ā¼
Tool Results
ā
ā¼
LLM Generates Final Recommendation
```
---
## š§© Example Queries
### Find Similar Games
```text
Games similar to Stardew Valley
```
### Tag-Based Recommendations
```text
Recommend some open-world survival crafting games
```
### Platform Filtering
```text
Recommend RPG games that work on Mac
```
### Game Search
```text
Find games similar to Hollow Knight
```
---
## š§ Recommendation System
SteamMCP uses multiple recommendation strategies.
### Tag-Based Recommendations
Games are compared using Steam tags.
Example:
```text
Input:
farming
crafting
simulation
ā
Find games with similar tags.
```
---
### Similar Game Recommendations
Given a Steam game's `appid`, the system identifies games with similar metadata and tags.
---
### Platform Filtering
Recommendations can be filtered based on platform availability.
Supported platforms:
```text
Windows
macOS
Linux
```
---
## š Tool-Grounded Responses
The AI agent is instructed to avoid hallucinating game information.
The agent:
* Uses MCP tools to retrieve game data.
* Does not invent game mechanics or metadata.
* Uses retrieved information when generating recommendations.
* Retrieves detailed game information before providing factual details.
---
## š Deployment
### Backend
The FastAPI backend is deployed using:
**Render**
### Frontend
The React frontend is deployed using:
**Vercel**
---
## šÆ What I Learned
This project explores several concepts in modern AI engineering:
* AI Agents
* Tool Calling
* Model Context Protocol (MCP)
* LLM Orchestration
* Agent-to-tool communication
* REST API development
* Recommendation systems
* Cloud deployment
* Frontend and backend integration
---
## š® Future Improvements
Potential improvements include:
* [ ] Semantic search using embedding models
* [ ] Improved hybrid recommendation algorithms
* [ ] User accounts and saved recommendations
* [ ] Conversation memory
* [ ] Streaming responses
* [ ] Steam API integration for real-time data
* [ ] Improved frontend UI
* [ ] Recommendation feedback system
---
## šØāš» Author
**Rayyan Kaukab Faridy**
* GitHub: [https://github.com/rayyan2099](https://github.com/rayyan2099)
* LinkedIn: [https://www.linkedin.com/in/rayyan-faridy/](https://www.linkedin.com/in/rayyan-faridy/)
---
## š License
This project is intended for educational and portfolio purposes.
---
ā If you found this project interesting, consider giving the repository a star!
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues