Supabase MCP Server ð
ããŒã«ã«Supabase MCP Server ð ã«ã€ããŠ
Supabase MCP Serverã¯ãSupabaseã®ããŒã¿ããŒã¹ãã¹ãã¬ãŒãžã®ç®¡çæ©èœãCursorãWindsurfãªã©ã®AIã¯ã©ã€ã¢ã³ãã«æäŸããŸããã¹ããŒããã¬ã³ãŒããã¢ã¯ã»ã¹å¶åŸ¡ããªã¢ã«ã¿ã€ã æ©èœãSQLã¯ãšãªãæ±ããŸãã
äž»ãªæ©èœ
- 01ããŒãã«ãåãã¬ã³ãŒãã®ç®¡ç
- 02ã€ã³ããã¯ã¹ãå¶çŽã颿°ã®ç®¡ç
- 03ããªã·ãŒãããŒã«ããŠãŒã¶ãŒã®èšå®
- 04ã¹ãã¬ãŒãžãã±ãããšãã¡ã€ã«ã®ç®¡ç
- 05ãªã¢ã«ã¿ã€ã ãã£ã³ãã«ãšã¡ãã»ãŒãžã®æäœ
- 06ã«ã¹ã¿ã SQLã¯ãšãªã®å®è¡
掻çšã·ãŒã³
- 01Supabaseã®ã¹ããŒã確èªã倿Ž
- 02ããŒã¿ããŒã¹ã¬ã³ãŒãã®äœæãæŽæ°ãåé€
- 03ã¢ã¯ã»ã¹ããªã·ãŒãšãŠãŒã¶ãŒããŒã«ã®ç¢ºèª
- 04ã¹ãã¬ãŒãžãšãªã¢ã«ã¿ã€ã ãªãœãŒã¹ã®ç®¡ç
MCP 察å¿
æ¥ç¶ã¯ã©ã€ã¢ã³ãåãã«ãSupabaseã®ããŒã¿ããŒã¹ãã¹ãã¬ãŒãžãèªèšŒããªã¢ã«ã¿ã€ã æäœãããŒã«ãšããŠå ¬éããMCP ãµãŒããŒã§ããREADMEã§ã¯CursorãšCodeium's Cascadeã§ã®å©ç𿹿³ã説æãããŠããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ãã®ãµãŒããŒã®ããã±ãŒãžããªã¢ãŒããšã³ããã€ã³ãã¯ãŸã ååŸã§ããŠããŸããããããžã§ã¯ãã® README ã®æé ã«åŸã£ãŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
Supabase MCP Server ð
ð¥ Cursor ã® Composer ãš Codeium ã® Cascade ã®äž¡æ¹ãéããŠãSupabase PostgreSQL ããŒã¿ããŒã¹ãå®å šã«ç®¡çã§ãã匷å㪠Model Context ProtocolïŒMCPïŒãµãŒããŒã§ãããã®ããŒã«ã䜿ãã°ãããŒãã«æäœãã¬ã³ãŒã管çãã¹ããŒã倿Žãªã©ãè±å¯ãªæ©èœã§ããŒã¿ããŒã¹ãã·ãŒã ã¬ã¹ã«ç®¡çã§ããŸãã
ð ç®æ¬¡
- åææ¡ä»¶
- ã¯ã€ãã¯ã¹ã¿ãŒã
- 飿º
- æ©èœ
- äœ¿ãæ¹
- ã»ãã¥ãªãã£ã«é¢ããæ³šæ
- ãã©ãã«ã·ã¥ãŒãã£ã³ã°
- ã³ã³ããªãã¥ãŒã·ã§ã³
- ã©ã€ã»ã³ã¹
ð§ åææ¡ä»¶
- Node.js >= 16.x
- npm >= 8.x
- 以äžãåãã Supabase ãããžã§ã¯ãïŒ
- ãããžã§ã¯ã ID
- ããŒã¿ããŒã¹ã®ãã¹ã¯ãŒã
- PostgreSQL æ¥ç¶æåå
- Cursor IDE ãŸã㯠Codeium ã® CascadeïŒææãŠãŒã¶ãŒåãïŒ
ð ã¯ã€ãã¯ã¹ã¿ãŒã
ð¥ ã€ã³ã¹ããŒã«
# Clone the repository
git clone https://github.com/Quegenx/supabase-mcp-server.git
cd supabase-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
âïž èšå®
-
äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŠããããžã§ã¯ãããã«ãããŸãã
npm install npm run build -
Cursor ã® MCP èšå®ã§ã次ã®ã³ãã³ãã䜿ã£ãŠãµãŒããŒã远å ããŸãã
/opt/homebrew/bin/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres以äžã眮ãæããŠãã ããã
/path/to/dist/index.jsãå®éã®ãã¹ã«çœ®ãæããŸã[PROJECT-ID]ã Supabase ã®ãããžã§ã¯ã ID ã«çœ®ãæããŸã[PASSWORD]ãããŒã¿ããŒã¹ã®ãã¹ã¯ãŒãã«çœ®ãæããŸã
泚æïŒããŒã¿ããŒã¹ã®èªèšŒæ å ±ã¯å®å šã«ä¿ç®¡ããããŒãžã§ã³ç®¡çã«æ±ºããŠã³ãããããªãã§ãã ããã
ð¯ 飿º
Cursor MCP 飿º
Model Context ProtocolïŒMCPïŒã䜿çšãããšãCursor å ã®ãšãŒãžã§ã³ãå LLM ã«ã«ã¹ã¿ã ããŒã«ãæäŸã§ããŸãããã®ãµãŒããŒã¯ Cursor ã® Composer æ©èœãšé£æºã§ããèªç¶èšèªã®ã³ãã³ãã䜿ã£ãŠãã¹ãŠã®ããŒã¿ããŒã¹ç®¡çããŒã«ã«çŽæ¥ã¢ã¯ã»ã¹ã§ããŸãã
Cursor ã§ã®èšå®
-
Cursor Settings > Features > MCP ãéããŸã
-
ã+ Add New MCP Serverããã¿ã³ãã¯ãªãã¯ããŸã
-
ã¢ãŒãã«ãã©ãŒã ã«å ¥åããŸãã
- NameïŒãSupabase MCPãïŒãŸãã¯ä»»æã®ååïŒ
- TypeïŒ
commandïŒstdio ãã©ã³ã¹ããŒãïŒ - CommandïŒæ¥ç¶æ å ±ãå«ãã³ãã³ãæååå šäœ
-
ãŸããããžã§ã¯ãããã«ãããŸãã
npm install npm run build -
Node.js ã®ãã¹ã確èªããŸãã
# On Mac/Linux which node # On Windows where node -
ãµãŒããŒã³ãã³ãã远å ããŸãã
/path/to/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres以äžã眮ãæããŠãã ããã
/path/to/nodeãå®éã® Node.js ã®ãã¹ïŒæé 5 ã§ç¢ºèªãããã®ïŒã«çœ®ãæããŸã/path/to/dist/index.jsããã«ãæžã¿ JavaScript ãã¡ã€ã«ã®å®éã®ãã¹ã«çœ®ãæããŸã[PROJECT-ID]ã Supabase ã®ãããžã§ã¯ã ID ã«çœ®ãæããŸã[PASSWORD]ãããŒã¿ããŒã¹ã®ãã¹ã¯ãŒãã«çœ®ãæããŸã
-
ãAdd Serverããã¯ãªãã¯ããå³äžã®æŽæ°ãã¿ã³ãã¯ãªãã¯ããŸã
Cursor ã§ã®ããŒã«ã®äœ¿çš
Composer ãšãŒãžã§ã³ãã¯ãããŒã¿ããŒã¹ã®ã¿ã¹ã¯ã説æãããšãé¢é£ããããŒã«ãèªåçã«æ€åºããŠäœ¿çšããŸããäŸïŒ
- ãããŒã¿ããŒã¹å ã®ãã¹ãŠã®ããŒãã«ãäžèŠ§è¡šç€ºããŠã
- ãæ°ãã users ããŒãã«ãäœæããŠã
- ãemail åã«ã€ã³ããã¯ã¹ã远å ããŠã
ãšãŒãžã§ã³ããããŒã«ã䜿çšãããšã次ã®å 容ã衚瀺ãããŸãã
- ããŒã«åŒã³åºããæ¿èªãŸãã¯æåŠããããã®ããã³ãã
- ããŒã«åŒã³åºãã®åŒæ°ïŒå±éå¯èœïŒ
- æ¿èªåŸã®å¿ç
泚æïŒãã®ãµãŒããŒã®ãã㪠stdio ãµãŒããŒã§ã¯ãæå¹ãªã·ã§ã«ã³ãã³ããæå®ããå¿ èŠããããŸããç°å¢å€æ°ãå¿ èŠãªå Žåã¯ãã©ãããŒã¹ã¯ãªããã®äœ¿çšãæ€èšããŠãã ããã
Windsurf/Cascade ãšã®çµ±å
ãã® MCP ãµãŒããŒã¯ãCodeium ã® CascadeïŒWindsurfïŒãšã®çµ±åã«ã察å¿ããŠããŸãããã®æ©èœã¯çŸåšãææã®å人ãŠãŒã¶ãŒã®ã¿ãå©çšã§ããŸãïŒTeams ãŸã㯠Enterprise ãŠãŒã¶ãŒã¯å©çšã§ããŸããïŒã
Cascade ã®ã»ããã¢ãã
-
~/.codeium/windsurf/mcp_config.jsonãäœæãŸãã¯ç·šéããŸãã{ "mcpServers": { "supabase-mcp": { "command": "/path/to/node", "args": [ "/path/to/dist/index.js", "postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres" ] } } } -
èšå®ã«ãã°ããã¢ã¯ã»ã¹ããæ¹æ³ïŒ
- Cascade ã®å ¥åæ¬ã®äžã«ããããŒã«ããŒãæ¢ããŸã
- ãã³ããŒã¢ã€ã³ã³ãã¯ãªãã¯ããŸã
- ãConfigureããã¯ãªãã¯ã㊠mcp_config.json ãéããŸã
-
èšå®å ã®ä»¥äžã®å€ã眮ãæããŸãïŒ
/path/to/nodeãå®éã® Node.js ã®ãã¹ã«çœ®ãæããŸã/path/to/dist/index.jsãå®éã®ãã¹ã«çœ®ãæããŸã[PROJECT-ID]ã Supabase ã®ãããžã§ã¯ã ID ã«çœ®ãæããŸã[PASSWORD]ãããŒã¿ããŒã¹ã®ãã¹ã¯ãŒãã«çœ®ãæããŸã
-
Cascade ã§ä»¥äžãè¡ããŸãïŒ
- ããŒã«ããŒã®ãã³ããŒã¢ã€ã³ã³ãã¯ãªãã¯ããŸã
- ãConfigureããã¯ãªãã¯ããŠèšå®ã確èªããŸã
- ãRefreshããã¯ãªãã¯ã㊠MCP ãµãŒããŒãèªã¿èŸŒã¿ãŸã
- ãµãŒããŒåãã¯ãªãã¯ããŠå©çšå¯èœãªããŒã«ã確èªããŸã
Cascade ãŠãŒã¶ãŒåãã®éèŠãªæ³šæäºé
- ããŒã«æ©èœã®ã¿ããµããŒããããŠããŸãïŒããã³ãããšãªãœãŒã¹ã¯ãµããŒããããŠããŸããïŒ
- MCP ããŒã«ã®åŒã³åºãã¯ãæåãŸãã¯å€±æã«ãããããã¯ã¬ãžãããæ¶è²»ããŸã
- ç»ååºåã¯ãµããŒããããŠããŸãã
- stdio ãã©ã³ã¹ããŒãã¿ã€ãã®ã¿ããµããŒããããŠããŸã
- ããŒã«ã®åŒã³åºãã«ãã£ãŠãä»»æã®ãµãŒããŒå®è£ è ãäœæããã³ãŒããå®è¡ãããå ŽåããããŸã
- Cascade 㯠MCP ããŒã«åŒã³åºãã®å€±æã«ã€ããŠè²¬ä»»ãè² ããŸãã
âš æ©èœ
ð¯ å©çšå¯èœãªããŒã¿ããŒã¹ããŒã«
ããŒãã«ç®¡ç
- ããŒãã«ïŒ
list_tablesãcreate_tableãdrop_tableãrename_table - ã«ã©ã ïŒ
add_columnãdrop_columnãalter_column - ã¬ã³ãŒãïŒ
fetch_recordsãcreate_recordãupdate_recordãdelete_record
ã€ã³ããã¯ã¹ãšå¶çŽ
- ã€ã³ããã¯ã¹ïŒ
list_indexesãcreate_indexãdelete_indexãupdate_index - å¶çŽïŒ
list_constraintsãadd_constraintãremove_constraintãupdate_constraint
ããŒã¿ããŒã¹é¢æ°ãšããªã¬ãŒ
- 颿°ïŒ
list_functionsãcreate_functionãupdate_functionãdelete_function - ããªã¬ãŒïŒ
list_triggersãcreate_triggerãupdate_triggerãdelete_trigger
ã»ãã¥ãªãã£ãšã¢ã¯ã»ã¹å¶åŸ¡
- ããªã·ãŒïŒ
list_policiesãcreate_policyãupdate_policyãdelete_policy - ããŒã«ïŒ
list_rolesãcreate_roleãupdate_roleãdelete_role
ã¹ãã¬ãŒãžç®¡ç
- ãã±ããïŒ
list_bucketsãcreate_bucketãdelete_bucket - ãã¡ã€ã«ïŒ
delete_fileãbulk_delete_files - ãã©ã«ããŒïŒ
list_folders
ããŒã¿åãšãããªã±ãŒã·ã§ã³
- åæåïŒ
list_enumerated_typesãcreate_enumerated_typeãupdate_enumerated_typeãdelete_enumerated_type - ãããªã±ãŒã·ã§ã³ïŒ
list_publicationsãcreate_publicationãupdate_publicationãdelete_publication
ãªã¢ã«ã¿ã€ã æ©èœ
- ããªã·ãŒïŒ
list_realtime_policiesãcreate_realtime_policyãupdate_realtime_policyãdelete_realtime_policy - ãã£ãã«ïŒ
list_realtime_channelsãmanage_realtime_channelsãsend_realtime_messageãget_realtime_messages - 管çïŒ
manage_realtime_statusãmanage_realtime_views
ãŠãŒã¶ãŒç®¡ç
- èªèšŒïŒ
list_usersãcreate_userãupdate_userãdelete_user
SQL ãžã®çŽæ¥ã¢ã¯ã»ã¹
- ã¯ãšãªïŒ
query- ã«ã¹ã¿ã SQL ã¯ãšãªãå®è¡ããŸã
ð äž»ãªã¡ãªãã
- èªç¶èšèªã§ã®æäœïŒç°¡åãªäŒè©±åœ¢åŒã®ã³ãã³ãã§ Supabase ããŒã¿ããŒã¹ã管çã§ããŸã
- å¹ åºãæ©èœïŒããŒãã«ãã¬ã³ãŒããã€ã³ããã¯ã¹ã颿°ãã»ãã¥ãªãã£ãªã©ãç¶²çŸ ããå å®ããããŒã«çŸ€ãå©çšã§ããŸã
- ã·ãŒã ã¬ã¹ãªçµ±åïŒCursor ã® Composer ããã³ Codeium ã® Cascade å ã§çŽæ¥åäœããŸã
- éçºè ã«åªããèšèšïŒIDE ãšããŒã¿ããŒã¹ç®¡çããŒã«éã®ã³ã³ããã¹ãåãæ¿ããæžãããŸã
- å®å šãªã¢ã¯ã»ã¹ïŒé©åãªèªèšŒã«ãã£ãŠããŒã¿ããŒã¹ã®ã»ãã¥ãªãã£ãç¶æããŸã
ð ãããžã§ã¯ãæ§æ
supabase-mcp-server/
âââ dist/ # Compiled JavaScript files
â âââ index.d.ts # TypeScript declarations
â âââ index.js # Main JavaScript file
âââ src/ # Source code
â âââ index.ts # Main TypeScript file
âââ package.json # Project configuration
âââ package-lock.json # Dependency lock file
âââ tsconfig.json # TypeScript configuration
ð¡ äœ¿ãæ¹
èšå®ãå®äºãããšãMCP ãµãŒããŒã¯ Cursor ã® Composer ãéããŠãã¹ãŠã®ããŒã¿ããŒã¹ç®¡çããŒã«ãæäŸããŸããããŒã¿ããŒã¹ã§è¡ãããããšã説æããã ãã§ãAI ãé©åãªã³ãã³ãã䜿çšããŸãã
äŸïŒ
- ð ãããŒã¿ããŒã¹å ã®ãã¹ãŠã®ããŒãã«ã衚瀺ããŠã
- â ãidãnameãemail ã«ã©ã ãæã€ users ããŒãã«ãæ°ããäœæããŠã
- ð ãusers ããŒãã«ã® email ã«ã©ã ã«ã€ã³ããã¯ã¹ã远å ããŠã
ð ã»ãã¥ãªãã£ã«é¢ããæ³šæäºé
- ð ããŒã¿ããŒã¹ã®æ¥ç¶æååã¯å®å šã«ä¿ç®¡ããŠãã ãã
- â ïž æ©å¯æ§ã®é«ãèªèšŒæ å ±ãããŒãžã§ã³ç®¡çã«ã³ãããããªãã§ãã ãã
- ð® é©åãªã¢ã¯ã»ã¹å¶åŸ¡ãšæš©éãèšå®ããŠãã ãã
- ð¡ïž SQL ã€ã³ãžã§ã¯ã·ã§ã³ãé²ãããããã¹ãŠã®å ¥åãæ€èšŒããŠãµãã¿ã€ãºããŠãã ãã
ð ïž ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ããããæ¥ç¶ã®åé¡
-
Node.js ã®ãã¹ã«é¢ããåé¡
- æ£ãã Node.js ã®ãã¹ã䜿çšããŠããããšã確èªããŠãã ãã
- Mac/Linux ã®å ŽåïŒ
which nodeã䜿ã£ãŠæ£ãããã¹ã確èªããŠãã ãã - Windows ã®å ŽåïŒ
where nodeã䜿ã£ãŠæ£ãããã¹ã確èªããŠãã ãã /usr/local/bin/nodeãå®éã® Node.js ã®ãã¹ã«çœ®ãæããŠãã ãã
-
ãã¡ã€ã«ãã¹ã«é¢ããåé¡
- çžå¯Ÿãã¹ã§ã¯ãªã絶察ãã¹ã䜿çšããŠãã ãã
- Mac/Linux ã®å ŽåïŒãããžã§ã¯ããã£ã¬ã¯ããªã§
pwdãå®è¡ããŠãã«ãã¹ãååŸããŠãã ãã - Windows ã®å ŽåïŒ
cdãå®è¡ããŠãã«ãã¹ãååŸããŠãã ãã - äŸïŒ
/Users/username/projects/supabase-mcp-server/dist/index.js
-
MCP ãããŒã«ãæ€åºããªã
- Cursor ã® MCP èšå®ã§æŽæ°ãã¿ã³ãã¯ãªãã¯ããŠãã ãã
- ãµãŒããŒãå®è¡äžã§ããšã©ãŒã¡ãã»ãŒãžããªãããšã確èªããŠãã ãã
- æ¥ç¶æååãæ£ããããšã確èªããŠãã ãã
- Supabase ã®èªèšŒæ å ±ãæå¹ã§ããããšã確èªããŠãã ãã
-
æš©éã«é¢ããåé¡
distãã£ã¬ã¯ããªãååšããããšã確èªããŠãã ããïŒnpm run buildãå®è¡ããŠãã ããïŒ- ãã¡ã€ã«ã®æš©éã確èªããŠãã ããïŒUnix ã·ã¹ãã ã§ã¯
chmod +xãå®è¡ããŠãã ããïŒ - é©åãªæš©éã§
npm installãå®è¡ããŠãã ãã
ãããã°ã¢ãŒã
詳现ãªãã°ã衚瀺ããã«ã¯ãã³ãã³ãã®åã« DEBUG=true ã远å ããŠãã ããïŒ
DEBUG=true /usr/local/bin/node /path/to/dist/index.js [connection-string]
ãã©ãããã©ãŒã åºæã®æ³šæäºé
Windows ãŠãŒã¶ãŒ
# Use this format for the command
"C:\\Program Files\\nodejs\\node.exe" "C:\\path\\to\\dist\\index.js" "postgresql://..."
Linux ãŠãŒã¶ãŒ
# Find Node.js path
which node
# Make script executable
chmod +x /path/to/dist/index.js
åé¡ã解決ããªãå Žåã¯ã以äžã®æ å ±ãæ·»ããŠã€ã·ã¥ãŒãäœæããŠãã ããïŒ
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã
- Node.js ã®ããŒãžã§ã³ïŒ
node --versionïŒ - ãšã©ãŒã¡ãã»ãŒãžå šæ
- åçŸæé
ð€ ã³ã³ããªãã¥ãŒã·ã§ã³
ã³ã³ããªãã¥ãŒã·ã§ã³ãæè¿ããŸãïŒãæ°è»œã«ãã«ãªã¯ãšã¹ããéä¿¡ããŠãã ããã
ð ã©ã€ã»ã³ã¹
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã