mcpField
A
AI Tool Discovery Agent

AI Tool Discovery Agent

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

AI Tool Discovery Agent について

Lyra Tool Discovery は、暗号資産、DeFi、web3 エコシステム向けのツールを探すための AI 支援型コマンドラインツールです。GitHub と npm から MCP サーバーや関連 API を検索し、AI で分析してプラグイン設定を生成します。新しいツールを素早く評価したい開発者やプラグインマーケットプレイスの運営者を対象としています。

主な機能

  1. 01GitHub と npm からの候補ツール検索
  2. 02暗号資産関連キーワードとリポジトリの更新期間による絞り込み
  3. 03OpenAI と Anthropic のモデルによる分析
  4. 048 種類のプラグインテンプレートによる設定生成
  5. 05コマンドライン、TypeScript SDK、JSON 出力

活用シーン

  1. 01DeFi アプリケーション向け MCP サーバーの発見と評価
  2. 02JSON 出力を用いた CI/CD パイプラインでのツール一覧の取り込み
  3. 03ドライランモードによる候補ツールの事前確認

MCP 対応

MCP サーバーの接続設定を生成するツールで、mcp-http と mcp-stdio のテンプレートがリモートとローカルの MCP サーバーにそれぞれ対応します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

🔮 Lyra Tool Discovery

MCP エコシステム向けの AI を活用したツールディスカバリー

TypeScript PRs Welcome AI Powered

ドキュメント · CLI リファレンス · 例 · コントリビューション


📖 概要

Lyra Tool Discovery は、暗号資産、DeFi、ブロックチェーン、web3 エコシステムに特化して設計された、AI を活用した自動化ツールです。MCP(Model Context Protocol)サーバーを手動で発見し、評価し、暗号資産関連のアプリケーションに統合するという厄介な問題を解決します。GitHub を何時間も検索し、README を読み、適切な統合アプローチを考える代わりに、Lyra がそれを数秒で実行します。

このツールは GitHub や npm など複数のソースをクロールして、暗号資産関連の MCP サーバー、API、プラグインを見つけ出します。結果をフィルタリングし、ブロックチェーン、DeFi、web3、暗号資産ツール(Ethereum、Solana、Bitcoin、ウォレット、トークン、NFT、DEX、ステーキング、ブリッジなどを含む)に絞り込みます。その後 Lyra は最先端の AI(OpenAI GPT-4o または Anthropic Claude)を活用して、発見された各ツールを分析し、すぐに使えるプラグイン設定を自動生成します。

🪙 暗号資産へのフォーカス

Lyra は以下に関連するツールの発見に最適化されています:

  • ブロックチェーンネットワーク — Ethereum、Solana、Bitcoin、レイヤー2、ブリッジ
  • DeFi プロトコル — DEX、レンディング、ステーキング、イールドファーミング、流動性
  • Web3 インフラストラクチャ — ウォレット、RPC プロバイダー、インデクサー、オラクル
  • トークン標準 — ERC-20、ERC-721、NFT、トークンスワップ
  • スマートコントラクト — 開発、監査、デプロイツール
  • オンチェーンデータ — 分析、エクスプローラー、トランザクション追跡

Lyra は、新しいツールを迅速にオンボーディングする必要がある 暗号資産 MCP エコシステムの開発者、暗号資産プラグインをキュレーションする plugin.delivery のような プラグインマーケットプレイスの運営者、DeFi ツールの発見とデプロイのための CI/CD パイプラインを構築する 自動化エンジニアのために作られています。

このツールは、ディスカバリーからデプロイまでのパイプラインにおける重要な要素です:lyra-tool-discovery → github-to-mcp → plugin.delivery → SperaxOS ユーザー。発見と分類のフェーズを自動化することで、Lyra は最小限の人的介入で完全に自動化されたプラグインオンボーディングを可能にします。


✨ 機能

🤖 マルチプロバイダー AI
  • OpenAI — GPT-4o、GPT-4-turbo、GPT-3.5-turbo
  • Anthropic — Claude Sonnet 4、Claude Opus
  • 環境変数からの自動検出
  • CLI または設定によるカスタムモデル選択
  • プロバイダー間のインテリジェントなフォールバック
