Skip to main content
Glama

MCP-Anything

Одна команда для превращения любой кодовой базы в MCP-сервер. Не только REST API. Не только спецификации OpenAPI.

Discord License: Apache 2.0 Python 3.10+ PyPI

mcp-anything

Начало работы

pip install mcp-anything

# Generate an MCP server from any codebase
mcp-anything generate /path/to/your/app

# Or from a URL (OpenAPI, GraphQL, gRPC spec)
mcp-anything generate https://api.example.com/openapi.json

# Or directly from a local spec file
mcp-anything generate ./openapi.json

Вы получаете готовый к установке через pip MCP-сервер в директории ./mcp-<name>-server/. Добавьте его к своему агенту за считанные секунды:

stdio (локально, по умолчанию): добавьте mcp.json в ваш .mcp.json для Claude Code:

{
  "mcpServers": {
    "my-app": { "command": "mcp-my-app", "args": [] }
  }
}

HTTP (удаленно/общий доступ, рекомендуется): запустите сервер и укажите на него вашему агенту:

mcp-anything generate /path/to/app --transport http
mcp-my-app  # server runs on http://localhost:8000/sse
{
  "mcpServers": {
    "my-app": { "url": "http://localhost:8000/sse" }
  }
}

Целевые платформы

По умолчанию mcp-anything генерирует сервер на Python / FastMCP. Используйте --target=mcp-use для генерации сервера на TypeScript / mcp-use:

mcp-anything generate /path/to/app --target mcp-use

TypeScript-сервер использует SDK mcp-use и поставляется со встроенным инспектором.

--target fastmcp (по умолчанию)

--target mcp-use

Язык

Python

TypeScript

SDK

FastMCP

mcp-use

Транспорт

stdio / HTTP

HTTP (порт 3000)

Инспектор

Внешний

Встроенный по адресу /inspector

Установка

pip install -e .

npm install && npm run dev

Что поддерживается

mcp-anything обнаруживает и оборачивает исходный код в 8 экосистемах — REST-фреймворки, CLI-инструменты, спецификации API и протокольные сервисы.

Экосистема

Фреймворк / Источник

Уверенность

Python

argparse CLI

0.90

Click CLI

0.90

Typer CLI

0.85

Flask

0.95

FastAPI

0.95

Django REST Framework

0.95

Java / Kotlin

Spring Boot (Java + Kotlin)

0.95

Spring MVC (Java + Kotlin)

0.85

JAX-RS / Quarkus (Java + Kotlin)

0.90

Micronaut

0.90

JavaScript / TypeScript

Express.js

0.95

Go

Gin

0.95

Echo

0.95

Chi

0.95

Fiber

0.95

gorilla/mux

0.90

net/http

0.85

Ruby

Rails

0.95

Rust

Actix-web

0.95

Axum

0.95

Rocket

0.95

Warp

0.90

API Specs

OpenAPI 3.x / Swagger 2.x

0.88

GraphQL SDL

0.95

gRPC / Protobuf

0.95

Protocol / IPC

WebSocket (JSON-RPC)

0.85

MQTT / paho-mqtt

0.90

ZeroMQ

0.90

XML-RPC / raw socket

0.90

D-Bus

0.90

Передайте URL напрямую для спецификаций API: mcp-anything generate https://api.example.com/openapi.json


Определение области действия: контроль того, что будет доступно

Крупные кодовые базы могут содержать сотни или тысячи эндпоинтов. Вы вряд ли захотите, чтобы все они стали MCP-инструментами. Три механизма позволяют контролировать область действия:

Быстрая фильтрация с помощью --include / --exclude:

# Only expose /api/v2 endpoints
mcp-anything generate ./my-app --include "/api/v2/*"

# Exclude internal and debug routes
mcp-anything generate ./my-app --exclude "/internal/*" --exclude "debug_*"

Режим проверки — отбор перед генерацией:

# Step 1: analyze and pause
mcp-anything generate ./my-app --review

