AI Tool Discovery Agent について
Lyra Tool Discovery は、暗号資産、DeFi、web3 エコシステム向けのツールを探すための AI 支援型コマンドラインツールです。GitHub と npm から MCP サーバーや関連 API を検索し、AI で分析してプラグイン設定を生成します。新しいツールを素早く評価したい開発者やプラグインマーケットプレイスの運営者を対象としています。
主な機能
- 01GitHub と npm からの候補ツール検索
- 02暗号資産関連キーワードとリポジトリの更新期間による絞り込み
- 03OpenAI と Anthropic のモデルによる分析
- 048 種類のプラグインテンプレートによる設定生成
- 05コマンドライン、TypeScript SDK、JSON 出力
活用シーン
- 01DeFi アプリケーション向け MCP サーバーの発見と評価
- 02JSON 出力を用いた CI/CD パイプラインでのツール一覧の取り込み
- 03ドライランモードによる候補ツールの事前確認
MCP 対応
MCP サーバーの接続設定を生成するツールで、mcp-http と mcp-stdio のテンプレートがリモートとローカルの MCP サーバーにそれぞれ対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
📖 概要
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
|
📦 8 つのプラグインテンプレート
|
🔍 ディスカバリーソース
|
### 🪙 暗号資産フィルタリング
|
🖥️ CLI とプログラム API
|
🧪 テストと検証
|
📤 柔軟な出力
|
🪙 暗号資産検出キーワード
Lyra は検出結果を自動的にフィルタリングし、暗号資産/DeFi/ブロックチェーン/web3 ツールに焦点を当てます。以下のキーワードは、検索クエリと結果の検証の両方に使用されます:
サポートされているすべてのキーワードを表示
| カテゴリ | キーワード |
|---|---|
| 一般 | crypto, cryptocurrency, defi, blockchain, web3 |
| ネットワーク | ethereum, eth, solana, sol, bitcoin, btc, chain |
| トークン | token, erc20, erc721, nft |
| DeFi | dex, 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 | -p | AI プロバイダー(openai または anthropic) | 環境変数から自動検出 |
--model | -m | 使用する AI モデル | プロバイダーのデフォルト |
--version | -V | バージョン番号を表示 | — |
--help | -h | ヘルプを表示 | — |
コマンド
discover
設定されたソース全体で MCP ツールと API を検索します。
lyra-discover discover [options]
| オプション | エイリアス | 説明 | デフォルト |
|---|---|---|---|
--sources | -s | カンマ区切りのソース: github、npm、awesome-list | github,npm |
--limit | -l | ソースごとに検出するツールの最大数 | 5 |
--max-age | -a | 検出されたリポジトリの最大経過月数 | 12 |
--dry-run | -d | AI 分析なしでツールを一覧表示 | 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]
| 引数 | 説明 |
|---|---|
owner | GitHub リポジトリのオーナー/組織 |
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]
| 引数 | 説明 |
|---|---|
package | npm パッケージ名(スコープあり/なし) |
| オプション | エイリアス | 説明 |
|---|---|---|
--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-http | HTTP/SSE | MCP | リモート MCP サーバー | MCP SDK + HTTP サーバーコードがあり、公開アクセス可能な URL を持つ |
mcp-stdio | stdio | MCP | ローカル MCP サーバー | MCP SDK + package.json に bin エントリがあり、npx で実行される |
openapi | HTTP | OpenAPI | REST API 連携 | OpenAPI/Swagger 仕様ファイルまたはドキュメントがある |
standalone | — | スタンドアロン | インタラクティブアプリケーション | 複雑な UI、React コンポーネント、データ可視化が必要 |
markdown | — | Markdown | ドキュメント/コンテンツ | 整形されたテキスト、レポート、ドキュメントを出力する |
default | — | デフォルト | 設定可能なプラグイン | 設定 UI、設定オプションが必要 |
settings | — | デフォルト | ユーザー設定 | ユーザー設定、パーソナライズを保存する |
basic | — | デフォルト | シンプルな機能 | シンプルなデータ検索、基本的な API 呼び出し |
AI の判断優先度
AI はテンプレートを選択する際に、次の優先順位に従います:
- MCP 検出 → ツールが
@modelcontextprotocol/sdkを使用している場合:- HTTP サーバーがある →
mcp-http - bin エントリがある →
mcp-stdio
- HTTP サーバーがある →
- OpenAPI 検出 →
openapi.json/yamlまたは Swagger 仕様がある →openapi - 複雑な UI → インタラクティブなダッシュボードが必要 →
standalone - 整形された出力 → リッチテキスト/markdown を出力する →
markdown - 設定 → ユーザー設定が必要 →
defaultまたはsettings - デフォルト → シンプルな機能 →
basic
🔗 統合パイプライン
Lyra Tool Discovery は、SperaxOS エコシステム向けのより大きな自動化ツールチェーンの一部です:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ │ │ │ │ │ │ │
│ lyra-discover │────▶│ github-to-mcp │────▶│ plugin.delivery │────▶│ SperaxOS │
│ │ │ │ │ │ │ │
│ Discovery & │ │ Conversion │ │ Marketplace │ │ End Users │
│ Analysis │ │ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
- 検出(このツール) — GitHub/npm でツールを検出し、AI で分析し、設定を生成します
- 変換 — github-to-mcp がリポジトリを MCP サーバーに変換します
- レジストリ — plugin.delivery がプラグインマーケットプレイスをホストします
- 利用 — 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_KEY | OpenAI API キー | sk-... |
ANTHROPIC_API_KEY | Anthropic 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 に従ってください
プルリクエストの手順
- リポジトリをフォークします
- フィーチャーブランチを作成します:
git checkout -b feature/amazing-feature - 変更を加えます
- 該当する場合はテストを追加します
pnpm buildとpnpm testを実行します- Conventional Commits 形式のメッセージでコミットします:
feat: add amazing feature - フォークにプッシュします:
git push origin feature/amazing-feature - プルリクエストを作成します
コントリビューションの領域
- 🔌 新しいソース — Smithery、OpenAPI Directory、RapidAPI のサポートを追加
- 🤖 AI プロバイダー — Gemini、Mistral、ローカルモデルのサポートを追加
- 📝 ドキュメント — 例の改善、チュートリアルの追加
- 🧪 テスト — ユニットテスト、統合テストの追加
- 🐛 バグ修正 — issues タブを確認してください
🔗 関連プロジェクト
| プロジェクト | 説明 |
|---|---|
| github-to-mcp | GitHub リポジトリを MCP サーバーに変換 |
| plugin.delivery | SperaxOS のプラグインマーケットプレイス |
| SperaxOS | AI ネイティブなオペレーティングシステム |
| lyra-registry | 発見されたプラグインのキュレーション済みレジストリ |
| UCAI | Universal 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.
🙏 クレジット
- nich Model Context Protocol エコシステムによる制作
- OpenAI と Anthropic を活用
- SperaxOS のプラグイン発見を自動化する必要性から着想
ドキュメント
完全なドキュメントサイト: https://nirholas.github.io/lyra-tool-discovery/
- Getting started ではインストールと初回実行について説明しています。
- Examples にはコピー&ペーストできるスニペットがあります。
Star History
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。