{"_id":"@benjp009/saas-tf-mcp-server","name":"@benjp009/saas-tf-mcp-server","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@benjp009/saas-tf-mcp-server","version":"0.1.0","description":"MCP server for saas.tf - Get 2 FREE subdomains forever with automatic DNS provisioning","main":"dist/index.js","type":"module","bin":{"saastf-mcp":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","prepare":"npm run build"},"keywords":["mcp","model-context-protocol","saas.tf","subdomain","dns","free-domain","claude-code","llm","ai-tools"],"author":{"name":"saas.tf"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/benjp009/saas-tf-mcp-server.git"},"bugs":{"url":"https://github.com/benjp009/saas-tf-mcp-server/issues"},"homepage":"https://saas.tf","engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.4","axios":"^1.7.9","keytar":"^7.9.0","jsonwebtoken":"^9.0.2"},"devDependencies":{"@types/jest":"^29.5.14","@types/jsonwebtoken":"^9.0.7","@types/node":"^22.10.2","@typescript-eslint/eslint-plugin":"^8.18.1","@typescript-eslint/parser":"^8.18.1","eslint":"^9.17.0","jest":"^29.7.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.2"},"_id":"@benjp009/saas-tf-mcp-server@0.1.0","gitHead":"a871f9f23cedd1207f6c4558b2664ddcccefc514","types":"./dist/index.d.ts","_nodeVersion":"22.15.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-z4jCsQ4SmbBn3a9XB2hEW5aoKbU/YITvFZ6nZ7tj2FO/N4NdYW1RjZ6AMhYSalki2tE0KqTyrOZluFv1m6BQvQ==","shasum":"34378174ad378111d9fa0d56158ff260bd25d3f6","tarball":"https://registry.npmjs.org/@benjp009/saas-tf-mcp-server/-/saas-tf-mcp-server-0.1.0.tgz","fileCount":64,"unpackedSize":206711,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEMI2TG1siaWmhneS2M0kJCePkisxG9zuCxtgqYPb9IxAiEAz43ubzZCc2L2nHt6X5kJnTV3r0NTkSQUDunsZT92Fo0="}]},"_npmUser":{"name":"benjp009","email":"patin.benjamin@gmail.com"},"directories":{},"maintainers":[{"name":"benjp009","email":"patin.benjamin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/saas-tf-mcp-server_0.1.0_1768340670195_0.3746036388454952"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-13T21:44:30.103Z","0.1.0":"2026-01-13T21:44:30.331Z","modified":"2026-01-13T21:44:30.484Z"},"maintainers":[{"name":"benjp009","email":"patin.benjamin@gmail.com"}],"description":"MCP server for saas.tf - Get 2 FREE subdomains forever with automatic DNS provisioning","homepage":"https://saas.tf","keywords":["mcp","model-context-protocol","saas.tf","subdomain","dns","free-domain","claude-code","llm","ai-tools"],"repository":{"type":"git","url":"git+https://github.com/benjp009/saas-tf-mcp-server.git"},"author":{"name":"saas.tf"},"bugs":{"url":"https://github.com/benjp009/saas-tf-mcp-server/issues"},"license":"MIT","readme":"# @saastf/mcp-server\n\n> **Get 2 FREE subdomains forever** with automatic DNS provisioning for your projects!\n\nMCP (Model Context Protocol) server for [saas.tf](https://saas.tf) - the easiest way to get free subdomains for your demos, side projects, and development environments directly through Claude Code and other LLM-powered development tools.\n\n[![npm version](https://badge.fury.io/js/%40saastf%2Fmcp-server.svg)](https://www.npmjs.com/package/@saastf/mcp-server)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## ✨ Features\n\n- **2 FREE Subdomains Forever** - No credit card required\n- **Automatic DNS** - Google Cloud DNS provisioning (~60 seconds)\n- **Zero Configuration** - Works out of the box with Claude Code\n- **Secure Authentication** - OS keychain storage for credentials\n- **Smart Suggestions** - Get alternatives when names are taken\n- **Quota Management** - Easy upgrade path to paid plans\n\n## 🚀 Quick Start\n\n### Installation for Claude Code\n\n```bash\nnpm install -g @saastf/mcp-server\n```\n\nThen add to your Claude Code MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"saastf\": {\n      \"command\": \"saastf-mcp\"\n    }\n  }\n}\n```\n\nRestart Claude Code, and you're ready to go!\n\n### First Subdomain in 60 Seconds\n\nOnce installed, just ask Claude:\n\n```\n\"I need a subdomain for my demo app\"\n```\n\nClaude will:\n1. Check if you're authenticated (or help you register/login)\n2. Check subdomain availability\n3. Create your subdomain with DNS automatically configured\n4. Give you your full domain (e.g., `myapp.saas.tf`)\n\n## 📖 Available Tools\n\nThe MCP server provides 12 tools for complete subdomain management:\n\n### Authentication (4 tools)\n\n- `saastf_auth_status` - Check if you're logged in and see your quota\n- `saastf_register` - Create a new account (2 FREE subdomains included!)\n- `saastf_login` - Login with your credentials\n- `saastf_logout` - Logout and clear stored credentials\n\n### Subdomain Management (5 tools)\n\n- `saastf_check_availability` - Check if a subdomain name is available\n- `saastf_list_subdomains` - View all your subdomains\n- `saastf_create_subdomain` - Create a new subdomain with automatic DNS\n- `saastf_update_subdomain` - Update the IP address for a subdomain\n- `saastf_delete_subdomain` - Delete a subdomain (frees up quota)\n\n### Subscription Management (3 tools)\n\n- `saastf_get_quota` - Check your current usage and remaining quota\n- `saastf_get_plans` - View available subscription plans\n- `saastf_create_checkout` - Get Stripe checkout URL to upgrade\n\n## 📚 Resources\n\nThe server also provides 3 resources:\n\n- `saastf://documentation` - Complete guide (markdown)\n- `saastf://user/profile` - Your profile and subscription details (JSON)\n- `saastf://user/subdomains` - All your subdomains (JSON)\n\n## 💡 Example Conversations\n\n### Create Your First Subdomain\n\n```\nYou: \"Create a subdomain myapp pointing to 192.168.1.100\"\n\nClaude: Let me check your authentication status...\n        ✓ Not authenticated yet. Let me help you register!\n\n        To get started with your 2 FREE subdomains, I'll need:\n        - Email address\n        - Password (min 8 characters)\n\n        What email would you like to use?\n\nYou: \"user@example.com and password MyPass123\"\n\nClaude: ✓ Account created successfully! Welcome to saas.tf!\n        You now have 2 FREE subdomains available.\n\n        Now creating myapp.saas.tf...\n        ✓ Successfully created myapp.saas.tf → 192.168.1.100\n\n        DNS will be active in ~60 seconds. You have 1 of 2 subdomains remaining.\n```\n\n### Check What Subdomains You Have\n\n```\nYou: \"List my subdomains\"\n\nClaude: Your subdomains (2/2 used):\n\n        • myapp.saas.tf → 192.168.1.100\n        • staging.saas.tf → 192.168.1.200\n\n        Remaining: 0 subdomains\n\n        💡 You've used all your free subdomains. Use saastf_get_plans\n        to see upgrade options, or delete one to free up space.\n```\n\n### Update IP Address\n\n```\nYou: \"Update myapp to point to 10.0.0.5\"\n\nClaude: ✓ Updated myapp.saas.tf → 10.0.0.5\n        DNS changes will propagate in ~60 seconds.\n```\n\n### Check Available Plans\n\n```\nYou: \"What plans are available?\"\n\nClaude: Available Subscription Plans:\n\n        📦 Free\n           Price: $0\n           Quota: 2 subdomains\n\n        📦 5 Subdomains Package\n           Price: $10/year\n           Quota: 7 subdomains\n           Features:\n             • All free tier features\n             • Priority support\n\n        📦 50 Subdomains Package\n           Price: $50/year\n           Quota: 52 subdomains\n           Features:\n             • All free tier features\n             • Priority support\n\n        Use saastf_create_checkout to upgrade your plan.\n```\n\n## 🔧 Technical Details\n\n### Subdomain Rules\n\n**Valid Format:**\n- 3-63 characters\n- Lowercase letters (a-z), numbers (0-9), hyphens (-)\n- Must start and end with letter or number\n- No consecutive hyphens\n\n**Examples:**\n- ✅ Valid: `myapp`, `demo-project`, `staging-api`, `test123`\n- ❌ Invalid: `my` (too short), `MyApp` (uppercase), `demo--project` (consecutive hyphens)\n\n### Reserved Names\n\n150+ subdomains are reserved including:\n- System: admin, root, system, support, help\n- Technical: api, www, mail, ftp, ssh, cdn\n- DNS: ns, ns1-4, dns, mx, mx1-2\n\n### DNS Configuration\n\n- **Provider**: Google Cloud DNS\n- **Record Type**: A records (IPv4 only currently)\n- **TTL**: 300 seconds (5 minutes)\n- **Propagation**: ~60 seconds typically\n- **Reliability**: 99.99% uptime SLA\n\n### Security\n\n- **JWT Authentication**: Secure token-based auth\n- **OS Keychain Storage**: Uses macOS Keychain, Windows Credential Manager, Linux Secret Service\n- **Encrypted Fallback**: Encrypted file storage if keychain unavailable\n- **HTTPS Only**: All API communications encrypted\n- **No Password Storage**: Only secure tokens stored locally\n\n## 🎯 Common Use Cases\n\n- **Development**: `dev.myapp.saas.tf`, `staging.myapp.saas.tf`\n- **Demos**: `demo.myproject.saas.tf`\n- **Side Projects**: `myblog.saas.tf`, `myapi.saas.tf`\n- **Testing**: `test.myapp.saas.tf`\n- **Webhooks**: `webhooks.myapp.saas.tf`\n- **APIs**: `api.myservice.saas.tf`\n\n## 📦 Pricing\n\n### FREE Plan\n- **2 subdomains** forever\n- Perfect for hobbyists and side projects\n- No credit card required\n- All core features included\n\n### PACKAGE_5 ($10/year)\n- **7 total subdomains** (2 free + 5 additional)\n- Great for multiple projects\n- Priority support\n\n### PACKAGE_50 ($50/year)\n- **52 total subdomains** (2 free + 50 additional)\n- Perfect for agencies and teams\n- Priority support\n\n## 🛠️ Advanced Configuration\n\n### Custom MCP Settings\n\nYou can configure the MCP server with environment variables:\n\n```json\n{\n  \"mcpServers\": {\n    \"saastf\": {\n      \"command\": \"saastf-mcp\",\n      \"env\": {\n        \"SAASTF_API_URL\": \"https://api.saas.tf/api/v1\"\n      }\n    }\n  }\n}\n```\n\n### Using with Other MCP Clients\n\nThe server works with any MCP-compatible client:\n\n```bash\n# Run the server directly\nnpx @saastf/mcp-server\n\n# Or install globally\nnpm install -g @saastf/mcp-server\nsaastf-mcp\n```\n\n## 🐛 Troubleshooting\n\n### Authentication Issues\n\n```bash\n# Clear stored credentials\n# macOS\nsecurity delete-generic-password -s \"saastf-mcp\"\n\n# Or delete the fallback file\nrm -rf ~/.saastf-mcp\n```\n\n### Keychain Access Denied (macOS)\n\nIf you see keychain permission errors:\n1. Open Keychain Access app\n2. Find \"saastf-mcp\" in System or Login keychain\n3. Right-click → Get Info → Access Control\n4. Add Claude Code / your terminal to allowed applications\n\n### Connection Issues\n\n- Check your internet connection\n- Verify `https://api.saas.tf` is accessible\n- Check for firewall/proxy settings blocking the API\n\n## 🤝 Contributing\n\nContributions are welcome! This is a fully open-source project.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details\n\n## 🔗 Links\n\n- **Website**: [https://saas.tf](https://saas.tf)\n- **GitHub**: [https://github.com/saas-tf/mcp-server](https://github.com/saas-tf/mcp-server)\n- **npm**: [https://www.npmjs.com/package/@saastf/mcp-server](https://www.npmjs.com/package/@saastf/mcp-server)\n- **Issues**: [https://github.com/saas-tf/mcp-server/issues](https://github.com/saas-tf/mcp-server/issues)\n- **Support**: support@saas.tf\n\n## 🌟 Show Your Support\n\nGive a ⭐️ if this project helped you!\n\n---\n\n**Made with ❤️ by the saas.tf team**\n\n*Get your 2 FREE subdomains today at [saas.tf](https://saas.tf)!*\n","readmeFilename":"README.md","_rev":"1-1e07bb6851746264bc2d414929c099ce"}