Skip to main content
Glama

mcp-suite

Сервер MCP на TypeScript промышленного уровня, предоставляющий ИИ-агентам (Claude Desktop, Cursor, Windsurf, пользовательские агенты) структурированный доступ к реальным данным в четырех областях: финансовые рынки, Web3/DeFi, инструменты разработки и здравоохранение (FHIR).

  • Приоритет аутентификации — проверка JWT включена по умолчанию

  • Изоляция доменов — отсутствие ключей API отключает только один домен, а не весь сервер

  • Кэш ответов (LRU + TTL) и ограничение частоты запросов (token-bucket) для каждого домена

  • Типизированные схемы (Zod) для всех входных и выходных данных инструментов

  • Два транспорта: stdio (локальный) и HTTP + SSE (удаленный/хостинг)


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

# Run directly (no global install required)
npx mcp-suite

# Or install globally
npm install -g mcp-suite
mcp-suite

Требования: Node.js ≥ 20, npm ≥ 10


Установка

1. Настройка переменных окружения

Скопируйте .env.example в .env и заполните ключи для доменов, которые вы хотите включить:

cp .env.example .env
# Authentication (required in production)
MCP_JWT_SECRET=your-secret-here

# Financial Markets (Alpha Vantage + CoinGecko)
ALPHA_VANTAGE_API_KEY=

# Web3 / DeFi (Alchemy + OpenSea + Blur)
ALCHEMY_API_KEY=
OPENSEA_API_KEY=

# Developer Tools (GitHub)
GITHUB_TOKEN=

# Healthcare / FHIR (optional — defaults to public HAPI sandbox)
FHIR_BASE_URL=https://hapi.fhir.org/baseR4

# Server
LOG_LEVEL=info         # debug | info | warn | error
MCP_PORT=3000          # HTTP transport only
AUTH_DISABLED=false    # set true for local dev only

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

2. Генерация токена для разработки

npx mcp-suite gen-token
# eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

3. Добавление в Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "mcp-suite": {
      "command": "npx",
      "args": ["mcp-suite"],
      "env": {
        "MCP_JWT_SECRET": "your-secret-here",
        "ALPHA_VANTAGE_API_KEY": "...",
        "ALCHEMY_API_KEY": "...",
        "OPENSEA_API_KEY": "...",
        "GITHUB_TOKEN": "..."
      }
    }
  }
}

4. Запуск в качестве HTTP-сервера (удаленные/хостинг-развертывания)

npx mcp-suite --transport http --port 3000

Это открывает GET /health, GET /tools и конечную точку SSE для удаленных клиентов MCP.


Команды CLI

Команда

Описание

npx mcp-suite

Запуск сервера (транспорт stdio, по умолчанию)

npx mcp-suite --transport http

Запуск сервера HTTP + SSE

npx mcp-suite gen-token

Генерация JWT для разработки

npx mcp-suite list-tools

Вывод всех активных инструментов, сгруппированных по доменам


Доступные инструменты

Финансовые рынки

Работает на базе Alpha Vantage и CoinGecko. Требуется: ALPHA_VANTAGE_API_KEY

Инструмент

Описание

get_stock_quote

Цена акций США, объем, изменение в %

get_forex_rate

Обменный курс валютной пары (ISO 4217)

get_crypto_price

Цена криптовалюты, рыночная капитализация, изменение за 24ч

get_market_news

Финансовые заголовки с оценками тональности

Пример:

{ "tool": "get_stock_quote", "arguments": { "ticker": "NVDA" } }

Web3 / DeFi

Работает на базе Alchemy, OpenSea и Blur. Требуется: ALCHEMY_API_KEY, OPENSEA_API_KEY

Инструмент

Описание

get_nft_floor

Лучшая минимальная цена на OpenSea + Blur (ETH, Base, Arbitrum)

get_nft_recent_sales

Последние N продаж с характеристиками и маркетплейсом

get_wallet_balances

Мультичейн-токены + владения NFT, разрешение ENS

get_amm_reserves

Резервы пулов Uniswap V2/V3 и ценовое соотношение

get_dex_liquidity

Оценки проскальзывания сделок по объему

Пример:

{ "tool": "get_nft_floor", "arguments": { "collection_slug": "boredapeyachtclub" } }

Инструменты разработки

Работает на базе GitHub API. Требуется: GITHUB_TOKEN

Инструмент

Описание

get_repo_stats

Звезды, форки, тикеты, язык, последний коммит

summarize_pr

Сводка diff PR, рецензенты, проверки CI, статус слияния

get_pipeline_status

Последние запуски GitHub Actions по веткам

get_deployment_health

URL активного развертывания и статус

Пример:

{ "tool": "get_pipeline_status", "arguments": { "repo": "vercel/next.js", "branch": "canary" } }

Здравоохранение (FHIR)

Работает на базе HAPI FHIR R4. Требуется: ничего (по умолчанию используется публичная песочница) или FHIR_BASE_URL для пользовательских конечных точек.

