termux / index.html
Drewtu's picture
Add 3 files
cbb6ce2 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PayPal MCP Termux Installer</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&display=swap');
body {
font-family: 'Fira Code', monospace;
background-color: #1a1a1a;
}
.terminal {
background-color: #0a0a0a;
border-radius: 10px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
overflow: hidden;
}
.terminal-header {
background: linear-gradient(90deg, #333, #222);
padding: 8px 15px;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
}
.terminal-body {
height: 500px;
overflow-y: auto;
padding: 20px;
}
.command-line {
display: flex;
align-items: center;
margin-top: 15px;
}
.prompt {
color: #4CAF50;
margin-right: 10px;
}
.cursor {
display: inline-block;
width: 10px;
height: 18px;
background-color: #4CAF50;
animation: blink 1s infinite;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.red { color: #ff5555; }
.green { color: #50fa7b; }
.yellow { color: #f1fa8c; }
.blue { color: #8be9fd; }
.progress-bar {
height: 5px;
background: linear-gradient(90deg, #4CAF50, #8BC34A);
border-radius: 3px;
transition: width 0.5s ease;
}
.btn-paypal {
background: linear-gradient(90deg, #0070BA, #003087);
color: white;
border: none;
transition: all 0.3s;
}
.btn-paypal:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 112, 186, 0.4);
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #222;
}
::-webkit-scrollbar-thumb {
background: #444;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
</style>
</head>
<body class="min-h-screen flex items-center justify-center p-4">
<div class="terminal w-full max-w-3xl">
<div class="terminal-header flex items-center">
<div class="flex space-x-2 mr-4">
<div class="w-3 h-3 rounded-full bg-red-500"></div>
<div class="w-3 h-3 rounded-full bg-yellow-500"></div>
<div class="w-3 h-3 rounded-full bg-green-500"></div>
</div>
<div class="text-white text-sm">PayPal MCP Termux Installer</div>
<div class="ml-auto flex items-center">
<i class="fab fa-paypal text-white mr-2"></i>
<i class="fab fa-node-js text-green-400"></i>
</div>
</div>
<div class="terminal-body text-gray-200">
<div class="mb-4">
<div class="text-blue-400"># PayPal MCP Termux Installer</div>
<div class="text-blue-400"># This script automates the setup of PayPal MCP server in Termux</div>
</div>
<div class="mb-6">
<div class="flex items-center mb-2">
<span class="yellow mr-2">[1/5]</span>
<span>Updating packages...</span>
</div>
<div class="progress-bar w-full mb-2"></div>
<div class="text-green-500 text-sm">✓ Successfully updated all packages</div>
</div>
<div class="mb-6">
<div class="flex items-center mb-2">
<span class="yellow mr-2">[2/5]</span>
<span>Installing dependencies...</span>
</div>
<div class="text-sm mb-2">
<div class="text-gray-400">> Installing nodejs...</div>
<div class="text-gray-400">> Installing curl...</div>
<div class="text-gray-400">> Installing jq...</div>
</div>
<div class="progress-bar w-3/4 mb-2"></div>
<div class="text-green-500 text-sm">✓ Node.js v18.15.0 installed successfully</div>
</div>
<div class="mb-6">
<div class="yellow mb-2">PayPal Access Token Generation</div>
<div class="bg-gray-800 p-4 rounded mb-4">
<div class="mb-3">
<label class="block text-gray-400 mb-1">PayPal Client ID</label>
<input type="text" class="w-full bg-gray-700 text-white p-2 rounded" value="AeA**********************">
</div>
<div class="mb-3">
<label class="block text-gray-400 mb-1">PayPal Client Secret</label>
<input type="text" class="w-full bg-gray-700 text-white p-2 rounded" value="EC0**********************">
</div>
<div class="mb-3">
<label class="block text-gray-400 mb-1">Environment</label>
<select class="w-full bg-gray-700 text-white p-2 rounded">
<option>SANDBOX</option>
<option>PRODUCTION</option>
</select>
</div>
<button class="btn-paypal px-4 py-2 rounded font-bold w-full">
Generate Access Token
</button>
</div>
<div class="text-green-500">
✓ Access token generated successfully!
<div class="text-yellow-300 mt-1">Token: <span class="text-gray-400">A21**********************</span></div>
<div class="text-yellow-300">Environment: <span class="text-gray-400">SANDBOX</span></div>
<div class="text-yellow-300">Expires in: <span class="text-gray-400">32400 seconds</span></div>
</div>
</div>
<div class="mb-6">
<div class="flex items-center mb-2">
<span class="yellow mr-2">[3/5]</span>
<span>Installing PayPal MCP server...</span>
</div>
<div class="text-sm mb-2">
<div class="text-gray-400">> npm install -g @paypal/mcp</div>
<div class="text-gray-400">+ @paypal/mcp@2.1.3</div>
</div>
<div class="progress-bar w-1/2 mb-2"></div>
<div class="text-green-500 text-sm">✓ PayPal MCP installed successfully</div>
</div>
<div class="mb-6">
<div class="flex items-center mb-2">
<span class="yellow mr-2">[4/5]</span>
<span>Creating run script...</span>
</div>
<div class="bg-gray-800 p-3 rounded text-sm mb-2 font-mono overflow-x-auto">
<div class="text-blue-400">#!/bin/bash</div>
<div>echo -e "\033[0;32mStarting PayPal MCP server...\033[0m"</div>
<div>npx -y @paypal/mcp --tools=all \</div>
<div>PAYPAL_ACCESS_TOKEN="$PAYPAL_ACCESS_TOKEN" \</div>
<div>PAYPAL_ENVIRONMENT="$PAYPAL_ENVIRONMENT"</div>
</div>
<div class="text-green-500 text-sm">✓ Run script created at ~/paypal-mcp.sh</div>
</div>
<div class="mb-6">
<div class="flex items-center mb-2">
<span class="yellow mr-2">[5/5]</span>
<span>Setting up alias...</span>
</div>
<div class="text-gray-400 mb-2">Added to ~/.bashrc: alias paypal-mcp='~/paypal-mcp.sh'</div>
<div class="progress-bar w-full mb-2"></div>
<div class="text-green-500 text-sm">✓ Alias configured successfully</div>
</div>
<div class="bg-green-900 bg-opacity-30 p-4 rounded border border-green-700">
<div class="text-green-400 font-bold mb-2">Setup completed successfully!</div>
<div class="mb-1">You can now start the PayPal MCP server by typing: <span class="yellow">paypal-mcp</span></div>
<div class="mb-1">To use this in Claude Desktop, configure with these values:</div>
<div class="ml-4">
<div>Access Token: <span class="yellow">A21**********************</span></div>
<div>Environment: <span class="yellow">SANDBOX</span></div>
</div>
</div>
<div class="command-line mt-6">
<span class="prompt">$</span>
<span class="flex-1">paypal-mcp</span>
<span class="cursor"></span>
</div>
</div>
</div>
<script>
// Animate progress bars
document.addEventListener('DOMContentLoaded', function() {
const progressBars = document.querySelectorAll('.progress-bar');
progressBars.forEach(bar => {
// Reset width to 0
bar.style.width = '0';
// Animate after a small delay
setTimeout(() => {
const targetWidth = bar.parentElement.querySelector('.yellow') ?
(bar.parentElement.querySelector('.yellow').textContent.includes('[1/5]') ? '100%' :
bar.parentElement.querySelector('.yellow').textContent.includes('[2/5]') ? '75%' :
bar.parentElement.querySelector('.yellow').textContent.includes('[3/5]') ? '50%' :
bar.parentElement.querySelector('.yellow').textContent.includes('[4/5]') ? '25%' : '100%') : '100%';
bar.style.width = targetWidth;
}, 300);
});
// Simulate typing in the command line
const commands = [
"paypal-mcp",
"npm start",
"node server.js"
];
let currentCommand = 0;
let currentChar = 0;
const commandLine = document.querySelector('.command-line span:nth-child(2)');
function typeCommand() {
if (currentChar < commands[currentCommand].length) {
commandLine.textContent += commands[currentCommand].charAt(currentChar);
currentChar++;
setTimeout(typeCommand, 100);
} else {
setTimeout(eraseCommand, 1500);
}
}
function eraseCommand() {
if (commandLine.textContent.length > 0) {
commandLine.textContent = commandLine.textContent.substring(0, commandLine.textContent.length - 1);
setTimeout(eraseCommand, 50);
} else {
currentCommand = (currentCommand + 1) % commands.length;
currentChar = 0;
setTimeout(typeCommand, 500);
}
}
setTimeout(typeCommand, 1000);
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Drewtu/termux" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>