Tribal - Knowledge Service について
Tribalは、プログラミングエラーを記録・検索するMCPサーバーです。エラーと解決策を蓄積したい開発者やコーディングエージェント向けに、ChromaDBのベクトル類似検索とREST API、ネイティブMCPインターフェースを提供します。
主な機能
- 01コンテキスト付きエラーの保存と取得
- 02ChromaDBによる類似エラー検索
- 03REST APIとMCPインターフェース
- 04JWT認証とAPIキーのサポート
- 05ローカルストレージとAWS連携
活用シーン
- 01過去に発生した類似エラーの検索
- 02後で参照する解決策の保存
- 03REST APIを使ったエラー記録の管理
MCP 対応
エラー記録の作成、取得、更新、削除、検索、類似エラー検索、およびJWT取得のツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Tribal - ナレッジサービス
Tribal は、エラーのナレッジ追跡と検索のための MCP(Model Context Protocol)サーバー実装です。Claude Code や Cline などのツールと統合するための REST API とネイティブ MCP インターフェースの両方を提供します。
機能
- コンテキストをすべて含めてエラー記録を保存、取得
- ChromaDB を使用したベクトル類似検索
- REST API(FastAPI)とネイティブ MCP インターフェース
- API キーを使用した JWT 認証
- ローカルストレージ(ChromaDB)と AWS の統合
- Docker-compose によるデプロイ
- CLI クライアントとの統合
概要
Tribal は、Claude がプログラミングエラーを記憶し、そこから学習できるようにします。Claude Code のセッションを開始すると、追加のインポートなしで MCP 経由で Tribal を自動的に利用できます。
Claude は次のことを行います。
- プログラミングエラーと解決策を保存する
- 問題が発生したときに、類似するエラーを検索する
- コーディングパターンに特化したナレッジベースを構築する
uv を使用した Tribal のパッケージ化とインストール
前提条件
- Python 3.12+
- uv パッケージマネージャー(推奨)
ビルドとインストールの手順
オプション 1:uv で直接インストール
最も簡単な方法は、現在のディレクトリから直接インストールすることです。
# From the project root directory
cd /path/to/tribal
# Install using uv
uv pip install .
オプション 2:開発用インストール
変更をすぐに反映させたい開発作業向けです。
# From the project root directory
cd /path/to/tribal
# Install in development mode
uv pip install -e .
オプション 3:先にパッケージをビルド
配布可能なパッケージをビルドする場合は、次の手順を実行します。
# Make sure you're in the project root directory
cd /path/to/tribal
# Install the build package if needed
uv pip install build
# Build the package
python -m build
# This creates distribution files in the dist/ directory
# Now install the wheel file
uv pip install dist/tribal-0.1.0-py3-none-any.whl
オプション 4:uv tool install コマンドを使用
ツールをインストールする方法も利用できます。
# Install as a global tool
cd /path/to/tribal
uv tool install .
# Or install in development mode
uv tool install -e .
確認
インストール後、ツールが正しくインストールされたことを確認します。
# Check the installation
which tribal
# Check the version
tribal version
Claude との統合
インストール後、Claude と統合できます。
# Add Tribal to Claude Code
claude mcp add tribal --launch "tribal"
# Verify the configuration
claude mcp list
# For Docker container
claude mcp add tribal http://localhost:5000
使用方法
利用可能な MCP ツール
Tribal は次の MCP ツールを提供します。
add_error- 新しいエラー記録を作成(POST /errors)get_error- UUID でエラーを取得(GET /errors/{id})update_error- 既存のエラーを変更(PUT /errors/{id})delete_error- エラー記録を削除(DELETE /errors/{id})search_errors- 条件に基づいてエラーを検索(GET /errors)find_similar- 意味的類似検索(GET /errors/similar)get_token- JWT トークンを取得(POST /token)
Claude での使用例
Claude がエラーに遭遇したとき:
I'll track this error and look for similar problems in our knowledge base.
Claude が解決策を見つけたとき:
I've found a solution! I'll store this in our knowledge base for next time.
Claude への指示
Claude に次のように依頼できます。
- 「Tribal のナレッジベースで類似のエラーを探してください」
- 「この解決策をエラーデータベースに保存してください」
- 「このエラーが以前にも発生したことがあるか確認してください」
サーバーの実行
tribal コマンドを使用
# Run the server
tribal
# Get help
tribal help
# Show version
tribal version
# Run with options
tribal server --port 5000 --auto-port
Python モジュールを使用
# Run the Tribal server
python -m mcp_server_tribal.mcp_app
# Run the FastAPI backend server
python -m mcp_server_tribal.app
従来のエントリーポイントを使用
# Legacy MCP server
mcp-server
# Legacy FastAPI server
mcp-api
コマンドラインオプション
# Development mode with auto-reload
mcp-api --reload
mcp-server --reload
# Custom port
mcp-api --port 8080
mcp-server --port 5000
# Auto port selection
mcp-api --auto-port
mcp-server --auto-port
FastAPI サーバーは http://localhost:8000 で利用でき、API ドキュメントは /docs で確認できます。 MCP サーバーは http://localhost:5000 で利用でき、Claude やその他の MCP 互換 LLM からアクセスできます。
環境変数
FastAPI サーバー
PERSIST_DIRECTORY:ChromaDB のストレージパス(デフォルト:"./chroma_db")API_KEY:認証キー(デフォルト:"dev-api-key")SECRET_KEY:JWT 署名キー(デフォルト:"insecure-dev-key-change-in-production")REQUIRE_AUTH:認証の要否(デフォルト:"false")PORT:サーバーのポート(デフォルト:8000)
MCP サーバー
MCP_API_URL:FastAPI サーバーの URL(デフォルト:"http://localhost:8000")MCP_PORT:MCP サーバーのポート(デフォルト:5000)MCP_HOST:バインドするホスト(デフォルト:"0.0.0.0")API_KEY:FastAPI アクセスキー(デフォルト:"dev-api-key")AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_S3_BUCKET:AWS 統合用
API エンドポイント
POST /errors:新しいエラー記録を作成GET /errors/{error_id}:ID でエラーを取得PUT /errors/{error_id}:エラー記録を更新DELETE /errors/{error_id}:エラーを削除GET /errors:条件に基づいてエラーを検索GET /errors/similar:類似するエラーを検索POST /token:認証トークンを取得
クライアントの使用方法
# Add a new error record
mcp-client --action add --error-type ImportError --language python --error-message "No module named 'requests'" --solution-description "Install requests" --solution-explanation "You need to install the requests package"
# Get an error by ID
mcp-client --action get --id <error-id>
# Search for errors
mcp-client --action search --error-type ImportError --language python
# Find similar errors
mcp-client --action similar --query "ModuleNotFoundError: No module named 'pandas'"
仕組み
- Tribal は ChromaDB を使用して、エラーレコードと解決策を保存します
- Claude がエラーに遭遇すると、エラーの詳細を Tribal に送信します
- Tribal はエラーをベクトル化し、類似するエラーを検索します
- Claude は関連する解決策を受け取り、提案します
- 新しい解決策は、今後参照できるように保存されます
開発
テストの実行
pytest
pytest tests/path_to_test.py::test_name # For specific tests
リントと型チェック
ruff check .
mypy .
black .
GitHub ワークフロー
このプロジェクトでは、継続的インテグレーションとデプロイに GitHub Actions を使用しています。このワークフローでは、main へのプッシュ時とプルリクエスト時に、テスト、リント、型チェックが自動的に実行されます。
ワークフローの手順
-
テスト:リント、型チェック、ユニットテストを実行します
- Python 3.12 を使用します
- uv で依存関係をインストールします
- ruff、black、mypy、pytest を実行します
-
ビルドと公開:パッケージをビルドし、PyPI に公開します
- main ブランチへのプッシュ時のみ実行されます
- Python のビルドシステムを使用します
- twine を使用して PyPI に公開します
ローカルでのテスト
付属のスクリプトを使用して、GitHub ワークフローをローカルでテストできます。
# Make the script executable
chmod +x scripts/test-workflow.sh
# Run the workflow locally
./scripts/test-workflow.sh
このスクリプトは、ローカルマシン上で GitHub ワークフローの手順をシミュレートします。
- Python のバージョンを確認します(3.12 を推奨)
- uv を使用して依存関係をインストールします
- ruff でリントを実行します
- black でフォーマットを確認します
- mypy で型チェックを実行します
- pytest でテストを実行します
- パッケージをビルドします
注:このスクリプトは、ローカルでのテスト時には公開手順をスキップします。
プロジェクト構成
tribal/
├── src/
│ ├── mcp_server_tribal/ # Core package
│ │ ├── api/ # FastAPI endpoints
│ │ ├── cli/ # Command-line interface
│ │ ├── models/ # Pydantic models
│ │ ├── services/ # Service layer
│ │ │ ├── aws/ # AWS integrations
│ │ │ └── chroma_storage.py # ChromaDB implementation
│ │ └── utils/ # Utility functions
│ └── examples/ # Example usage code
├── tests/ # pytest test suite
├── docker-compose.yml # Docker production setup
├── pyproject.toml # Project configuration
├── VERSIONING.md # Versioning strategy documentation
├── CHANGELOG.md # Version history
├── .bumpversion.cfg # Version bumping configuration
└── README.md # Project documentation
バージョン管理
Tribal はセマンティック バージョニングに従います。以下の詳細については、VERSIONING.md を参照してください。
- バージョン番号(MAJOR.MINOR.PATCH)
- データベースとの互換性を保つためのスキーマのバージョン管理
- ブランチの命名規則
- リリースおよびホットフィックスの手順
次のコマンドでバージョンを確認します。
# Display version information
tribal version
依存関係の管理
# Add a dependency
uv pip add <package-name>
# Add a development dependency
uv pip add <package-name>
# Update dependencies
uv pip sync requirements.txt requirements-dev.txt
デプロイ
Docker によるデプロイ
# Build and start containers
docker-compose up -d --build
# View logs
docker-compose logs -f
# Stop containers
docker-compose down
# With custom environment variables
API_PORT=8080 MCP_PORT=5000 REQUIRE_AUTH=true API_KEY=your-secret-key docker-start
Claude for Desktop との連携
オプション 1:Claude for Desktop にサーバーを起動させる
-
~/Library/Application Support/Claude/claude_desktop_config.jsonを開きます -
MCP サーバーの設定を追加します(Tribal ツールがすでにインストールされていることを前提とします)。
{ "mcpServers": [ { "name": "tribal", "launchCommand": "tribal" } ] } -
Claude for Desktop を再起動します
オプション 2:実行中の Docker コンテナに接続する
-
コンテナを起動します。
cd /path/to/tribal docker-start -
Claude for Desktop を設定します。
{ "mcpServers": [ { "name": "tribal", "url": "http://localhost:5000" } ] }
Claude Code CLI との連携
# For Docker container
claude mcp add tribal http://localhost:5000
# For directly launched server
claude mcp add tribal --launch "tribal"
# Test the connection
claude mcp list
claude mcp test tribal
トラブルシューティング
- Tribal がインストールされていることを確認します:
which tribal - 設定を確認します:
claude mcp list - サーバーのステータスを確認します:
tribal status - Claude の出力にエラーメッセージがないか確認します
- データベースのディレクトリが存在し、適切なアクセス権があることを確認します
クラウドへのデプロイ
このプロジェクトには、AWS サービスのプレースホルダー実装が含まれています。
S3Storage:エラーレコードを Amazon S3 に保存しますDynamoDBStorage:データベースとして DynamoDB を使用します
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。