Skip to main content
Glama
quiloos39

anyapi-mcp-server

by quiloos39

anyapi-mcp-server

Если у сервиса есть API, вы можете подключить его через MCP.

Традиционные MCP-серверы выбирают вручную несколько эндпоинтов и на этом останавливаются, ограничивая вас тем подмножеством, которое кто-то счел «достаточным». Зачем довольствоваться частью API, если можно получить всё?

anyapi-mcp-server — это универсальный MCP сервер, который подключает любой REST API к ИИ-ассистентам, таким как Claude, Cursor и другим инструментам на базе LLM — просто укажите путь к спецификации OpenAPI или коллекции Postman. Каждый эндпоинт, предоставляемый API, становится доступен мгновенно, с выбором полей в стиле GraphQL и автоматическим выводом схемы. Никакого пользовательского серверного кода, никаких искусственных ограничений.

npm

Быстрый старт

1. Установка

npm install -g anyapi-mcp-server

2. Добавление в ваш MCP-клиент (Cursor, Claude Desktop и т.д.)

{
  "mcpServers": {
    "your-api": {
      "command": "npx",
      "args": [
        "-y",
        "anyapi-mcp-server",
        "--name", "your-api",
        "--spec", "path/to/openapi.json",
        "--base-url", "https://api.example.com",
        "--header", "Authorization: Bearer ${API_KEY}"
      ],
      "env": {
        "API_KEY": "your-api-key"
      }
    }
  }
}

3. Использование инструментов — находите эндпоинты с помощью list_api, изучайте схемы с помощью call_api, получайте данные с помощью query_api.

Примеры провайдеров

Готовые конфигурации для популярных API:

Провайдер

Авторизация

Cloudflare

API Token или Key + Email

Datadog

API Key + App Key

GitHub

Personal Access Token

Google Workspace

OAuth 2.0

Metabase

API Key

PostHog

Personal API Key

Slack

Bot/User Token

Они работают с любым API, у которого есть спецификация OpenAPI или Postman — выше приведены лишь примеры. Stripe, Twilio, Shopify, HubSpot и всё остальное с REST API будет работать точно так же.

Справочник CLI

Обязательные флаги

Флаг

Описание

--name

Имя сервера (например, cloudflare)

--spec

Путь или HTTPS-ссылка на спецификацию OpenAPI (JSON/YAML) или коллекцию Postman. Удаленные URL кэшируются локально. Поддерживает ${ENV_VAR}.

--base-url

