cloudflare-sywo-mcp-server
v1.0.8
Published
MCP server for querying Cloudflare D1 databases
Downloads
29
Maintainers
Readme
Cloudflare SYWO MCP Server
A minimal Model Context Protocol (MCP) server that lets MCP-compatible clients query a Cloudflare D1 database. Designed for easy setup and usage.
Features
- List tables in the target D1 database with the
d1_list_tablestool. - Run arbitrary SQL queries using the
d1_querytool. - Lightweight TypeScript implementation relying on Cloudflare's REST API.
- Cross-platform support with proper Windows, macOS, and Linux compatibility.
- Secure credential management via environment variables.
Prerequisites
- Node.js 18+
- Cloudflare Account ID
- Cloudflare D1 Database ID
- Cloudflare D1 Database Name
- Cloudflare API Token with
D1:Editpermissions
Quick Start (5 Minutes)
Install the server:
npm install -g cloudflare-sywo-mcp-serverGet your Cloudflare credentials (takes 2 minutes):
- Account ID: Cloudflare Dashboard → Right sidebar
- Database ID: Cloudflare Dashboard → D1 → Your database → "Database ID"
- Database Name: The name you gave your D1 database
- API Token: Cloudflare Dashboard → My Profile → API Tokens → Create Token → Custom token with
D1:Editpermission
Add to VS Code (copy-paste into settings.json):
{ "mcp.servers": { "cloudflare-d1": { "command": "cloudflare-sywo-mcp", "args": ["--stdio"], "env": { "CLOUDFLARE_ACCOUNT_ID": "your-account-id-here", "CLOUDFLARE_D1_DATABASE_ID": "your-database-id-here", "CLOUDFLARE_D1_DATABASE_NAME": "your-database-name-here", "CLOUDFLARE_API_TOKEN": "your-api-token-here" } } } }Restart VS Code and you're done!
Installation
npm install -g cloudflare-sywo-mcp-serverSetup
Option 1: Global Installation (Recommended)
After installing globally with npm install -g cloudflare-sywo-mcp-server, you can use it directly in your MCP configuration.
Option 2: Local Development/Custom Build
If you want to build from source or modify the server:
Clone or download this repository
Install dependencies:
npm installCreate a
.envfile (do not commit it) and provide credentials:CLOUDFLARE_ACCOUNT_ID=your-account-id-here CLOUDFLARE_D1_DATABASE_ID=your-database-id-here CLOUDFLARE_D1_DATABASE_NAME=your-database-name-here CLOUDFLARE_API_TOKEN=your-api-token-hereBuild the TypeScript project:
npm run buildStart the MCP server:
npm startOr use the development runner:
npm run dev
MCP Client Configuration
VS Code Setup (Step-by-Step)
For VS Code users, here's exactly what to do:
Install the MCP server globally:
npm install -g cloudflare-sywo-mcp-serverFind your VS Code MCP settings file:
- Open VS Code Command Palette (
Ctrl+Shift+PorCmd+Shift+P) - Type "Open User Settings (JSON)"
- Look for or create the file:
%APPDATA%\Code\User\settings.json(Windows) or~/.config/Code/User/settings.json(Mac/Linux)
- Open VS Code Command Palette (
Add the MCP configuration to your settings.json:
Option A: Direct Environment Variables (Recommended)
{ "mcp.servers": { "cloudflare-d1": { "command": "cloudflare-sywo-mcp", "args": ["--stdio"], "env": { "CLOUDFLARE_ACCOUNT_ID": "your-actual-account-id", "CLOUDFLARE_D1_DATABASE_ID": "your-actual-database-id", "CLOUDFLARE_D1_DATABASE_NAME": "your-actual-database-name", "CLOUDFLARE_API_TOKEN": "your-actual-api-token" } } } }Option B: Using .env File
{ "mcp.servers": { "cloudflare-d1": { "command": "cloudflare-sywo-mcp", "args": ["--stdio"], "cwd": "C:/path/to/your/project/folder" } } }Where to get your Cloudflare credentials:
- Account ID: Cloudflare Dashboard → Right sidebar under "Account ID"
- Database ID: Cloudflare Dashboard → D1 → Your database → "Database ID"
- Database Name: The name you gave your D1 database
- API Token: Cloudflare Dashboard → My Profile → API Tokens → Create Token → Use "Custom token" with
D1:Editpermission
No additional files needed! The credentials go directly in the VS Code settings.json file or in a .env file if you choose that option.
Cursor / Trae Configuration
Add this to your MCP configuration file:
{
"mcpServers": {
"cloudflare-d1": {
"command": "cloudflare-sywo-mcp",
"args": ["--stdio"],
"env": {
"CLOUDFLARE_ACCOUNT_ID": "your-account-id-here",
"CLOUDFLARE_D1_DATABASE_ID": "your-database-id-here",
"CLOUDFLARE_D1_DATABASE_NAME": "your-database-name-here",
"CLOUDFLARE_API_TOKEN": "your-api-token-here"
}
}
}
}Windows Command Line Configuration
For Windows users, you may need to use the full command path or cmd syntax:
{
"mcpServers": {
"cloudflare-d1": {
"command": "cmd",
"args": ["/c", "set CLOUDFLARE_ACCOUNT_ID=your-account-id-here && set CLOUDFLARE_D1_DATABASE_ID=your-database-id-here && set CLOUDFLARE_D1_DATABASE_NAME=your-database-name-here && set CLOUDFLARE_API_TOKEN=your-api-token-here && cloudflare-sywo-mcp --stdio"]
}
}
}Alternative: Using .env File
You can also use a .env file in your project directory:
{
"mcpServers": {
"cloudflare-d1": {
"command": "cloudflare-sywo-mcp",
"args": ["--stdio"],
"cwd": "/path/to/your/project"
}
}
}Make sure to keep your API token secret and rotate immediately if it is ever exposed.
Credential Management Options
Option 1: Direct Environment Variables (Recommended for VS Code)
Put credentials directly in your MCP configuration file. This is the simplest approach.
Option 2: .env File (Good for Development)
Create a .env file in your project directory:
CLOUDFLARE_ACCOUNT_ID=your-account-id-here
CLOUDFLARE_D1_DATABASE_ID=your-database-id-here
CLOUDFLARE_D1_DATABASE_NAME=your-database-name-here
CLOUDFLARE_API_TOKEN=your-api-token-hereThen reference the directory in your MCP config:
{
"mcpServers": {
"cloudflare-d1": {
"command": "cloudflare-sywo-mcp",
"args": ["--stdio"],
"cwd": "/path/to/your/project"
}
}
}Option 3: System Environment Variables (Advanced)
Set the variables in your system environment, then use a minimal MCP config:
{
"mcpServers": {
"cloudflare-d1": {
"command": "cloudflare-sywo-mcp",
"args": ["--stdio"]
}
}
}Windows: Set via System Properties → Environment Variables
macOS/Linux: Add to ~/.bashrc or ~/.zshrc:
export CLOUDFLARE_ACCOUNT_ID="your-account-id-here"
export CLOUDFLARE_D1_DATABASE_ID="your-database-id-here"
export CLOUDFLARE_D1_DATABASE_NAME="your-database-name-here"
export CLOUDFLARE_API_TOKEN="your-api-token-here"Tools Summary
- d1_list_tables: Returns an array of table names from the database.
- d1_query: Executes a SQL query and returns the raw D1 response payload.
Troubleshooting
Connection Issues
If you encounter "Connection closed" errors:
- Ensure all required environment variables are set correctly
- Check that your Cloudflare API token has the necessary permissions (
D1:Edit) - Verify your account ID, database ID, and database name are correct
Windows-Specific Issues
If you see "Syntax Error" from Windows Script Host or "how do I want to open this" popups:
- Make sure you're using version 1.0.7 or later (we fixed Windows compatibility issues)
- Use the Windows command line configuration shown above
- Ensure Node.js is properly installed and in your PATH
JSON Parsing Errors
If you see "Unexpected token" JSON parsing errors:
- Update to the latest version (1.0.7+) which suppresses debug output
- Check that no other processes are writing to stdout/stderr
Security Note
Never commit API tokens to source control. If a token becomes exposed, revoke it in the Cloudflare dashboard and create a fresh one.
