GitHub
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
Description from the maker (original English)
Inspect a page for Cloudflare Turnstile free, and clear Turnstile and WAF challenges.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
SOLVEGATE_API_KEY, SOLVEGATE_BASE_URL, SOLVEGATE_SITE_URL, SOLVEGATE_TIMEOUT_MS, SOLVEGATE_MAX_WAIT_MSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"solvegate": {
"command": "npx",
"args": [
"-y",
"solvegate-mcp"
],
"env": {
"SOLVEGATE_API_KEY": "your-value",
"SOLVEGATE_BASE_URL": "your-value",
"SOLVEGATE_SITE_URL": "your-value",
"SOLVEGATE_TIMEOUT_MS": "your-value",
"SOLVEGATE_MAX_WAIT_MS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add solvegate --env SOLVEGATE_API_KEY=your-value --env SOLVEGATE_BASE_URL=your-value --env SOLVEGATE_SITE_URL=your-value --env SOLVEGATE_TIMEOUT_MS=your-value --env SOLVEGATE_MAX_WAIT_MS=your-value -- npx -y solvegate-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"solvegate": {
"command": "npx",
"args": [
"-y",
"solvegate-mcp"
],
"env": {
"SOLVEGATE_API_KEY": "your-value",
"SOLVEGATE_BASE_URL": "your-value",
"SOLVEGATE_SITE_URL": "your-value",
"SOLVEGATE_TIMEOUT_MS": "your-value",
"SOLVEGATE_MAX_WAIT_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"solvegate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"solvegate-mcp"
],
"env": {
"SOLVEGATE_API_KEY": "your-value",
"SOLVEGATE_BASE_URL": "your-value",
"SOLVEGATE_SITE_URL": "your-value",
"SOLVEGATE_TIMEOUT_MS": "your-value",
"SOLVEGATE_MAX_WAIT_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
SOLVEGATE_BASE_URL envSOLVEGATE_SITE_URL envSOLVEGATE_TIMEOUT_MS envSOLVEGATE_MAX_WAIT_MS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account SolveGate, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: SOLVEGATE_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.1) reached the registry 2 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: GitHub, Desktop Commander, Cloudflare MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP server that lets an agent deal with Cloudflare Turnstile: check whether a page has one, and clear it when it does.
Three tools. One of them needs no account.
| Tool | What it does | Needs a key |
|---|---|---|
inspect_page | Fetch a URL and report whether Cloudflare Turnstile is on it, its sitekey, how it renders, its data-* configuration, and whether the page is a full-page WAF challenge instead of a widget | No |
solve_turnstile | Clear a Turnstile or Turnstile WAF challenge and return a token | Yes |
get_solve | Fetch a solve by id — free, never re-bills | Yes |
npx solvegate-mcp
Claude Desktop / any MCP client, in your config:
{
"mcpServers": { "solvegate": { "command": "npx", "args": ["-y", "solvegate-mcp"], "env": { "SOLVEGATE_API_KEY": "sk_test_…" } } } }
Leave SOLVEGATE_API_KEY out and inspect_page still works. That is deliberate: you should be able to see what the server does before deciding whether to sign up for anything.
Get a key at solvegate.io. A free sk_test_ sandbox key needs no card and returns a deterministic token instantly — right for wiring this up, and it never clears a real gate.
inspect_page existsThe commonest wrong turn with a solver is calling it when you should have looked first. Three cases account for most of it:
inspect_page says so by name instead of letting you find out from a 422.data-sitekey, because the challenge belongs to a zone rule rather than to a widget you embed. There is nothing to read off the page, and the gate is waf rather than turnstile.Inspecting is free, takes about a second, and is quite often the whole answer.
The widget mode. Managed, non-interactive and invisible are stored on the widget inside the Cloudflare account that owns the sitekey. The page carries only the key, so no tool can read the mode off the source — including this one, and including anything that claims otherwise.
It does not matter for solving: all three modes resolve to the same request. A sitekey, a page URL, and a token back.
The one exception is Cloudflare's five documented dummy sitekeys, whose widget type Cloudflare publishes itself. inspect_page reports those, and finding one on a page tells you something useful — you are looking at a staging build rather than production.
| Variable | Default | What it does |
|---|---|---|
SOLVEGATE_API_KEY | — | Your key. sk_test_ for the sandbox, sk_live_ for real gates. |
SOLVEGATE_BASE_URL | https://api.solvegate.io | API base. |
SOLVEGATE_SITE_URL | https://solvegate.io | Where inspect_page runs. |
SOLVEGATE_TIMEOUT_MS | 30000 | Per-request timeout. |
SOLVEGATE_MAX_WAIT_MS | 60000 | How long solve_turnstile waits for a pending solve. |
The key is read from the environment and is never a tool argument — a tool argument is model-visible and ends up in transcripts.
Solving is async underneath. solve_turnstile creates the solve with async: true and polls it, rather than holding a connection open for the whole attempt. An agent's tool call has a timeout it does not control, and a synchronous solve makes a slow gate look like a dead tool. It also means a timeout here leaves you a solve id: the error names it, and get_solve will pick it up rather than losing a solve that was already billed.
Errors are results, not exceptions. Every failure comes back as an isError result carrying SolveGate's own error.code — balance_empty, unknown_sitekey, rate_limited, forbidden_target. A model can act on those. It can do nothing useful with a stack trace.
Tokens are single-use and short-lived. expiresAt is Unix seconds; past it, Cloudflare stops accepting the token and the solve record is just a record. Request a token at the moment you submit it.
Check `mode` before trusting a token. An sk_test_ key returns mode: "sandbox", and a sandbox token will not clear a real gate. The field exists so a test key in a production config fails loudly rather than quietly.
Solve only against properties you own or are authorised to test. This exists for end-to-end tests that keep failing on a challenge, CI against your own staging, and synthetic monitoring of your own production. The acceptable use policy is the binding version, and targets on the denylist return 403 forbidden_target regardless of what any agent asks for.
npm install
npm run build npm test # spawns the built server and speaks MCP to it OFFLINE=1 npm test # skips the two tests that reach the network
The tests drive a real stdio transport rather than calling the tool callbacks directly. That is on purpose: a schema the SDK rejects at registration, or a stray write to stdout — which corrupts the transport, since stdout *is* the transport — only shows up when something actually speaks the protocol to it.
MIT.