mcpField
S
Seta MCP - Up-to-date Local Docs for Coding

Seta MCP - Up-to-date Local Docs for Coding

ローカル
github.com/techformistメモリ・ナレッジ172 週間前に更新

Seta MCP - Up-to-date Local Docs for Coding について

Seta MCP は、コードや設定を作成する Salesforce 開発者向けのローカル文書 MCP サーバーです。オフライン利用や文書のバージョン・内容の管理に対応し、任意でセマンティック検索も利用できます。

主な機能

  1. 01ローカルディレクトリから文書を読み込み
  2. 02マニフェストを使ったライブラリとトピックの検索
  3. 03関連コンテキストを含む文書の取得
  4. 04任意のセマンティック検索インデックス
  5. 05文書を管理しながらオフライン利用

活用シーン

  1. 01関連する Apex 文書の検索
  2. 02LWC の実装ガイドの参照
  3. 03内部文書を LLM に提供
  4. 04キーワードが一致しない文書の検索

MCP 対応

文書ライブラリの特定とローカル文書の取得に使うツールを MCP クライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"seta": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@modelcontextprotocol/inspector

ツール

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

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

詳細

Seta MCP - コーディング向けの最新ローカルドキュメント

Salesforce 開発者によるコードや設定の作成を支援します!これは、ローカルで実行することも、リモートでホストすることもできる MCP サーバーです。

ローカルファイルシステムからドキュメントを取得するように設計されており、AI アシスタントに提供するコンテキストを完全に制御できます。

context7 に着想を得ていますが、このアプリケーションではローカルのドキュメントライブラリを使用します。

なぜ使うのか?

Seta MCP サーバーは、次の3つの主要なコンポーネントで構成されています。

  • MCP サーバーのコード(このリポジトリ)
  • Apex、LWC、設定などに関するオープン/公開、社内、または独自のドキュメント
  • NEW:ドキュメントを効率的に見つけるためのセマンティック検索インデクサー

Seta MCP を使うと、次のことができます。

  • 完全にオフラインで作業できます。
  • ドキュメントのバージョンと内容を細かく制御できます。
  • ドキュメントをすばやく更新し、すぐに LLM で利用できます。
  • NEW:完全に一致するキーワードがなくても、セマンティック検索で関連ドキュメントを見つけられます。

💡 仕組み

この MCP サーバーは、指定したローカルディレクトリ構造からドキュメントを読み取ります。

  1. LOCAL_DOCS_PATH を設定する:LOCAL_DOCS_PATH 環境変数を使って、ドキュメントのルートディレクトリを指定します。
  2. ライブラリを整理する:LOCAL_DOCS_PATH の配下で、各ライブラリまたはドキュメントセットをそれぞれ独自のサブディレクトリに配置します。
  3. 拡張された manifest.json:各ライブラリのサブディレクトリには、難易度、ユースケース、学習パス、セマンティックグループなどの詳細なメタデータを含む manifest.json ファイルが必須です。
  4. セマンティックインデックスの作成(任意):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

コメント

MCP は初めてですか?

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

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