mcp-suite
mcp-suite
AIエージェント(Claude Desktop、Cursor、Windsurf、カスタムエージェント)に対し、金融市場、Web3/DeFi、開発者ツール、**ヘルスケア(FHIR)**の4つのドメインにわたる実世界のデータへの構造化されたアクセスを提供する、プロダクショングレードのTypeScript MCPサーバーです。
認証ファースト — JWT検証がデフォルトで有効
ドメイン分離 — APIキーが欠落していてもサーバー全体ではなく、そのドメインのみが無効化されます
レスポンスキャッシュ(LRU + TTL)およびドメインごとのトークンバケットレート制限
すべてのツール入力および出力に対する型定義済みスキーマ(Zod)
2つのトランスポート: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
Related MCP server: APIbase
インストール
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、およびリモートMCPクライアント用のSSEエンドポイントが公開されます。
CLIコマンド
コマンド | 説明 |
| サーバーを起動(stdioトランスポート、デフォルト) |
| HTTP + SSEサーバーを起動 |
| 開発用JWTを生成 |
| ドメインごとにグループ化されたすべてのアクティブなツールを表示 |
利用可能なツール
金融市場
Alpha Vantage および CoinGecko を利用。
要件: ALPHA_VANTAGE_API_KEY
ツール | 説明 |
| 米国株式の価格、出来高、変動率(%) |
| 通貨ペアの為替レート(ISO 4217) |
| 暗号資産の価格、時価総額、24時間変動 |
| センチメントスコア付きの金融ニュースヘッドライン |
例:
{ "tool": "get_stock_quote", "arguments": { "ticker": "NVDA" } }Web3 / DeFi
Alchemy、OpenSea、および Blur を利用。
要件: ALCHEMY_API_KEY, OPENSEA_API_KEY
ツール | 説明 |
| OpenSea + Blur全体のベストフロア価格(ETH、Base、Arbitrum) |
| 特徴とマーケットプレイスを含む直近N件の販売履歴 |
| マルチチェーンのトークン + NFT保有状況、ENS解決 |
| Uniswap V2/V3プールの準備金と価格比率 |
| サイズごとの取引スリッページ見積もり |
例:
{ "tool": "get_nft_floor", "arguments": { "collection_slug": "boredapeyachtclub" } }開発者ツール
GitHub API を利用。
要件: GITHUB_TOKEN
ツール | 説明 |
| スター数、フォーク数、イシュー数、言語、最終コミット |
| PR差分の要約、レビュアー、CIチェック、マージステータス |
| ブランチごとの最新のGitHub Actions実行状況 |
| アクティブなデプロイメントURLとステータス |
例:
{ "tool": "get_pipeline_status", "arguments": { "repo": "vercel/next.js", "branch": "canary" } }ヘルスケア (FHIR)
HAPI FHIR R4 を利用。
要件: なし(デフォルトでパブリックサンドボックスを使用)またはカスタムエンドポイント用の FHIR_BASE_URL。
HIPAAに関する注意: すべてのヘルスケアツールは、合成データのみを含むパブリックサンドボックスに接続します。実際の患者の健康情報(PHI)にはアクセスしません。本番環境で使用する場合は、
FHIR_BASE_URLをHIPAA準拠のEHRエンドポイントに置き換え、適切なSMART on FHIR OAuth 2.0認証情報を設定してください。
ツール | 説明 |
| 患者の人口統計検索 |
| 患者ごとのバイタルおよび検査結果 |
| 患者ごとのアクティブな投薬リスト |
例:
{ "tool": "lookup_patient", "arguments": { "name": "Smith", "birth_date": "1980-01-15" } }認証
認証はデフォルトで有効です。すべてのツール呼び出しには有効なJWTが必要です。
本番環境
MCP_JWT_SECRET に強力なシークレットを設定してください。本番モードでは、これが設定されていないとサーバーは起動を拒否します。
開発環境
オプションA — 認証を完全に無効化(ローカルのみ):
AUTH_DISABLED=trueオプションB — 開発用JWTを使用:
npx mcp-suite gen-token生成されたトークンを、MCPリクエストの _meta フィールド(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秒、GitHubリポジトリ統計は300秒)に設定されています。
レート制限: ドメインごとのトークンバケットにより、無料枠のAPIクォータを保護します。
エラー型:
AuthError、ValidationError、DomainUnavailableError、UpstreamError、RateLimitError— すべて構造化されたMCPエラーレスポンスを生成します。ログ: すべてのツール呼び出しで構造化JSONを出力:ドメイン、ツール名、レイテンシ、キャッシュヒット、ステータス。
ドメインの追加
各ドメインは同じパターンに従います。新しいドメインを追加するには:
src/domains/[name]/にindex.ts、schemas.ts、client.ts、tools/を作成しますDomainオブジェクトをエクスポートします:
export const myDomain: Domain = {
name: 'my-domain',
isAvailable: () => !!config.MY_API_KEY,
registerTools: (server) => { /* server.tool(...) calls */ }
}src/server.tsに登録します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 testHTTPトランスポートエンドポイント
--transport http で実行する場合:
エンドポイント | 認証 | 説明 |
| なし | ドメインごとの可用性ステータス |
| あり | 登録されているすべてのツール(ドメインごとにグループ化) |
| あり | MCPプロトコルエンドポイント(SSE) |
エラーリファレンス
コード | 説明 |
| JWTの欠落、期限切れ、または署名が無効 |
| 入力がZodスキーマ検証に失敗 |
| ドメインのAPIキーが起動時に設定されていない |
| ドメインごとのレート制限を超過 |
| 外部APIがエラーを返したか、タイムアウトした |
ライセンス
MIT — LICENSE を参照
貢献
イシューやPRを歓迎します。提出前に docs/CODING_STANDARDS.md をお読みください。
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
Discover and call 10,000+ production APIs from one MCP server. Pay-per-call billing for AI agents.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA production-ready TypeScript MCP server providing basic tools (add, echo, timestamp), resources (server info, greetings, data access), and prompt templates (analyze, code-review, summarize). Serves as a foundation for building custom MCP servers with extensible architecture.325 npm-
- AlicenseAqualityAmaintenanceUnified MCP gateway for AI agents with 56+ tools and growing. Travel (Amadeus, Sabre GDS), e-commerce, local services, financial markets (Polymarket), and marketing APIs — all through a single endpoint. Pay-per-call via x402 micropayments in USDC.1008 npm10MIT
- AlicenseNot gradedqualityCmaintenanceA unified MCP server providing AI agents with 40+ developer APIs including geolocation, crypto prices, DNS lookup, and web scraping. Enables natural language access to various tools through a single gateway.1MIT
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.65MIT