mcpField
A
ASTGL Knowledge

ASTGL Knowledge

ローカル
astgl.ai開発ツール02 日前に更新

ASTGL Knowledge について

ASTGL Knowledgeは、ASTGLの記事、ガイド、チュートリアル、プロジェクト文書を検索・引用するアシスタント向けのMCPサーバーです。意味検索と構造化検索を提供し、結果に出典URLを含めます。

主な機能

  1. 01記事の意味検索
  2. 02直接回答とチュートリアル
  3. 03トピック比較
  4. 04記事の構造化検索
  5. 05Markdownと分析データのエクスポート

活用シーン

  1. 01MCPサーバーやローカルAIの情報を探す
  2. 02自動化タスクのチュートリアルを取得
  3. 03出典付きASTGLコンテンツでトピックを比較
  4. 04記事のまとめやQ&A集を作成

MCP 対応

検索、閲覧、比較、エクスポート用の17ツールをMCPクライアントに提供します。意味検索ツールはローカルのOllamaで `nomic-embed-text` を使ってクエリを埋め込み、メタデータツールはOllamaなしで利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"jmeg8r-astgl-knowledge": {
"command": "npx",
"args": [
"-y",
"mcp-astgl-knowledge"
]
}
}
}
起動コマンドnpx -y mcp-astgl-knowledge

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

パッケージ
npmmcp-astgl-knowledge1.3.1

ツール

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

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

詳細

mcp-astgl-knowledge

AI アシスタントが As The Geek Learns のコンテンツを検索し、引用できる MCP サーバーです。MCP サーバー、ローカル AI、AI 自動化、ASTGL プロジェクトのドキュメントを扱います。

AI アシスタントがこのサーバーに接続すると、インデックス化された ASTGL の記事、チュートリアル、比較、ガイド、プロジェクトのドキュメントを検索できます。検索結果には、astgl.ai への出典 URL が含まれます。

要件: セマンティックツール(search_articles、get_answer、get_tutorial、compare_topics)は、クエリを実行時にローカルの Ollama でベクトル化します。nomic-embed-text が実行されている必要があります(デフォルトは http://localhost:11434)。メタデータツール(find_articles、list_tags、list_topics、get_latest)は Ollama なしで動作します。

クイックスタート

Claude Desktop

claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "astgl-knowledge": {
      "command": "npx",
      "args": ["-y", "mcp-astgl-knowledge"]
    }
  }
}
Claude Code

プロジェクトの .mcp.json に追加します。

{
  "mcpServers": {
    "astgl-knowledge": {
      "command": "npx",
      "args": ["-y", "mcp-astgl-knowledge"]
    }
  }
}
Cursor /汎用 MCP クライアント
{
  "mcpServers": {
    "astgl-knowledge": {
      "command": "npx",
      "args": ["-y", "mcp-astgl-knowledge"]
    }
  }
}
登録ありの場合(1 日あたり 500 クエリ)

register ツールで登録して API キーを取得し、設定に追加します。

{
  "mcpServers": {
    "astgl-knowledge": {
      "command": "npx",
      "args": ["-y", "mcp-astgl-knowledge"],
      "env": {
        "ASTGL_API_KEY": "astgl_your_api_key_here"
      }
    }
  }
}

ツール

search_articles

クエリでナレッジベースを検索します。関連度スコアと出典 URL を含む、関連度順の結果を返します。

パラメーター型必須説明
querystringはい検索クエリ(例:「MCP サーバーの構築方法」)
limitnumberいいえ最大結果数、1~20(デフォルト:5)
content_typestringいいえ種類で絞り込み:article、tutorial、faq、comparison、guide、newsletter、project
get_answer

特定の質問に対する直接的な回答を取得します。簡潔な回答になるよう、FAQ の項目を優先します。

パラメーター型必須説明
questionstringはい特定の質問(例:「MCP サーバーとは何ですか?」)
content_typestringいいえコンテンツの種類で絞り込み
get_tutorial

チュートリアルやガイドのコンテンツから、手順を追った説明を取得します。

パラメーター型必須説明
querystringはい学びたい内容(例:「Mac での Ollama のセットアップ」)
compare_topics

2 つのトピックを並べて比較します。

パラメーター型必須説明
topic_astringはい1 つ目のトピック
topic_bstringはい2 つ目のトピック
get_latest

追加された最新のコンテンツを取得します。

パラメーター型必須説明
limitnumberいいえ最大結果数、1~20(デフォルト:5)
list_topics

