Closed1

【Postman MCP Generator】DatadogのMCPサーバを作成してみた!

toge510toge510

はじめに

PostmanのMCP Generatorを使うと、Postmanのカタログに登録されているAPIのサービスのMCPサーバを簡単に作成できる!と聞いたので、実際に、DatadogのMCPサーバを作成してみた。

対象読者

Postman MCP Generator使ってみたい人。

記事を読むメリット

Postman MCP Generatorの使い方がわかる。

結論

  • Postman MCP Generatorを使用すると、簡単にMCPサーバを作成できる。
  • MCPサーバのDockerfileも自動生成されるので、dockerで起動可能である。
  • MCPサーバのコードは、多少の手直しは必要だった。

DatadogのMCPサーバを作成

Postman MCP GeneratorでMCPサーバを生成

ページにアクセス。

https://www.postman.com/explore/mcp-generator

Datadogを検索。

Datadog API Collection > Hostsにおいて、
今回は、Hostに関係するこの2つのAPIエンドポイントのみを選択。非常に簡単なDatadog MCPサーバをひとまず作る。

  • Get the total number of active hosts
    • このエンドポイントは、Datadog アカウント内のアクティブで稼働中のホストの総数を返します。アクティブとは、ホストが過去 1 時間以内にレポートを送信したことを意味し、稼働中とは、ホストが過去 2 時間以内にレポートを送信したことを意味します。
  • Get all hosts for your organization
    • このエンドポイントでは、名前、エイリアス、またはタグでホストを検索できます。過去3時間以内に稼働していたホストがデフォルトで含まれます。保存期間は7日間です。結果はページ分けされ、一度に最大1000件まで表示されます。

「Add requests」して、「Generate」する。

20秒ほどで、生成されるので、「Download ZIP」する。

vscodeでMCPサーバを設定する

datadog-mcp-server ディレクトリに、解凍する。

unzip postman-mcp-server.zip -d datadog-mcp-server
Archive:  postman-mcp-server.zip
 extracting: datadog-mcp-server/.gitignore  
 extracting: datadog-mcp-server/.gitkeep  
 extracting: datadog-mcp-server/Dockerfile  
 extracting: datadog-mcp-server/README.md  
   creating: datadog-mcp-server/commands/
 extracting: datadog-mcp-server/commands/tools.js  
 extracting: datadog-mcp-server/index.js  
   creating: datadog-mcp-server/lib/
 extracting: datadog-mcp-server/lib/tools.js  
 extracting: datadog-mcp-server/mcpServer.js  
 extracting: datadog-mcp-server/package.json  
   creating: datadog-mcp-server/tools/
   creating: datadog-mcp-server/tools/datadog-s-public-workspace/
   creating: datadog-mcp-server/tools/datadog-s-public-workspace/datadog-api-collection/
 extracting: datadog-mcp-server/tools/datadog-s-public-workspace/datadog-api-collection/get-the-total-number-of-active-hosts.js  
 extracting: datadog-mcp-server/tools/datadog-s-public-workspace/datadog-api-collection/get-all-hosts-for-your-organization.js  
 extracting: datadog-mcp-server/.env  
 extracting: datadog-mcp-server/tools/paths.js 

ここからは、基本的にはREADME.mdに従う。

まずは、.envファイルに、DatadogのAPIキーを設定する。

# Workspace API Keys
DATADOG_S_PUBLIC_WORKSPACE_API_KEY=<datadog api key>

通常、DatadogのAPIを使用するには、application keyが必要だが、application keyの環境変数設定はない。

tools > datadog-s-public-workspace > datadog-api-collectionディレクトリ内の各ファイルを確認すると、以下記述がある。application keyはここに記述する仕様となっている。また、baseUrlは、US1のサイトのものになっている。私の場合、AP1のサイトのため、この設定も変更する必要がある。

  const baseUrl = 'https://api.datadoghq.com';
  const apiKey = process.env.DATADOG_S_PUBLIC_WORKSPACE_API_KEY;
  const applicationKey = ''; // will be provided by the user

以下のように変更。環境変数名も若干気になったので変更。

  const baseUrl = process.env.DATADOG_BASE_URL;
  const apiKey = process.env.DATADOG_API_KEY;
  const applicationKey = process.env.DATADOG_APP_KEY;

また、.envファイルも変更

# Workspace API Keys
DATADOG_BASE_URL=https://ap1.datadoghq.com
DATADOG_API_KEY=<datadog api key>
DATADOG_APP_KEY=<datadog app key>

README.mdの、「🐳 Docker Deployment (Production)」に従って、docker buildする。

docker build -t datadog-mcp-server .

README.mdには、「Claude Desktop Integration」について記述がある。今回は、vscodeで設定する。

パレットから、以下の感じで、MCPサーバを追加する。

README.md通りに、docker runのコマンドは以下。

docker run -i --rm --env-file=.env datadog-mcp-server

MCPサーバに聞いてみる

GitHub Copilot Agent modeで、以下のようなことを聞いてみる。

  • datadog hostの数は?
  • なんて名前?
  • homelabの情報を教えて

プロンプトに合わせて、MCPサーバが適切なAPIにリクエストを送ってくれているよう。

こちらがDatadogのダッシュボード。回答に間違いはなさそう。

終わり!

このスクラップは2ヶ月前にクローズされました