# Step 2: edit the generated scope.yaml (enable/disable per capability)
vim mcp-my-app-server/scope.yaml

# Step 3: resume generation with your curated scope
mcp-anything generate ./my-app --resume

Повторно используемый файл области действия:

# Use a pre-built scope file (check it into your repo)
mcp-anything generate ./my-app --scope-file ./mcp-scope.yaml

Шаблоны сопоставляются с именами возможностей, путями к исходным файлам и описаниями с использованием синтаксиса glob. В файле области действия вы также можете установить enabled: false для отдельных возможностей для точного контроля.

Переопределение описаний: настройка описаний инструментов

Автоматически сгенерированные описания берутся из исходного кода (docstrings, сводки OpenAPI, комментарии к маршрутам). Обычно их достаточно, но иногда хочется более понятных формулировок для вашего LLM-агента.

После генерации в выходной директории создается файл descriptions.yaml со всеми описаниями инструментов и параметров. Отредактируйте его, а затем снова запустите команду с флагом --description, чтобы применить изменения:

# 1. Generate as usual
mcp-anything generate ./my-app

# 2. Edit descriptions
vim mcp-my-app-server/descriptions.yaml

Файл выглядит так:

# Edit tool descriptions below. Run `mcp-anything generate --description` to apply.
tools:
  list_users:
    description: "List all users with optional filtering"
    parameters:
      role:
        description: "Filter by user role"
      limit:
        description: "Max results to return"
  create_user:
    description: "Create a new user account"
    parameters:
      name:
        description: "Full name of the user"
# 3. Apply overrides — run from the generated server directory
cd mcp-my-app-server
mcp-anything generate --description

# Or from anywhere, pointing to the output directory
mcp-anything generate --description -o ./mcp-my-app-server

Применяются только измененные описания. Конвейер обнаруживает правки и перегенерирует только затронутые этапы (реализация, документация, упаковка), сохраняя все остальное без изменений.

Вывод

mcp-<name>-server/
├── src/<name>/
│   ├── server.py        # FastMCP server (stdio or HTTP/SSE)
│   ├── backend.py       # Backend adapter (CLI / HTTP proxy / Python call)
│   ├── tools/           # Tool modules, one file per capability group
│   ├── prompts.py       # Server-delivered MCP prompts
│   └── resources.py     # Dynamic MCP resources
├── AGENTS.md            # Tool index for coding agents
├── Dockerfile           # Container deployment (HTTP mode)
├── mcp.json             # Ready-to-paste MCP client config
└── pyproject.toml       # pip install -e .

Почему мы генерируем AGENTS.md

MCP решает задачу вызова инструментов — агент вызывает инструмент и получает результат. Он не решает задачу обнаружения инструментов на уровне проекта.

Когда агент, такой как Claude Code, открывает ваш репозиторий, он читает AGENTS.md перед выполнением любых вызовов MCP. Этот файл сообщает ему, что может делать сервер, какие инструменты существуют и как их использовать — без необходимости активного соединения. Как утверждается в этой статье, следующее поколение агентских рабочих процессов зависит от способности агентов рассуждать о доступных возможностях до их вызова. AGENTS.md — это мост: читаемая человеком, индексируемая агентом карта всего, что предоставляет сгенерированный сервер.

Почему предпочтительнее HTTP-транспорт

stdio MCP запускает сервер как локальный подпроцесс — один процесс на сессию агента, привязанный к вашей машине. Это работает для личного использования, но не масштабируется.

HTTP-транспорт (--transport http) позволяет вам:

  • Развернуть один раз, подключаться откуда угодно (CI, облачные агенты, коллеги)

  • Использовать один экземпляр сервера для нескольких сессий агентов

  • Запускать в Docker или любой контейнерной платформе

Для всего, что выходит за рамки локального прототипирования, HTTP является правильным выбором по умолчанию.

Конкретный пример: GitHub MCP Server