📦 8 つのプラグインテンプレート
  • mcp-http — リモート MCP サーバー(HTTP/SSE)
  • mcp-stdio — ローカル MCP サーバー(stdio)
  • openapi — REST API 統合
  • standalone — 完全な React アプリケーション
  • markdown — リッチテキスト/ドキュメント
  • default — 設定可能なプラグイン
  • settings — ユーザー設定プラグイン
  • basic — シンプルな関数プラグイン
🔍 ディスカバリーソース
  • GitHub — リポジトリ、トピック、README の検索
  • npm — パッケージレジストリの検索
  • 🔜 Smithery(MCP ディレクトリ)
  • 🔜 OpenAPI Directory
  • 🔜 RapidAPI
### 🪙 暗号資産フィルタリング
  • キーワード — crypto, defi, blockchain, web3

  • ネットワーク — ethereum, solana, bitcoin

  • プロトコル — wallet, token, nft, dex, staking

  • 経過期間フィルター — 12 か月以内に更新されたリポジトリのみ

  • スマート検証 — AI が暗号資産との関連性を検証

  • フル機能のコマンドラインインターフェース

  • 自動化向けの Node.js/TypeScript SDK

  • CI/CD パイプライン向けの JSON 出力

  • テスト用のドライランモード

  • プログレスインジケーターとリッチな出力

🖥️ CLI とプログラム API
  • フル機能のコマンドラインインターフェース
  • 自動化向けの Node.js/TypeScript SDK
  • CI/CD パイプライン向けの JSON 出力
  • テスト用のドライランモード
  • プログレスインジケーターとリッチな出力
🧪 テストと検証
  • 安全なテストのための --dry-run モード
  • AI 呼び出しなしで検出されたツールを一覧表示
  • デプロイ前に設定を検証
  • トラブルシューティング用のデバッグログ
📤 柔軟な出力
  • 他のツールにパイプするための構造化 JSON
  • SperaxOS 向けのクイックインポート形式
  • plugin.delivery 向けのプラグインマニフェスト
  • リッチなフォーマットのコンソール出力

🪙 暗号資産検出キーワード

Lyra は検出結果を自動的にフィルタリングし、暗号資産/DeFi/ブロックチェーン/web3 ツールに焦点を当てます。以下のキーワードは、検索クエリと結果の検証の両方に使用されます:

サポートされているすべてのキーワードを表示
カテゴリキーワード
一般crypto, cryptocurrency, defi, blockchain, web3
ネットワークethereum, eth, solana, sol, bitcoin, btc, chain
トークンtoken, erc20, erc721, nft
DeFidex, swap, staking, yield, lending, liquidity, vault, bridge
インフラストラクチャwallet, protocol, onchain, on-chain, smart contract
ライブラリweb3.js, ethers, viem, wagmi, rainbowkit
プロトコルuniswap, aave, compound

これらのキーワードのいずれにも一致しないツールは自動的に除外され、暗号資産に関連する MCP サーバーのみを検出できるようになります。

経過期間フィルタリング

デフォルトでは、Lyra は 過去 12 か月以内 に更新されたツールのみを検出します。これにより、活発にメンテナンスされているプロジェクトを見つけることができます。--max-age を使用して調整してください:

# Only tools updated in the last 6 months
lyra-discover discover --max-age 6

# Only tools updated in the last 3 months (bleeding edge)
lyra-discover discover --max-age 3

# Tools up to 24 months old
lyra-discover discover --max-age 24

クイックスタート

インストール
# Global install (recommended for CLI usage)
pnpm add -g @nirholas/lyra-tool-discovery

# Or with npm
npm install -g @nirholas/lyra-tool-discovery

# Or as a project dependency
pnpm add @nirholas/lyra-tool-discovery

# Or run directly with npx (no install)
npx @nirholas/lyra-tool-discovery discover --help
環境設定
# Using OpenAI (default when both keys present)
export OPENAI_API_KEY="sk-..."

# Or using Anthropic
export ANTHROPIC_API_KEY="sk-ant-..."

# Optional: Force a specific provider
export AI_PROVIDER="anthropic"  # or "openai"

# Optional: Specify a model
export AI_MODEL="claude-sonnet-4-20250514"

# Optional: GitHub token for higher rate limits
export GITHUB_TOKEN="ghp_..."
最初の検出
# Discover MCP servers from GitHub and npm
lyra-discover discover --sources github,npm --limit 10

# Run in dry-run mode (no AI calls)
lyra-discover discover --dry-run --limit 20

