Claude Desktop用のDuckDuckGo検索サーバーをnpmパッケージとして公開してみた

API開発

はじめに

前回の記事では、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

パッケージのメンテナンス

バージョン更新手順

  1. package.jsonのバージョン番号を更新
  2. 変更をコミット
  3. npm publishを実行

将来の展望

  • 検索オプションの拡張
  • 多言語対応の強化
  • 検索結果のフィルタリング機能
  • キャッシュ機能の実装

まとめ

MCPサーバーをnpmパッケージとして公開することで、インストールと設定が大幅に簡単になりました。また、バージョン管理や更新の配布も容易になり、よりメンテナンス性の高いプロジェクトとなりました。

参考リンク

コメント

タイトルとURLをコピーしました