|
| 1 | +--- |
| 2 | +title: "JSer.info のMCPサーバを公開しました" |
| 3 | +author: azu |
| 4 | +layout: post |
| 5 | +date : 2025-05-09T12:30 |
| 6 | +category: 雑記 |
| 7 | +tags: |
| 8 | + - JSer.info |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +AI Agentなどから、JSer.info のデータへアクセスするための [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction)サーバーを公開しました。 |
| 13 | + |
| 14 | +## [`jser/mcp`](https://github.com/jser/mcp)とは |
| 15 | + |
| 16 | +[`jser/mcp`](https://github.com/jser/mcp)とは、[JSer.info](http://JSer.info) のデータセットへプログラムからアクセスするための MCP サーバーです。 |
| 17 | +MCP は、AI エージェントや開発ツールが外部のデータソースや機能と連携するためのプロトコルです。 |
| 18 | +`jser/mcp`を利用することで、JSer.info が紹介したアイテムや書いた記事、URLのプロダクト名(JSer.infoの紹介で利用している)などを取得できます。 |
| 19 | + |
| 20 | +## [`jser/mcp`](https://github.com/jser/mcp)の提供するtools |
| 21 | + |
| 22 | +`jser/mcp`に接続することで、以下のツールが利用可能になります。 |
| 23 | + |
| 24 | +- **`jser_search_items`**: JSer.info に登録されているアイテム(記事、スライド、ライブラリなど)を、タイトル、説明文、URL、タグといった情報に基づいて検索します。複数のキーワードを指定した場合は OR 検索として扱われます。 |
| 25 | +- **`jser_search_posts`**: JSer.info の週刊まとめ記事を、タイトル、説明文、URL、タグといった情報に基づいて検索します。 |
| 26 | +- **`jser_product_name`**: 指定された URL からプロダクト名(例: Deno, React)を推定して取得します。関連情報として、その URL がリリースノートである確率やバージョン情報が含まれることもあります。 |
| 27 | +- **`jser_week`**: JSer.info の週刊まとめ記事を、号数を指定して取得します。 |
| 28 | +- **`jser_weeks`**: これまでに公開された全ての JSer.info 週刊まとめ記事の情報を取得します。 |
| 29 | +- **`jser_weeks_between`**: 指定した日付の範囲内に公開された JSer.info 週刊まとめ記事の情報を取得します。 |
| 30 | +- **`jser_week_with_item_url`**: 特定のアイテム URL が含まれる JSer.info 週刊まとめ記事の情報を取得します。 |
| 31 | +- **`jser_item_with_item_url`**: 指定した URL に合致するアイテムの詳細情報を取得します。 |
| 32 | + |
| 33 | +これらのツールを利用することで、「特定の JavaScript ライブラリについて言及している JSer.info の記事一覧を取得する」といったデータ収集や、「JSer.infoスタイルでURLの記事を解説して」といったことができます。 |
| 34 | + |
| 35 | +たとえば、[jser-info-article.prompt.md](https://github.com/jser/jser.info/blob/gh-pages/.github/prompts/jser-info-article.prompt.md)のようなプロンプトを使って、次のようなURLを渡すと、JSer.info スタイルで記事を解説してくれます。 |
| 36 | + |
| 37 | +- URL: https://github.com/reduxjs/redux-toolkit/releases/tag/v2.8.0 |
| 38 | + |
| 39 | +``` |
| 40 | +Redux Toolkit v2.8.0リリース。 |
| 41 | +React Nativeのパッケージエクスポートを修正/Infinite Queryのページパラメータ関数に`queryArg`を追加。 |
| 42 | +``` |
| 43 | + |
| 44 | +のような記事の説明文を生成できます。 |
| 45 | + |
| 46 | +## `jser/mcp`の利用方法 |
| 47 | + |
| 48 | +`jser/mcp`は、VSCode などの MCP クライアントから利用できます。 |
| 49 | +主な利用方法として、公開されているリモートサーバーへ接続する方法と、ローカル環境でサーバーを起動する方法があります。 |
| 50 | + |
| 51 | +### リモートサーバーの利用 |
| 52 | + |
| 53 | +公開されているリモートサーバーのエンドポイントは `https://mcp.jser.info/mcp` です。 |
| 54 | + |
| 55 | +#### VSCode での設定例 1: コマンドラインからの追加 |
| 56 | + |
| 57 | +VSCode がインストールされている環境では、ターミナルから以下のコマンドを実行することで MCP サーバーの情報を追加できます。 |
| 58 | + |
| 59 | +```bash |
| 60 | +code --add-mcp '{"name":"jser-info-mcp","url":"https://mcp.jser.info/mcp"}' |
| 61 | +``` |
| 62 | + |
| 63 | +#### VSCode での設定例 2: `settings.json` への追記 |
| 64 | + |
| 65 | +VSCode の `settings.json` ファイルに以下の設定を記述することでも利用可能です。 |
| 66 | + |
| 67 | +```json |
| 68 | +{ |
| 69 | + "mcp": { |
| 70 | + "servers": { |
| 71 | + "jser-info-mcp": { |
| 72 | + "url": "https://mcp.jser.info/mcp" |
| 73 | + } |
| 74 | + } |
| 75 | + } |
| 76 | +} |
| 77 | +``` |
| 78 | + |
| 79 | +### ローカルサーバーの利用 |
| 80 | + |
| 81 | +ローカル環境でサーバーを起動して利用することも可能です。 |
| 82 | + |
| 83 | +1. ターミナルで`@jser/mcp` パッケージを実行してサーバーを起動します。 |
| 84 | + ```bash |
| 85 | + npx @jser/mcp |
| 86 | + ``` |
| 87 | +2. VSCode のコマンドパレット (Cmd+Shift+P または Ctrl+Shift+P) から「MCP: Add Server...」を選択します。 |
| 88 | +3. サーバー URL として、ローカルサーバーがリッスンしている `http://localhost:14561/mcp` を入力し接続します。 |
| 89 | + |
| 90 | +## データソース |
| 91 | + |
| 92 | +JSer.infoのデータは[jser/dataset: JSer.infoのデータセットや処理ライブラリ](https://github.com/jser/dataset)で扱えます。 |
| 93 | +基本的に今まで紹介した記事や投稿した記事がJSONとして取得できるようになっています。 |
| 94 | + |
| 95 | +URLからプロダクト名(ライブラリ名)を取得するのも過去のJSer.infoのデータを元にしています。 |
| 96 | +この機能は単体のWeb APIとしても公開しています。 |
| 97 | + |
| 98 | +- [JSer.info Product Name API](https://github.com/jser/product-name) |
| 99 | + |
| 100 | +## 関連情報 |
| 101 | + |
| 102 | +`jser/mcp`に関する詳細や最新情報については、以下のリポジトリを参照してください。 |
| 103 | + |
| 104 | +- リポジトリ [https://github.com/jser/mcp](https://github.com/jser/mcp) |
0 commit comments