mcpField
M
MCP-BOS: 可扩展的MCP服务器框架

MCP-BOS: 可扩展的MCP服务器框架

ローカル
yanfukun.com開発ツール382 週間前に更新

MCP-BOS: 可扩展的MCP服务器框架 について

MCP-BOSは、Claude Desktop向けのMCPサーバーを構築するPythonフレームワークです。機能をモジュールとして自動検出し、宣言的な設定で管理できるため、コアコードを変更せずに拡張できます。

主な機能

  1. 01機能のモジュール化
  2. 02モジュールの自動検出と読み込み
  3. 03config.jsonによる宣言的な設定
  4. 04モジュールの有効化・無効化
  5. 05ログ機能と階層型アーキテクチャ

活用シーン

  1. 01MCPサーバーへの独立した機能の追加
  2. 02プロジェクトに合わせたモジュールとパラメーターの設定
  3. 03Claude Desktopでのサーバー実行とデバッグ

MCP 対応

FastMCPを基盤とし、MCPクライアント向けにツール、リソース、プロンプトテンプレートを登録します。MCP CLIでClaude Desktopに接続でき、MCP Inspectorでテストできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP-BOS:拡張可能なMCPサーバーフレームワーク

MCP-BOS:モジュール式で拡張可能なModel Context Protocolサーバーフレームワーク

規約に基づく自動モジュール検出機能を備えた、Claude Desktop向けの柔軟なMCPサーバーフレームワークです。シンプルなモジュールインターフェースと宣言的な設定により、コアコードを変更せずにAIアプリケーションの機能を簡単に拡張できます。FastMCP標準に対応し、ツール、リソース、プロンプトテンプレートの完全な登録機能を備えています。

特長

  • 🧩 モジュール式設計:機能を自己完結型のモジュールとして整理し、拡張を容易にします
  • 🔍 自動検出:設定より規約を優先するモジュール読み込み方式です
  • ⚙️ 宣言的な設定:config.jsonでモジュールとパラメーターを柔軟に設定できます
  • 🔌 プラグアンドプレイ:インターフェースに準拠したモジュールディレクトリを追加するだけで、新しい機能を追加できます
  • 🔒 安全で安定:階層型アーキテクチャにより、コアシステムの安定性と信頼性を確保します
  • 📝 詳細なログ:充実したログシステムにより、デバッグと監視を容易にします
  • 🖥️ Claude Desktopとの統合:Claudeと緊密に統合し、AIによる強化された体験を提供します

技術スタック

Python FastMCP Model Context Protocol Claude Desktop JSON モジュール式設計 マイクロカーネルアーキテクチャ

アーキテクチャの考え方

img.png

MCP-BOSフレームワークは、最新のモジュール式アーキテクチャを採用しています。主な設計理念は次のとおりです。

モジュール式設計

フレームワーク全体をモジュール中心に構成し、各機能を独立したモジュールにカプセル化することで、機能を簡単かつ直感的に拡張できます。モジュールは互いに独立しながらも、標準インターフェースを介して連携し、完全なサービスエコシステムを形成します。

自動検出機能

フレームワークはmodulesディレクトリ内のモジュールを自動的に検出するため、各モジュールを手動で登録する必要はありません。この「設定より規約」の方式により、拡張にかかるコストを大幅に削減できます。

宣言的な設定

config.jsonファイルで全体およびモジュール単位の設定を行うため、高い柔軟性を備えています。ニーズに応じて、特定のモジュールを有効化または無効化できます。

階層型アーキテクチャ

フレームワークはコア層とモジュール層に分かれています。コア層はフレームワークの基本機能を担当し、モジュール層は個別のビジネス機能を担当します。この階層型設計により、フレームワークの堅牢性と保守性が高まります。

ディレクトリ構成の説明

mcp-bos/
├── config.json             # 全局配置文件
├── main.py                 # 主入口文件
├── core/                   # 核心系统
│   ├── __init__.py
│   ├── module_registry.py  # 模块注册表
│   ├── module_loader.py    # 模块加载器
│   ├── module_interface.py # 模块接口定义
│   ├── config_manager.py   # 配置管理器
│   └── server.py           # FastMCP服务器适配
├── modules/                # 功能模块目录
│   ├── __init__.py
│   ├── hello_world/        # Hello World示例模块
│   │   ├── __init__.py
│   │   └── hello.py
│   └── ...                 # 其他功能模块
├── utils/                  # 工具函数
│   ├── __init__.py
│   └── helpers.py
└── README.md               # 项目文档
コアコンポーネントの説明
  • main.py:フレームワークのエントリーポイントであり、サーバーの初期化と起動を担当します
  • core/:コアコンポーネントのディレクトリ
    • module_interface.py:すべてのモジュールが実装する必要のあるインターフェースを定義します
    • module_registry.py:登録済みモジュールを管理します
    • module_loader.py:モジュールを自動検出して読み込みます
    • config_manager.py:設定を読み込み、管理します
    • server.py:FastMCPと統合し、サーバー機能を提供します
  • modules/:機能モジュールのディレクトリ。各サブディレクトリは独立したモジュールです
  • utils/:汎用ユーティリティ関数

