sape-mcp
This MCP server lets an LLM interact with sape.ru’s XML-RPC API for account, project, link, and placement management.
Read account balance, user info, expenses, and budget.
List projects and project parameters, including URL and link counts.
List project URLs, URL anchors with usage limits, and placed links with statuses.
Search available pages/placements by filters such as topic, price, and tИЦ/PR.
Buy links individually or in batches, with optional max price limits.
Call any other sape.ru XML-RPC method via the generic
sape_calltool.Benefit from built-in rate limiting and automatic authorization/session renewal.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sape-mcp покажи мой баланс и список проектов"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sape-mcp
MCP-сервер (Model Context Protocol) для работы с sape.ru через XML-RPC API. Позволяет любому MCP-совместимому LLM-боту (Claude Desktop, Hermes, Cursor и др.) читать список проектов, смотреть ссылки и бюджеты, искать площадки по заданию и докупать ссылки.
Возможности
чтение баланса, информации об аккаунте и расходах;
список проектов и параметров каждого проекта;
URL-ы проектов, анкоры, размещённые ссылки и их статусы;
поиск страниц площадок по фильтрам (тема, цена, тИЦ/PR и др.) — «задание» на покупку;
покупка ссылки (одиночная и пакетная) с ограничением максимальной цены;
универсальный вызов любого метода XML-RPC API sape.ru (
sape_call).
Встроен rate-limiter: не более 115 запросов/мин (лимит sape.ru — 120), автоматическая авторизация по токену и повторный login при разрыве сессии.
Related MCP server: FinanceMarker MCP Server
Установка
pip install .Получение токена
Зайдите на https://passport.sape.ru/security/token/ под своим аккаунтом.
Сгенерируйте API-токен.
Примечание: для авторизации API используется логин аккаунта (то, чем вы входите в интерфейс sape.ru). E-mail и user_id не подходят — API принимает только пару логин + токен; активен ровно один токен на аккаунт (перегенерация в Паспорте).
Конфигурация (переменные окружения)
Переменная | Обязательна | По умолчанию | Описание |
| да | — | логин входа в sape.ru (именно логин, не e-mail и не user_id — API принимает только логин; ID пользователя возвращается как результат |
| да | — | API-токен |
| нет |
| адрес API |
| нет |
| троттлинг запросов |
Подключение к агенту
Два способа — выберите один.
Вариант A: удалённый MCP-сервер (рекомендуется, сервер живёт в Docker)
Поднимите контейнер (см. раздел «Запуск в Docker» ниже), затем подключите endpoint http://<host>:8080/mcp.
Клиенты с поддержкой удалённых MCP (Claude Desktop «Add custom connector», Cursor, Cline и др.):
{
"mcpServers": {
"sape": {
"url": "http://localhost:8080/mcp"
}
}
}Плюсы: один постоянный процесс, одна cookie-сессия к API, честный rate-limit, обновление сервера без правки конфигов агентов.
Вариант B: локальный stdio (сервер запускается клиентом)
Требуется установленный пакет: pip install sape-mcp (после публикации на PyPI) или pip install git+https://github.com/sshra/sape-mcp.git.
Универсальный формат (Claude Desktop, Cursor, Cline, большинство MCP-клиентов):
{
"mcpServers": {
"sape": {
"command": "sape-mcp",
"env": {
"SAPE_LOGIN": "ваш_логин",
"SAPE_TOKEN": "ваш_токен"
}
}
}
}Если sape-mcp не в PATH — укажите полный путь (C:\\Python313\\Scripts\\sape-mcp.exe) или запускайте через Python:
{
"mcpServers": {
"sape": {
"command": "python",
"args": ["-m", "sape_mcp"],
"env": { "SAPE_LOGIN": "...", "SAPE_TOKEN": "..." }
}
}
}Для stdio-клиентов доступен и гибрид: клиент сам поднимает контейнер на сессию:
{
"mcpServers": {
"sape": {
"command": "docker",
"args": ["run", "--rm", "-i", "--env-file", "/абсолютный/путь/.env", "sape-mcp"],
"env": { "SAPE_TRANSPORT": "stdio" }
}
}
}(образ собирается один раз: docker build -t sape-mcp https://github.com/sshra/sape-mcp.git#master:docker)
Переменные окружения
Переменная | Обязательна | По умолчанию | Описание |
| да | — | логин входа в sape.ru (именно логин, не e-mail и не user_id — API принимает только логин; ID пользователя возвращается как результат |
| да | — | API-токен с https://passport.sape.ru/security/token/ (активен один на аккаунт) |
| нет |
| адрес API |
| нет |
| троттлинг запросов (лимит sape.ru — 120) |
| нет |
|
|
| нет |
| адрес HTTP-сервера в Docker-режиме |
Hermes Agent
mcp_servers:
sape:
url: http://localhost:8080/mcp # вариант A
# либо вариант B:
# command: sape-mcp
# env: { SAPE_LOGIN: "...", SAPE_TOKEN: "..." }Инструменты
Инструмент | Назначение |
| баланс (полный и доступный) |
| аккаунт, расходы за сутки/неделю, бюджет |
| список проектов с числом урлов/ссылок |
| параметры проекта и расходы |
| URL-ы проекта |
| анкоры URL-а и лимиты использования |
| все ссылки проекта со статусами |
| ссылки конкретного URL-а |
| поиск площадок/страниц по фильтрам (задание на покупку) |
| покупка ссылки (⚠️ тратит деньги; есть max_price) |
| пакетная покупка (до 200 за вызов) |
| универсальный вызов любого метода API |
Пример сценария для бота
«Покажи мои проекты. Для проекта X найди до 20 площадок по теме "ремонт" не дороже 50 руб. и докупи по 1 ссылке, но не трать больше 500 руб. за всё»
Бот: list_projects → list_urls → search_pages (фильтр по теме/цене) → create_placements с max_price.
Безопасность
Токен хранится только в переменных окружения вашего MCP-клиента, не пишется в логи.
Покупка ссылок расходует реальные средства: используйте
max_priceдля ограничения цены, а бюджет — инструментget_balance.API sape.ru ограничен 120 запросами/мин на аккаунт; сервер троттлит на 115.
Запуск в Docker (независимый контейнер)
Docker-файлы живут в папке docker/ и собирают образ из этого репозитория — локальные исходники не нужны.
Вариант 1 — одной командой (контекст сборки — git-репозиторий):
docker build -t sape-mcp https://github.com/sshra/sape-mcp.git#master:dockerВариант 2 — через compose (нужен только .env рядом с папкой docker):
git clone https://github.com/sshra/sape-mcp.git && cd sape-mcp
cp .env.example .env # заполнить SAPE_LOGIN и SAPE_TOKEN
docker compose -f docker/docker-compose.yml up -dСервер поднимется в режиме streamable-http, MCP-endpoint: http://localhost:8080/mcp.
Подключение клиентов, поддерживающих удалённые MCP-серверы:
{
"mcpServers": {
"sape": {
"url": "http://localhost:8080/mcp"
}
}
}Для клиентов, которые умеют только stdio, контейнер можно использовать без compose-сети:
{
"mcpServers": {
"sape": {
"command": "docker",
"args": ["run", "--rm", "-i", "--env-file", "/путь/к/.env", "sape-mcp"],
"env": { "SAPE_TRANSPORT": "stdio" }
}
}
}(образ собирается один раз: docker build -t sape-mcp . — либо вариант 1 выше: сборка напрямую из GitHub)
Логи: docker compose logs -f sape-mcp.
Разработка
pip install -e .[dev]
pytestЛицензия
MIT
Available Tools
12 toolscreate_placementB
Купить ссылку (размещение) на выбранной странице. Тратит реальные деньги аккаунта.
Inputs: url_id (required), page_id (required), anchor, max_price, +1 more. Returns: object
create_placementsC
Пакетная покупка ссылок. Тратит реальные деньги аккаунта.
Inputs: placements (required). Returns: object
get_balanceA
Текущий баланс аккаунта sape.ru: полный и доступный к тратам.
Inputs: no named parameters. Returns: object
get_projectC
Параметры проекта: расходы за сегодня/вчера/всего, число ссылок OK, настройки автоснятия.
Inputs: project_id (required). Returns: object
get_project_linksB
Все размещённые ссылки проекта: площадка, URL страницы, анкор, цена, статус.
Inputs: project_id (required). Returns: object
get_url_anchorsC
Список анкоров URL-а: текст, сколько раз использован, лимит использований.
Inputs: url_id (required). Returns: object
get_url_linksC
Ссылки конкретного URL-а с их статусами.
Inputs: url_id (required). Returns: object
get_userA
Информация о текущем пользователе: login, баланс, расходы за сутки/неделю, месячный бюджет.
Inputs: no named parameters. Returns: object
list_projectsC
Список проектов (кампаний) оптимизатора с количеством урлов и ссылок.
Inputs: show_counts, show_deleted. Returns: object
list_urlsC
Список URL-ов проекта с их ID и статистикой.
Inputs: project_id (required). Returns: object
sape_callC
Универсальный вызов любого метода XML-RPC API sape.ru, для которого нет отдельного инструмента.
Inputs: method (required), params.
search_pagesB
Поиск страниц площадок для покупки ссылок под URL по заданию: темы, цена, тИЦ/PR и др.
Inputs: url_id (required), filter_query (required), page, page_size. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Most tools have clearly distinct scopes: account, projects, URLs, anchors, page search, and placement creation. Minor overlap exists between get_balance and get_user, and between get_project_links and get_url_links, but descriptions clarify project-level versus URL-level scope. sape_call overlaps by design as a fallback but is explicitly framed that way.
The set mostly follows a predictable snake_case verb_noun convention: get_*, list_*, search_pages, create_placement, create_placements. The main deviations are the generic sape_call and the singular/plural pair create_placement/create_placements, which is readable but slightly easy to confuse.
Twelve tools is well within the appropriate range for a focused Sape integration. The set covers reads, search, single and batch purchases, plus a generic fallback without becoming bloated.
Core workflows are covered: account balance, user info, projects, URLs, anchors, existing links, page search, and link purchase. Dedicated update/delete operations for placements and project/URL lifecycle management are missing, but sape_call provides a generic escape hatch for unsupported API methods.
Maintenance
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
Unified 15-tool SEO, SERP, clean Markdown & GEO (LLM citation Share-of-Voice) MCP server.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes the ChatGPT Ads API as tools an LLM host can call.4MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for integrating FinanceMarker.ru with LLM agents, IDEs, n8n, and other MCP-compatible clients. It proxies the FinanceMarker REST API and exposes it as a set of MCP tools.6 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server that turns Wildberries marketplace into a toolkit for LLM agents, enabling product search, detailed card inspection, price history, reviews, and cross-product comparison.-
- AlicenseAqualityBmaintenanceMCP server for the Yandex Webmaster API, enabling natural-language queries about site indexing, search queries, IKS, diagnostics, sitemaps, and external links, as well as actions like recrawling, from AI assistants such as Claude, Cursor, and Codex.201,334 npm1MIT