Smart MCP Server について
Smart MCP Server は、AI ワークフローやエージェント連携を構築するチーム向けの、コンテキスト対応 MCP・A2A サーバーです。ツール選択、JSON ワークフロー、複数モデル対応、暗号化トークン管理を備えています。
主な機能
- 01コンテキストに応じたツール選択
- 02JSON ワークフローの読み込みと実行
- 03Gemini、OpenAI、Anthropic モデル対応
- 04暗号化トークンの生成と更新
- 05MCP と A2A のツール検出
- 06GitHub、Stripe、ヘルスチェック、ドキュメント用ツール
活用シーン
- 01依頼とコンテキストに基づくツール選択
- 02定義済み AI ワークフローの実行と監視
- 03A2A によるエージェント間タスク調整
- 04プロトコルトークンの管理とシステム状態の確認
MCP 対応
MCP v1.0 を実装し、MCP クライアントが検出・実行できるツールを公開します。GitHub、Stripe、システムのヘルスチェック、ドキュメント処理のツールを備えています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Smart MCP Server
エージェント間(A2A)プロトコルに準拠した、高度でコンテキスト認識型のModel Context Protocol(MCP)サーバーです。インテリジェントなワークフロー実行、安全なトークン管理、Google の Gemini モデルを含む包括的な AI モデル統合を提供します。
🌟 主な機能
🔐 安全なトークン管理
- MCP/A2A 準拠トークン:プロトコルに準拠した API トークンを自動的に生成・管理します
- AES-256-CBC 暗号化:業界標準の暗号化方式でトークンを安全に保存します
- 自動更新:インテリジェントなトークン検証・更新機能を備えています
- CLI 管理:CLI ツールを使ってトークンを簡単に生成、検証、監視できます
🤖 マルチモデル AI 統合
- Gemini モデル:Google の Gemini 2.5 Pro、Gemini Pro、埋め込みモデルとの完全な統合
- OpenAI サポート:GPT-4、GPT-3.5 Turbo、埋め込みモデルに対応
- Anthropic 統合:Claude 3 Opus、Sonnet、Haiku モデルに対応
- モデル非依存のアーキテクチャ:すべての AI プロバイダーに共通のインターフェースを提供します
🔄 高度なワークフローシステム
- 動的なワークフロー読み込み:JSON ファイルからワークフロー定義を自動的に読み込みます
- インテリジェントな実行:AI の関数呼び出しを利用して、最適なワークフローを選択します
- 進行状況の監視:メトリクスとログを使って、実行状況をリアルタイムで追跡します
- エラーからの復旧:高度なエラー処理と再試行の仕組みを備えています
🌐 プロトコル準拠
- MCP v1.0:Model Context Protocol の完全な実装
- A2A v1.0:マルチエージェント連携のためのエージェント間プロトコル
- ツール検出:ツールを自動的に登録し、機能を通知します
- 安全な通信:エージェント間の通信を暗号化します
🛠️ 包括的なツールセット
- GitHub 統合:リポジトリの管理、分析、自動化
- Stripe 統合:決済処理とサブスクリプション管理
- システムの稼働状況監視:システムのメトリクスとアラートをリアルタイムで確認できます
- ドキュメントツール:ドキュメントの統合と管理を自動化します
🚀 クイックスタート
前提条件
- Node.js v18.0.0 以降
- npm v7.0.0 以降
- Google Gemini API Key(AI 機能用)
インストール
-
リポジトリをクローンします:
git clone https://github.com/reconsumeralization/smart-mcp-server.git cd smart-mcp-server -
依存関係をインストールします:
npm install -
MCP/A2A 準拠トークンを生成します:
npm run token:generate -
サーバーを起動します:
npm start
サーバーはポート 3000(設定可能)で起動し、MCP と A2A の両プロトコルを完全にサポートします。
🔑 トークン管理
CLI コマンド
# Generate a new MCP/A2A compliant token
npm run token:generate
# Refresh existing token
npm run token:refresh
# Validate current token compliance
npm run token:validate
# Show detailed token information
npm run token:info
# Export token metadata (no sensitive data)
npm run token:export
# Show help
npm run token:help
トークンの機能
- 🛡️ セキュリティ:安全な鍵管理による AES-256-CBC 暗号化
- ✅ 準拠性:MCP v1.0 と A2A v1.0 の両プロトコルに完全準拠
- 🔄 自動更新:トークンを自動的に検証・更新します
- 📊 監視:トークンの状態と使用状況を詳細に追跡します
🏗️ アーキテクチャ
smart-mcp-server/
├── src/
│ ├── archer/ # Arrow server for agentic framework
│ ├── lib/
│ │ ├── token-manager.js # Secure token management
│ │ ├── agents/ # AI agent implementations
│ │ └── ai-workflows/ # Workflow orchestration
│ ├── models/
│ │ └── drivers/ # AI model drivers (Gemini, OpenAI, Anthropic)
│ ├── tools/ # MCP-compliant tool implementations
│ ├── routes/ # API endpoints
│ └── middleware/ # Authentication, validation, etc.
├── examples/ # Workflow examples and demos
├── scripts/ # Management and utility scripts
├── docs/ # Comprehensive documentation
└── public/ # A2A agent discovery
🔌 API エンドポイント
コアエンドポイント
GET /health- ヘルスチェックとシステム状態の確認POST /a2a/tasks- エージェント間のタスク実行GET /.well-known/agent.json- エージェント検出(A2A プロトコル)
ワークフロー管理
GET /api/workflows- 利用可能なすべてのワークフローを一覧表示POST /api/workflows/:id/execute- 指定したワークフローを実行GET /api/workflows/:id/status- ワークフローの実行状態を取得
トークン管理
POST /api/tokens/refresh- API トークンを更新GET /api/tokens/info- トークン情報を取得POST /api/tokens/validate- トークンの準拠性を検証
ツール統合
GET /api/tools- 利用可能な MCP ツールを一覧表示POST /api/tools/execute- パラメーターを指定してツールを実行
🤖 AI モデル統合
Gemini との統合
import { GeminiDriver } from './src/models/drivers/gemini-driver.js';
const gemini = new GeminiDriver();
await gemini.initialize(); // Automatic token management
// Text generation with MCP compliance
const result = await gemini.generate({
prompt: "Explain quantum computing",
temperature: 0.7,
maxTokens: 1024
});
// Streaming responses
for await (const chunk of gemini.stream({ prompt: "Write a story" })) {
console.log(chunk.text);
}
// Embeddings
const embedding = await gemini.embedding({
text: "Convert this to vector representation"
});
マルチモデルのサポート
import { ModelDriver } from './src/models/ModelDriver.js';
// Unified interface across all models
const models = {
gemini: new GeminiDriver(),
openai: new OpenAIDriver(),
anthropic: new AnthropicDriver()
};
// Automatic model selection based on task
const bestModel = await ModelDriver.selectOptimal({
task: "code_generation",
requirements: { speed: "fast", quality: "high" }
});
🔄 ワークフローシステム
ワークフローの定義
examples/ ディレクトリにワークフローの JSON ファイルを作成します。
{
"id": "data-analysis-workflow",
"name": "Data Analysis Pipeline",
"description": "Comprehensive data analysis with AI insights",
"version": "1.0",
"mcp_compliant": true,
"a2a_compliant": true,
"steps": [
{
"id": "data-extraction",
"type": "database-query",
"tool": "mcp_database_tool",
"parameters": {
"query": "SELECT * FROM analytics_data WHERE date >= '{{start_date}}'"
}
},
{
"id": "ai-analysis",
"type": "ai-processing",
"tool": "mcp_gemini_tool",
"parameters": {
"model": "gemini-2.5-pro",
"prompt": "Analyze this data and provide insights: {{data}}"
},
"depends_on": ["data-extraction"]
},
{
"id": "report-generation",
"type": "document-creation",
"tool": "mcp_documentation_tool",
"parameters": {
"template": "analysis-report",
"data": "{{ai-analysis.result}}"
},
"depends_on": ["ai-analysis"]
}
]
}
ワークフローの実行
# List available workflows
curl http://localhost:3000/api/workflows
# Execute a workflow
curl -X POST http://localhost:3000/api/workflows/data-analysis-workflow/execute \
-H "Content-Type: application/json" \
-d '{"start_date": "2024-01-01"}'
# Monitor execution
curl http://localhost:3000/api/workflows/execution-id-123/status
🛠️ 利用可能なツール
GitHub ツール(mcp_github_tool)
// Repository analytics
const stats = await tools.mcp_github_search_repositories({
query: "machine learning",
sort: "stars",
limit: 10
});
// Create pull request
const pr = await tools.mcp_github_create_pull_request({
owner: "username",
repo: "repository",
title: "Feature: Add new functionality",
body: "Description of changes",
head: "feature-branch",
base: "main"
});
システムヘルスツール(mcp_system_health_tool)
// Get system metrics
const health = await tools.mcp_system_health_check();
console.log(health); // { cpu: 45, memory: 67, status: "healthy" }
// Monitor performance
const metrics = await tools.mcp_system_performance_metrics({
duration: "1h",
interval: "5m"
});
ドキュメントツール(mcp_documentation_tool)
// Consolidate documentation
const docs = await tools.mcp_consolidate_documentation({
source: "./docs",
output: "./consolidated-docs.md",
format: "markdown"
});
🔍 コンテキストに応じたツールの選択
システムはコンテキストに基づいてツールをインテリジェントに選択します。
import { selectToolsForContext } from './src/context-aware-selector.js';
const context = {
message: "Help me optimize this database query",
history: ["SELECT * FROM users", "EXPLAIN ANALYZE"],
project: { type: "database", language: "SQL" }
};
const selectedTools = selectToolsForContext(context, availableTools);
// Returns: [database-tool, performance-tool, query-optimizer]
🧪 テスト
# Run all tests
npm test
# Test specific components
npm run test:integration
npm run test:tools
npm run test:workflows
# Test token management
npm run token:validate
npm run token:info
📊 モニタリングと分析
リアルタイム指標
- システムヘルス:CPU、メモリ、ディスク使用量
- API パフォーマンス:応答時間、エラー率
- トークン使用量:API 呼び出し、クォータのモニタリング
- ワークフローの実行:成功率、パフォーマンス指標
ロギング
# View logs
tail -f logs/all.log
tail -f logs/error.log
# Workflow-specific logs
ls logs/workflow-test/
🔧 設定
環境変数
# Core Configuration
PORT=3000
NODE_ENV=production
LOG_LEVEL=info
# AI Models (automatically managed by token system)
GEMINI_MODEL=gemini-2.5-pro
# External Integrations
GITHUB_TOKEN=your_github_token
STRIPE_SECRET_KEY=your_stripe_key
# Database
POSTGRES_URL=postgresql://user:pass@localhost:5432/db
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
エージェントの設定
システムは public/agent.json を通じて、その機能を自動的に通知します。
{
"id": "smart-mcp-agent",
"name": "Smart MCP Agent",
"protocol_versions": {
"mcp": "1.0",
"a2a": "1.0"
},
"capabilities": [
"workflow_execution",
"token_management",
"model_interaction"
],
"supported_models": [
"gemini-2.5-pro",
"gpt-4",
"claude-3-opus"
]
}
🚀 高度な使い方
カスタムツールの開発
// Create a new MCP-compliant tool
export async function mcp_custom_tool(params) {
const { input, options = {} } = params;
try {
// Tool implementation
const result = await processInput(input, options);
return {
success: true,
result,
metadata: {
mcp_compliant: true,
execution_time: Date.now() - startTime
}
};
} catch (error) {
return {
success: false,
error: error.message,
metadata: { mcp_compliant: true }
};
}
}
マルチエージェントの連携
// A2A protocol communication
const taskResult = await fetch('http://other-agent:3000/a2a/tasks', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
task_description: "Analyze financial data",
context: { timeframe: "Q4 2024" }
})
});
📚 ドキュメント
詳しいドキュメントを利用できます。
🔐 セキュリティ
- 🔒 トークンの暗号化:すべての機密データを AES-256-CBC で暗号化
- 🛡️ 安全なストレージ:ファイル権限とアクセス制御
- 🔄 自動ローテーション:トークンの自動更新と検証
- 📊 監査ログ:セキュリティイベントの包括的な記録
- 🚫 ハードコードされたシークレットなし:すべての認証情報は環境変数を通じて管理
🤝 貢献
皆さまからの貢献を歓迎します。詳しくは貢献ガイドをご覧ください。
- リポジトリをフォークします
- フィーチャーブランチを作成します:
git checkout -b feature/amazing-feature - テストを追加して変更を加えます
- MCP/A2A への準拠を確認します
- プルリクエストを送信します
開発環境のセットアップ
# Install development dependencies
npm install
# Run in development mode
npm run dev
# Run tests with coverage
npm run test:coverage
# Lint and format code
npm run lint
npm run format
📈 ロードマップ
- 強化された AI モデル:より多くの AI プロバイダーとの統合
- 高度なワークフロー:ビジュアルワークフロービルダーおよびエディター
- リアルタイムコラボレーション:複数ユーザーによるワークフローの実行
- プラグインシステム:サードパーティ製ツールの統合フレームワーク
- クラウドデプロイ:ワンクリックでのクラウドデプロイオプション
📄 ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。
🙏 謝辞
- MCP の仕様を提供するModel Context Protocol
- Gemini API へのアクセスを提供するGoogle AI
- GPT モデルの統合を提供するOpenAI
- Claude モデルのサポートを提供するAnthropic
📞 サポート
- 課題:GitHub Issues
- ディスカッション:GitHub Discussions
- メール:David Weatherspoon
AI エージェントのエコシステムのために、❤️を込めて構築
Smart MCP Server - セキュアでプロトコルに準拠したインフラストラクチャを通じて、インテリジェントなエージェント連携を実現します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。