はじめに
AIコーディング支援ツールの進化が加速する中、MCP(Model Context Protocol) を活用したコンテキスト提供サーバーが注目を集めています。
本記事では、話題の Context7 MCP Server と、それを超える機能を実装した YATA(八咫)MCP Server を徹底比較します。
TL;DR
| 機能 | Context7 | YATA |
|---|---|---|
| 対応言語 | 5言語 | 24言語 |
| MCPツール数 | 約10 | 32 |
| フレームワーク知識 | なし | 47フレームワーク |
| デザインパターン検出 | なし | 10パターン |
| コード品質分析 | なし | ✅ |
| Git履歴分析 | なし | ✅ |
| API互換性チェック | なし | ✅ |
| ハイブリッド検索 | なし | ✅ |
| 完全ローカル実行 | ❌ | ✅ |
Context7 とは
Context7は、ライブラリのドキュメントをAIに提供するMCPサーバーです。主な特徴:
- npmパッケージのドキュメント取得
- ライブラリの使用例提供
- クラウドベースのドキュメント検索
# Context7の基本的な使い方
# AIに「use context7」と指示してドキュメントを取得
Context7の制限
- 外部API依存: クラウドサービスへの接続が必要
- プライバシー懸念: コード情報が外部送信される可能性
- ドキュメント限定: ソースコード解析機能なし
- 静的情報: プロジェクト固有のコンテキストを理解しない
YATA(八咫)とは
YATA(八咫) は、日本神話の 八咫鏡(やたのかがみ) から名付けられたプロジェクトです。
八咫鏡は三種の神器の一つであり、真実を映し出す神聖な鏡として知られています。YATAはこの名の通り、プログラミング言語やフレームワークの「真のコンテキスト」をAIに提供し、幻覚(ハルシネーション)のない正確なコード生成を支援します。
🪞 八咫鏡のように、コードの真実を映し出す
YATA は 完全ローカル実行 の知識グラフベースMCPサーバーです。
# YATAのセットアップ
git clone https://github.com/nahisaho/YATA.git
cd yata && uv sync --all-packages
# MCPサーバー起動
yata serve
🏆 YATAの優位性
1. 完全ローカル実行 - プライバシー最優先
Context7: コード情報 → クラウドAPI → 結果
YATA: コード情報 → ローカル処理 → 結果(外部送信なし)
企業のプロプライエタリコードでも安心して使用可能。
2. 24言語対応 vs 5言語
YATAはTree-sitterによる高精度AST解析で24言語をサポート:
# YATA対応言語
languages = [
"Python", "TypeScript", "JavaScript", "Rust", "Go",
"Java", "Kotlin", "Scala", "C", "C++", "C#",
"Swift", "Objective-C", "PHP", "Ruby", "Dart",
"Elixir", "Haskell", "Julia", "Lua", "Groovy", "SQL",
"Zig", "YAML"
]
3. 47フレームワーク知識グラフ
YATAは主要フレームワークの構造を事前学習済み:
| カテゴリ | フレームワーク |
|---|---|
| Python | Django, Flask, FastAPI, Pytest, NumPy, Pandas, SQLAlchemy, LangChain, Haystack, Streamlit, LangGraph |
| JavaScript/TS | React, Vue.js, Angular, Next.js, Express, NestJS, Jest, Astro, SolidJS, Remix, htmx, Hono, tRPC, Qwik, Bun, Expo |
| Rust | Actix-web, Tokio, Serde, Rocket, Axum, Tauri |
| Go | Gin, Echo, Fiber, GORM |
| Elixir | Phoenix |
| Database/ORM | Prisma, Drizzle |
| Mobile | SwiftUI, Jetpack Compose |
| その他 | Spring Boot, .NET Core, Rails, Laravel |
# フレームワーク知識の活用例
yata search_framework --framework django --query "middleware"
# → Django middlewareの構造、ベストプラクティス、使用例を即座に取得
4. 10種類のデザインパターン自動検出
YATAはコードからデザインパターンを自動検出:
# 検出可能なパターン
patterns = [
"Singleton", # getInstance, __new__
"Factory Method", # create*, build*
"Builder", # set*, with*, build
"Adapter", # adapt, wrap
"Decorator", # @decorator, wrap
"Facade", # 複数サービス統合
"Observer", # subscribe, notify
"Strategy", # execute, handle
"Command", # execute, undo
"Template Method" # 抽象メソッド + 具象実装
]
# 使用例
result = yata detect_patterns --file app/services.py
# → "Singleton pattern detected in DatabaseConnection (confidence: 0.95)"
5. コード品質メトリクス分析
Context7にはない定量的品質分析:
# YATA品質分析ツール
result = yata analyze_quality --entity "UserService"
# 出力例
{
"cyclomatic_complexity": 8, # 循環的複雑度
"coupling": 0.3, # 結合度(低いほど良い)
"cohesion": 0.8, # 凝集度(高いほど良い)
"quality_score": 85, # 総合スコア
"recommendations": [
"Consider extracting method 'validate_user' to reduce complexity",
"High cohesion - well-designed class"
]
}
6. Git履歴からのホットスポット分析
コードの進化を追跡:
# 変更頻度の高いファイルを特定
hotspots = yata find_hotspots --repo ./my-project
# 出力例
[
{"file": "src/auth/login.py", "changes": 47, "authors": 5},
{"file": "src/api/users.py", "changes": 32, "authors": 3},
# → これらのファイルはリファクタリング候補
]
7. API互換性チェック
バージョンアップ時の破壊的変更を事前検出:
# Django 4.0 → 4.2 互換性チェック
result = yata check_api_compatibility \
--framework django \
--from_version 4.0 \
--to_version 4.2 \
--file views.py
# 出力例
{
"issues": [
{
"api": "django.conf.urls.url",
"severity": "error",
"message": "Removed in Django 4.0. Use 're_path' instead.",
"migration": "from django.urls import re_path"
}
]
}
8. ハイブリッド検索
キーワード検索 + セマンティック検索の統合:
# 従来のキーワード検索だけでなく、意味的に類似したコードも発見
results = yata hybrid_search \
--query "user authentication" \
--keyword_weight 0.4 \
--semantic_weight 0.6
# → "login", "authenticate", "verify_credentials" なども発見
9. AIコーディングガイダンス
フレームワーク固有のベストプラクティス提案:
# FastAPIでのエンドポイント実装ガイダンス
guidance = yata get_coding_guidance \
--framework fastapi \
--task "create REST endpoint"
# 出力例
{
"recommended_code": '''
@router.post("/users", response_model=UserResponse)
async def create_user(
user: UserCreate,
db: AsyncSession = Depends(get_db)
) -> UserResponse:
"""Create a new user."""
return await user_service.create(db, user)
''',
"best_practices": [
"Use Pydantic models for request/response validation",
"Implement dependency injection for database sessions",
"Add proper type hints for better IDE support"
]
}
10. インタラクティブコードナビゲーション
コードベースをグラフとして探索:
# 関数の呼び出しグラフを取得
call_graph = yata get_call_graph --function "process_order"
# 出力: 呼び出し元・呼び出し先の関係性グラフ
# process_order
# ├── validate_order (calls)
# ├── calculate_total (calls)
# ├── apply_discount (calls)
# └── save_to_database (calls)
機能比較表
| 機能カテゴリ | 機能 | Context7 | YATA |
|---|---|---|---|
| 基本 | ローカル実行 | ❌ | ✅ |
| 対応言語数 | 5 | 24 | |
| MCPツール数 | ~10 | 32 | |
| 解析 | AST解析 | ❌ | ✅ |
| 関係性検出 | ❌ | ✅ | |
| 知識グラフ | ❌ | ✅ | |
| 知識 | フレームワーク知識 | ドキュメントのみ | 47フレームワーク構造 |
| デザインパターン検出 | ❌ | 10パターン | |
| ベストプラクティス | ❌ | ✅ | |
| 品質 | 複雑度分析 | ❌ | ✅ |
| 結合度・凝集度 | ❌ | ✅ | |
| コード品質スコア | ❌ | ✅ | |
| 進化 | Git履歴分析 | ❌ | ✅ |
| ホットスポット検出 | ❌ | ✅ | |
| 変更影響分析 | ❌ | ✅ | |
| 互換性 | API互換性チェック | ❌ | ✅ |
| マイグレーションガイド | ❌ | ✅ | |
| 検索 | キーワード検索 | ✅ | ✅ |
| セマンティック検索 | ❌ | ✅ | |
| ハイブリッド検索 | ❌ | ✅ | |
| 生成 | ドキュメント生成 | ❌ | ✅ |
| コード推奨 | ❌ | ✅ | |
| ガイダンス生成 | ❌ | ✅ |
セットアップ比較
Context7
// claude_desktop_config.json
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@context7/mcp-server"]
}
}
}
YATA
// claude_desktop_config.json
{
"mcpServers": {
"yata": {
"command": "uv",
"args": ["run", "yata", "serve"]
}
}
}
ユースケース別おすすめ
| ユースケース | おすすめ | 理由 |
|---|---|---|
| npmパッケージのドキュメント参照 | Context7 | クラウドDBが充実 |
| プロプライエタリコード開発 | YATA | 完全ローカル実行 |
| レガシーコードリファクタリング | YATA | 品質分析・パターン検出 |
| 大規模プロジェクト | YATA | 知識グラフ・影響分析 |
| フレームワーク学習 | YATA | 構造化された知識 |
| コードレビュー支援 | YATA | 品質メトリクス |
| バージョンアップ対応 | YATA | API互換性チェック |
🚀 YATA導入でAI Codingはこう変わる
Before: YATA なしのAI Coding
従来のAI Coding(GitHub Copilot、Claude、ChatGPT等)には以下の根本的な問題があります。
問題1: 古いトレーニングデータ
# AIへの質問
"FastAPIで非同期データベース接続を実装して"
# AIの回答(トレーニングデータが古い場合)
from databases import Database # 2年前の方法
database = Database("postgresql://...")
# 実際の最新ベストプラクティス
from sqlalchemy.ext.asyncio import create_async_engine # 現在の推奨
engine = create_async_engine("postgresql+asyncpg://...")
結果: 動かないコード、非推奨APIの使用、セキュリティリスク
問題2: ハルシネーション(幻覚)
# AIへの質問
"Djangoでカスタムミドルウェアを作成して"
# AIの回答(存在しないAPIを生成)
from django.middleware import BaseMiddleware # ❌ 存在しない
class MyMiddleware(BaseMiddleware):
def process_request(self, request): # ❌ 古いAPI
pass
# 実際の正しいコード
class MyMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
return self.get_response(request)
結果: デバッグに何時間も費やす、信頼性の低下
問題3: プロジェクト固有のコンテキスト不足
# あなたのプロジェクトには独自のBaseServiceクラスがある
class UserService(BaseService): # AIはBaseServiceの存在を知らない
pass
# AIの回答(プロジェクト構造を無視)
class UserService: # BaseServiceを継承しない
def __init__(self):
self.db = Database() # プロジェクトの規約に違反
結果: コード規約違反、レビュー指摘、リファクタリング必要
問題4: 依存関係の理解不足
# AIへの質問
"calculate_total関数をリファクタリングして"
# AIの回答(影響範囲を考慮しない)
def calculate_total(items): # シグネチャを変更
return sum(item.price for item in items)
# 実際には10箇所から呼ばれていた
# → 全て壊れる
結果: 予期せぬバグ、テスト失敗、本番障害
After: YATA導入後のAI Coding
✅ 解決1: フレームワーク知識グラフで最新情報を提供
# YATAがClaudeに提供するコンテキスト
"""
[YATA Framework Knowledge]
Framework: FastAPI 0.100+
Recommended: SQLAlchemy 2.0 async pattern
- Use create_async_engine for async DB
- Use AsyncSession for transactions
- Avoid deprecated 'databases' package
"""
# AIの回答(YATAのコンテキストを活用)
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from sqlalchemy.orm import sessionmaker
engine = create_async_engine("postgresql+asyncpg://...")
async_session = sessionmaker(engine, class_=AsyncSession)
効果: 常に最新のベストプラクティスに従ったコード生成
✅ 解決2: 知識グラフでハルシネーション防止
# YATAがClaudeに提供するコンテキスト
"""
[YATA Entity: Django Middleware]
Correct implementation pattern:
- No BaseMiddleware class exists
- Use callable class pattern
- __init__ receives get_response
- __call__ processes request
"""
# AIの回答(正確なAPI使用)
class MyMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# 前処理
response = self.get_response(request)
# 後処理
return response
効果: 存在しないAPIを提案しない、正確なコード生成
✅ 解決3: プロジェクト構造の自動理解
# YATAがプロジェクトを解析して提供するコンテキスト
"""
[YATA Project Analysis]
Base classes found:
- BaseService (src/core/base.py)
- Requires: self.repository injection
- Pattern: Repository pattern
Conventions:
- All services inherit BaseService
- DI via constructor
"""
# AIの回答(プロジェクト規約に準拠)
from src.core.base import BaseService
from src.repositories.user import UserRepository
class UserService(BaseService):
def __init__(self, repository: UserRepository):
super().__init__(repository)
効果: プロジェクト規約に自動的に準拠したコード
✅ 解決4: 影響分析で安全なリファクタリング
# YATAの影響分析結果
"""
[YATA Impact Analysis: calculate_total]
Callers (10 locations):
- src/orders/service.py:45 - OrderService.process()
- src/cart/handler.py:23 - CartHandler.checkout()
- src/reports/daily.py:89 - DailyReport.generate()
... 7 more
Signature change impact: HIGH
Recommendation: Add optional parameter with default value
"""
# AIの回答(影響を考慮した安全な変更)
def calculate_total(items, include_tax=True): # 後方互換性を維持
subtotal = sum(item.price for item in items)
return subtotal * 1.1 if include_tax else subtotal
効果: 破壊的変更を防止、安全なリファクタリング
具体的な生産性向上
| 指標 | YATAなし | YATA導入後 | 改善率 |
|---|---|---|---|
| AIコード採用率 | 30% | 75% | +150% |
| デバッグ時間 | 2時間/日 | 30分/日 | -75% |
| コードレビュー指摘 | 15件/PR | 3件/PR | -80% |
| ドキュメント検索時間 | 1時間/日 | 10分/日 | -83% |
| バージョンアップ対応 | 3日 | 半日 | -83% |
ワークフローの変化
【Before: YATAなし】
1. AIにコード生成を依頼
2. 生成されたコードを確認
3. 「あれ、このAPIって存在する?」→ ドキュメント検索
4. 「古いバージョンのコードだ」→ 書き直し
5. 「プロジェクトの規約に合ってない」→ 修正
6. テスト実行 → 失敗
7. デバッグ → 修正 → テスト → 繰り返し
合計: 2時間
【After: YATA導入】
1. AIにコード生成を依頼(YATAが自動でコンテキスト提供)
2. 生成されたコードを確認 → そのまま使える!
3. テスト実行 → 成功
合計: 15分
まとめ
Context7 は「ライブラリドキュメントの便利な検索ツール」として優れていますが、YATA は「AIコーディング支援の総合プラットフォーム」として次のステージにあります。
YATAを選ぶべき理由
- 🔒 プライバシー: 完全ローカル実行でデータ漏洩リスクゼロ
- 🧠 深い理解: AST解析と知識グラフによるコード構造の把握
- 📊 定量分析: 品質メトリクスによる客観的評価
- 🔄 進化追跡: Git履歴からのインサイト
- 🎯 パターン認識: デザインパターンの自動検出
- 🔍 高度な検索: ハイブリッド検索で「意味」も検索
- ⚡ 32ツール: 豊富なMCPツールで様々なタスクに対応
# 今すぐYATAを試す
git clone https://github.com/nahisaho/YATA.git
cd yata && uv sync --all-packages
yata serve
参考リンク
YATA(八咫)- 八咫鏡のように、コードの真実を映し出す 🪞