MCP Sqlite vs PostgreSQL

A side-by-side look at the MCP Sqlite and PostgreSQL MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

MCP Sqlite logoMCP SqliteDatabases · Local subprocess (stdio)Model Context Protocol (MCP) server that provides comprehensive SQLite database interaction capabilities.65GreatAuth: no auth requiredPostgreSQL logoPostgreSQLDatabases · Local subprocess (stdio)MCP server for PostgreSQL: local, Docker, RDS, Neon, Supabase, or behind an SSH bastion.64GoodAuth: not declared

Verdict: choose MCP Sqlite for databases work as a local process; choose PostgreSQL for databases as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

MCP Sqlite logoChoose MCP Sqlite when

  • You need dedicated capabilities in the Databases domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: No auth required.
  • You want tools like db_info, query, list_tables.
Explore MCP Sqlite

PostgreSQL logoChoose PostgreSQL when

  • You need dedicated capabilities in the Databases domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like query, execute, list_schemas.
Explore PostgreSQL

Feature & specification comparison

Rows where the two servers differ are marked.

SpecMCP Sqlite logoMCP SqlitePostgreSQL logoPostgreSQL
CategoryDatabasesDatabases
Quality signal65/100 · Great64/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNo auth requiredNot declared
PricingFreeNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars13124
Directory activity 5 views 0 installs 0 upvotes 4 views 0 installs 0 upvotes
Tools85

Tools & capabilities

MCP Sqlite tools 8

  • db_infoGet information about the SQLite database including path, existence, size, and table count
  • queryExecute a raw SQL query against the database with optional parameter values
  • list_tablesList all user tables in the SQLite database (excludes system tables)
  • get_table_schemaGet the schema information for a specific table including column details
  • create_recordInsert a new record into a table with specified data
  • read_recordsRead records from a table with optional conditions, limit, and offset
  • update_recordsUpdate records in a table based on specified conditions
  • delete_recordsDelete records from a table based on specified conditions

PostgreSQL tools 5

  • queryRun one read-only SQL statement against the connected PostgreSQL database and get rows back as JSON. Send exactly one statement per call (SELECT, WITH, EXPLAIN, or SHOW). It runs inside an engine-enforced read-only transaction, so any write is refused by the database. Use this tool for all data reading, aggregation, and query planning. Returns {rows, rowCount, returnedRows, truncated}, plus hint when truncated is true. Prefer $1, $2 placeholders with the params array over interpolating values. Results are capped at ~32768 bytes; truncated:true means rows were dropped - add LIMIT/WHERE or select fewer columns.
  • executeRun a data-modifying SQL statement (INSERT/UPDATE/DELETE or DDL). Currently DISABLED: the server is read-only, so this returns an error and changes nothing. To enable writes, the operator must start the server with PG_ALLOW_WRITE=true.
  • list_schemasList every schema in the connected database. Start here when exploring an unfamiliar database, then call list_tables for the schema you care about. Returns {schemas: [name, ...]}.
  • list_tablesList all tables in a schema (default: 'public'). Use this before querying tables you have not seen yet, then call describe_table for column details. Returns {tables: [name, ...]}.
  • describe_tableShow the structure of one table: column names, data types, nullability, defaults, and primary-key membership. Call this before writing non-trivial queries against a table. Returns {columns: [{column, type, nullable, default, is_primary_key}, ...]}.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

MCP Sqlite

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "jparkerweb-mcp-sqlite": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-sqlite"
      ]
    }
  }
}

PostgreSQL

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "postgresql": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-postgres-server"
      ]
    }
  }
}

Frequently asked questions

MCP Sqlite is categorized under Databases and uses a local stdio subprocess. PostgreSQL belongs to Databases and uses a local stdio subprocess. Pick MCP Sqlite for databases work and PostgreSQL for databases.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

MCP Sqlite is listed as free. Auth: no auth required. PostgreSQL has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add jparkerweb-mcp-sqlite and postgresql as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, MCP Sqlite has a quality signal of 65/100 (Great) with 5 views, 0 installs and 131 GitHub stars. PostgreSQL has 64/100 (Good) with 4 views, 0 installs and 24 GitHub stars.