# Analyze a specific GitHub repository
lyra-discover analyze-repo anthropics claude-mcp

# Analyze an npm package
lyra-discover analyze-npm @modelcontextprotocol/server-github

# Check available AI providers
lyra-discover providers

# View all plugin templates
lyra-discover templates

📖 CLI リファレンス

グローバルオプション
フラグエイリアス説明デフォルト
--provider-pAI プロバイダー(openai または anthropic)環境変数から自動検出
--model-m使用する AI モデルプロバイダーのデフォルト
--version-Vバージョン番号を表示—
--help-hヘルプを表示—
コマンド
discover

設定されたソース全体で MCP ツールと API を検索します。

lyra-discover discover [options]
オプションエイリアス説明デフォルト
--sources-sカンマ区切りのソース: github、npm、awesome-listgithub,npm
--limit-lソースごとに検出するツールの最大数5
--max-age-a検出されたリポジトリの最大経過月数12
--dry-run-dAI 分析なしでツールを一覧表示false
--provider-p使用する AI プロバイダー自動検出
--model-m使用する AI モデルプロバイダーのデフォルト

例:

# Discover crypto MCP tools from GitHub only, limit 10 results
lyra-discover discover --sources github --limit 10

# Find tools updated in the last 6 months only
lyra-discover discover --max-age 6 --limit 20

# Dry run to preview what would be analyzed
lyra-discover discover --dry-run --sources npm --limit 20

# Use Anthropic Claude for analysis
lyra-discover discover --provider anthropic --model claude-sonnet-4-20250514

# Use OpenAI GPT-4o for analysis
lyra-discover discover --provider openai --model gpt-4o

出力例:

🔍 Discovering crypto/DeFi/web3 tools from: github, npm
📅 Max age: 12 months
  Found 5 from github
  Found 3 from npm

📊 Total discovered: 8 tools
🪙 Crypto-related: 6 tools
🔌 MCP-compatible: 5 tools

🤖 Analyzing: mcp-server-ethereum...
  Template: mcp-stdio
  Reasoning: Has MCP SDK dependency and bin entry for local execution

✅ Analyzed 5 tools

📦 Generated Configs:

--- mcp-server-ethereum ---
Template: mcp-stdio
Config: {
  "identifier": "mcp-server-ethereum",
  "customParams": {
    "mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-server-ethereum"]
    }
  }
}

analyze-repo

特定の GitHub リポジトリを分析します。

lyra-discover analyze-repo <owner> <repo> [options]
引数説明
ownerGitHub リポジトリのオーナー/組織
repoリポジトリ名
オプションエイリアス説明
--provider-p使用する AI プロバイダー
--model-m使用する AI モデル

例:

# Analyze the official MCP GitHub server
lyra-discover analyze-repo modelcontextprotocol servers

# Analyze with specific model
lyra-discover analyze-repo anthropics claude-mcp --model gpt-4o

# Analyze a community MCP server
lyra-discover analyze-repo punkpeye mcp-server-obsidian

出力例:

🔍 Fetching modelcontextprotocol/servers...
🤖 Analyzing...

✅ Analysis complete:
  Template: mcp-stdio
  Reasoning: Repository contains multiple MCP servers with bin entries, using @modelcontextprotocol/sdk

📋 Quick Import JSON:
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"]
    }
  }
}

analyze-npm

特定の npm パッケージを分析します。

lyra-discover analyze-npm <package> [options]
引数説明
packagenpm パッケージ名(スコープあり/なし)
オプションエイリアス説明
--provider-p使用する AI プロバイダー
--model-m使用する AI モデル

例:

# Analyze official MCP server packages
lyra-discover analyze-npm @modelcontextprotocol/server-github
lyra-discover analyze-npm @modelcontextprotocol/server-filesystem
lyra-discover analyze-npm @modelcontextprotocol/server-slack

# Analyze community packages
lyra-discover analyze-npm mcp-server-sqlite

providers

設定された環境変数に基づいて、利用可能な AI プロバイダーを表示します。

lyra-discover providers

出力例(キーが設定されている場合):

🤖 AI Provider Configuration

Available providers (based on env vars):
  ✅ openai
  ✅ anthropic

Override with env vars or CLI flags:
  AI_PROVIDER=openai|anthropic
  AI_MODEL=gpt-4o|claude-sonnet-4-20250514|etc.
  --provider openai --model gpt-4o

