search_docs
Search the Supabase documentation using GraphQL. Must be a valid GraphQL query. You should default to calling this even if you think you already know the answer, since the documentation is always being updated. Below is the GraphQL schema for this tool: schema{query:RootQueryType}type Guide imple...
This record as markdown: /tools/supabase/search-docs.md
What search_docs does on Supabase
AI agents call search_docs to retrieve information from Supabase without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
| Parameter | Type | Required | Description |
|---|---|---|---|
graphql_query | string | — | GraphQL query string |
Parameters from the server's own tool schema.
Why search_docs is rated Low
This tool retrieves and queries documentation data only. It has no side effects, cannot modify or delete data, and cannot execute operations or move money. The GraphQL schema shows only query types (RootQueryType) with read-only return types containing documentation metadata and content.
From the tool's definition Tool performs 'Search the Supabase documentation using GraphQL' with return types limited to documentation content (Guide, SearchResult with title, href, content fields). No mutation capability, no data modification, no destructive operations.
Attacks that exploit this kind of access
The rule that runs search_docs safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Supabase, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For search_docs, this is the rule to start with:
search_docs is read-only, so it stays allowed. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Supabase, apply this rule, and every search_docs call is checked against it from then on.
Questions about search_docs
Search the Supabase documentation using GraphQL. Must be a valid GraphQL query. You should default to calling this even if you think you already know the answer, since the documentation is always being updated. Below is the GraphQL schema for this tool: schema{query:RootQueryType}type Guide implements SearchResult{title:String href:String content:String subsections:SubsectionCollection}interface SearchResult{title:String href:String content:String}type SubsectionCollection{edges:[SubsectionEdge!]! nodes:[Subsection!]! totalCount:Int!}type SubsectionEdge{node:Subsection!}type Subsection{title:String href:String content:String}type CLICommandReference implements SearchResult{title:String href:String content:String}type ManagementApiReference implements SearchResult{title:String href:String content:String}type ClientLibraryFunctionReference implements SearchResult{title:String href:String content:String language:Language! methodName:String}enum Language{JAVASCRIPT SWIFT DART CSHARP KOTLIN PYTHON}type TroubleshootingGuide implements SearchResult{title:String href:String content:String}type RootQueryType{schema:String! searchDocs(query:String!,limit:Int):SearchResultCollection error(code:String!,service:Service!):Error errors(first:Int after:String last:Int before:String service:Service code:String):ErrorCollection}type SearchResultCollection{edges:[SearchResultEdge!]! nodes:[SearchResult!]! totalCount:Int!}type SearchResultEdge{node:SearchResult!}type Error{code:String! service:Service! httpStatusCode:Int message:String}enum Service{AUTH REALTIME STORAGE}type ErrorCollection{edges:[ErrorEdge!]! nodes:[Error!]! pageInfo:PageInfo! totalCount:Int!}type ErrorEdge{node:Error! cursor:String!}type PageInfo{hasNextPage:Boolean! hasPreviousPage:Boolean! startCursor:String endCursor:String}. It is categorised as a Read tool in the Supabase MCP Server, which means it retrieves data without modifying state.
search_docs accepts 1 parameter: graphql_query. The full parameter table on this page comes from the server's own tool schema.
Register the Supabase MCP server in PolicyLayer and add a rule for search_docs: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Supabase. Nothing to install.
search_docs is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the search_docs rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for search_docs. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
search_docs is provided by the Supabase MCP server (@modelcontextprotocol/server-supabase). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Supabase, and thousands of servers like it.
This server
Across the catalogue