Skip to main content
Glama
sbraind
by sbraind

MCP Lite Wrappers

Lightweight MCP wrapper plugins that consolidate multiple tools into single-action tools, reducing Claude Code context usage by ~80%.

Problem

MCP servers expose many individual tools, each consuming context tokens. For example, supabase-mcp exposes 20+ tools, using ~11k tokens just for tool definitions.

Solution

Wrap multiple tools into a single tool with an action parameter. One tool, one description, massive token savings.

Before: 20 tools × ~500 tokens = ~10,000 tokens After: 1 tool × ~1,000 tokens = ~1,000 tokens Savings: ~80%

Packages

Package

Wraps

Tools → 1

Est. Savings

supabase-lite-mcp

supabase-mcp

30 → 1

~11k tokens

linear-lite-mcp

Linear GraphQL API

28 → 1

~12k tokens

chrome-lite-mcp

Chrome DevTools

34 → 1

~14k tokens

context7-lite-mcp

Context7 MCP

2 → 1

~400 tokens

Installation

supabase-lite-mcp

npm install supabase-lite-mcp

Add to your Claude Code MCP config (~/.claude/settings.json or project .mcp.json):

{ "mcpServers": { "supabase": { "command": "npx", "args": ["supabase-lite-mcp"], "env": { "SUPABASE_ACCESS_TOKEN": "your-access-token", "SUPABASE_PROJECT_REF": "your-project-ref" } } } }

linear-lite-mcp

npm install linear-lite-mcp

Add to your Claude Code MCP config:

{ "mcpServers": { "linear": { "command": "npx", "args": ["linear-lite-mcp"], "env": { "LINEAR_API_KEY": "lin_api_xxxxx" } } } }

Get your Linear API key from Linear Settings > API.

chrome-lite-mcp

npm install chrome-lite-mcp

Add to your Claude Code MCP config:

{ "mcpServers": { "chrome": { "command": "npx", "args": ["chrome-lite-mcp"], "env": { "CHROME_PATH": "/path/to/chrome", "CHROME_HEADLESS": "true" } } } }

Environment variables (optional):

  • CHROME_PATH - Path to Chrome executable (auto-detected if not set)

  • CHROME_HEADLESS - Set to "false" for visible browser (default: headless)

context7-lite-mcp

npm install context7-lite-mcp

Add to your Claude Code MCP config:

{ "mcpServers": { "context7": { "command": "npx", "args": ["context7-lite-mcp"], "env": { "CONTEXT7_API_KEY": "your-api-key" } } } }

Environment variables (optional):

Usage

Supabase

All actions go through a single supabase tool:

// List projects { action: "list_projects" } // Execute SQL { action: "execute_sql", payload: { query: "SELECT * FROM users" } } // Deploy edge function { action: "deploy_edge_function", payload: { slug: "my-func", code: "..." } }

Available Actions

Projects & Organizations

  • list_projects, get_project, create_project, pause_project, restore_project

  • list_organizations, get_organization

Cost Management

  • get_cost, confirm_cost

Database

  • execute_sql, list_tables, list_extensions

  • list_migrations, apply_migration

Monitoring

  • get_logs, get_advisors

Project Info

  • get_project_url, get_publishable_keys, generate_typescript_types

Edge Functions

  • list_edge_functions, get_edge_function, deploy_edge_function

Branching

  • create_branch, list_branches, delete_branch

  • merge_branch, reset_branch, rebase_branch

Storage

  • list_storage_buckets, get_storage_config, update_storage_config

Documentation

  • search_docs

Linear

All actions go through a single linear tool:

// Create an issue { action: "create_issue", payload: { title: "Fix bug", teamId: "TEAM-ID" } } // Search issues { action: "search_issues", payload: { query: "login bug", limit: 10 } } // Get user's teams { action: "get_user_teams" }

Linear Available Actions

Issues

  • create_issue, update_issue, get_issue, search_issues

  • get_user_issues, get_team_issues, get_project_issues

Comments

  • add_comment, get_comments

Teams & Projects

  • get_teams, get_team, get_projects, get_project

Labels

  • get_labels, create_label, update_label

Users

  • get_viewer, get_users, get_user_teams, get_user_projects

Issue Relations

  • link_issues, get_issue_relations

Attachments

  • add_attachment, get_attachments

Workflow & Milestones

  • get_workflow_states, get_milestones, create_milestone, update_milestone

Chrome

All actions go through a single chrome tool:

// Navigate to a URL with auto-capture (saves .md, .html, .png) { action: "navigate_page", payload: { url: "https://example.com", autoCapture: true, outputDir: "./captures" } } // Click an element { action: "click", payload: { selector: "#submit-btn" } } // Fill a form field { action: "fill", payload: { selector: "#email", value: "test@example.com" } } // Select option from dropdown { action: "select", payload: { selector: "#country", value: "US" } } // Extract content in different formats { action: "extract", payload: { selector: ".article", format: "markdown" } } // Take a screenshot { action: "take_screenshot", payload: { fullPage: true } } // Show browser (switch from headless to visible) { action: "show_browser" } // Set browser profile { action: "set_profile", payload: { name: "work", userDataDir: "~/.chrome-profiles/work" } }

Chrome Available Actions

Input Automation

  • click, drag, fill, fill_form, handle_dialog, hover, press_key, upload_file, select

Navigation

  • navigate_page (with auto-capture support), new_page, list_pages, select_page, close_page, wait_for

Emulation

  • emulate, resize_page

Performance

  • performance_start_trace, performance_stop_trace, performance_analyze_insight

Network

  • get_network_request, list_network_requests

Extraction & Debugging

  • extract (text/html/markdown), get_attr, evaluate_script, take_screenshot, take_snapshot, list_console_messages, get_console_message

Browser Control

  • show_browser, hide_browser, browser_mode

Profile Management

  • set_profile, get_profile

Context7

All actions go through a single context7 tool:

// Resolve library ID { action: "resolve_library_id", payload: { libraryName: "next.js" } } // Get library docs { action: "get_library_docs", payload: { context7CompatibleLibraryID: "/vercel/next.js", topic: "routing", tokens: 5000 } }

Context7 Available Actions

Library Resolution

  • resolve_library_id - Search for libraries and get Context7-compatible IDs

Documentation

  • get_library_docs - Fetch up-to-date, version-specific documentation with optional topic filtering

Architecture

Follows the superpowers-chrome pattern:

  1. Single tool with action enum parameter

  2. Switch/dispatch based on action

  3. Proxy calls to underlying API (Supabase Management API, Linear GraphQL API)

packages/ ├── supabase-lite/ │ ├── src/ │ │ ├── index.ts # MCP server entry │ │ ├── actions.ts # Action dispatcher │ │ ├── types.ts # Zod schemas │ │ └── client/ # API client │ └── package.json ├── linear-lite/ │ ├── src/ │ │ ├── index.ts # MCP server entry │ │ ├── actions.ts # Action dispatcher │ │ ├── types.ts # Zod schemas │ │ └── client/ # GraphQL client │ └── package.json └── chrome-lite/ ├── src/ │ ├── index.ts # MCP server entry │ ├── actions.ts # Action dispatcher │ ├── types.ts # Zod schemas │ └── browser/ # Puppeteer wrapper └── package.json

Development

# Install dependencies npm install # Build npm run build # Run tests npm test # Type check npm run typecheck

Tech Stack

  • TypeScript

  • Zod for validation

  • MCP SDK (@modelcontextprotocol/sdk)

  • puppeteer-core (for chrome-lite)

License

MIT

References

-
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/sbraind/mcp-lite-wrappers'

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