ThinMCP
ThinMCP
ThinMCP — это шлюз MCP, который предоставляет доступ ко многим вышестоящим серверам MCP через стабильный интерфейс из двух инструментов:
search()execute()
Вместо того чтобы загружать определение каждого вышестоящего инструмента в контекст модели, ThinMCP ведет локальный каталог, позволяет модели обнаруживать инструменты по требованию и пересылает только те вызовы, которые необходимо выполнить.
Зачем нужен ThinMCP
Прямое подключение нескольких серверов MCP к модели увеличивает размер контекста по мере роста количества инструментов. ThinMCP сохраняет фиксированную поверхность взаимодействия с моделью, при этом предоставляя доступ к обширной экосистеме инструментов.
Результатом является более простая точка интеграции для клиентов и более предсказуемая форма среды выполнения для производственных развертываний.
Архитектура
flowchart LR
A["LLM or MCP Client"] --> B["ThinMCP Gateway"]
B --> C["Local Catalog"]
B --> D["Execution Layer"]
D --> E["Schema Validation"]
E --> F["Upstream MCP Servers"]
G["Sync Process"] --> F
G --> C
G --> H["Snapshots"]Ключевые возможности
Фиксированный интерфейс из двух инструментов для модели
Поддержка вышестоящих серверов HTTP и stdio
Локальный каталог на базе SQLite для обнаружения
Проверка входных данных перед выполнением вышестоящего вызова
Изолированное выполнение для вызовов инструментов шлюза
Транспорт HTTP с конечными точками состояния и метрик
Периодическая синхронизация метаданных вышестоящих инструментов
Быстрый старт
npm install
npm run build
cp config/mcp-sources.example.yaml config/mcp-sources.yamlОтредактируйте config/mcp-sources.yaml, затем выполните синхронизацию и запуск:
npm run sync
npm startРежим HTTP:
npm start -- --transport http --port 8787Проверка настройки:
npm run doctorКонфигурация
ThinMCP считывает файл config/mcp-sources.yaml. Каждый вышестоящий сервер может использовать транспорт http или stdio.
Минимальный пример:
servers:
- id: exa
name: Exa MCP
transport: http
url: https://mcp.exa.ai/mcp
auth:
type: bearer_env
env: EXA_API_KEY
allowTools: ["*"]
- id: local-fs
name: Local Filesystem MCP
transport: stdio
command: npx
args:
- -y
- "@modelcontextprotocol/server-filesystem"
- /tmp
cwd: .
allowTools:
- "filesystem.*"
sync:
intervalSeconds: 300
onStart: true
runtime:
codeTimeoutMs: 15000
maxCodeLength: 20000
maxResultChars: 60000
catalog:
dbPath: ../data/thinmcp.db
snapshotDir: ../snapshotsИспользуйте allowTools, чтобы ограничить каждый вышестоящий сервер только теми инструментами, которые вы действительно хотите предоставить через шлюз.
Запуск ThinMCP
Разработка:
npm run devПроизводственная сборка:
npm run build
npm startРежим HTTP:
npm start -- --transport http --host 127.0.0.1 --port 8787Доступные конечные точки HTTP:
/mcp/healthz/metrics
Операции
Общие команды:
npm run build
npm run sync
npm run doctor
npm test
THINMCP_RUN_E2E=1 npm run test:e2eОперационное руководство:
Храните учетные данные вышестоящих серверов в переменных окружения
Ограничивайте
allowToolsминимально необходимой областью использованияВключайте аутентификацию HTTP и ограничение частоты запросов (rate limiting) при предоставлении доступа к шлюзу за пределами локальной разработки
Запускайте
npm run syncкак часть развертывания или проверки при запуске, если важна актуальность каталога
Интеграция с клиентами
Примеры для клиентов задокументированы в docs/CLIENT_INTEGRATIONS.md.
Лицензия
ISC
This server cannot be installed
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/VenkatGGG/ThinMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server