【Postman MCP Generator】DatadogのMCPサーバを作成してみた!
はじめに
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のダッシュボード。回答に間違いはなさそう。
終わり!