設定ファイルの構成

config.jsonファイルはフレームワークのコア設定であり、全体設定とモジュール設定の2つの部分に分かれています。

{
  "global": {
    "server_name": "MCP-BOS",
    "debug": true,
    "log_level": "INFO",
    "transport": "stdio",
    "dependencies": ["mcp[cli]"]
  },
  "modules": {
    "hello_world": {
      "enabled": true,
      "message": "Hello, {}!"
    },
    "module_name": {
      "enabled": false,
      "param1": "value1"
    }
  }
}
  • global:全体設定の部分

    • server_name:サーバー名
    • debug:デバッグモードを有効にするかどうか
    • log_level:ログレベル
    • transport:トランスポートプロトコル。通常は"stdio"です
    • dependencies:依存パッケージの一覧
  • modules:モジュール設定の部分。各モジュールに独自の設定セクションがあります

    • enabled:モジュールを有効にするかどうか
    • その他のモジュール固有の設定パラメーター

使用方法

インストール
  1. リポジトリをクローンします。
git clone https://github.com/kinbos/mcp-bos.git
cd mcp-bos
  1. 依存関係をインストールします。
uv pip install mcp[cli]
設定

config.jsonファイルを編集して、サーバーとモジュールを設定します。

  1. サーバー名やログレベルなどの全体パラメーターを設定します
  2. モジュールを有効化または無効化します
  3. モジュール固有のパラメーターを設定します
実行

サーバーは次の方法で実行できます。

  1. 直接実行:
python main.py
  1. uvを使用して実行:
uv run main.py
  1. Claude Desktopと統合:
# 使用mcp CLI集成到Claude Desktop
mcp install main.py
  1. 開発・デバッグモード:
# 使用mcp Inspector测试服务器
mcp inspect main.py
新しいモジュールの追加
  1. modulesディレクトリに新しいモジュールディレクトリを作成します。
mkdir modules/my_module
  1. 必要なファイルを作成します。
touch modules/my_module/__init__.py
touch modules/my_module/my_module.py
  1. モジュールインターフェースを実装します。
# modules/my_module/my_module.py
from core.module_interface import ModuleInterface

class MyModule(ModuleInterface):
    def get_info(self):
        return {
            "name": "my_module",
            "version": "1.0.0",
            "description": "我的自定义模块",
            "author": "kinbos 严富坤",
            "email": "[email protected]",
            "website": "htttps://www.yanfukun.com"
        }
        
    def register(self, server):
        @server.tool()
        def my_tool(param: str) -> str:
            """自定义工具"""
            return f"处理参数: {param}"
            
        @server.resource("my://resource")
        def my_resource() -> str:
            """自定义资源"""
            return "资源内容"
  1. モジュールクラスをエクスポートします。
# modules/my_module/__init__.py
from modules.my_module.my_module import MyModule

__all__ = ['MyModule']
  1. 設定ファイルでモジュールを有効にします。
{
  "modules": {
    "my_module": {
      "enabled": true,
      "custom_param": "value"
    }
  }
}
  1. サーバーを再起動すると、新しいモジュールが自動的に検出され、読み込まれます

よくある質問

モジュールが読み込まれない
  • モジュールのディレクトリ構成が正しいか確認してください
  • __init__.pyファイルでモジュールクラスがエクスポートされているか確認してください
  • 設定ファイルでモジュールが有効になっているか確認してください
  • ログ出力を確認して、詳しいエラー情報を確認してください
エンコードの問題

Windows環境で文字化けが発生した場合は、正しい環境変数が設定されていることを確認してください。

"env": {
  "PYTHONIOENCODING": "utf-8"
}
サーバー接続の問題
  • Claude Desktopが正しく設定されていることを確認してください
  • 依存関係が正しくインストールされていることを確認してください
  • Claude Desktopのログファイルを確認してください

コントリビューションガイド

コントリビューションを歓迎します。次の手順に従ってください。

  1. プロジェクトをForkします
  2. 機能ブランチを作成します
  3. 変更をコミットします
  4. Pull Requestを作成します

作者

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。