ナレッジベースのすべてのトピックを、コンテンツの種類やセクション見出しとともに一覧表示します。

register

メールアドレスを登録すると、1 日あたりのクエリ上限が 50 件から 500 件に増えます。

パラメーター型必須説明
emailstringはいメールアドレス
その他のツール

サーバーには合計 17 個のツールが登録されています。その他のツールは次のとおりです。

ツール機能主なパラメーター
find_articlesタグ、種類、タイトルのテキスト、日付範囲による構造化検索(ベクトル化なし)tag、content_type、title、date_from、date_to
list_tags各タグとその記事数を一覧表示—
suggest_ideasクエリ分析(不足しているトピック、自信度の低いクエリ)に基づくトピックの提案days(デフォルト:7)、limit
add_idea / list_ideas / export_ideasインデックスとともに保存されるアイデアジャーナルtitle、description、status、priority、source
export_article1 件の記事を Markdown 投稿として出力url
export_topic_roundup関連記事からまとめ記事を作成topic、limit
export_qa_compilation記事の Q&A ペアから FAQ 形式の Markdown を作成topic、limit
generate_dashboard_dataJSON 分析スナップショットを生成(任意で data/dashboard.json に書き込み)days(デフォルト:30)、output_file

コンテンツの種類

種類説明
articleMCP、ローカル AI、自動化に関する情報コンテンツ
projectASTGL プロジェクトのドキュメント
tutorial手順を追ったハウツーガイド
comparisonトピックを並べて比較分析したコンテンツ
guide包括的なリファレンス資料
newsletter個人的な近況やお知らせ
faq主に質疑応答形式のコンテンツ
conceptWiki の概念ページ(公開されるのは許可リストに登録されたページのみ)
entityWiki のエンティティページ(公開されるのは許可リストに登録されたページのみ)

コンテンツが追加されると件数は変わります。最新のインデックスを確認するには、list_topics または list_tags を呼び出してください。 draft と synthesis のエントリーはメンテナーデータベースにのみ存在し、公開版からは削除されます。ツールスキーマの content_type の説明には、最初の 7 種類のみが記載されています。

レート制限

ティア制限利用方法
Public50 クエリ/日デフォルト(匿名)
Registered500 クエリ/日メールアドレスを使って register ツールを利用

制限は UTC の午前 0 時にリセットされます。レート制限の情報は、すべてのレスポンスに含まれます。

制限と登録はサーバープロセス自体によって管理されます。利用状況と登録情報はローカルの SQLite ファイル(パッケージと同じ場所の data/query-log.db、または ASTGL_QUERY_LOG_DB)に保存され、匿名クライアントには ~/.astgl-client-id に永続 ID が付与されます。ASTGL_API_KEY は、ローカルの登録テーブルに存在する場合にのみ登録済みとして扱われます。

動作の仕組み

ナレッジベースは、ASTGL の記事からセマンティック埋め込み(nomic-embed-text、768 次元)を使用して事前に構築されています。コンテンツはセクションおよび FAQ エントリーごとにチャンク化され、埋め込み処理された後、ベクトル類似検索用の sqlite-vec とともに SQLite データベースに保存されます。

記事の埋め込みは事前計算され、npm パッケージに同梱されるため、コンテンツの再インデックスは不要です。セマンティックツールでは、クエリは引き続き実行時に Ollama を通じて埋め込み処理されます(上記の要件を参照)。

サーバーは data/knowledge.db が存在する場合はそれを開き(メンテナーのチェックアウト)、存在しない場合は build/knowledge-public.db を開きます。npm パッケージには build/knowledge-public.db のみが同梱されます。このファイルは npm run build-public-db によって、公開対象外のすべての行を物理的に削除して生成されます(docs/adr/ を参照)。

パフォーマンス
  • 一般的な応答時間:100~500ms(埋め込みの検索とベクトル検索)
  • 埋め込み結果はメモリにキャッシュされます(LRU、200 エントリー)。繰り返しのクエリにはほぼ瞬時に応答します
  • Ollama の呼び出しには 10 秒のタイムアウトと自動再試行が設定されています
  • クエリのログ記録は非同期/バッチ処理され、応答をブロックしません
  • レート制限のチェック結果は 5 秒間キャッシュされます

メンテナー向け

