はじめに
前回の記事では、Windows環境でTypeScriptを使ってModel Context Protocol(MCP)のDuckDuckGo検索サーバーを実装しました。今回は、このサーバーをnpmパッケージとして公開する過程を紹介します。
Windows Claude Desktop用のDuckDuckGo検索サーバーを作ってみた
はじめにWindows環境でTypeScriptを使用して、Anthropicが先日発表したModel Context Protocol(MCP)は、AIアシスタントと外部システムを接続するための新しい標準プロトコルです。今回は、このMCP...
なぜnpmパッケージとして公開するのか
MCPサーバーをnpmパッケージとして公開することで、以下のメリットがあります:
- 他のユーザーが簡単にインストールして使用可能
- バージョン管理が容易
- 依存関係の管理が自動化
- コミュニティへの貢献
パッケージの準備
package.jsonの設定
npmパッケージとして公開するために、package.jsonを以下のように設定しました:
{
"name": "@sunwood-ai-labs/duckduckgo-web-search",
"version": "0.1.0",
"description": "DuckDuckGo Web Search MCP Server - A simple web search implementation using DuckDuckGo API",
"type": "module",
"bin": {
"duckduckgo-web-search": "./build/index.js"
},
"files": [
"build"
],
"scripts": {
"build": "tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"",
"prepare": "npm run build",
"watch": "tsc --watch",
"inspector": "npx @modelcontextprotocol/inspector build/index.js"
},
"keywords": [
"mcp",
"duckduckgo",
"search",
"claude",
"model-context-protocol",
"sunwood-ai-labs"
],
"author": "Maki",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@modelcontextprotocol/sdk": "0.6.0",
"node-fetch": "^3.3.0"
},
"devDependencies": {
"@types/node": "^20.11.24",
"typescript": "^5.3.3"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Sunwood-ai-labs/duckduckgo-web-search.git"
},
"bugs": {
"url": "https://github.com/Sunwood-ai-labs/duckduckgo-web-search/issues"
},
"homepage": "https://github.com/Sunwood-ai-labs/duckduckgo-web-search#readme"
}
主なポイント:
- スコープ付きパッケージ名(@sunwood-ai-labs/)
- publicアクセス設定
- ビルド成果物の配布設定
ファイル構成
パッケージの構成は以下のようになっています:
.
├── build/ # コンパイルされたJavaScript
├── src/
│ └── index.ts # メインのソースコード
├── package.json
├── tsconfig.json
├── README.md
└── LICENSE
パッケージの公開手順
1. npmへのログイン
npm login --scope=@sunwood-ai-labs
2. ビルドの実行
npm run build
3. パッケージの公開
npm publish --access public
インストール方法
他のユーザーは以下のコマンドでパッケージをインストールできます:
npm install @sunwood-ai-labs/duckduckgo-web-search
パッケージのメンテナンス
バージョン更新手順
- package.jsonのバージョン番号を更新
- 変更をコミット
npm publish
を実行
将来の展望
- 検索オプションの拡張
- 多言語対応の強化
- 検索結果のフィルタリング機能
- キャッシュ機能の実装
まとめ
MCPサーバーをnpmパッケージとして公開することで、インストールと設定が大幅に簡単になりました。また、バージョン管理や更新の配布も容易になり、よりメンテナンス性の高いプロジェクトとなりました。
コメント