Skip to main content
Glama

SupaMCPBuilder

A runtime-configurable MCP (Model Context Protocol) server for Supabase databases with inline JSON configuration support. Build dynamic tools for your Supabase database without writing code!

Features

  • 🚀 Zero Configuration: Works out of the box with any Supabase project

  • 🔧 Runtime Configurable: Define tools using JSON configuration

  • 🔐 Built-in Authentication: Automatic JWT token refresh and session management

  • 📊 Dynamic Tool Generation: Create custom database operations via JSON

  • 🎯 Template Support: Use Jinja2-style templates in your configurations

  • 🔄 Base64 Support: Handle complex JSON configurations safely

Quick Start

npx supamcpbuilder --url YOUR_SUPABASE_URL --anon-key YOUR_ANON_KEY --email YOUR_EMAIL --password YOUR_PASSWORD --tools-json-base64 BASE64_ENCODED_TOOLS

Installation

npm install -g supamcpbuilder

Configuration Options

Basic Usage

supamcpbuilder \ --url "https://your-project.supabase.co" \ --anon-key "your-anon-key" \ --email "your-email@example.com" \ --password "your-password"

With JSON Configuration File

supamcpbuilder \ --url "https://your-project.supabase.co" \ --anon-key "your-anon-key" \ --email "your-email@example.com" \ --password "your-password" \ --config-path "./tools-config.json"

With Base64 Encoded Tools

supamcpbuilder \ --url "https://your-project.supabase.co" \ --anon-key "your-anon-key" \ --email "your-email@example.com" \ --password "your-password" \ --tools-json-base64 "W3sibmFtZSI6Imxpc3QtdXNlcnMiLCJkZXNjcmlwdGlvbiI6Ikxpc3QgYWxsIHVzZXJzIn1d"

Tool Configuration Format

Basic Tool Structure

[ { "name": "list-users", "description": "List all users from the users table", "parameters": { "type": "object", "properties": { "limit": { "type": "number", "description": "Number of users to return", "default": 10 } } }, "action": { "type": "select", "table": "users", "columns": ["id", "name", "email"], "limit": "{{limit}}" } } ]

Supported Action Types

  • select: Query data from tables

  • insert: Create new records

  • update: Modify existing records

  • delete: Remove records

Template Variables

Use Jinja2-style templates in your configurations:

{ "action": { "type": "select", "table": "{{table_name}}", "filters": { "id": "{{user_id}}" } } }

MCP Client Configuration

Cursor IDE Configuration

Add to your ~/.cursor/mcp.json:

{ "mcpServers": { "supamcpbuilder": { "command": "npx", "args": [ "-y", "supamcpbuilder", "--url", "https://your-project.supabase.co", "--anon-key", "your-anon-key", "--email", "your-email@example.com", "--password", "your-password", "--tools-json-base64", "YOUR_BASE64_ENCODED_TOOLS" ] } } }

Claude Desktop Configuration

Add to your Claude Desktop config:

{ "mcpServers": { "supamcpbuilder": { "command": "npx", "args": [ "-y", "supamcpbuilder", "--url", "https://your-project.supabase.co", "--anon-key", "your-anon-key", "--email", "your-email@example.com", "--password", "your-password", "--config-path", "/path/to/your/tools-config.json" ] } } }

Environment Variables

You can also use environment variables:

export SUPABASE_URL="https://your-project.supabase.co" export SUPABASE_ANON_KEY="your-anon-key" export SUPABASE_EMAIL="your-email@example.com" export SUPABASE_PASSWORD="your-password" supamcpbuilder --config-path "./tools-config.json"

Advanced Configuration

Complex Tool Example

[ { "name": "create-user-with-profile", "description": "Create a new user with profile information", "parameters": { "type": "object", "properties": { "name": { "type": "string", "description": "User's full name" }, "email": { "type": "string", "description": "User's email address" }, "bio": { "type": "string", "description": "User's biography" } }, "required": ["name", "email"] }, "action": { "type": "insert", "table": "users", "values": { "name": "{{name}}", "email": "{{email}}", "bio": "{{bio}}", "created_at": "now()" }, "returning": ["id", "name", "email"] } } ]

Authentication & Security

  • User Authentication: Uses email/password with automatic JWT refresh

  • Row Level Security: All operations respect your Supabase RLS policies

  • Secure by Default: No admin access, focuses on user-level operations

  • Auto Token Refresh: Handles JWT expiration automatically

Troubleshooting

Common Issues

  1. Authentication Errors: Ensure your email/password combination is correct

  2. Permission Denied: Check your RLS policies and user permissions

  3. Tool Not Found: Verify your JSON configuration syntax

  4. Connection Issues: Confirm your Supabase URL and API keys

Debug Mode

Enable debug logging:

DEBUG=supamcpbuilder supamcpbuilder --url ... --anon-key ...

Examples

Check the examples/ directory for:

  • Sample tool configurations

  • MCP client setup examples

  • Common use cases

Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Changelog

v1.0.0

  • Initial release

  • Basic MCP server functionality

  • JSON configuration support

  • Base64 encoding support

  • Authentication handling

  • Template variable support

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vivek100/supaMCPBuilder'

If you have feedback or need assistance with the MCP directory API, please join our Discord server