07FAQFAQ
The questions fall into two groups. Three are about fit: hosted databases, whether MCP works with databases at all, and tables across several schemas. Then three are fixes: numbers that don't match your SQL client, tables with no columns, and long questions that fail.
Does it work with Supabase, Neon, Amazon RDS or Cloud SQL?
Yes. Porter's PostgreSQL connector for Claude reaches a hosted database as long as it accepts outside connections. Porter signs in with database credentials, not a provider login, so Claude can read Supabase, Neon, Amazon RDS and Cloud SQL databases alike. Neon and Prisma Postgres also appear in Porter as separate integrations for actions.
Can MCP connect to a database?
Yes. In short, an MCP server such as Porter's sits between Claude and the database and decides what Claude can run. Porter's hosted server, for example, reads tables through a role you grant. However, provider servers from Supabase or Neon can run SQL, including writes, unless you switch on their read-only setting.
Can I connect tables from several schemas?
Yes. Porter lists tables from every schema your role can read under one connection, each named schema.table, and then Claude asks about whichever table you name. Grant USAGE only on the schemas Claude should see, because those are the only tables that show up.
Troubleshooting
Why don't the numbers match my SQL client?
Claude's numbers through Porter usually differ from your SQL client because the two read a different table, filter, date column or time zone. So check those four first. A read replica can also trail the primary, so a count taken there may miss the newest rows.
Why does Claude see no columns in my table?
Grant SELECT on the table and USAGE on its schema, then ask Claude about the table again. PostgreSQL hides a table's columns from roles without a privilege on it, so an empty column list means the Porter role needs that grant.
Why does a long question fail?
Ask for a shorter date range. A long question can stop inside PostgreSQL before Porter returns any rows. The statement_timeout setting cancels statements past its limit (PostgreSQL's statement_timeout setting), and a hot standby can also cancel queries. Finally, the max_connections setting, typically 100, can refuse a new connection (PostgreSQL's connection settings).