redshift-mcp
v1.0.2
Published
Bridge between Claude Desktop (stdio) and Redshift MCP HTTP server
Maintainers
Readme
redshift-mcp-cli
Bridge CLI that connects Claude Desktop (stdio) to a remote Redshift MCP HTTP server.
Problem: Claude Desktop doesn't yet support HTTP-based MCP servers directly.
Solution: This CLI acts as a bridge/proxy that:
- Connects to Claude Desktop via stdio (JSON-RPC 2.0)
- Proxies all requests to the remote HTTP MCP server
- Returns responses back to Claude Desktop
Installation
No installation needed! Use npx directly:
npx redshift-mcp-cliUsage
Required Arguments
You must provide both --api-key and --server-url:
npx redshift-mcp-cli \
--api-key your-secure-api-key \
--server-url http://your-mcp-server.com/mcpCommand Line Options
| Option | Alias | Description | Required | Default |
|--------|-------|-------------|----------|---------|
| --api-key | -k | API key for the MCP server | ✅ | - |
| --server-url | - | URL of the HTTP MCP server | ✅ | - |
Integration with Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"redshift": {
"command": "npx",
"args": [
"redshift-mcp-cli",
"--api-key", "your-secure-api-key",
"--server-url", "http://your-mcp-server.com/mcp"
],
"env": {}
}
}
}How It Works
┌─────────────────┐ ┌──────────────────────┐ ┌──────────────────┐
│ │ │ │ │ │
│ Claude Desktop │ stdio │ redshift-mcp-cli │ HTTP │ Redshift MCP │
│ │─────────▶│ (Bridge/Proxy) │─────────▶│ HTTP Server │
│ │ │ │ │ │
└─────────────────┘ └──────────────────────┘ └──────────────────┘
JSON-RPC 2.0 Proxies requests API: /mcp
with x-api-keyRequest Flow:
- Claude Desktop sends MCP request via stdio (JSON-RPC 2.0)
- CLI receives the request
- CLI forwards request to HTTP MCP server with API key header
- HTTP MCP server processes the request
- CLI receives response and sends it back to Claude Desktop via stdio
Supported MCP Methods:
initialize- Initialize the connectiontools/list- List available toolstools/call- Execute a tool (e.g., execute_sql, analyze_table, get_execution_plan)resources/list- List available resourcesresources/read- Read a specific resource- Notifications:
initialized,cancelled,list_changed
Examples
Example 1: Basic Usage
npx redshift-mcp-cli \
--api-key "abc123xyz789" \
--server-url "http://your-mcp-server.com/mcp"Example 2: Short Form
npx redshift-mcp-cli \
-k "my-api-key" \
--server-url "http://your-mcp-server.com/mcp"Example 3: Custom Server URL
npx redshift-mcp-cli \
--api-key "your-api-key" \
--server-url "http://your-custom-server.com/mcp"Example 4: Claude Desktop Configuration
{
"mcpServers": {
"redshift": {
"command": "npx",
"args": [
"redshift-mcp-cli",
"--api-key", "your-api-key-here",
"--server-url", "http://your-mcp-server.com/mcp"
]
}
}
}Features
- ✅ Bridges Claude Desktop (stdio) to HTTP MCP servers
- ✅ API key authentication via
x-api-keyheader - ✅ Full JSON-RPC 2.0 support
- ✅ No installation required (uses npx)
- ✅ Supports all MCP methods: tools, resources, and notifications
- ✅ Both server URL and API key required from CLI args
Troubleshooting
Missing Required Arguments
If you don't provide both --api-key and --server-url, you'll get an error:
Error: API key is required
Error: Server URL is requiredMake sure to provide both arguments.
Connection Refused
If you get "connection refused", check:
- The MCP server URL is correct and accessible
- The server is running and accepting connections
- Any firewalls allow the connection
Authentication Failed
Verify your API key:
- Check the API key is correct
- Ensure the MCP server accepts the key
- The API key is sent via
x-api-keyheader
Port Already in Use
This shouldn't happen as the CLI doesn't bind to any port - it only connects via HTTP. If you see this error, check if another instance is running.
No Response
The CLI logs to stderr. Check Claude Desktop logs or run the CLI manually to see error messages.
Technical Details
Protocol Translation
The CLI translates between two transports:
Claude Desktop → CLI (stdio):
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}CLI → HTTP MCP Server:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Headers: x-api-key: your-key
Response Translation works the same way back.
Security Notes
- API keys are sent via
x-api-keyheader to the HTTP MCP server - The CLI itself doesn't store or log API keys (only shows first 8 chars)
- All communication between CLI and MCP server should use HTTPS in production
- The CLI acts as a transparent proxy - no data is modified
License
MIT