出力例(キーがない場合):

🤖 AI Provider Configuration

Available providers (based on env vars):
  ⚠️  No API keys found!

Set one of these environment variables:
  - OPENAI_API_KEY     → Use OpenAI (gpt-4o, gpt-4-turbo, etc.)
  - ANTHROPIC_API_KEY  → Use Anthropic (claude-sonnet-4-20250514, etc.)

templates

利用可能なすべてのプラグインテンプレートを説明付きで表示します。

lyra-discover templates

出力:

╔═══════════════════════════════════════════════════════════════════════════════╗
║                     plugin.delivery Plugin Templates                          ║
╠════════════╦════════════╦═══════════════════════════════════════════════════════╣
║ Template   ║ Type       ║ Description                   ║ Use Case           ║
╠════════════╬════════════╬═══════════════════════════════╬════════════════════╣
║ basic      ║ Default    ║ Standard plugin with API      ║ Simple data lookups║
║ default    ║ Default    ║ Plugin with settings UI       ║ Configurable tools ║
║ markdown   ║ Markdown   ║ Rich text output              ║ Formatted reports  ║
║ openapi    ║ OpenAPI    ║ Auto-generated from spec      ║ Existing APIs      ║
║ settings   ║ Default    ║ Plugin with user preferences  ║ Personalized tools ║
║ standalone ║ Standalone ║ Full React application        ║ Interactive UIs    ║
╠════════════╬════════════╬═══════════════════════════════╬════════════════════╣
║ mcp-http   ║ MCP        ║ Streamable HTTP MCP server    ║ Remote MCP tools   ║
║ mcp-stdio  ║ MCP        ║ STDIO-based MCP server        ║ Local npm MCP      ║
╚════════════╩════════════╩═══════════════════════════════╩════════════════════╝

🔧 プログラマティック API

Node.js/TypeScript プロジェクトで Lyra をライブラリとして使用できます:

import { 
  ToolDiscovery, 
  GitHubSource, 
  NpmSource,
  AIAnalyzer 
} from '@nirholas/lyra-tool-discovery';

// Initialize with default settings (auto-detect AI provider)
const discovery = new ToolDiscovery();

// Or with specific configuration
const discovery = new ToolDiscovery({
  provider: 'anthropic',
  model: 'claude-sonnet-4-20250514',
  apiKey: process.env.ANTHROPIC_API_KEY // Optional, uses env var by default
});

// Discover from all sources
const results = await discovery.discover({
  sources: ['github', 'npm'],
  limit: 20,
  dryRun: false
});

// Process results
for (const result of results) {
  console.log(`Tool: ${result.tool.name}`);
  console.log(`Template: ${result.decision.template}`);
  console.log(`Config:`, result.generated.pluginConfig);
}

// Analyze a specific GitHub repo
const repoResult = await discovery.analyzeGitHubRepo('owner', 'repo');
console.log(repoResult?.decision.template);

// Analyze a specific npm package
const npmResult = await discovery.analyzeNpmPackage('@scope/package-name');
console.log(npmResult?.decision.template);
個別コンポーネントの使用
import { GitHubSource, NpmSource, AIAnalyzer } from '@nirholas/lyra-tool-discovery';

// Use GitHub source directly
const github = new GitHubSource(process.env.GITHUB_TOKEN);
const mcpTools = await github.searchMCPServers(10);
const openApiTools = await github.searchOpenAPISpecs(10);
const specificRepo = await github.getRepo('owner', 'repo');

// Use npm source directly
const npm = new NpmSource();
const npmTools = await npm.searchMCPServers(10);
const specificPackage = await npm.getPackageAsTool('@modelcontextprotocol/server-github');

// Use AI analyzer directly
const ai = new AIAnalyzer({ provider: 'openai', model: 'gpt-4o' });
const decision = await ai.analyzeAndDecide(discoveredTool);
const quickImport = ai.generateQuickImport(decision);
型定義
import type {
  // Discovery types
  DiscoveredTool,
  DiscoveryResult,
  DiscoverySource,
  
  // Template types
  PluginTemplate,
  TemplateDecision,
  
  // MCP types
  MCPConnection,
  MCPHttpConnection,
  MCPStdioConnection,
  MCPAuthConfig,
  
  // Plugin types
  CustomPlugin,
  PluginManifest,
  PluginIndexEntry,
  MCPQuickImportConfig
} from '@nirholas/lyra-tool-discovery';

