はじめに: 完全な旅
これは、このシリーズの最後の記事です。 モデルコンテキストプロトコル (MCP)。 14 の記事で、プロトコルの理論的基礎から、 31 台の MCP サーバー、85 個以上のツール、6 つのパッケージを備えた本番環境のエコシステムの実装まで 共有および専門的なテストシステム。
この記事ではその1つを紹介します 完全な概要 オープンソースプロジェクトの テックMCP: カテゴリ、テクノロジースタック、アーキテクチャ別に編成されたすべてのサーバーのカタログ 全体的には、開発中に学んだ教訓と、プロジェクトに貢献する方法について説明します。
この記事で学べること
- Tech-MCP プロジェクトの数値と統計による完全な概要
- カテゴリ別に整理された 31 台すべてのサーバーのカタログ
- テクノロジースタック: TypeScript 5.7、Node.js 20+、pnpm、Turborepo、SQLite
- モノリポジトリと共有パッケージの全体的なアーキテクチャ
- GitHub 上のプロジェクトに貢献する方法
- ロードマップと今後の展開予定
- 31 台の MCP サーバーの構築から学んだ教訓
- 全 14 回の記事シリーズの概要
数字で見るTech-MCP
プロジェクト テックMCP 完全な MCP エコシステムを生み出す設計と開発プロセスの結果、 ソフトウェア開発ライフサイクル全体をカバーします。重要な数字は次のとおりです。
プロジェクトの統計
| メトリック | 価値 |
|---|---|
| MCPサーバー | 31 |
| 利用可能なツール | 85+ |
| 共有パッケージ | 6 |
| 代表的なイベント | 29 |
| TypeScript コードの行 | 23,000+ |
| 言語 | タイプスクリプト 5.7 |
| ランタイム | Node.js 20+ |
| ビルドシステム | ターボレポ + pnpm |
| データベース | SQLite (better-sqlite3) |
| 検証 | ゾッド |
| テスト | ヴィテスト |
| ライセンス | オープンソース |
全体的なアーキテクチャ
Tech-MCP として組織されています。 モノレポ pnpm ワークスペースと Turborepo で管理されます。 共有パッケージは機能横断性を提供し、31 台のサーバーが実装します 特定のドメイン ロジック:
Tech-MCP/
├── packages/ # 6 Pacchetti Condivisi
│ ├── core/ # Factory, tipi condivisi, startHttpServer()
│ ├── event-bus/ # EventBus interface + LocalEventBus + 29 eventi
│ ├── client-manager/ # McpClientManager per cross-server
│ ├── database/ # BaseStore SQLite, migrazioni
│ ├── testing/ # TestHarness, MockEventBus, InMemoryTransport
│ └── cli/ # Utility CLI per gestione server
│
├── servers/ # 31 Server MCP
│ ├── scrum-board/ # Project Management
│ ├── agile-metrics/ # Project Management
│ ├── time-tracking/ # Project Management
│ ├── project-economics/ # Project Management
│ ├── retrospective-manager/ # Project Management
│ ├── code-review/ # Produttività
│ ├── dependency-manager/ # Produttività
│ ├── project-scaffolding/ # Produttività
│ ├── docker-compose/ # DevOps
│ ├── log-analyzer/ # DevOps
│ ├── cicd-monitor/ # DevOps
│ ├── db-schema-explorer/ # Database
│ ├── data-mock-generator/ # Database
│ ├── test-generator/ # Testing
│ ├── performance-profiler/ # Testing
│ ├── api-documentation/ # Documentazione
│ ├── codebase-knowledge/ # Documentazione
│ ├── regex-builder/ # Utility
│ ├── http-client/ # Utility
│ ├── snippet-manager/ # Utility
│ ├── standup-notes/ # Comunicazione
│ ├── environment-manager/ # Comunicazione
│ ├── incident-manager/ # Avanzati
│ ├── decision-log/ # Avanzati
│ ├── access-policy/ # Avanzati
│ ├── quality-gate/ # Avanzati
│ ├── workflow-orchestrator/ # Avanzati
│ ├── insight-engine/ # Avanzati
│ ├── mcp-registry/ # Avanzati
│ ├── dashboard-api/ # Avanzati
│ └── tech-radar/ # Avanzati
│
├── docs/ # Documentazione completa
├── turbo.json # Configurazione Turborepo
├── pnpm-workspace.yaml # Workspace definition
└── package.json # Root package
完全なサーバーカタログ
31 台の MCP サーバーは、サイクルのあらゆる側面をカバーする 9 つの機能カテゴリに編成されています。 ソフトウェア開発の一生。各サーバーは独立していますが、他のサーバーと連携できます EventBus および ClientManager 経由。
プロジェクト管理 (5 サーバー)
| サーバ | 主なツール | 説明 |
|---|---|---|
| スクラムボード | スプリントの作成、ストーリーの追加、タスクのステータスの更新 | 完全なスクラムボードによるスプリント、ストーリー、タスク管理 |
| アジャイルメトリクス | 速度の計算、バーンダウンの取得、サイクルタイム | アジャイル指標: ベロシティ、バーンダウン、リードタイム、サイクルタイム |
| 時間の追跡 | 開始タイマー、停止タイマー、タイムシートの取得 | タイマーと週次レポートによる時間追跡 |
| プロジェクトの経済学 | 予算の設定、費用のログ、予算ステータスの取得 | プロジェクトの予算、経費の管理、経済分析 |
| 振り返りマネージャー | レトロの作成、フィードバックの追加、アクションの生成 | フィードバックと修正措置を含むスプリントの振り返り |
生産性 (3 サーバー)
| サーバ | 主なツール | 説明 |
|---|---|---|
| コードレビュー | 差分の分析、問題の発見、改善の提案 | コード分析による問題と改善点の特定 |
| 依存関係マネージャー | スキャン依存関係、更新チェック、監査セキュリティ | 依存関係、更新、セキュリティ監査の管理 |
| プロジェクトの足場 | プロジェクトの生成、モジュールの追加、構成の作成 | プロジェクト構造とモジュール足場の生成 |
DevOps (3 サーバー)
| サーバ | 主なツール | 説明 |
|---|---|---|
| ドッカー構成 | 生成-構成、検証-構成、最適化 | Docker-compose ファイルの生成と検証 |
| ログアナライザー | 解析ログ、検索エラー、集計統計 | パターンマッチングによるアプリケーションログ分析 |
| cicd-モニター | パイプラインのリスト、ビルドステータスの取得、失敗の分析 | CI/CD パイプラインの監視と障害分析 |
データベース(2サーバー)
| サーバ | 主なツール | 説明 |
|---|---|---|
| データベーススキーマエクスプローラー | リストテーブル、記述テーブル、分析関係 | 関係分析によるデータベース スキーマの探索 |
| データモックジェネレーター | モックデータの生成、フィクスチャの作成、シードデータベース | 現実的なテストデータとフィクスチャを生成 |
テスト (2 サーバー)
| サーバ | 主なツール | 説明 |
|---|---|---|
| テストジェネレーター | 単体テストの生成、統合テストの生成 | 単体テストと結合テストの自動生成 |
| パフォーマンスプロファイラー | プロファイルエンドポイント、ボトルネックの発見、ベンチマーク | パフォーマンスプロファイリングとボトルネックの特定 |
ドキュメント (2 サーバー)
| サーバ | 主なツール | 説明 |
|---|---|---|
| APIドキュメント | ドキュメントの生成、openapi の検証、例の作成 | API ドキュメントの生成と OpenAPI の検証 |
| コードベースの知識 | インデックスコードベース、検索コード、説明モジュール | セマンティック検索を備えたコードベースのナレッジベース |
ユーティリティ (3 サーバー)
| サーバ | 主なツール | 説明 |
|---|---|---|
| 正規表現ビルダー | ビルド正規表現、テストパターン、説明正規表現 | 正規表現の構築とテスト |
| httpクライアント | 送信リクエスト、テストエンドポイント、モック API | API テストおよびエンドポイント モック用の HTTP クライアント |
| スニペットマネージャー | 保存スニペット、検索スニペット、取得スニペット | タグと検索によるコード スニペットの管理 |
通信(2サーバー)
| サーバ | 主なツール | 説明 |
|---|---|---|
| スタンドアップノート | スタンドアップの作成、スタンドアップのリスト、要約の生成 | メモと要約による毎日のスタンドアップ管理 |
| 環境マネージャー | リスト環境、比較構成、同期環境 | 導入環境と構成の管理 |
アドバンスト (9 サーバー)
| サーバ | 主なツール | 説明 |
|---|---|---|
| インシデントマネージャー | インシデントの作成、ステータスの更新、事後分析 | 重大度と事後分析を考慮したインシデント管理 |
| 決定ログ | ログ決定、リスト決定、検索コンテキスト | アーキテクチャ決定登録簿 (ADR) |
| アクセスポリシー | ポリシーの定義、アクセスのチェック、権限の監査 | アクセスポリシーと権限監査の管理 |
| クオリティゲート | ゲートの定義、品質の評価、レポートの取得 | 構成可能なメトリクスとしきい値を備えた品質ゲート |
| ワークフローオーケストレーター | ワークフローの作成、ステップの実行、ステータスの取得 | 複数ステップのワークフローオーケストレーション |
| インサイトエンジン | ヘルスダッシュボード、クロスプロジェクト分析 | データ集約によるクロスサーバー分析 |
| mcp-レジストリ | 登録サーバー、リストサーバー、検出ツール | 自動検出機能を備えた MCP サーバー レジストリ |
| ダッシュボード API | ダッシュボードの作成、ウィジェットの追加、メトリクスの取得 | メトリクスを視覚化するための API ダッシュボード |
| テクノロジーレーダー | テクノロジーの追加、採用の評価、レーダーの取得 | テクノロジーの導入を追跡するテクノロジーレーダー |
テクノロジースタック
Tech-MCP テクノロジー スタックは、タイプ セーフティと速度を最大化するために選択されました。 開発と長期的な保守性:
使用されている技術
| 成分 | テクノロジー | 役割 |
|---|---|---|
| 言語 | タイプスクリプト 5.7 | タイプセーフティ、インターフェース、ジェネリックス |
| ランタイム | Node.js 20+ | ES モジュールのネイティブ、パフォーマンス |
| パッケージマネージャー | pnpm 9+ | Monorepo ワークスペース、効率的なリンク |
| ビルドシステム | ターボレポ | 並列ビルド、キャッシュ、タスクオーケストレーション |
| データベース | SQLite (better-sqlite3) | ローカル永続性、設定不要 |
| 検証 | ゾッド | スキーマ検証、型推論 |
| MCP SDK | @モデルコンテキストプロトコル/SDK | 公式MCPプロトコル |
| テスト | ヴィテスト | 単体テスト、統合テスト、モッキング |
| 輸送 | STDIO + ストリーミング可能な HTTP | ローカルおよびリモート通信 |
6 つの共有パッケージ
共有パッケージは、31 台のサーバーすべてを構築するための基盤を提供します。
各パッケージはモノリポジトリ内で内部的に公開され、サーバーによって使用されます。
workspace:*:
モノレポパッケージ
| パッケージ | 責任 | 主な輸出品 |
|---|---|---|
| @mcpスイート/コア | ファクトリーサーバー、共有型、HTTPサーバー | startHttpServer()、一般的なタイプ |
| @mcp-suite/event-bus | ファイアアンドフォーゲットタイプのイベントシステム | LocalEventBus, EventMap、29のイベント |
| @mcp-suite/クライアントマネージャー | 同期クロスサーバー通信 | McpClientManager, callTool() |
| @mcpスイート/データベース | 移行を伴う基本的な SQLite ストア | BaseStore、移行ユーティリティ |
| @mcp-suite/テスト | テスト ユーティリティ: ハーネス、モック、トランスポート | createTestHarness(), MockEventBus |
| @mcp-suite/cli | サーバー管理用の CLI ユーティリティ | 起動、停止、ステータスサーバーのコマンド |
主要なアーキテクチャ パターン
31 台の MCP サーバーの開発中に、繰り返し発生するアーキテクチャ パターンが明らかになりました。 一貫性、テスト容易性、保守容易性を保証します。
1. サーバーファクトリーパターン
各サーバーは、 ファクトリー関数 オプションのパラメータを使用して柔軟性を最大限に高めます。
export function createMyServer(options?: {
eventBus?: EventBus;
clientManager?: McpClientManager;
storeOptions?: { inMemory?: boolean; dbPath?: string };
}) {
const server = new McpServer({
name: "my-server",
version: "1.0.0",
});
const store = new MyStore(options?.storeOptions);
// Registra i tool con dipendenze opzionali
registerAddItem(server, store, options?.eventBus);
registerGetStats(server, store, options?.clientManager);
// Collaboration: attivata solo se c'è un event bus
if (options?.eventBus) {
setupCollaborationHandlers(options.eventBus, store);
}
return { server, store };
}
2. ツールごとに 1 つのファイル
各ツールは独自のファイルに分離され、依存関係を受け取る純粋な関数として登録されます。
// tools/add-item.ts
export function registerAddItem(
server: McpServer,
store: MyStore,
eventBus?: EventBus,
): void {
server.tool(
"add-item",
"Add a new item to the store",
{ title: z.string(), content: z.string() },
async ({ title, content }) => {
try {
const item = store.addItem({ title, content });
eventBus?.publish("items:created", { id: item.id, title });
return {
content: [{ type: "text", text: JSON.stringify(item, null, 2) }],
};
} catch (error) {
return {
content: [{
type: "text",
text: `Error: ${error instanceof Error ? error.message : String(error)}`,
}],
isError: true,
};
}
},
);
}
3. コラボレーションのファイアアンドフォーゲット
イベントは、fire-and-forget パターンで発行されます。サーバーがイベントを発行します。 応答を待たずに続行します。これにより、サーバーが完全に分離されます。
// Il server pubblica senza attendere
eventBus?.publish("scrum:sprint-started", {
sprintId: sprint.id,
name: sprint.name,
});
// Un altro server reagisce nel proprio collaboration.ts
eventBus.subscribe("scrum:sprint-started", (payload) => {
store.autoCreateBudget(payload.sprintId, payload.name);
});
貢献方法
テックMCP そしてプロジェクト オープンソースと貢献は歓迎されます。貢献プロセスは標準的なワークフローに従います。
前提条件
- Node.js >= 20.0.0
- pnpm >= 9.0.0
- TypeScript とモデル コンテキスト プロトコルの基礎知識
開発環境のセットアップ
# 1. Fork e clone del repository
git clone https://github.com/<tuo-utente>/Tech-MCP.git
cd Tech-MCP
# 2. Installa le dipendenze
pnpm install
# 3. Build completo di tutti i pacchetti e server
pnpm build
# 4. Verifica che tutto compili correttamente
pnpm typecheck
寄付の種類
-
新しい MCP サーバーを追加する: ディレクトリ内に新しいサーバーを作成します
servers/標準化された構造 (package.json、tsconfig.json、src/index.ts、src/server.ts、src/tools/、src/services/) に従う -
既存のサーバーにツールを追加する: ファイルを作成します
servers/<nome>/src/tools/オプションの依存関係を伴うロギングパターンに従います -
イベントを追加する: イベントを定義します
packages/event-bus/src/events.ts、 適切なツールで公開し、コラボレーション ハンドラーでサブスクライブします。 -
コラボレーションハンドラーを実装する: 多くの
collaboration.ts含む ハンドラープレースホルダーvoid payload。実際のロジックの実装は貴重な貢献です - テストの作成: ストア単体テスト、ツール統合テスト、サーバー間配線テスト
コード規約
規則と慣例
- フォーマッタ: 一重引用符、末尾のカンマ、100 文字の行幅を使用するとよりきれいになります
- 輸入品: 使用
import type { ... }種類別 - エラー: いつも
error instanceof Error ? error.message : String(error) - ネーミングツール: ケバブハウス (
create-sprint、 ないcreateSprint) - イベントのネーミング:
dominio:azione-kebab-case - ブランチ Git:
feature/nome-feature,fix/nome-fix - 専念: 命令的、簡潔 (例: 「時間追跡に自動タイマーを追加する」)
- PR: PR のための機能/修正、明確な説明付き
レビュープロセス
- フォーク GitHub 上のリポジトリ
- ブランチを作成する からの
main - 埋め込む プロジェクトの規約に従う
- ビルドとタイプチェック:
pnpm build && pnpm typecheck - 専念 明確で説明的なメッセージを伴う
- プルリクエストを開く に向かって
main - 答え レビューフィードバックへ
助けが必要な領域
このプロジェクトには、特に貢献が歓迎される分野がいくつかあります。
寄付が求められています
| エリア | 優先度 | 困難 |
|---|---|---|
| すべてのツールの単体テスト | 高い | 平均 |
| Redis EventBus の実装 | 高い | 平均 |
| コラボレーションハンドラの完了 | 平均 | 低い |
| GitHub アクション CI/CD | 平均 | 低い |
| Webダッシュボードの監視 | 低い | 高い |
| プラグインシステム | 低い | 高い |
ロードマップと今後の展開
Tech-MCP は進化するプロジェクトです。開発予定区域が整理される 優先度順:
優先度 1: Redis EventBus
現在、EventBus は以下でのみ動作します。 LocalEventBus (進行中)。導入用
real では、各サーバーは個別のプロセスであり、外部メッセージ ブローカーとして機能します。
Redis を使用した実装により、MCP サーバー間のプロセス間通信が可能になります。
異なるマシンに分散されます。
優先度 2: リソースとプロンプト MCP
現在、Tech-MCP はプリミティブのみを使用します ツール。 MCPの仕様 また、リソース (URI を持つ読み取り専用データ) とプロンプト (構造化ワークフローのテンプレート) も定義します。 これらのプリミティブを追加すると、サーバーの機能が大幅に強化されます。
優先度 3: Web ダッシュボード
すべてのサーバーとイベントのステータスをリアルタイムで表示する Web ダッシュボード ツールの使用状況のメトリクスとヘルスチェックが公開されています。
優先度 4: プラグイン システム
レジストリ、ホットリロード ツール、共有マーケットプレイスを備えたサードパーティのプラグイン アーキテクチャ。
学んだ教訓
モノリポジトリで 31 個の MCP サーバーを構築することで、応用できる貴重な教訓が得られました。 中大規模のソフトウェア プロジェクト:
1. 標準化の成果
各サーバーの標準化された構造(ファクトリー機能、ツールごとに 1 つのファイル、分離されたストア、 別個のコラボレーション ハンドラー) により、新しいサーバーの開発時間が大幅に短縮されました。 最初の 5 つのサーバーの後、新しいサーバーの作成にはほとんど時間がかかりませんでした。 統合されました。
2. 共有パッケージが鍵
共通ロジックを共有パッケージ (コア、イベントバス、データベース、テスト) に抽出する必要がなくなりました。 コードの重複を防止し、すべてのサーバー間で一貫性を確保します。パッケージへの変更 共有は、それを使用するすべてのサーバーに自動的に伝播されます。
3. ツールの説明は重要です
AI は説明のみに基づいてどのツールを呼び出すかを選択します。説明 曖昧なものは十分に活用されていないツールを生み出し、正確な説明はスムーズなエクスペリエンスを生み出します。 説明の作成に時間を投資することは、大きな利益をもたらす投資です。
4. Fire-and-Forget によりすべてが簡素化される
イベントのファイアアンドフォーゲットパターンにより、アーキテクチャが大幅に簡素化されました。 サーバーは誰がイベントを受信するかを知らずにイベントを発行し、コラボレーション ハンドラーが反応します 直結なし。これにより、新たなコラボレーションを追加できるようになりました 既存のサーバーを変更することなく。
5. インメモリテストが鍵
テスト用に作成されたメモリ内データベースを使用して各サーバーをインスタンス化する機能
高速、分離性、再現性が高い。への投資 createTestHarness()
e MockEventBus それは開発のスピードにおいて非常に大きな成果を上げました。
シリーズ概要
この 14 の記事シリーズでは、MCP から 生産。取り上げられるトピックの概要は次のとおりです。
シリーズの完全なインデックス
| # | 主題 | レベル |
|---|---|---|
| 01 | モデル コンテキスト プロトコルの概要 | 初心者 |
| 02 | プリミティブ MCP: ツール、リソース、プロンプト | 初心者 |
| 03 | Monorepo アーキテクチャとプロジェクト パターン | 中級 |
| 04 | TypeScript で最初の MCP サーバーを作成する | 中級 |
| 05 | MCP クライアントの作成と HTTP のトランスポート | 中級 |
| 06 | 共有パッケージ: コア、EventBus、およびデータベース | 中級 |
| 07 | 生産性向上のためのサーバー | 中級 |
| 08 | DevOps とデータベース サーバー | 中級 |
| 09 | プロジェクト管理用サーバー | 中級 |
| 10 | 高度なサーバー: データベースとテスト | 高度な |
| 11 | 高度なサーバー: オーケストレーションとレジストリ | 高度な |
| 12 | サーバー間および EventBus のコラボレーション | 高度な |
| 13 | テスト、ベストプラクティス、本番環境 | 高度な |
| 14 | Tech-MCP: オープンソース プロジェクトの完全な概要 | 高度な |
結論
Il モデルコンテキストプロトコル インタラクションにおけるパラダイムシフトを表す 開発者と人工知能の間。単なる包み紙ではありません API 呼び出しに対して、 構造化されたプロトコル 自動検出が可能になります。 強力な型指定、双方向通信、ネイティブ構成可能性、およびサーバー間のコラボレーション。
Con テックMCP 私たちは、以下をカバーする 31 台の MCP サーバーの完全なエコシステムを構築できることを実証しました。 ソフトウェア開発ライフサイクル全体: コード管理からプロジェクト管理まで、 テストから展開、モニタリングからプロジェクト間の分析まで。
プロジェクトe オープンソース そして常に進化しています。あらゆる貢献は、たとえ何であれ、 新しいサーバー、テスト、修正、または新機能、そしてようこそ。インタラクションの未来 man-AI は MCP のようなオープンで構成可能なプロトコルを通過し、Tech-MCP はそうしたいと考えています。 この分野を探索したい人にとっては参考になります。
このシリーズをフォローしていただきありがとうございます。完全なコード、ドキュメント、説明書 貢献することができます GitHub.







