diff --git a/apps/docs/content/_partials/quickstart_db_setup.mdx b/apps/docs/content/_partials/quickstart_db_setup.mdx
index 76d441a365007..7c9489d64bb17 100644
--- a/apps/docs/content/_partials/quickstart_db_setup.mdx
+++ b/apps/docs/content/_partials/quickstart_db_setup.mdx
@@ -4,6 +4,10 @@ Go to [database.new](https://database.new) and create a new Supabase project.
Alternatively, you can create a project using the Management API:
+
+
+
+
```bash
# First, get your access token from https://supabase.com/dashboard/account/tokens
export SUPABASE_ACCESS_TOKEN="your-access-token"
@@ -24,9 +28,13 @@ curl -X POST https://api.supabase.com/v1/projects \
}'
```
+
+
+
+
When your project is up and running, go to the [Table Editor](/dashboard/project/_/editor), create a new table and insert some data.
-Alternatively, you can run the following snippet in your project's [SQL Editor](/dashboard/project/_/sql/new). This will create a `instruments` table with some sample data.
+Alternatively, you can run the following snippet in your project's [SQL Editor](/dashboard/project/_/sql/new). This will create an `instruments` table with some sample data.
diff --git a/apps/docs/content/guides/functions/auth.mdx b/apps/docs/content/guides/functions/auth.mdx
index 47f7be07c0f83..13895c1946be0 100644
--- a/apps/docs/content/guides/functions/auth.mdx
+++ b/apps/docs/content/guides/functions/auth.mdx
@@ -32,7 +32,10 @@ Following the [upcoming API key changes](https://github.com/orgs/supabase/discus
## Integrating with Supabase Auth
-The simplest way to secure your endpoints is by using Supabase Auth to verify users.
+Important notes to consider:
+
+- This is done _inside_ the `Deno.serve()` callback argument, so that the Authorization header is set for each request.
+- Use `Deno.env.get('SUPABASE_URL')` to get the URL associated with your project. Using a value such as `http://localhost:54321` for local development will fail due to Docker containerization.
<$Partial path="api_settings.mdx" variables={{ "framework": "", "tab": "" }} />
diff --git a/apps/docs/content/guides/getting-started/mcp.mdx b/apps/docs/content/guides/getting-started/mcp.mdx
index ca5a5fb17e12c..60459e4947d1c 100644
--- a/apps/docs/content/guides/getting-started/mcp.mdx
+++ b/apps/docs/content/guides/getting-started/mcp.mdx
@@ -22,7 +22,11 @@ Choose your Supabase platform, project, and MCP client and follow the installati
### Next steps
-Your AI tool is now connected to your Supabase project or account using remote MCP. Try asking the AI tool to query your database using natural language commands.
+Your MCP client automatically redirects you to log in to Supabase during setup. This opens a browser window where you can log in to your Supabase account and grant access to the MCP client. Be sure to choose the organization that contains the project you wish to work with.
+
+After you log in, check that the MCP server is connected. For instance, in Cursor, navigate to **Settings > Cursor Settings > Tools & MCP**. Depending on the client, you may need to restart it to connect and detect all tools after authorization.
+
+To verify the client has access to the MCP server tools, try asking it to query your project or database using natural language. For example: "What tables are there in the database? Use MCP tools."
## Manual authentication
@@ -106,3 +110,7 @@ We recommend the following best practices to mitigate security risks when using
- **Project scoping**: Scope your MCP server to a [specific project](https://github.com/supabase-community/supabase-mcp#project-scoped-mode), limiting access to only that project's resources. This prevents LLMs from accessing data from other projects in your Supabase account.
- **Branching**: Use Supabase's [branching feature](/docs/guides/deployment/branching) to create a development branch for your database. This allows you to test changes in a safe environment before merging them to production.
- **Feature groups**: The server allows you to enable or disable specific [tool groups](https://github.com/supabase-community/supabase-mcp#feature-groups), so you can control which tools are available to the LLM. This helps reduce the attack surface and limits the actions that LLMs can perform to only those that you need.
+
+## On GitHub
+
+The MCP server repository is available at [github.com/supabase-community/supabase-mcp](https://github.com/supabase-community/supabase-mcp).
diff --git a/apps/studio/components/interfaces/Database/Functions/CreateFunction/index.tsx b/apps/studio/components/interfaces/Database/Functions/CreateFunction/index.tsx
index 88efee47e75eb..095acb0f487fd 100644
--- a/apps/studio/components/interfaces/Database/Functions/CreateFunction/index.tsx
+++ b/apps/studio/components/interfaces/Database/Functions/CreateFunction/index.tsx
@@ -152,7 +152,8 @@ export const CreateFunction = ({
config_params: convertConfigParams(func?.config_params).value,
})
}
- }, [visible, func])
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [visible, func?.id])
const { data: protectedSchemas } = useProtectedSchemas()
diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/UpdateRolesPanel/UpdateRolesPanel.tsx b/apps/studio/components/interfaces/Organization/TeamSettings/UpdateRolesPanel/UpdateRolesPanel.tsx
index ec5556e88e826..6f6f3d2a77c03 100644
--- a/apps/studio/components/interfaces/Organization/TeamSettings/UpdateRolesPanel/UpdateRolesPanel.tsx
+++ b/apps/studio/components/interfaces/Organization/TeamSettings/UpdateRolesPanel/UpdateRolesPanel.tsx
@@ -168,21 +168,19 @@ export const UpdateRolesPanel = ({ visible, member, onClose }: UpdateRolesPanelP
-