mcpField
A
AutoMCP

AutoMCP

ローカル
github.com/beaukuhn開発ツール184 週間前に更新

AutoMCP について

AutoMCPは、YAMLのサービス定義からMCP対応のサーバーとクライアントのコードを生成します。MCPサービスを開発する人向けで、ツールハンドラーのひな形も作成します。現在も開発中です。

主な機能

  1. 01MCPサーバーコードの生成
  2. 02クライアントライブラリの生成
  3. 03ツールハンドラーのひな形作成
  4. 04サービス単位での生成コード整理

活用シーン

  1. 01YAML定義からサーバーのひな形を作成
  2. 02サービス用クライアントを生成
  3. 03ツール実装用のハンドラーひな形を作成

MCP 対応

サービス定義をもとに、MCP対応サーバーコードとクライアントライブラリを生成します。機能実装用のツールハンドラーひな形も出力します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

AutoMCP

AutoMCP のロゴ

AutoMCP は、YAML サービス定義に基づいてサーバーコードとクライアントコードを自動生成する、Model Context Protocol 用のコードジェネレーターです。

現在開発中です。このリポジトリには、npm、pypl などへのパッケージ化が完了した際に削除される予定のファイルが含まれています。

エージェント型ワークフローでの使用方法については、MCP Agent を参照してください。

機能

  • MCP 互換のサーバーコードを生成します
  • サービスを簡単に利用するためのクライアントライブラリを生成します
  • ツールの機能を実装するためのハンドラースタブを作成します
  • サービスごとに専用のディレクトリにコードを整理します

はじめに

前提条件
  • Node.js 18 以降
  • npm または yarn
インストール
  1. このリポジトリをクローンします
  2. 依存関係をインストールします:
    npm install
    
使い方
サービスの定義

services/[service-name]/ ディレクトリに、次の構造の YAML ファイルを作成します:

service:
  name: ServiceName
  version: 1.0.0
  description: Description of your service

tools:
  - name: toolName
    description: Description of what the tool does
    parameters:
      - name: paramName
        type: string
        description: Description of the parameter
    returns:
      type: string
      description: Description of what the tool returns
コードの生成

ジェネレータースクリプトを実行します:

./bin/automcp.sh generate

これにより、次の処理が行われます:

  1. generated/[service-name]/[service-name]_server.ts にサーバーコードを作成します
  2. generated/[service-name]/[service-name]_client.ts にクライアントコードを作成します
  3. src/custom/[service-name]/[tool-name]Handlers.ts にハンドラースタブを作成します
ハンドラーの実装

生成されたハンドラーファイルを src/custom/[service-name]/ で編集し、ツールの機能を実装します。

生成されたクライアントの使用
import { ServiceNameClient } from "./generated/service-name/service_name_client.js";

async function main() {
  const client = new ServiceNameClient();

  try {
    await client.connect();

    // Call a tool
    const result = await client.toolName({ paramName: "value" });
    console.log(result);
  } finally {
    await client.disconnect();
  }
}

main().catch(console.error);

例

生成されたクライアントの使用方法をすべて確認するには、examples/client_example.ts ファイルを参照してください。

テスト

テストスクリプトを使用して、サービスの機能を確認します:

./bin/test-service.sh [service-name]

一時的なディレクトリ構成(パッケージ化に向けて改善予定)

.
├── bin/                    # Scripts
├── examples/               # Example usage
├── generated/              # Generated code
│   ├── service-name/       # Service-specific generated code
│   │   ├── service_name_server.ts
│   │   └── service_name_client.ts
├── services/               # Service definitions
│   └── service-name/       # Service-specific YAML files
├── src/                    # Source code
│   ├── custom/             # Custom handler implementations
│   │   └── service-name/   # Service-specific handlers
│   │       └── toolHandlers.ts
│   └── generator.ts        # Code generator
└── templates/              # Code templates
    ├── client.ts.ejs       # Client template
    └── server.ts.ejs       # Server template

今後の予定

  • 複数のプログラミング言語をサポートします
  • 生成されたコードとスキーマが乖離しないよう、カスタムの型付けを追加します
  • 既存の MCP ソリューションと連携します
  • プロンプトとリソースの仕組みを実装します
  • 複雑なツールチェーンに対応する、より高度な構成の仕組みを追加します

ライセンス

MIT

コメント

MCP は初めてですか?

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

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