mcpField
M
Mime (mcp Integrated Modern Executor)

Mime (mcp Integrated Modern Executor)

ローカル
github.com/akashrtdブラウザ自動化112 週間前に更新

Mime (mcp Integrated Modern Executor) について

MIMEは、MCPをネイティブにサポートするGo製のブラウザー自動化サーバーです。ウェブページの閲覧や操作を行うAIエージェント向けに、単一バイナリでブラウザー制御、ページ抽出、スクリーンショット、複数ページのクロールを提供します。

主な機能

  1. 01Go製ブラウザー自動化
  2. 02ランタイム依存のない単一バイナリ
  3. 03ページ遷移、クリック、入力、スクロール
  4. 04テキスト、HTML、メタデータ、リンクの抽出
  5. 05スクリーンショット、クロール、サイトマップ作成
  6. 06ステルスモードと操作トレース

活用シーン

  1. 01ページを開いて記事の見出しを抽出
  2. 02フォームを確認して情報を入力
  3. 03ページ確認用のスクリーンショットを撮影
  4. 04サイトをクロールしてMarkdownを保存

MCP 対応

MIMEはMCPサーバーとして動作し、ページ遷移、操作、抽出、スクリーンショット、クロール、マッピングのツールをMCPクライアントに公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MIME

MIME(MCP-Integrated Modern Executor)は、ネイティブの**Model Context Protocol(MCP)**サポートを備えた、Go で構築された高性能なブラウザー自動化ツールです。

Go Version License MCP

🏆 パフォーマンス

指標MIMEPuppeteerPlaywrightPuppeteer 比Playwright 比
起動650 ms855 ms720 ms24% 高速10% 高速
ナビゲーション187 ms808 ms450 ms77% 高速58% 高速
スクリーンショット95 ms163 ms122 ms42% 高速22% 高速
抽出2 ms17 ms12 ms88% 高速83% 高速
合計934 ms1843 ms1304 ms49% 高速28% 高速

✨ 特長

  • 🚀 高性能 - Go と Rod(Chrome DevTools Protocol)で構築
  • 🤖 MCP ネイティブ - Claude などの AI エージェントがブラウザーを直接操作できます
  • 📦 単一バイナリ - ランタイム依存関係なし(Node/Python は不要)
  • 🛡️ ステルスモード - 検出防止とフィンガープリントのマスキング機能を内蔵
  • 🕵️ トレースモード - デバッグ用に、スクリーンショット付きですべての操作を記録
  • ⚡ 自動待機 - インテリジェントな安定性チェック(アニメーションや有効状態を待機)

🆚 Playwright との比較

機能MIMEPlaywright
アーキテクチャシングル静的バイナリ(Go)Node.js ランタイム + NPM モジュール
用途AI エージェントと LLME2E テストと QA
インストールgo install(設定不要)npm install + npx playwright install
パフォーマンス高い(Go + Raw CDP)中程度(JS ブリッジのオーバーヘッド)
ステルスネイティブ(統合済み)プラグインが必要(stealth-evasions)
セキュリティサンドボックス対応、file:// をブロックデフォルトでローカルへの完全なアクセス
エコシステムMCP 優先(Claude/Cursor)開発者優先(VS Code / CI)

🚀 インストール

注記: これはプライベートリポジトリです。インストールするには、リポジトリへのアクセス権が必要です。

オプション 1:ソースからビルド(推奨)
git clone [email protected]:akashrtd/mime.git
cd mime
make install
オプション 2:Go でインストール
# Requires GOPRIVATE to be set for private repo access
export GOPRIVATE=github.com/akashrtd/*
go install github.com/akashrtd/mime/cmd/mime@latest

make build を使って、システム全体にインストールせずに ./bin/mime にバイナリを作成することもできます。

🤖 MCP サーバー(AI 統合)

MIME は MCP サーバーとして使用でき、AI アシスタントがブラウザーを操作できます。

Claude Desktop の設定

~/Library/Application Support/Claude/claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "mime": {
      "command": "/path/to/mime",
      "args": ["serve"]
    }
  }
}
利用可能な MCP ツール
ツール説明
navigateURL に移動します
clickCSS セレクターで要素をクリックします
type要素にテキストを入力します
extract要素からテキストを抽出します
screenshotスクリーンショットを撮影します(PNG/JPEG)。オプション:format、quality
executeページ上で JavaScript を実行します
htmlページの HTML コンテンツを取得します
wait_for要素(テキスト/CSS)を待機します
scroll要素または位置までスクロールします
hover要素にカーソルを合わせます
markdownページのコンテンツを Markdown として取得します
metadataページのメタデータを抽出します
linksすべてのリンクを抽出します
get_cookiesすべての Cookie を取得します
clear_cookiesすべての Cookie を消去します
observeAI エージェント向けにページを分析します
act自然言語による操作を実行します
crawl複数ページをクロールします
mapサイト構造をマッピングします
Claude 向けプロンプトの例
  • "https://news.ycombinator.com に移動して、トップ記事のタイトルを抽出してください"
  • "example.com にアクセスし、スクリーンショットを撮影して、表示内容を説明してください"
  • "ログインボタンをクリックして、フォームにメールアドレスを入力してください"
  • "ページを確認して、利用可能なフォームを教えてください"
  • "https://example.com をクロールして、Markdown をファイルに保存してください"

📖 Go ライブラリの使い方

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/akashrtd/mime/pkg/mime"
)

func main() {
    m, err := mime.New(context.Background())
    if err != nil {
        log.Fatal(err)
    }
    defer m.Close()

    m.Navigate("https://example.com")
    title, _ := m.Extract("h1")
    fmt.Println(title)
}

🛠️ CLI コマンド

# Start MCP server
mime serve

# Start with visible browser (debug mode)
mime serve --visible

# Start with stealth mode enabled
mime serve --stealth


# Show version
mime version

📦 TypeScript SDK

Node.js プロジェクトに TypeScript SDK をインストールします:

npm install @mime-browser/sdk
import { MIME } from "@mime-browser/sdk";

const browser = await MIME.connect();
await browser.navigate("https://example.com");
const title = await browser.extract("h1");
await browser.close();

詳しいドキュメントについては、sdk/typescript/README.md を参照してください。

📊 ベンチマーク

詳細なパフォーマンス比較については、benchmark/RESULTS.md を参照してください。

# Run benchmarks
go run benchmark/mime/benchmark.go

📂 プロジェクト構成

mime/
├── cmd/mime/        # CLI entry point
├── pkg/mime/        # Core library code
├── sdk/             # Client SDKs
├── examples/        # Usage examples
├── Makefile         # Build commands
└── go.mod

🛠️ 開発

開発タスクを標準化するために Makefile を使用しています。

# Show available commands
make help

# Build binary
make build

# Run tests
make test

🗺️ ロードマップ

  • コアとなるブラウザー自動化
  • シンプルな Go API
  • CLI ツール
  • MCP サーバーの統合
  • TypeScript SDK
  • CI/CD と自動リリース
  • セッションの永続化
  • Markdown とメタデータ
  • AI エージェント向けツール(Observe、Act)
  • 複数ページ対応(Crawl、Map)
  • 接続プーリング(ライブラリ)- pkg/mime/pool.go に実装済み
  • 再試行ロジック - pkg/mime/retry.go に実装済み
  • ステルスモード(検出防止)

📄 ライセンス

MIT ライセンス - LICENSE を参照してください

🙏 謝辞

  • Rod - 高水準の DevTools Protocol ドライバー
  • MCP - Anthropic による Model Context Protocol

コメント

MCP は初めてですか?

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

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