Уведомление HIPAA: Все инструменты здравоохранения подключаются к публичной песочнице только с синтетическими данными. Реальная информация о здоровье пациентов (PHI) не используется. Для промышленного использования замените FHIR_BASE_URL на конечную точку EHR, соответствующую требованиям HIPAA, и настройте соответствующие учетные данные SMART on FHIR OAuth 2.0.

Инструмент

Описание

lookup_patient

Демографический поиск пациента

get_observations

Жизненные показатели и результаты анализов пациента

get_medications

Список активных лекарств пациента

Пример:

{ "tool": "lookup_patient", "arguments": { "name": "Smith", "birth_date": "1980-01-15" } }

Аутентификация

Аутентификация включена по умолчанию. Каждый вызов инструмента должен содержать действительный JWT.

Промышленная эксплуатация

Установите MCP_JWT_SECRET в качестве надежного секретного ключа. Сервер отказывается запускаться в промышленном режиме без него.

Разработка

Вариант А — полное отключение аутентификации (только локально):

AUTH_DISABLED=true

Вариант Б — использование JWT для разработки:

npx mcp-suite gen-token

Передайте сгенерированный токен в поле _meta запроса MCP (stdio) или в заголовке Authorization: Bearer (HTTP).

Структура JWT

{
  "sub": "your-client-id",
  "scope": "mcp:tools",
  "iat": 1713484800,
  "exp": 1716076800
}

Архитектура

MCP Clients (Claude Desktop · Cursor · Windsurf · Custom Agents)
        │  MCP Protocol
┌───────▼────────────────────────────────────────┐
│  Transport Layer  (stdio  |  HTTP + SSE)        │
├────────────────────────────────────────────────┤
│  Auth Middleware  (JWT validation / bypass)     │
├────────────────────────────────────────────────┤
│  Tool Registry    (register · list · route)     │
├──────────┬──────────┬──────────┬───────────────┤
│Financial │  Web3    │ DevTools │  Healthcare   │
├──────────┴──────────┴──────────┴───────────────┤
│  Shared: Rate Limiter · Cache · Logger · Errors │
└─────────────────────────────────────────────────┘
         │           │          │          │
   Alpha Vantage  Alchemy   GitHub API  HAPI FHIR
   CoinGecko      OpenSea
                  Blur
  • Кэширование: Внутрипроцессный кэш LRU + TTL (node-cache). TTL соответствуют доменам (15с для криптовалют, 300с для статистики репозиториев GitHub).

  • Ограничение частоты запросов: Token-bucket для каждого домена защищает квоты API бесплатного уровня.

  • Типы ошибок: AuthError, ValidationError, DomainUnavailableError, UpstreamError, RateLimitError — все они создают структурированные ответы об ошибках MCP.

  • Логирование: Структурированный JSON для каждого вызова инструмента: домен, имя инструмента, задержка, попадание в кэш, статус.


Добавление домена

Каждый домен следует одному и тому же шаблону. Чтобы добавить новый домен:

  1. Создайте src/domains/[name]/ с файлами index.ts, schemas.ts, client.ts и папкой tools/

  2. Экспортируйте объект Domain:

export const myDomain: Domain = {
  name: 'my-domain',
  isAvailable: () => !!config.MY_API_KEY,
  registerTools: (server) => { /* server.tool(...) calls */ }
}
  1. Зарегистрируйте его в src/server.ts

  2. Задокументируйте инструменты в docs/API.md

См. docs/TDD.md §5 и docs/CODING_STANDARDS.md для полного описания шаблона.


Разработка

git clone https://github.com/ayenisholah/mcp-suite.git
cd mcp-suite
npm install
cp .env.example .env   # fill in your API keys

npm run build          # compile TypeScript → dist/
npm run dev            # watch mode
npm run typecheck      # type check without emit
npm run lint           # ESLint
npm test               # unit tests (Vitest)
npm run test:coverage  # tests + coverage report

# Integration tests — hits real APIs, requires .env keys
RUN_INTEGRATION=true npm test

Конечные точки транспорта HTTP

При запуске с параметром --transport http:

Конечная точка

Аутентификация

Описание

GET /health

Нет

Статус доступности по доменам

GET /tools

Да

Все зарегистрированные инструменты, сгруппированные по доменам

POST /mcp

Да

Конечная точка протокола MCP (SSE)


Справочник ошибок

Код

Описание

AUTH_ERROR

JWT отсутствует, истек срок действия или неверная подпись

VALIDATION_ERROR

Входные данные не прошли проверку схемы Zod

DOMAIN_UNAVAILABLE

Ключ API домена не настроен при запуске

RATE_LIMITED

Превышен лимит запросов для домена

UPSTREAM_ERROR

Внешний API вернул ошибку или истекло время ожидания


Лицензия

MIT — см. LICENSE


Участие в разработке

Приветствуются сообщения об ошибках и PR. Пожалуйста, прочитайте docs/CODING_STANDARDS.md перед отправкой.

-
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/mcp-nexus/mcp-suite'

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