🏗️ アーキテクチャ

┌─────────────────────────────────────────────────────────────────────────────┐
│                          LYRA TOOL DISCOVERY                                │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌────────────────┐     ┌────────────────┐     ┌────────────────────────┐  │
│  │    Sources     │     │  AI Analyzer   │     │   Template Engine      │  │
│  ├────────────────┤     ├────────────────┤     ├────────────────────────┤  │
│  │                │     │                │     │                        │  │
│  │ • GitHub API   │────▶│ • OpenAI       │────▶│ • basic                │  │
│  │   - Repos      │     │   - GPT-4o     │     │ • default              │  │
│  │   - Topics     │     │   - GPT-4-turbo│     │ • markdown             │  │
│  │   - READMEs    │     │                │     │ • openapi              │  │
│  │                │     │ • Anthropic    │     │ • settings             │  │
│  │ • npm Registry │     │   - Claude     │     │ • standalone           │  │
│  │   - Packages   │     │   - Sonnet     │     │ • mcp-http             │  │
│  │   - Keywords   │     │   - Opus       │     │ • mcp-stdio            │  │
│  │                │     │                │     │                        │  │
│  └────────────────┘     └────────────────┘     └────────────────────────┘  │
│          │                      │                         │                │
│          │                      │                         │                │
│          ▼                      ▼                         ▼                │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                         Discovery Result                            │   │
│  ├─────────────────────────────────────────────────────────────────────┤   │
│  │  {                                                                  │   │
│  │    tool: DiscoveredTool,     // Source metadata                     │   │
│  │    decision: TemplateDecision, // AI analysis result                │   │
│  │    generated: {                                                     │   │
│  │      pluginConfig: CustomPlugin | PluginIndexEntry                  │   │
│  │    }                                                                │   │
│  │  }                                                                  │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                    │                                       │
│                                    ▼                                       │
│                    ┌───────────────────────────────┐                       │
│                    │        Output Formats         │                       │
│                    ├───────────────────────────────┤                       │
│                    │ • JSON (for pipelines)        │                       │
│                    │ • Quick Import (SperaxOS)     │                       │
│                    │ • Plugin Manifests            │                       │
│                    │ • Console (human-readable)    │                       │
│                    └───────────────────────────────┘                       │
└─────────────────────────────────────────────────────────────────────────────┘

📋 プラグインテンプレート

Lyra はツールを分析し、8 つのプラグインテンプレートから自動的に選択します:

テンプレートトランスポートタイプユースケースAI 選択基準
mcp-httpHTTP/SSEMCPリモート MCP サーバーMCP SDK + HTTP サーバーコードがあり、公開アクセス可能な URL を持つ
mcp-stdiostdioMCPローカル MCP サーバーMCP SDK + package.json に bin エントリがあり、npx で実行される
openapiHTTPOpenAPIREST API 連携OpenAPI/Swagger 仕様ファイルまたはドキュメントがある
standalone—スタンドアロンインタラクティブアプリケーション複雑な UI、React コンポーネント、データ可視化が必要
markdown—Markdownドキュメント/コンテンツ整形されたテキスト、レポート、ドキュメントを出力する
default—デフォルト設定可能なプラグイン設定 UI、設定オプションが必要
settings—デフォルトユーザー設定ユーザー設定、パーソナライズを保存する
basic—デフォルトシンプルな機能シンプルなデータ検索、基本的な API 呼び出し
AI の判断優先度

AI はテンプレートを選択する際に、次の優先順位に従います:

  1. MCP 検出 → ツールが @modelcontextprotocol/sdk を使用している場合:
    • HTTP サーバーがある → mcp-http
    • bin エントリがある → mcp-stdio
  2. OpenAPI 検出 → openapi.json/yaml または Swagger 仕様がある → openapi
  3. 複雑な UI → インタラクティブなダッシュボードが必要 → standalone
  4. 整形された出力 → リッチテキスト/markdown を出力する → markdown
  5. 設定 → ユーザー設定が必要 → default または settings
  6. デフォルト → シンプルな機能 → basic

🔗 統合パイプライン

