sessemi-mcp
Official# sessemi-mcp
MCP server that gives AI agents the ability to scrape websites protected by **Cloudflare**, **DataDome**, and **Akamai**.
Works with Claude Desktop, Cursor, Windsurf, Cline, and any MCP-compatible client.
Zero framework dependencies — implements MCP protocol directly. Only depends on the [`sessemi`](https://pypi.org/project/sessemi/) Python client.
## Install
```bash
pip install sessemi-mcp
```
Or run directly with `uvx`:
```bash
uvx sessemi-mcp
```
## Setup
Get a free API key at [app.sessemi.com](https://app.sessemi.com).
### Claude Desktop
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS, `%APPDATA%\Claude\claude_desktop_config.json` on Windows):
```json
{
"mcpServers": {
"sessemi": {
"command": "uvx",
"args": ["sessemi-mcp"],
"env": {
"SESSEMI_KEY": "your_api_key"
}
}
}
}
```
### Cursor
Add to `.cursor/mcp.json` in your project:
```json
{
"mcpServers": {
"sessemi": {
"command": "uvx",
"args": ["sessemi-mcp"],
"env": {
"SESSEMI_KEY": "your_api_key"
}
}
}
}
```
## Tools
### `scrape`
Scrape a URL, bypassing anti-bot protection. Returns page content.
| Parameter | Type | Description |
|-----------|--------|-------------|
| `url` | string | Target URL (required) |
| `country` | string | Two-letter country code for geo-targeting (`FR`, `US`, `DE`). Auto-selects residential proxies. |
| `render` | bool | Force browser rendering for JS-heavy pages |
| `session` | string | Session name for cookie/IP persistence across requests |
| `headers` | string | Custom HTTP headers as JSON string |
### `credits`
Check your remaining credit balance, tier, and usage.
## Example
Ask Claude:
> "Scrape the Idealista listings page for Madrid apartments"
Claude will call the `scrape` tool with the URL and `country: "ES"`, get back the full HTML, and extract the data you need.
> "How many credits do I have left?"
Claude calls `credits` and reports your balance.
## How it works
Sessemi handles the hard parts automatically:
- **Cloudflare** — turnstile challenges, JS challenges, managed challenges
- **DataDome** — device checks, slider CAPTCHAs, interstitials
- **Akamai** — sensor validation, bot manager
Your AI agent sends a URL → Sessemi returns the page content. No browser config, no proxy setup, no CAPTCHA services.
## Links
- [Sessemi](https://sessemi.com) — web scraping API
- [Documentation](https://sessemi.com/docs)
- [Python client](https://github.com/sessemi/sessemi-python) — `pip install sessemi`
- [Get API key](https://app.sessemi.com)
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: 'credits' for checking account balance and 'scrape' for performing web scraping. There is no potential for confusion.
The tool names are simple and clear but not consistent in part of speech: 'credits' is a noun while 'scrape' is a verb. A more consistent pattern like 'check_credits' and 'scrape_url' would improve naming.
Only 2 tools is very minimal for a scraping service. Typically such servers include tools for managing sources, viewing history, or handling different output formats. The count is too low for the implied domain.
The tool surface covers only the basic operations: check credits and perform a scrape. Missing obvious features like listing previous scrapes, cancelling jobs, or configuring output options. Agents would likely encounter dead ends.