使用说明
🎮 PS4 PKG MCP Server
A Model Context Protocol server for browsing and downloading PS4 PKG files
✨ Features
- 🔍 Search through the complete catalog of PS4 games
- 📋 Browse games with pagination support (120+ pages)
- 📝 Get Details including descriptions, images, firmware requirements
- 🔗 Extract Download Links from multiple file hosts (MediaFire, AkiraBox, etc.)
- 🎯 Resolve Direct URLs for automated downloads (when available)
- 🤖 MCP Compatible - Works seamlessly with Claude Desktop
📦 Installation
# Clone the repository
git clone https://github.com/yourusername/ps4-pkg-mcp-server.git
cd ps4-pkg-mcp-server
# Install dependencies
npm install
⚙️ Configuration
Add this server to your Claude Desktop configuration file.
Configuration File Location
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Configuration
{
"mcpServers": {
"ps4-pkg": {
"command": "node",
"args": ["/absolute/path/to/ps4-pkg-mcp-server/index.js"]
}
}
}
Windows Example:
{
"mcpServers": {
"ps4-pkg": {
"command": "node",
"args": ["C:\\Users\\YourUser\\ps4-pkg-mcp-server\\index.js"]
}
}
}
🚀 Usage
Available Tools
| Tool | Description |
|---|---|
list_games |
List PS4 games with pagination (1-120) |
search_games |
Search games by title |
get_game_details |
Get detailed game information |
get_download_links |
Get download links from download page |
get_final_download_url |
Resolve direct download URL |
Examples
1. List Games
// List first page
list_games()
// List specific page
list_games({ page: 5 })
Response:
{
"games": [
{
"title": "Game Name",
"link": "https://www.superpsx.com/game-slug/",
"image": "https://www.superpsx.com/wp-content/uploads/...jpg",
"excerpt": "Brief description..."
}
],
"currentPage": 1,
"hasNextPage": true,
"totalPages": 120
}
2. Search Games
search_games({ query: "resident evil" })
Response:
{
"query": "resident evil",
"games": [...],
"count": 12
}
3. Get Game Details
get_game_details({ game_url: "https://www.superpsx.com/game-slug/" })
Response:
{
"title": "Game Title",
"link": "https://www.superpsx.com/...",
"description": "Full description...",
"images": ["url1", "url2"],
"downloadPage": "https://www.superpsx.com/dll-xyz/",
"info": {
"Region": "EUR",
"Version": "1.03",
"Firmware": "5.05/6.72/7.02/7.55/9.00"
}
}
4. Get Download Links
get_download_links({ download_page_url: "https://www.superpsx.com/dll-xyz/" })
Response:
{
"downloadPage": "https://www.superpsx.com/dll-xyz/",
"downloads": [
{
"type": "Game",
"source": "AKR",
"url": "https://akirabox.com/XXX/file",
"directUrl": null
},
{
"type": "Update v1.11",
"source": "MediaF",
"url": "https://www.mediafire.com/file/...",
"directUrl": null
}
]
}
5. Get Direct Download URL
get_final_download_url({ file_host_url: "https://www.mediafire.com/file/..." })
Success Response (MediaFire):
{
"url": "https://downloadXXX.mediafire.com/.../file.pkg",
"method": "download-text",
"found": true,
"requiresManualAccess": false
}
Blocked Response (AkiraBox):
{
"url": "https://akirabox.com/XXX/file",
"method": "blocked",
"found": false,
"message": "File host has anti-bot protection. Please visit the URL manually in a browser.",
"requiresManualAccess": true
}
Complete Workflow
// 1. Search for a game
const searchResults = await search_games({ query: "spider-man" })
// 2. Get details of the first result
const gameDetails = await get_game_details({
game_url: searchResults.games[0].link
})
// 3. Get download links
const downloadLinks = await get_download_links({
download_page_url: gameDetails.downloadPage
})
// 4. Try to get direct download URLs
for (const download of downloadLinks.downloads) {
const result = await get_final_download_url({
file_host_url: download.url
})
if (result.found && !result.requiresManualAccess) {
console.log(`Direct download: ${result.url}`)
} else {
console.log(`Manual access required: ${result.url}`)
}
}
🌐 File Host Support
| File Host | Direct URL Extraction | Status |
|---|---|---|
| MediaFire | ✅ Yes | Supported |
| AkiraBox | ❌ No | Anti-bot protection |
| KeepLinks | ⚠️ Partial | Manual access may be required |
🛠️ Development
# Run in development mode
npm run dev
# Run normally
npm start
# Test the server
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_games","arguments":{"page":1}}}' | node index.js
📁 Project Structure
ps4-pkg-mcp-server/
├── index.js # Main MCP server
├── package.json # Dependencies and scripts
├── README.md # This file
└── .gitignore # Git ignore rules
⚠️ Disclaimer
This tool is for educational and research purposes only. The developers:
- Do not host any copyrighted content
- Do not encourage piracy
- Do not violate any laws or terms of service
Users are responsible for ensuring they have the legal right to download and use any content. Please respect copyright laws and only download content you own or have permission to use.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Model Context Protocol - MCP SDK
- superpsx.com - Game data source
- cheerio - HTML parsing
📧 Support
If you encounter any issues or have questions:
- Check existing Issues
- Create a new issue with details
- Join the discussion
Made with ❤️ for the PS4 homebrew community