Lyra Tool Discovery は、SperaxOS エコシステム向けのより大きな自動化ツールチェーンの一部です:

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│                 │     │                 │     │                 │     │                 │
│  lyra-discover  │────▶│  github-to-mcp  │────▶│ plugin.delivery │────▶│    SperaxOS     │
│                 │     │                 │     │                 │     │                 │
│  Discovery &    │     │   Conversion    │     │   Marketplace   │     │   End Users     │
│   Analysis      │     │                 │     │                 │     │                 │
└─────────────────┘     └─────────────────┘     └─────────────────┘     └─────────────────┘
  1. 検出(このツール) — GitHub/npm でツールを検出し、AI で分析し、設定を生成します
  2. 変換 — github-to-mcp がリポジトリを MCP サーバーに変換します
  3. レジストリ — plugin.delivery がプラグインマーケットプレイスをホストします
  4. 利用 — SperaxOS ユーザーがプラグインを検出してインストールします
自動 PR ワークフロー

GitHub Action を設定して、パイプライン全体を自動化できます:

# .github/workflows/discover-tools.yml
name: Discover New Tools

on:
  schedule:
    - cron: '0 0 * * *'  # Daily at midnight
  workflow_dispatch:

jobs:
  discover:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
      
      - name: Install Lyra
        run: npm install -g @nirholas/lyra-tool-discovery
      
      - name: Discover new MCP servers
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          lyra-discover discover \
            --sources github,npm \
            --limit 50 \
            > discovered-tools.json
      
      - name: Create PR with new tools
        uses: peter-evans/create-pull-request@v5
        with:
          title: '🔮 New tools discovered by Lyra'
          body: 'Automated discovery run found new MCP servers and APIs.'
          branch: lyra/discovered-tools

⚙️ 設定

環境変数
変数説明例
OPENAI_API_KEYOpenAI API キーsk-...
ANTHROPIC_API_KEYAnthropic API キーsk-ant-...
AI_PROVIDER特定のプロバイダーを強制openai または anthropic
AI_MODELデフォルトモデルを上書きgpt-4o、claude-sonnet-4-20250514
GITHUB_TOKENレート制限を緩和するための GitHub トークンghp_...
設定ファイル(近日対応予定)

discovery.config.json のサポート:

{
  "sources": {
    "github": {
      "enabled": true,
      "searchQueries": [
        "mcp server in:name,description",
        "modelcontextprotocol in:readme",
        "@modelcontextprotocol in:readme"
      ],
      "minStars": 10
    },
    "npm": {
      "enabled": true,
      "keywords": ["mcp", "model-context-protocol", "mcp-server"],
      "scopes": ["@modelcontextprotocol"]
    }
  },
  "ai": {
    "provider": "anthropic",
    "model": "claude-sonnet-4-20250514",
    "maxTokens": 4096
  },
  "output": {
    "format": "json",
    "path": "./data/discovered-tools.json",
    "includeMetadata": true
  },
  "filters": {
    "requireMCPSupport": true,
    "requireLicense": true,
    "excludeArchived": true
  }
}

📚 例

例 1: 結果の検出と保存
# Discover tools and save to file
lyra-discover discover --sources github,npm --limit 20 > tools.json

# Parse with jq
cat tools.json | jq '.[] | {name: .tool.name, template: .decision.template}'
例 2: リポジトリの一括分析
# Create a list of repos to analyze
repos=(
  "modelcontextprotocol/servers"
  "anthropics/claude-mcp"
  "punkpeye/mcp-server-obsidian"
)

# Analyze each repo
for repo in "${repos[@]}"; do
  owner=$(echo $repo | cut -d'/' -f1)
  name=$(echo $repo | cut -d'/' -f2)
  lyra-discover analyze-repo $owner $name
  echo "---"
done
例 3: CI での npm パッケージの分析
// scripts/analyze-packages.ts
import { ToolDiscovery } from '@nirholas/lyra-tool-discovery';

const packages = [
  '@modelcontextprotocol/server-github',
  '@modelcontextprotocol/server-filesystem',
  '@modelcontextprotocol/server-slack',
];

async function main() {
  const discovery = new ToolDiscovery({ provider: 'openai' });
  
  for (const pkg of packages) {
    const result = await discovery.analyzeNpmPackage(pkg);
    if (result) {
      console.log(JSON.stringify({
        package: pkg,
        template: result.decision.template,
        config: result.generated.pluginConfig
      }, null, 2));
    }
  }
}