セットアップ
git clone https://github.com/Jmeg8r/mcp-astgl-knowledge.git
cd mcp-astgl-knowledge
npm install
スクリプト
スクリプト説明
npm run buildTypeScript をコンパイル
npm testテストスイートを実行(tsx 経由の node:test)
npm run devMCP サーバーを開発モードで実行(tsx)
npm startコンパイル済みの MCP サーバーを実行
npm run ingestローカルの Markdown から knowledge.db を再構築(Ollama が必要)
npm run ingest-projectsastgl-site の projects.json からプロジェクトのドキュメントをインデックス化
npm run discoverRSS/サイトマップを確認して新しいコンテンツを検索
npm run structure検出したコンテンツを処理(分類、埋め込み、インデックス化)
npm run pipeline検索と構造化を一度に実行
npm run daily-reportAEO 分析レポートを生成
npm run alertsコンテンツのギャップに関するアラートチェックを実行
npm run freshness古くなったコンテンツとエコシステムのバージョン変更を確認
npm run publish-driftローカルの公開可能なコンテンツと、npm で実際に提供される内容を比較
npm run citation-testAI による引用テストを手動で実行
npm run relatedベクトル類似度を使って記事への内部リンクを生成
npm run build-public-db非公開の行を削除した build/knowledge-public.db を書き出す(prepack で実行)

その他のメンテナースクリプト(下書きの取り込みと照合、書き換えキュー、Wiki 同期、バックアップの整理、ダッシュボードデータ、MCPB バンドル)は package.json に記載されています。

環境変数
変数デフォルト説明
OLLAMA_URLhttp://localhost:11434Ollama エンドポイント(開発/再ビルド時のみ)
EMBED_MODELnomic-embed-text埋め込みモデル
DISCORD_WEBHOOK_URL—レポート/アラート用の Discord Webhook
ASTGL_API_KEY—登録済みティアの API キー
ASTGL_ARTICLES_DIR~/Projects/astgl-site/src/content/answersローカルの Markdown ソース
ASTGL_PROJECTS_JSON~/Projects/astgl-site/src/data/projects.jsonプロジェクトのデータソース
ASTGL_QUERY_LOG_DBdata/query-log.dbクエリログ、レート制限、登録情報
ASTGL_CITATION_TEST_DBdata/citation-test.db引用テストの結果
自動ジョブ
ジョブスケジュール目的
コンテンツパイプライン6 時間ごと新しいコンテンツの検出と構造化
日次レポート午前 8 時クエリ分析と健全性指標(JSON レポート)
コンテンツアラート午前 9 時ギャップ検出、引用ゼロの検出、競合他社のスキャン(JSON レポート)
鮮度チェック午前 10 時古いコンテンツとエコシステムのバージョンを追跡(JSON レポート)
下書きパイプライン深夜 0 時公開前の下書きをインデックス化
Wiki 同期00:30タグ付けされた Wiki ページをインデックスに増分同期
下書き調整午前 2 時ソースがなくなった下書きエントリを廃止
引用テストのリマインダー毎週月曜日の午前 9 時引用テストの実行を通知

スケジュールは cron/*.json で定義されています。スケジュールされたレポートジョブは、外部スケジューラーが取得して配信する JSON を出力します。レポートスクリプトを --discord 付きで実行すると、代わりに DISCORD_WEBHOOK_URL に投稿できます。パイプライン、下書き、Wiki ジョブ用の macOS launchd plist は launchd/ にあります。

アーキテクチャ

flowchart TD
    Client["MCP client<br/>(Claude, Cursor, ...)"] -->|"stdio"| Server["MCP server<br/>src/index.ts (17 tools)"]
    Server --> RL["Rate limit + query log<br/>data/query-log.db"]
    Server --> Search["src/search.ts"]
    Search -->|"embed query"| Ollama["Ollama<br/>nomic-embed-text"]
    Search -->|"sqlite-vec KNN"| KDB[("knowledge.db<br/>or knowledge-public.db")]
    Sources["astgl.ai RSS / sitemap<br/>+ local markdown"] -->|"discover, structure, ingest"| KDB
    KDB -->|"build-public-db"| Pub[("build/knowledge-public.db<br/>(shipped in npm)")]
    Jobs["Report jobs<br/>daily report, alerts, freshness"] -.->|"--discord (manual)"| Discord["Discord webhook"]

レンダリング済みの図は docs/diagrams/mcp-astgl-knowledge.architecture.svg にあります (ソース:docs/diagrams/mcp-astgl-knowledge.architecture.json)。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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