Официальный GitHub MCP-сервер — это созданный вручную проект на Go, предоставляющий около 80 отобранных инструментов (issues, PR, репозитории, действия, оповещения безопасности и т.д.). Команде потребовались месяцы на его создание и поддержку.

Что произойдет, если вы направите mcp-anything на публичную спецификацию OpenAPI от GitHub?

mcp-anything generate https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json --name github --no-llm

Официальный (ручная работа)

mcp-anything (автогенерация)

Язык

Go

Python

Время сборки

Месяцы

Секунды

Инструменты

~80 (отобранное подмножество)

~1,093 (каждая операция API)

Бэкенд

Родной Go SDK + GraphQL

httpx HTTP-прокси из спецификации OpenAPI

Авторизация

PAT / OAuth

PAT через переменную окружения GITHUB_API_KEY

Транспорт

stdio, HTTP

stdio (по умолчанию), HTTP (--transport http)

Документация

Написанный вручную README

Автосгенерированный AGENTS.md + ресурсы MCP

Сгенерированный сервер охватывает каждый эндпоинт GitHub REST API — репозитории, issues, PR, действия, пакеты, рекомендации по безопасности, поиск кода, gists, организации, команды, уведомления и многое другое. Каждый эндпоинт становится MCP-инструментом с типизированными параметрами, извлеченными из спецификации OpenAPI.

Официальный сервер курируемый: 80 инструментов, выбранных для того, что действительно нужно LLM, с пользовательской логикой и интеграцией GraphQL. Автосгенерированный сервер всеобъемлющий: 1,093 инструмента, охватывающих всю поверхность API. Это разница между костюмом на заказ и готовой одеждой — один сидит идеально, другой покрывает всё сразу.

Смотрите examples/github-server/ для получения полного сгенерированного кода.

Ограничение области действия до уровня официального сервера

Но что, если вам нужны только те же ~80 инструментов, которые предоставляет официальный сервер? Используйте --scope-file:

mcp-anything generate \
  https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
  --name github-scoped --no-llm \
  --scope-file examples/github-server-scoped/scope.yaml \
  -o examples/github-server-scoped

Официальный (ручная работа)

Полная автогенерация

Ограниченная автогенерация

Инструменты

~80 (курируемые)

1,093 (каждый эндпоинт)

67 (соответствующие официальным)

Время сборки

Месяцы

~6 секунд

~6 секунд

Покрытие

Курируемое подмножество + GraphQL

Весь REST API

Те же REST-эндпоинты, что и в официальном

Контроль области

Жестко закодировано в Go

Не требуется

scope.yaml (69 строк)

Файл области действия (examples/github-server-scoped/scope.yaml) использует exclude_patterns: ["*"] для исключения всего по умолчанию, а затем enabled: true для 67 конкретных инструментов, которые соответствуют официальным эндпоинтам. 11 официальных инструментов используют GraphQL или специфические API Copilot и не имеют аналогов в REST — они задокументированы в файле области действия.

Воспроизведите это сами:

# 1. Generate the full server (1,093 tools)
mcp-anything generate \
  https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
  --name github --no-llm

# 2. Generate the scoped server (67 tools, matching official)
mcp-anything generate \
  https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
  --name github-scoped --no-llm \
  --scope-file examples/github-server-scoped/scope.yaml

# 3. Or use review mode to curate interactively
mcp-anything generate \
  https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
  --name github-custom --no-llm --review
# Edit mcp-github-custom-server/scope.yaml, then:
mcp-anything generate \
  https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
  --name github-custom --resume

Смотрите examples/github-server-scoped/ для получения ограниченного вывода.

Дорожная карта

Смотрите ROADMAP.md для полной дорожной карты. Смотрите CONTRIBUTING.md, чтобы узнать, как внести свой вклад в проект.


История звезд


Хватит писать MCP-серверы вручную.

-
security - not tested
A
license - permissive license
-
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/Type-MCP/mcp-anything'

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