main();
例 4: カスタムソースの統合
import { AIAnalyzer, type DiscoveredTool } from '@nirholas/lyra-tool-discovery';

// Create a custom discovered tool
const customTool: DiscoveredTool = {
  id: 'custom:my-tool',
  name: 'my-custom-mcp-server',
  description: 'A custom MCP server for my application',
  source: 'github',
  sourceUrl: 'https://github.com/myorg/my-tool',
  hasMCPSupport: true,
  hasNpmPackage: true,
  readme: '# My Tool\n\nAn MCP server that does X, Y, Z...',
  packageJson: {
    name: 'my-custom-mcp-server',
    bin: { 'my-mcp': './dist/cli.js' },
    dependencies: { '@modelcontextprotocol/sdk': '^1.0.0' }
  }
};

// Analyze with AI
const ai = new AIAnalyzer({ provider: 'anthropic' });
const decision = await ai.analyzeAndDecide(customTool);
console.log(`Template: ${decision.template}`);
console.log(`Reasoning: ${decision.reasoning}`);
例 5: フィルタリングを使用したドライラン
# Discover in dry-run mode to see what would be analyzed
lyra-discover discover --dry-run --sources github --limit 50

# Output:
# [DRY RUN] Would analyze: mcp-server-github
#   Source: github
#   URL: https://github.com/modelcontextprotocol/servers
#   MCP: Yes
# [DRY RUN] Would analyze: claude-mcp
#   Source: github
#   URL: https://github.com/anthropics/claude-mcp
#   MCP: Yes
# ...
例 6: SperaxOS 用のクイックインポートの生成
import { ToolDiscovery } from '@nirholas/lyra-tool-discovery';

const discovery = new ToolDiscovery();
const result = await discovery.analyzeNpmPackage('@modelcontextprotocol/server-github');

// The quick import format can be directly pasted into SperaxOS
console.log(`Add this to your MCP configuration:`);
console.log(JSON.stringify({
  mcpServers: {
    [result.tool.name]: result.decision.config.customParams?.mcp
  }
}, null, 2));

🤝 コントリビューション

コントリビューションを歓迎します!はじめ方は次のとおりです:

開発環境のセットアップ
# Clone the repository
git clone https://github.com/nirholas/lyra-tool-discovery.git
cd lyra-tool-discovery

# Install dependencies
pnpm install

# Set up environment
cp .env.example .env
# Edit .env with your API keys

# Run in development mode
pnpm dev discover --dry-run

# Build
pnpm build

# Run tests
pnpm test
コードスタイル
  • 厳格モードの TypeScript を使用します
  • リンティングには ESLint を使用します
  • フォーマットには Prettier を使用します
  • 公開 API には JSDoc コメント を記述してください
  • コミットメッセージには Conventional Commits に従ってください
プルリクエストの手順
  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します: git checkout -b feature/amazing-feature
  3. 変更を加えます
  4. 該当する場合はテストを追加します
  5. pnpm build と pnpm test を実行します
  6. Conventional Commits 形式のメッセージでコミットします: feat: add amazing feature
  7. フォークにプッシュします: git push origin feature/amazing-feature
  8. プルリクエストを作成します
コントリビューションの領域
  • 🔌 新しいソース — Smithery、OpenAPI Directory、RapidAPI のサポートを追加
  • 🤖 AI プロバイダー — Gemini、Mistral、ローカルモデルのサポートを追加
  • 📝 ドキュメント — 例の改善、チュートリアルの追加
  • 🧪 テスト — ユニットテスト、統合テストの追加
  • 🐛 バグ修正 — issues タブを確認してください

🔗 関連プロジェクト

プロジェクト説明
github-to-mcpGitHub リポジトリを MCP サーバーに変換
plugin.deliverySperaxOS のプラグインマーケットプレイス
SperaxOSAI ネイティブなオペレーティングシステム
lyra-registry発見されたプラグインのキュレーション済みレジストリ
UCAIUniversal Context AI フレームワーク
MCP SDK公式 Model Context Protocol SDK

📄 ライセンス

MIT License © 2024 nirholas

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

🙏 クレジット


ドキュメント

完全なドキュメントサイト: https://nirholas.github.io/lyra-tool-discovery/

  • Getting started ではインストールと初回実行について説明しています。
  • Examples にはコピー&ペーストできるスニペットがあります。

Star History

Star History Chart

コメント

MCP は初めてですか?

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

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