Seta MCP - Up-to-date Local Docs for Coding について
Seta MCP は、コードや設定を作成する Salesforce 開発者向けのローカル文書 MCP サーバーです。オフライン利用や文書のバージョン・内容の管理に対応し、任意でセマンティック検索も利用できます。
主な機能
- 01ローカルディレクトリから文書を読み込み
- 02マニフェストを使ったライブラリとトピックの検索
- 03関連コンテキストを含む文書の取得
- 04任意のセマンティック検索インデックス
- 05文書を管理しながらオフライン利用
活用シーン
- 01関連する Apex 文書の検索
- 02LWC の実装ガイドの参照
- 03内部文書を LLM に提供
- 04キーワードが一致しない文書の検索
MCP 対応
文書ライブラリの特定とローカル文書の取得に使うツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Seta MCP - コーディング向けの最新ローカルドキュメント
Salesforce 開発者によるコードや設定の作成を支援します!これは、ローカルで実行することも、リモートでホストすることもできる MCP サーバーです。
ローカルファイルシステムからドキュメントを取得するように設計されており、AI アシスタントに提供するコンテキストを完全に制御できます。
context7 に着想を得ていますが、このアプリケーションではローカルのドキュメントライブラリを使用します。
なぜ使うのか?
Seta MCP サーバーは、次の3つの主要なコンポーネントで構成されています。
- MCP サーバーのコード(このリポジトリ)
- Apex、LWC、設定などに関するオープン/公開、社内、または独自のドキュメント
- NEW:ドキュメントを効率的に見つけるためのセマンティック検索インデクサー
Seta MCP を使うと、次のことができます。
- 完全にオフラインで作業できます。
- ドキュメントのバージョンと内容を細かく制御できます。
- ドキュメントをすばやく更新し、すぐに LLM で利用できます。
- NEW:完全に一致するキーワードがなくても、セマンティック検索で関連ドキュメントを見つけられます。
💡 仕組み
この MCP サーバーは、指定したローカルディレクトリ構造からドキュメントを読み取ります。
LOCAL_DOCS_PATHを設定する:LOCAL_DOCS_PATH環境変数を使って、ドキュメントのルートディレクトリを指定します。- ライブラリを整理する:
LOCAL_DOCS_PATHの配下で、各ライブラリまたはドキュメントセットをそれぞれ独自のサブディレクトリに配置します。 - 拡張された
manifest.json:各ライブラリのサブディレクトリには、難易度、ユースケース、学習パス、セマンティックグループなどの詳細なメタデータを含むmanifest.jsonファイルが必須です。 - セマンティックインデックスの作成(任意):
seta-indexerを実行して、セマンティック検索機能用のベクトルデータベースを作成します。
LLM(例:VSCode)に use latest Apex docs、use seta と入力するか、プロンプト内で以下のツールを参照します。
get-library-idツールは、LOCAL_DOCS_PATH内のmanifest.jsonファイルを検索し、一致するライブラリを見つけます。get-library-docsツールは、指定されたドキュメントファイルの内容をローカルファイルシステムから取得します。
🛠️ はじめに
要件
- Node.js >= v18.0.0
- VSCode、Cursor、Windsurf、Claude Desktop、またはその他の MCP クライアント。
- 以下で説明する構成でドキュメントを格納したローカルディレクトリ。
LOCAL_DOCS_PATH環境変数をこのディレクトリを指すように設定する必要があります。
ローカルドキュメントの構成
LOCAL_DOCS_PATH はルートディレクトリを指すように設定します。このディレクトリ内で、各ライブラリをそれぞれ独自のフォルダーに配置します。
<your_LOCAL_DOCS_PATH>/
├── my-awesome-lib/
│ ├── manifest.json
│ ├── main_guide.md
│ ├── .seta_lancedb/ # Created by seta-indexer (optional)
│ └── topics/
│ └── report.md
│ └── advanced_reports.txt
└── another-tool/
├── manifest.json
└── quick_start.md
拡張された manifest.json の形式
各ライブラリディレクトリ(例:my-awesome-lib/)には、次の拡張形式の manifest.json ファイルが必須です。
{
"name": "My Awesome Library",
"description": "A brief description of what this library does.",
"version": "2.1.0",
"default_doc": "main_guide.md", // File to use if no topic is specified
"topics": [
{
"name": "report",
"file": "report.md",
"tags": ["report"],
"related": ["advanced"],
"prerequisites": [],
"leads_to": ["advanced"],
"difficulty": "beginner",
"use_cases": ["basic reporting", "data visualization"],
"code_patterns": ["SOQL queries", "report types"]
},
{
"name": "advanced",
"file": "topics/advanced_reports.txt",
"tags": ["advanced"],
"related": ["report"],
"prerequisites": ["report"],
"leads_to": [],
"difficulty": "advanced",
"use_cases": ["complex analytics", "custom report types"],
"code_patterns": ["dynamic SOQL", "custom report builders"]
}
],
"semantic_groups": {
"fundamentals": ["report"],
"advanced_features": ["advanced"]
},
"learning_paths": {
"beginner": ["report"],
"expert": ["report", "advanced"]
},
"totalSnippets": 25 // Optional: for display purposes
}
拡張されたトピックのプロパティ:
prerequisites(文字列の配列、任意):先に理解しておくべきトピックleads_to(文字列の配列、任意):このトピックの次に扱うのが自然なトピックdifficulty(文字列、任意):「beginner」、「intermediate」、「advanced」のいずれかuse_cases(文字列の配列、任意):このトピックの実用例code_patterns(文字列の配列、任意):対象となるコードパターンや手法
新しいライブラリレベルのプロパティ:
semantic_groups(オブジェクト、任意):関連するトピックをまとめた名前付きのコレクションlearning_paths(オブジェクト、任意):異なるスキルレベル向けに提案するトピックの順序
拡張されたトピック検索の仕組み:
- 検索時、サーバーはライブラリ名、説明、トピック名、タグ、
use_cases、code_patternsを対象にクエリを照合します。 - トピックのドキュメントを取得すると、サーバーは前提条件、関連トピック、次のステップのコンテキストを自動的に追加します。
- 名前を指定して、セマンティックグループや学習パス全体をリクエストできます。
🔍 seta-indexer によるセマンティック検索
開発
プロジェクトをクローンして、依存関係をインストールします。
npm i
ビルドします(main.ts がルートにあり、tsconfig.json で outDir: "./dist" と rootDir: "./" が設定されていることを前提とします)。
npm run build
これにより、main.ts(および lib/ と indexer/ 内のファイル)が dist/main.js と dist/indexer/cli.js にコンパイルされます。
ローカル設定例(開発用)
Cursor のような MCP クライアントでローカルの開発バージョンを実行するには、次のようにします。
{
"mcpServers": {
"seta_dev": {
"command": "npx",
"args": ["tsx", "/path/to/your/project/dist/main.js"],
"env": {
"LOCAL_DOCS_PATH": "/absolute/path/to/your/test_documentation_root", // Essential for testing
"DEFAULT_MAX_TOKENS": "5000" // Optional
}
}
}
}
MCP Inspector でのテスト
環境で LOCAL_DOCS_PATH が設定されていることを確認してください。
# For published version
# export LOCAL_DOCS_PATH="/path/to/your/docs"
npx -y @modelcontextprotocol/inspector npx seta-mcp@latest
免責事項
このプロジェクトは、提供されたドキュメントに依存します。生成されるコンテキストの品質、正確性、完全性は、ローカルのドキュメントファイルに直接左右されます。ご自身の判断と責任のもとでご利用ください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。