browser-use MCP
Browser Use is an open-source Python library for AI browser agents, and our entry covers its MCP route.
- MCP server
- Official
browser-use · 119,597 stars
MCP server
Checked 2026-10-31
claude mcp add --transport http --client-id YOUR_CLIENT_ID --client-secret --callback-port 8080 snowflake "https://<account_url>/api/v2/databases/<database>/schemas/<schema>/mcp-servers/<name>"Commands come from the project's own docs or registry entry. Check them against the source before you run them.
Loading poll...
Snowflake's MCP server is not a package you install. It is an object you create inside your Snowflake account with CREATE MCP SERVER, and it serves Cortex Analyst, Cortex Search, Cortex Agents, SQL and your own functions to MCP clients over OAuth. The community server in Snowflake-Labs/mcp is deprecated. We checked Snowflake's docs on 31 October 2026.
Maintainer | Snowflake |
Form | A schema-level |
Endpoint |
|
Protocol revision | MCP |
Transport | HTTP (remote) |
Auth | Snowflake OAuth by default; External OAuth optional; Programmatic Access Tokens mentioned |
Tool types |
|
Tool cap | 50 per server |
Response cap | 250 KB for generic and SQL tools |
Availability | Not available in the People's Republic of China; government regions listed with caveats |
Deprecated community server |
|
Extra cost | No MCP fee found; warehouse and Cortex usage applies |
Search results show two Snowflake servers, which causes confusion.
Snowflake-managed MCP server |
| |
|---|---|---|
Status | Current, supported | Deprecated, no longer maintained |
Where it runs | Inside your Snowflake account, no separate infrastructure | On your machine or container, via a Python package |
Auth | OAuth through a security integration | Connection parameters, username and password or key pair |
Tools | Configured per server in YAML | Configured in a local YAML file |
Pick it? | Yes | No |
The old README opens with a caution: "This project is deprecated and no longer maintained. Please migrate to the official Snowflake MCP Server." It had Cortex Search, Cortex Analyst, Cortex Agent, object management, SQL execution and semantic view querying. It is kept for reference, so do not start new work on it.
Snowflake says the managed server "lets AI agents securely retrieve data from Snowflake accounts without needing to deploy separate infrastructure." You define a server as a list of tools. A client connects, authenticates, discovers the tools and calls them.
Snowflake lists three benefits: a standard interface for tool discovery and invocation, comprehensive authentication with Snowflake OAuth by default, and governance through role-based access control for the server and each tool.
Type | What the client gets |
|---|---|
| A Cortex Agent, which orchestrates other tools for you |
| Cortex Analyst, which generates SQL from a semantic view and returns the statement to the client |
| Search over unstructured data |
| Runs SQL without agent orchestration |
| A UDF or stored procedure exposed as a tool |
| A coding agent tool, with no stored agent object; Snowflake adds |
Snowflake's advice for business data apps is to expose a Cortex Agent as the client-facing tool. You configure the agent with the Analyst, Search and custom tools it needs, then let the MCP client talk to the agent. The client sees one governed interface and the agent chooses resources. Expose Analyst or Search directly only when you want the client to choose those resources itself. A directly exposed Analyst tool only returns SQL. It does not run it.
CREATE OR REPLACE MCP SERVER my_db.my_schema.business_mcp
FROM SPECIFICATION $$
tools:
- title: "Governed business data agent"
name: "business_data_agent"
type: "CORTEX_AGENT_RUN"
identifier: "my_db.my_schema.my_agent"
description: "Use this agent for governed business data questions."
$$;That is Snowflake's own example, with names changed. The description matters. The client picks a tool from its name and description, so use precise, domain-specific wording when you expose several.
For GENERIC and CORTEX_AGENT_RUN tools you can set annotations: readOnlyHint, destructiveHint, idempotentHint and openWorldHint. The defaults are cautious: not read-only, destructive, not idempotent, open world. Snowflake adds a warning worth repeating: "Tool annotations are client-facing hints, not security controls." Use RBAC for control.
Two privileges at the server level, and then privileges on each underlying object.
Privilege | Object | Purpose |
|---|---|---|
CREATE | MCP SERVER | Create a server |
OWNERSHIP | MCP SERVER | Update its configuration |
MODIFY | MCP SERVER | Update, drop, describe, show and use ( |
USAGE | MCP SERVER | Connect and discover tools |
USAGE | Cortex Search Service | Invoke the Search tool |
SELECT | Semantic View | Invoke the Analyst tool |
USAGE | Cortex Agent | Invoke the Agent tool |
USAGE | UDF or stored procedure | Invoke a generic tool |
Snowflake says: "Access to the MCP Server does not give access to the tools. Permission needs to be granted for each tool." That is good design and easy to miss. Build a dedicated role for agents, give it USAGE on the server, and add only the object privileges the tools need.
Clients authenticate with OAuth 2.0, aligned with the MCP authorization recommendation. The steps from the docs:
CREATE SECURITY INTEGRATION, TYPE = OAUTH, OAUTH_CLIENT = CUSTOM.OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' for clients that can hold a secret, such as VS Code or Cursor. Choose 'PUBLIC' with PKCE for clients that cannot, such as Claude Desktop.OAUTH_REDIRECT_URI to the URI your client shows.One integration can serve every user in the account. Each user still signs in with their own credentials. By default the session uses the user's DEFAULT_ROLE. Secondary roles are controlled by the integration, and Snowflake's recommended MCP setup leaves them off with OAUTH_USE_SECONDARY_ROLES = NONE. For stricter identity control you can bind to External OAuth with Okta or Microsoft Entra ID.
If your account uses PrivateLink and you connect from a SaaS client such as Claude.ai or ChatGPT, use the public MCP URL and set USE_PRIVATELINK_FOR_AUTHORIZATION_ENDPOINT = TRUE on the integration. Use hyphens, not underscores, in hostnames, since underscores break connections.
We found no charge for the MCP server object on the page we read. Costs come from what the tools do: warehouse compute for SQL, and Cortex services for Analyst, Search and Agents. We did not read the credit rates, so check Snowflake's pricing page for them. Snowflake does warn about one cost trap. A Cortex Agent tool that calls another MCP server that calls back into a Cortex Agent can loop, and Snowflake enforces a maximum recursion depth of 10 invocations.
Snowflake's page documents Claude (claude.ai and Desktop), ChatGPT and Cursor, plus any client with remote HTTP support. For the agents on our list, these are our adaptation. See MCP clients for how agents name fields.
From Snowflake's page, in ~/.cursor/mcp.json or .cursor/mcp.json:
{
"mcpServers": {
"snowflake": {
"url": "https://<account_url>/api/v2/databases/<database>/schemas/<schema>/mcp-servers/<name>",
"auth": {
"CLIENT_ID": "${env:MCP_CLIENT_ID}",
"CLIENT_SECRET": "${env:MCP_CLIENT_SECRET}"
}
}
}
}Then open Cursor Settings, MCP, and choose Sign in.
Our adaptation:
claude mcp add --transport http \
--client-id YOUR_CLIENT_ID --client-secret \
--callback-port 8080 \
snowflake "https://<account_url>/api/v2/databases/<database>/schemas/<schema>/mcp-servers/<name>"The --client-id, --client-secret and --callback-port options are the ones Claude Code's MCP docs give for pre-registered OAuth: --client-id passes the client ID, --client-secret prompts for the secret, and --callback-port must match a redirect URI of the form http://localhost:PORT/callback. Set the integration's redirect URI to http://localhost:8080/callback. Snowflake's page says its managed server does not support dynamic client registration, so these flags are the way in.
Our adaptation, in ~/.codex/config.toml:
[mcp_servers.snowflake]
url = "https://<account_url>/api/v2/databases/<database>/schemas/<schema>/mcp-servers/<name>"
bearer_token_env_var = "SNOWFLAKE_PAT"bearer_token_env_var is the field Codex's docs give for a bearer token. Snowflake's page mentions Programmatic Access Tokens only in its security notes, advising a least-privileged role, and does not say the managed server accepts one as a bearer token. Treat this entry as untested, and prefer the OAuth route Snowflake documents.
Our adaptation. In ~/.gemini/config/mcp_config.json, under mcpServers, put the URL in serverUrl. For servers without dynamic client registration, Antigravity's docs accept clientId and an optional clientSecret in an oauth object, with https://antigravity.google/oauth-callback registered as the redirect URI. We did not test that against Snowflake. Gemini CLI is now Code Assist enterprise only.
Our adaptation, in opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"snowflake": {
"type": "remote",
"url": "https://<account_url>/api/v2/databases/<database>/schemas/<schema>/mcp-servers/<name>",
"oauth": {
"clientId": "{env:MCP_CLIENT_ID}",
"clientSecret": "{env:MCP_CLIENT_SECRET}"
}
}
}
}The oauth fields clientId and clientSecret match OpenCode's docs, and opencode mcp auth snowflake starts the browser sign-in.
A short, sensible starting set follows from Snowflake's own advice.
Goal | Tool type | Role grants |
|---|---|---|
Ask governed business questions |
| USAGE on the agent, plus whatever the agent's tools need |
Search documents |
| USAGE on the search service |
Get SQL for a question, run it yourself |
| SELECT on the semantic view |
Ad hoc queries |
| A read-only role |
A fixed business action |
| USAGE on one UDF or procedure |
Start with one tool, test it as the agent role, and add more later. Keeping the tool count low also helps the client choose well, which Snowflake says can drop when counts rise.
If your account uses network policies, you must allow inbound connections from your MCP client's outbound IPs. Remote clients such as Claude, ChatGPT and Cursor connect from their vendors' infrastructure, so you need those addresses on the allow list. For a local agent, your own IP matters. This is a common cause of connection failures, along with underscores in hostnames.
Snowflake's own recommendations are the best list:
SYSTEM_EXECUTE_SQL runs queries without agent orchestration. Whatever role the session has is what it can do. Give it a read-only role for analysis.2025-11-25. Newer clients that expect later revisions may behave differently. We did not check later protocol revisions.Option | Fits when | Notes |
|---|---|---|
Managed MCP server | You use Snowflake and want governed access | Supported by Snowflake |
Your warehouse is BigQuery | Google-run remote server | |
You have PostgreSQL | Direct SQL | |
You are on Azure | Includes SQL and Cosmos DB | |
You want dashboards over data | Includes SQL datasource tools | |
Your data lives in Salesforce | CRM focused |
Grafana's SQL tools list Snowflake as one of the aliases for its SQL category, so a Grafana datasource can reach Snowflake. That is a different route with different controls.
Snowflake's design stands out in one way. The server is part of the account's access model. You create it with SQL, grant it like any object and audit it like any object. There is nothing to host and no password to paste into a config file. For a data team that already runs governance in Snowflake, that is the right shape.
The cost is that setup is an administrator's job. You need CREATE rights, a security integration and the client's redirect URI. A solo developer without those rights may find it slow. Also, Snowflake's quick advice is to put a Cortex Agent in front of everything, which ties you to Cortex. If you want plain SQL, use SYSTEM_EXECUTE_SQL with a read-only role.
This is our reading of the documentation, not a hands-on test.
MCP SERVER with the smallest useful tool set.See also the MCP server list and best MCP servers.
A managed server you create in your account with CREATE MCP SERVER, serving Cortex tools, SQL and custom tools.
No. It is deprecated.
With OAuth 2.0. Snowflake OAuth by default, External OAuth optional.
No. Each tool's underlying object needs its own grant.
Up to 50.
Snowflake offers a managed MCP server you create inside your own account with CREATE MCP SERVER. It exposes Cortex Analyst, Cortex Search, Cortex Agents, SQL execution and custom tools to MCP clients.
No. Its README marks it deprecated and no longer maintained, and tells users to move to the official Snowflake MCP server.
With OAuth 2.0. Snowflake OAuth is the default and External OAuth through an identity provider such as Okta or Microsoft Entra ID is optional. Snowflake recommends OAuth over hardcoded tokens.
No. Snowflake says access to the MCP server does not give access to the tools. Permissions must be granted for each tool's underlying object.
A maximum of 50, across all tool types.
Loading poll...
Loading reviews…
Only members can review this page. Sign in
Browser Use is an open-source Python library for AI browser agents, and our entry covers its MCP route.
browser-use · 119,597 stars
Scrapling is a Python web scraping framework from D4Vinci, described on GitHub as handling everything from a single request to a full-scale crawl, and this entry is its MCP server.
D4Vinci · 90,477 stars
Netdata is an observability platform, and this entry is its hosted MCP endpoint at app.netdata.cloud, reached over streamable HTTP.
netdata · 81,227 stars
Claude Flow is published on npm as claude-flow, and its repository now sits at ruvnet/ruflo, which the GitHub description calls the original agent harness for deploying multi-agent swarms and coordinating autonomous workflows.
ruvnet · 80,298 stars
Context7 is an MCP server from Upstash that serves up-to-date library documentation to coding agents, so the model reads current docs instead of guessing from training data.
upstash · 63,974 stars
MCP server published on npm as chrome-devtools-mcp. Transports: stdio. Maintained in ChromeDevTools/chrome-devtools-mcp.
ChromeDevTools · 54,503 stars
The all-in-one WordPress community stack
Also ours: wbcomdesigns.comvapvarun.combrndle.com