Koskamo

Solvecha MCP

An official MCP server provided by Solvecha that enables AI agents to solve various CAPTCHA challenges, including reCAPTCHA image grids, text captchas, GeeTest sliders, and FunCAPTCHA, by integrating directly with the Solvecha recognition API.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Solvecha MCP logo, by SolvechaVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Solvecha
You need:Get an API key
MCP endpoint (Streamable HTTP)
https://api.solvecha.com/mcp
Vendor documentation

What you can do with it

  • Solve reCAPTCHA v2 image grid challenges for automated browser tasks
  • Resolve text-based CAPTCHAs using OCR and recognition services
  • Complete GeeTest slider puzzles by calculating the correct offset
  • Handle FunCAPTCHA tile selection and matching puzzles

Source and maintenance

Vendor evidenceRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
solvecha 1.0.0
MCP protocol
2025-06-18
Tools
6 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Solvecha solves captcha images for AI agents. Pick the tool for the captcha type: - solve_recaptcha_grid: Google reCAPTCHA v2 image challenge (3x3, 4x4, or 1x1 tiles). Returns the tile numbers to click. - solve_text_captcha: a picture of distorted text. Returns the text. - solve_geetest_slider: a GeeTest slider puzzle. Returns the offset in percent of the background width. - solve_funcaptcha: FunCAPTCHA (Arkose Labs) tile or match puzzle. Send pictures as base64 or as https URLs. Each successful solve costs one credit; failed solves cost nothing. After you submit a reCAPTCHA answer, call report_result with Google's verdict. It is free and improves accuracy. get_account_status shows the remaining credit.

Tools

6 advertised

get_account_status — Show credit and plan
Advertised by the server during the last successful anonymous check.
Advertised read-only

Shows the plan, the solves left today, the balance and the time until the daily reset. Free to call.

get_account_status input schema
{
  "type": "object",
  "additionalProperties": false
}
get_account_status output schema
{
  "type": "object",
  "required": [
    "plan",
    "status",
    "solves_left_today",
    "daily_quota",
    "balance_usd",
    "seconds_until_daily_reset"
  ],
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan name: a monthly plan, 'Free', 'Pay per use' or 'No plan'."
    },
    "status": {
      "type": "string"
    },
    "balance_usd": {
      "type": "string"
    },
    "daily_quota": {
      "type": "integer"
    },
    "solves_left_today": {
      "type": "integer",
      "description": "How many more successful solves can be paid today (daily quota left plus balance)."
    },
    "seconds_until_daily_reset": {
      "type": "integer",
      "description": "The daily quota resets at 00:00 UTC."
    }
  },
  "additionalProperties": false
}
get_account_status annotations
{
  "readOnlyHint": true,
  "idempotentHint": false
}
report_result — Report whether the site accepted the answer
Advertised by the server during the last successful anonymous check.

Tells Solvecha whether a reCAPTCHA answer was accepted or rejected. Free, optional, and it improves accuracy.

report_result input schema
{
  "type": "object",
  "required": [
    "job_id",
    "verdict",
    "grid"
  ],
  "properties": {
    "grid": {
      "type": "string",
      "description": "The grid you sent: '3x3', '4x4' or '1x1'."
    },
    "job_id": {
      "type": "string",
      "description": "The job_id returned by solve_recaptcha_grid."
    },
    "verdict": {
      "type": "string",
      "description": "'accepted' if the site accepted the answer (the challenge was passed or the next step appeared), 'rejected' if it did not."
    },
    "round_index": {
      "type": [
        "null",
        "integer"
      ],
      "description": "Optional: which challenge round this was, starting at 0."
    }
  },
  "additionalProperties": false
}
report_result output schema
{
  "type": "object",
  "required": [
    "recorded",
    "message"
  ],
  "properties": {
    "message": {
      "type": "string"
    },
    "recorded": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
report_result annotations
{
  "readOnlyHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
solve_funcaptcha — Solve a FunCAPTCHA (Arkose Labs) puzzle
Advertised by the server during the last successful anonymous check.
Open-world

Solves a FunCAPTCHA tile-selection puzzle (mode 'tile') or a game-style match puzzle (mode 'match') and returns which tiles to pick. Costs one credit per successful solve.

solve_funcaptcha input schema
{
  "type": "object",
  "required": [
    "task",
    "image"
  ],
  "properties": {
    "mode": {
      "type": "string",
      "description": "'tile' picks tiles in a 3x2 grid (default). 'match' solves game puzzles where a picture must match a reference."
    },
    "task": {
      "type": "string",
      "description": "The instruction text, for example 'Pick the sheep' or 'Match the number of rocks with the number on the left'."
    },
    "image": {
      "type": "string",
      "description": "One picture: the grid of tiles (mode tile) or the whole game image (mode match). Base64 or https URL."
    },
    "timeout_seconds": {
      "type": "integer",
      "description": "How long to wait for the answer, 5 to 90. Default 45."
    }
  },
  "additionalProperties": false
}
solve_funcaptcha output schema
{
  "type": "object",
  "required": [
    "job_id",
    "mode",
    "selected_tiles",
    "answer"
  ],
  "properties": {
    "mode": {
      "type": "string"
    },
    "answer": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "boolean"
      }
    },
    "job_id": {
      "type": "string"
    },
    "selected_tiles": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Tiles to pick, counted from 1 (left to right, top to bottom for tile mode; in the order of the answer options for match mode)."
    }
  },
  "additionalProperties": false
}
solve_funcaptcha annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
solve_geetest_slider — Solve a GeeTest slider
Advertised by the server during the last successful anonymous check.
Open-world

