FlowMCP Server について
アーカイブ済みでメンテナンスされていない FlowMCP v1 のサーバーパッケージです。ローカルの stdio とリモートの HTTP/SSE 実装を備え、スキーマベースのツールや複数ルートに対応しますが、API は flowmcp-core 4.0.0 で削除されています。以前のコミットに固定した既存環境は引き続き動作します。
主な機能
- 01ローカル stdio サーバー
- 02リモート HTTP・SSE サーバー
- 03複数ルートとスキーマ
- 04ルートごとの認証
- 05デプロイ用ヘルパー
活用シーン
- 01FlowMCP スキーマをローカル stdio で実行
- 02HTTP または SSE ルートでスキーマを公開
- 03ミドルウェアのカスタマイズと接続の監視
MCP 対応
ローカル stdio とリモート HTTP/SSE のトランスポートで、FlowMCP スキーマのツールを MCP クライアントに提供します。リポジトリはアーカイブ済みで、使用する v1 API は flowmcp-core 4.0.0 で削除されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
⚠️ 非推奨 — このリポジトリはアーカイブされ、凍結されています。
flowmcp-serversは v1 FlowMCP API(prepareActivations、filterArrayOfSchemas、activateServerTools)に依存していますが、これは flowmcp-core 4.0.0 で削除されました。現在、コアは v4 専用です。このリポジトリは メンテナンスされなくなり、今後機能追加や修正は行われません。既存のインストールは引き続き動作します。 利用側はコミット SHA で flowmcp-core を固定します。 これらのコミットは履歴から引き続き取得できるため、4.0.0 より前の コアに固定されたインストールは、これまでどおり動作します。
後継 — FlowMCP v4 を直接統合してください:
flowmcp-corev4 のファサード(FlowMCP.loadSchema+FlowMCP.prepareServerTool) を使用して、プロセス内に MCP サーバーを構築するか、- すぐに使える MCP サーバーには
mcp-agent-serverを使用してください。(
flowmcpCLI にはrun/serveコマンドが含まれなくなりました — stdio MCP サーバーは削除されました。)v4 の統合ガイドについては、FlowMCP のドキュメントを参照してください。
FlowMCP サーバー
このリポジトリでは、FlowMCP フレームワークと互換性のある 2 種類のサーバー実装を提供します。
- 🖥 LocalServer — ローカルでの stdio ベースの実行向け
- 🌐 RemoteServer — HTTP および SSE を介したネットワーク利用向け
目次
クイックスタート
DigitalOcean でデプロイする
ステートレスなサーバー(streamableHTTP)でのみ自動デプロイを利用できます。
🖥 ローカルサーバー
LocalServer は、標準入出力ストリームを使用するローカルのワークフロー向けに設計されています。CLI ツール、テスト、開発環境に最適です。
✅ 機能
- stdin/stdout を介した、軽量で依存関係のない I/O
FlowMCP.activateServerTools(...)を完全にサポートStdioServerTransportを使用
🚀 使用例
import { LocalServer } from 'flowmcp-server'
import { FlowMCP } from 'flowmcp'
import { SchemaImporter } from 'schemaimporter'
const schemaList = await SchemaImporter.get( { withSchema: true } )
const arrayOfSchemas = schemaList.map(({ schema }) => schema)
const { activationPayloads } = FlowMCP.prepareActivations({ arrayOfSchemas })
const localServer = new LocalServer({ silent: true })
localServer.addActivationPayloads({ activationPayloads })
await localServer.start()
🔧 設定
localServer.setConfig({
overwrite: {
serverDescription: {
name: 'My Local Server',
description: 'CLI test server',
version: '1.2.2'
}
}
})
🌐 リモートサーバー
RemoteServer は、さまざまなプロトコルを使用して FlowMCP スキーマに HTTP 経由でアクセスできるようにします。フロントエンドアプリ、リモートエージェント、ネットワーク経由の統合に最適です。
✅ 機能
-
2 種類のトランスポートプロトコルをサポート:
streamable(ステートレスな通信を行う HTTP)sse(Server-Sent Events)
-
複数のルートとスキーマを有効化可能
-
簡単に設定可能
🚀 使用例
import { RemoteServer } from 'flowmcp-server'
import { FlowMCP } from 'flowmcp'
const remoteServer = new RemoteServer({ silent: true })
// Define routes with their configuration
const arrayOfRoutes = [
{
routePath: '/api',
protocol: 'sse',
}
]
// Pre-assign schemas to routes
const objectOfSchemaArrays = {
'/api': [...] // Your schemas here
}
// Prepare route activation payloads
const { routesActivationPayloads } = RemoteServer.prepareRoutesActivationPayloads({
arrayOfRoutes,
objectOfSchemaArrays,
envObject: process.env
})
remoteServer.start({ routesActivationPayloads })
🔧 設定
remoteServer.setConfig({
overwrite: {
port: 8081,
rootUrl: 'http://mydomain.com'
}
})
📡 サポートするトランスポートプロトコル
| プロトコル | 説明 |
|---|---|
sse | Server-Sent Events、永続的な接続 |
streamable | ステートレスな POST ベースの HTTP 通信 |
🚀 シンプルなデプロイ
Deploy クラスを使用すると、コマンドラインパラメーターに対応したサーバーを手早くセットアップできます。
📝 使用例
import { Deploy } from 'flowmcp-server'
// Initialize with command-line arguments and schemas
const { serverType, app, mcps, events, argvs } = Deploy.init({
argv: process.argv,
processEnv: process.env,
arrayOfSchemas: [...] // Your schemas
})
// Access parsed command-line arguments
console.log('Server Type:', serverType) // 'local' or 'remote'
console.log('Parsed Args:', argvs) // All CLI parameters
console.log('Express App:', app) // Express.js app (remote) or McpServer (local)
console.log('MCPs:', mcps) // null for local, sessions object for remote
console.log('Events:', events) // null for local, event emitter for remote
// Start the configured server
await Deploy.start()
🚀 高度な複数ルートのデプロイ
DeployAdvanced クラスを使用すると、異なるスキーマとプロトコルを持つ複数のルートをデプロイできます。複雑な API の構成に最適です。
🌟 主な機能
- 独立したスキーマセットを持つ複数のルート
- ルートごとに事前フィルタリングされたスキーマを割り当て
- 複数のトランスポートプロトコルの併用(SSE + HTTP)
- ルートごとの認証
📝 使用例
import { DeployAdvanced } from 'flowmcp-server'
// Initialize the advanced deployment
const { serverType, app, mcps, events, server } = DeployAdvanced.init({ silent: true })
// Define routes with their configuration
const arrayOfRoutes = [
{
routePath: '/crypto',
protocol: 'sse',
},
{
routePath: '/admin',
protocol: 'streamable',
}
]
// Pre-assign schemas to routes (user controls filtering)
const objectOfSchemaArrays = {
'/crypto': [
// Crypto-related schemas only
coinGeckoSchema,
deFiLlamaSchema
],
'/admin': [
// Admin-only schemas
userManagementSchema,
systemStatsSchema
]
}
// Start with pre-configured routes and schemas
DeployAdvanced.start({
arrayOfRoutes,
objectOfSchemaArrays,
envObject: process.env,
rootUrl: 'https://api.example.com',
port: 8080
})
// Optional: Access server internals for advanced customization
console.log('Server Type:', serverType) // 'multipleRoutes'
// Express.js app - add custom middleware, routes, etc.
app.use('/health', (req, res) => res.json({ status: 'healthy' }))
// Monitor MCP sessions - track active connections per route
Object.entries(mcps).forEach(([route, { sessionIds }]) => {
console.log(`Route ${route}: ${Object.keys(sessionIds).length} active sessions`)
})
// Event monitoring - listen to server events
events.on('sessionCreated', ({ protocol, routePath, sessionId }) => {
console.log(`New ${protocol} session: ${sessionId} on ${routePath}`)
})
// Direct server access - modify configuration, add routes, etc.
server.setConfig({ overwrite: { port: 9000 } })
🔄 v1.3.x からの移行
旧 API(v1.3.x):
const routes = [{
includeNamespaces: ['coingecko'],
excludeNamespaces: ['debug'],
activateTags: ['production'],
routePath: '/crypto',
protocol: 'sse',
}]
DeployAdvanced.start({
routes, // ❌ Old parameter
arrayOfSchemas: [...], // ❌ Global array
envObject: process.env
})
新 API(v1.4.x):
const arrayOfRoutes = [{
routePath: '/crypto', // ✅ Simplified route
protocol: 'sse',
}]
const objectOfSchemaArrays = {
'/crypto': [...] // ✅ Pre-filtered per route
}
DeployAdvanced.start({
arrayOfRoutes, // ✅ New parameter
objectOfSchemaArrays, // ✅ Route-specific schemas
envObject: process.env
})
🔧 高度なサーバーアクセス
Deploy.init() と DeployAdvanced.init() はどちらも、詳細なカスタマイズを可能にする重要なオブジェクトを返します。
| オブジェクト | Deploy(シンプル) | DeployAdvanced | 説明 |
|---|---|---|---|
serverType | 'local' または 'remote' | 'multipleRoutes' | サーバーの設定タイプ |
app | Express アプリまたは McpServer | Express アプリ | サーバーアプリケーションのインスタンス |
mcps | null(ローカル)またはセッションオブジェクト | セッションオブジェクト | ルートごとのアクティブな MCP 接続 |
events | null(ローカル)または EventEmitter | EventEmitter | 監視用のイベントシステム |
argvs | 解析済みの CLI 引数 | null | コマンドラインパラメーター(Deploy のみ) |
server | 利用不可 | RemoteServer インスタンス | サーバーへの直接アクセス(DeployAdvanced のみ) |
💡 使用例
- カスタムミドルウェア:
appを介して認証、ロギング、レート制限を追加します - 接続の監視:
mcpsとeventsを介してアクティブなセッションを追跡します - ヘルスチェック:監視用のカスタムエンドポイントを追加します
- 設定:
serverを介してサーバー設定を変更します(DeployAdvanced) - CLI との連携:
argvsを介して解析済みの引数にアクセスします(Deploy)
📌 互換性
- FlowMCP Server バージョン:
1.5.0 - FlowMCP Schema spec バージョン:
1.2.2
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。