Базовый URL API (например, https://api.example.com). Поддерживает ${ENV_VAR}.

Опциональные флаги

Флаг

Описание

--header

HTTP-заголовок в формате "Key: Value" (можно повторять). Поддерживает ${ENV_VAR} в значениях.

--log

Путь к логу запросов/ответов в формате NDJSON. Чувствительные заголовки маскируются автоматически.

Флаги OAuth

Для API, использующих OAuth 2.0 вместо статических токенов. Если предоставлен любой из трех обязательных флагов, требуются все три. Все флаги поддерживают ${ENV_VAR}.

Флаг

Обязателен

Описание

--oauth-client-id

Да*

OAuth client ID

--oauth-client-secret

Да*

OAuth client secret

--oauth-token-url

Да*

URL эндпоинта токенов

--oauth-auth-url

Нет

Эндпоинт авторизации (автоматически определяется из спецификации, если доступно)

--oauth-scopes

Нет

Области доступа (scopes), разделенные запятыми

--oauth-flow

Нет

authorization_code (по умолчанию) или client_credentials

--oauth-param

Нет

Дополнительный параметр токена в формате key=value (можно повторять)

Смотрите руководство по Google Workspace для полного примера OAuth.

Инструменты

Сервер предоставляет четыре инструмента (плюс auth, когда настроен OAuth):

list_api — Просмотр эндпоинтов

Узнайте, что предлагает API. Вызовите без аргументов, чтобы увидеть все категории, укажите category для списка эндпоинтов в теге или search для поиска эндпоинтов по ключевому слову.

call_api — Изучение эндпоинта

Выполняет реальный HTTP-запрос и возвращает выведенную GraphQL-схему (SDL) — не сами данные. Используйте это, чтобы узнать структуру ответа и получить suggestedQueries, которые можно скопировать в query_api. Также возвращает стоимость токенов для каждого поля (fieldTokenCosts) и dataKey для повторного использования кэша. Для запросов PUT/PATCH автоматически создает резервную копию перед записью (возвращает backupDataKey). Поддерживает bodyFile для больших полезных нагрузок и блокирует запросы с обнаруженными значениями-заполнителями.

query_api — Получение данных

Получает данные и возвращает только те поля, которые вы выбрали через GraphQL-запрос. Поддерживает как чтение, так и запись (мутации для POST/PUT/DELETE/PATCH). Передайте dataKey из call_api для повторного использования кэшированных данных без HTTP-запросов.

# Read
{ items { id name status } _count }

# Write
mutation { post_endpoint(input: { name: "example" }) { id } }

Ключевые параметры:

  • maxTokens — бюджет токенов для ответа. Массивы обрезаются, чтобы соответствовать лимиту. Без этого параметра или unlimited ответы объемом более ~10 тыс. токенов отклоняются.

  • unlimited — установите true, чтобы получить полный ответ без ограничения бюджета токенов.

  • dataKey — повторное использование кэшированных данных из предыдущего ответа call_api или query_api.

  • jsonFilter — dot-путь для извлечения вложенных значений после GraphQL-запроса (например, "data[].attributes.name").

  • bodyFile — абсолютный путь к JSON-файлу для использования в качестве тела запроса (взаимоисключающий с body). Используйте для больших нагрузок, которые нельзя отправить в строке.

  • skipBackup — пропустить автоматическое создание резервной копии перед записью для запросов PUT/PATCH (по умолчанию: false).

explain_api — Чтение документации

Возвращает документацию спецификации для эндпоинта (параметры, схема тела запроса, коды ответов) без выполнения HTTP-запроса.

auth — Аутентификация OAuth

Доступно только при настройке флагов --oauth-*. Управляет потоком OAuth:

  • action: "start" — возвращает URL авторизации (или обменивает учетные данные для client_credentials)

  • action: "exchange" — завершает поток кода авторизации (callback перехватывается автоматически)

  • action: "status" — показывает текущий статус токена

Токены сохраняются и обновляются автоматически.

Типичный рабочий процесс

list_api          → discover what's available
     ↓
explain_api       → read the docs for an endpoint
     ↓
call_api          → inspect the response schema (returns dataKey)
     ↓
query_api         → fetch exactly the fields you need (pass dataKey for zero HTTP calls)
     ↓
query_api         → re-query with different fields using the same dataKey

Как это работает

OpenAPI/Postman spec
        │
        ▼
   ┌─────────┐  ┌─────────────┐  ┌──────────┐  ┌───────────┐
   │list_api │  │ explain_api │  │ call_api │  │ query_api │
   │(browse) │  │   (docs)    │  │ (schema) │  │  (data)   │
   └─────────┘  └─────────────┘  └──────────┘  └───────────┘
        │          │ no HTTP          │               │
        ▼          ▼ request          ▼               ▼
   Spec index   Spec index     REST API call    dataKey cache
   (tags,       (params,       (with retry)     hit → no HTTP
    paths)       responses,         │            miss → fetch
                 body schema)       ▼               │
                               Infer schema +       ▼
                               return dataKey   Execute GraphQL
                                                + token budget
                                                  truncation

Функции

  • Любой REST API — предоставьте спецификацию OpenAPI (JSON/YAML) или Postman Collection v2.x в виде файла или URL

  • Кэширование удаленных спецификаций — HTTPS-спецификации загружаются один раз и кэшируются в ~/.cache/anyapi-mcp/

  • Выбор полей GraphQL — запрашивайте только те поля, которые вам нужны, из любого ответа

  • Вывод схемы — автоматическое построение GraphQL-схем на основе реальных ответов API

  • Объединение нескольких примеров — выборка до 10 элементов массива для более полных схем

  • Поддержка мутаций — операции записи получают типизированные GraphQL-мутации из схем тел OpenAPI

  • Умные подсказкиcall_api возвращает готовые к использованию запросы на основе выведенной схемы

  • Кэширование ответов — файловый кэш с TTL 5 минут; токены dataKey позволяют query_api повторно использовать данные без HTTP-запросов

  • Бюджет токеновquery_api по умолчанию ограничивает ответ ~10 тыс. токенов; используйте maxTokens для обрезки самого глубокого/большого массива или unlimited: true для полных ответов

  • Стоимость токенов для каждого поляcall_api возвращает дерево fieldTokenCosts, чтобы ИИ мог делать осознанный выбор полей

  • Отслеживание лимитов запросов — парсит заголовки X-RateLimit-* и предупреждает, когда лимиты почти исчерпаны

  • Определение пагинации — автоматическое обнаружение паттернов пагинации на основе курсора, токена следующей страницы и ссылок в ответах

  • JSON-фильтрquery_api принимает dot-путь jsonFilter для извлечения данных после запроса (например, "data[].name")

  • Повторные попытки с задержкой — автоматические повторы для 429/5xx с экспоненциальной задержкой и поддержкой Retry-After

  • Мультиформатность — парсит ответы в JSON, XML, CSV и обычном тексте

  • Безопасная запись — запросы PUT/PATCH автоматически создают снимок ресурса перед записью (backupDataKey); значения-заполнители (например, PLACEHOLDER, TODO, file://) обнаруживаются и блокируются перед отправкой

  • Тело запроса из файла — параметр bodyFile принимает абсолютный путь к JSON-файлу, позволяя отправлять большие нагрузки

  • Подробные ошибки — структурированные сообщения об ошибках с контекстными подсказками для самокоррекции

  • OAuth 2.0 — потоки Authorization Code (с PKCE) и Client Credentials с автоматическим обновлением токенов

  • Интерполяция переменных окружения${ENV_VAR} в базовых URL, заголовках и путях к спецификациям

  • Логирование запросов — опциональный лог NDJSON с маскированием чувствительных заголовков

Поддерживаемые форматы спецификаций

  • OpenAPI 3.x (JSON или YAML)

  • OpenAPI 2.0 / Swagger (JSON или YAML)

  • Postman Collection v2.x (JSON)

Лицензия

Проприетарная, не для коммерческого использования. Бесплатно для личного и образовательного использования. Коммерческое использование требует письменного разрешения. Подробности см. в LICENSE.

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/quiloos39/anyapi-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server