Solves a GeeTest slider puzzle and returns how far to drag the handle, as a percentage of the background width. Costs one credit per successful solve.

solve_geetest_slider input schema
{
  "type": "object",
  "required": [
    "images"
  ],
  "properties": {
    "task": {
      "type": "string",
      "description": "The instruction text of the challenge. Default 'slide'."
    },
    "images": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Either one screenshot of the whole challenge, or two pictures in this order: the background, then the transparent puzzle piece. Each is base64 or an https URL."
    },
    "timeout_seconds": {
      "type": "integer",
      "description": "How long to wait for the answer, 5 to 90. Default 45."
    }
  },
  "additionalProperties": false
}
solve_geetest_slider output schema
{
  "type": "object",
  "required": [
    "job_id",
    "offset_percent",
    "how_to_use"
  ],
  "properties": {
    "job_id": {
      "type": "string"
    },
    "how_to_use": {
      "type": "string"
    },
    "offset_percent": {
      "type": "number",
      "description": "How far to drag the slider handle, as a percentage of the width of the background picture as shown on the page."
    }
  },
  "additionalProperties": false
}
solve_geetest_slider annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
solve_recaptcha_grid — Solve a reCAPTCHA v2 image challenge
Advertised by the server during the last successful anonymous check.
Open-world

Solves a Google reCAPTCHA v2 image challenge from a screenshot and returns which tiles to click. Send the instruction text (task), the layout (grid) and the picture(s). Waits for the answer (usually 2 to 6 seconds). Costs one credit per successful solve. After you click and submit, call report_result with Google's verdict.

solve_recaptcha_grid input schema
{
  "type": "object",
  "required": [
    "task",
    "grid",
    "images"
  ],
  "properties": {
    "grid": {
      "type": "string",
      "description": "Challenge layout: '3x3' or '4x4' (one picture of the whole grid) or '1x1' (single tile pictures, 1 to 9)."
    },
    "task": {
      "type": "string",
      "description": "The instruction text shown to the user, copied in full, for example 'Select all images with buses'."
    },
    "images": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "For 3x3 and 4x4: exactly one picture of the whole grid. For 1x1: one to nine tile pictures. Each is base64 (PNG, JPEG, GIF or WebP; a data: URL is fine) or an https URL."
    },
    "timeout_seconds": {
      "type": "integer",
      "description": "How long to wait for the answer, 5 to 90. Default 45. Solves usually take 2 to 6 seconds."
    }
  },
  "additionalProperties": false
}
solve_recaptcha_grid output schema
{
  "type": "object",
  "required": [
    "job_id",
    "grid",
    "selected_tiles",
    "answer",
    "summary"
  ],
  "properties": {
    "grid": {
      "type": "string"
    },
    "answer": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "boolean"
      },
      "description": "One boolean per tile: true means click it."
    },
    "job_id": {
      "type": "string",
      "description": "Pass this to report_result after you submit the answer."
    },
    "summary": {
      "type": "string"
    },
    "positions": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "The same tiles as 'row R, column C' (3x3 and 4x4 only)."
    },
    "selected_tiles": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Tiles to click, counted from 1. 3x3 and 4x4: left to right, top to bottom. 1x1: the number of the picture you sent. Empty means: click none (then press Verify or Skip)."
    }
  },
  "additionalProperties": false
}
solve_recaptcha_grid annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
solve_text_captcha — Solve a text captcha
Advertised by the server during the last successful anonymous check.
Open-world

Reads a picture with distorted letters and digits and returns the text (case-sensitive). Costs one credit per successful solve.

solve_text_captcha input schema
{
  "type": "object",
  "required": [
    "image"
  ],
  "properties": {
    "image": {
      "type": "string",
      "description": "The captcha picture: base64 (a data: URL is fine) or an https URL."
    },
    "timeout_seconds": {
      "type": "integer",
      "description": "How long to wait for the answer, 5 to 90. Default 45."
    }
  },
  "additionalProperties": false
}
solve_text_captcha output schema
{
  "type": "object",
  "required": [
    "job_id",
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "description": "The recognised text. It is case-sensitive."
    },
    "job_id": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
solve_text_captcha annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1348 ms
95th percentile latency
1348 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1348 ms · metadata changed · 6 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http solvecha-mcp https://api.solvecha.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add solvecha-mcp --url https://api.solvecha.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable solvecha-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "solvecha-mcp": {
      "url": "https://api.solvecha.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "solvecha-mcp": {
      "type": "streamableHttp",
      "url": "https://api.solvecha.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start solvecha-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "solvecha-mcp": {
      "type": "http",
      "url": "https://api.solvecha.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http solvecha-mcp https://api.solvecha.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "solvecha-mcp": {
      "url": "https://api.solvecha.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "solvecha-mcp": {
      "serverUrl": "https://api.solvecha.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Solvecha MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Solvecha MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing