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.

Related MCP server: OpenAPI MCP Server

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

Готовые конфигурации для популярных 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.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Automatically converts Swagger/OpenAPI specifications into MCP servers, enabling AI agents to interact with any REST API through natural language by exposing endpoints as AI-friendly tools.
    3
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A generic MCP server that dynamically converts OpenAPI-defined REST APIs into tools for LLMs like Claude. It supports multiple authentication methods and transport protocols, enabling seamless interaction with any OpenAPI-compliant API.
    20 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A generic MCP server that dynamically exposes any OpenAPI-documented REST API to LLMs by auto-discovering endpoints. It provides tools for exploring API capabilities and making authenticated requests directly through natural language interfaces.
    2
    7 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A generic MCP server that converts any OpenAPI/Swagger specification into MCP tools, enabling AI assistants to search, explore, and execute REST APIs.
    MIT