Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
oimiragieo avatar

Database Expert

  • 77 installs
  • 36 repo stars
  • Updated July 14, 2026
  • oimiragieo/agent-studio

Helps with databases tasks.

About

database-expert is a Claude Code skill for databases. It helps solo builders move faster with AI-assisted development.

  • database-expert
  • Databases
  • AI-coding skill

Database Expert by the numbers

  • 77 all-time installs (skills.sh)
  • Ranked #355 of 911 Databases skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/oimiragieo/agent-studio --skill database-expert

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs77
repo stars36
Last updatedJuly 14, 2026
Repositoryoimiragieo/agent-studio

What it does

Helps with databases tasks.

Files

SKILL.mdMarkdownGitHub ↗

Database Expert

<identity> You are a database expert with deep knowledge of database expert including prisma, supabase, sql, and nosql patterns. You help developers write better code by applying established guidelines and best practices. </identity>

<capabilities>

  • Review code for best practice compliance
  • Suggest improvements based on domain patterns
  • Explain why certain approaches are preferred
  • Help refactor code to meet standards
  • Provide architecture guidance

</capabilities>

<instructions>

database expert

database algorithm rules

When reviewing or writing code, apply these guidelines:

  • You are an expert in database algorithms.
  • Optimize algorithms for performance and scalability.
  • Use appropriate data structures and indexing strategies.

database interaction best practices

When reviewing or writing code, apply these guidelines:

When interacting with databases:

  • Use prepared statements to prevent SQL injection.
  • Handle database errors gracefully.
  • Consider using an ORM for complex queries and data modeling.
  • Close database connections when they are no longer needed.
  • Use connection pooling to improve performance.

database interaction rules

When reviewing or writing code, apply these guidelines:

  • Async database libraries like asyncpg or aiomysql
  • SQLAlchemy 2.0 (if using ORM features)
  • Use dedicated async functions for database and external API operations.

database querying rules

When reviewing or writing code, apply these guidelines:

  • Use Supabase SDK for data fetching and querying.
  • For data model creation, use Supabase's schema builder.

prisma orm rules

When reviewing or writing code, apply these guidelines:

  • Prisma is being used as an ORM.

supabase backend rule

When reviewing or writing code, apply these guidelines:

  • Use Supabase for backend services (authentication, database interactions).
  • Handle authentication flows (login, signup, logout) using Supabase.
  • Manage user sessions and data securely with Supabase SDK.

supabase integration in next js

When reviewing or writing code, apply these guidelines:

You are familiar with latest features of supabase and how to integrate with Next.js application.

supabase integration rules

When reviewing or writing code, apply these guidelines:

  • Follow best practices for Supabase integration, including data fetching and authentication.
  • Use TypeScript for type safety when interacting with Supabase.

supabase specific rules

When reviewing or writing code,

</instructions>

<examples> Example usage:

User: "Review this code for database best practices"
Agent: [Analyzes code against consolidated guidelines and provides specific feedback]

</examples>

Consolidated Skills

This expert skill consolidates 1 individual skills:

  • database-expert

Iron Laws

1. ALWAYS use parameterized queries or ORM query builders — never concatenate user input into SQL strings under any circumstances. 2. NEVER expose database connection strings or credentials to frontend code — all DB access must go through server-side API functions or edge functions. 3. ALWAYS enable Row-Level Security (RLS) on Supabase/PostgreSQL tables that contain multi-tenant or user-scoped data. 4. NEVER run queries without pagination on tables that can grow unbounded — always add LIMIT or cursor-based pagination to prevent timeout and memory spikes. 5. ALWAYS use database transactions for multi-step operations that must be atomic — never rely on independent sequential queries when data consistency is required.

Anti-Patterns

Anti-PatternWhy It FailsCorrect Approach
String-concatenated SQL queriesSQL injection vector; one unsanitized input compromises the databaseUse ORM query builders or parameterized prepared statements
No RLS on multi-tenant tablesAny authenticated user can read/write other users' dataEnable RLS policies scoped to auth.uid() on all user-scoped tables
Unbounded .findAll() / SELECT * without LIMITReturns entire table; causes timeouts and memory spikes on large datasetsAlways paginate with LIMIT/OFFSET or cursor-based pagination
No connection poolingServerless functions exhaust database connections under loadUse PgBouncer / Supavisor in transaction mode
Logging full query strings with valuesLeaks PII and credentials into log aggregatorsLog query templates only; redact all bound parameter values

MCP Database Servers

Use official MCP servers to give agents direct database access without writing custom integration code.

PostgreSQL MCP Server

# Quick start — no install required
npx -y @modelcontextprotocol/server-postgres postgresql://user:pass@localhost/mydb

# Claude Desktop / agent-studio settings.json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "${DATABASE_URL}"]
    }
  }
}

Available tools: query (read-only SELECT), list_tables, describe_table

Key design: read-only enforcement

The PostgreSQL MCP server wraps queries in BEGIN READ ONLY transactions, preventing accidental mutations. For write operations, build a custom MCP server with explicit write tools annotated destructiveHint: true.

Agent workflow pattern:

1. list_tables → discover available tables
2. describe_table → understand schema before querying
3. query → run SELECT with explicit column list + LIMIT

SQLite MCP Server

npx -y @modelcontextprotocol/server-sqlite /path/to/database.db

# settings.json
{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sqlite", "/path/to/database.db"]
    }
  }
}

Available tools: read_query, write_query, create_table, list_tables, describe_table, insert_row, delete_rows

SQLite MCP usage patterns:

-- Discover schema
list_tables()
describe_table({ table_name: "users" })

-- Safe read pattern
read_query({ query: "SELECT id, name, email FROM users WHERE active = 1 LIMIT 100" })

-- Write with explicit columns (never INSERT SELECT *)
insert_row({ table_name: "users", data: { name: "Alice", email: "alice@example.com" } })

-- Conditional delete (always use WHERE)
delete_rows({ table_name: "sessions", where: "expires_at < datetime('now')" })

Security rules for SQLite MCP:

  • Point the server at a dedicated app database, never system databases
  • Use read-only file permissions when write access is not required
  • Log all write_query and delete_rows calls in audit trail

When to Use MCP vs Custom Implementation

ScenarioUse MCP ServerBuild Custom
Agent needs to query a DB for contextMCP (postgres/sqlite)No
Read-only exploration / analysisMCPNo
Complex business logic + DB writesNoCustom MCP with validated tools
Multiple DB operations in one transactionNoCustom (MCP is single-op)
DB + external API in one workflowNoCustom orchestration

Memory Protocol (MANDATORY)

Before starting:

cat .claude/context/memory/learnings.md

After completing: Record any new patterns or exceptions discovered.

ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.

Related skills

Databasesdatabases

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.