Skip to main content
Glama
yamanoku

Baseline MCP Server

by yamanoku
README.md
<p align="center">
	<img src="./logo.png" alt="Baseline MCP Serverロゴ" width="200" height="200">
</p>

<h1 align="center">Baseline MCP Server</h1>

[日本語版](./README.md) | [English Version](./README_EN.md)

Web Platform APIのサポート状況を提供するModel Context Protocolサーバーです。

[![JSR Version](https://jsr.io/badges/@yamanoku/baseline-mcp-server)](https://jsr.io/@yamanoku/baseline-mcp-server)

## 概要

このサーバーは、[Web Platform Dashboard](https://webstatus.dev/)のAPIを使用して、WebのAPI機能のBaselineステータス(サポート状況)を取得できるMCPサーバーを実装しています。クエリに基づいてWeb機能の情報を取得し、その結果をMCPクライアントに返します。

![Claude Desktop上でdetails要素にまつわるBaseline情報を質問してMCPサーバーを経由してその結果が反映されている。内容は<details>要素、相互排他的な<details>要素、::details-content疑似要素のそれぞれをリストアップしてBaselineの情報を伝えている。](./screenshot_claude_desktop.png)

## 機能

- Web Platform DashboardのAPIを使用した機能検索
- 機能のBaselineステータス(`widely`、`newly`、`limited`、`no_data`)の提供
- ブラウザ実装状況(バージョンと実装日)の提供
- 機能の使用状況データの提供
- 特定のブラウザを除外した機能検索(`chrome`, `edge`, `firefox`, `safari`)
- MCPを介した各種AIモデルとの連携

## Baselineステータスについて

Baselineステータスは、Web機能のブラウザサポート状況を示します:

- **widely**:
  広くサポートされているWeb標準機能。ほとんどのブラウザで安全に使用できます。
- **newly**:
  新しく標準化されたWeb機能。主要なブラウザでサポートされ始めていますが、まだ普及途上です。
- **limited**:
  限定的にサポートされているWeb機能。一部のブラウザでは使用できないか、フラグが必要な場合があります。
- **no_data**:
  現時点ではBaselineに含まれていないWeb機能。ブラウザのサポート状況を個別に確認する必要があります。

Baselineについての詳細については「[Baseline (互換性) - MDN Web Docs 用語集](https://developer.mozilla.org/ja/docs/Glossary/Baseline/Compatibility)」を参照してください。

## MCPクライアントでの設定

- サーバーを起動するにあたり、Denoの使用を推奨します
  - パーミッションとして`api.webstatus.dev`のみのアクセスを許可してください
- [`@yamanoku/baseline-mcp-server`](https://jsr.io/@yamanoku/baseline-mcp-server)を指定するか、お手元のローカル環境にbaseline-mcp-server.tsを設置して読み取るように設定してください
- Denoをインストールせずに使う場合は、[スタンドアロンバイナリ](#スタンドアロンバイナリ)を利用できます

### Claude Desktop

Claude
DesktopのMCPクライアントで使用するには、以下のように`cline_mcp_settings.json`に設定を追加します。

```json
{
  "mcpServers": {
    "baseline-mcp-server": {
      "command": "deno",
      "args": [
        "run",
        "--allow-net=api.webstatus.dev",
        "jsr:@yamanoku/baseline-mcp-server"
      ]
    }
  }
}
```

### Visual Studio Code

Visual Studio
CodeのMCPクライアントで使用するには、以下のように`settings.json`に設定を追加します。

```json
{
  "mcp": {
    "servers": {
      "baseline-mcp-server": {
        "command": "deno",
        "args": [
          "run",
          "--allow-net=api.webstatus.dev",
          "jsr:@yamanoku/baseline-mcp-server"
        ]
      }
    }
  }
}
```

## Dockerによる起動

最初にDockerイメージをビルドします。

```shell
docker build -t baseline-mcp-server .
```

MCPクライアントの設定でDockerコンテナを実行するようにします。

```json
{
  "mcpServers": {
    "baseline-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "baseline-mcp-server:latest"
      ]
    }
  }
}
```

## スタンドアロンバイナリ

[`deno compile`](https://docs.deno.com/runtime/reference/cli/compile/)
で、Denoランタイムを含んだ単一の実行ファイルを作れます。ネットワーク許可(`api.webstatus.dev`)はコンパイル時に埋め込まれるため、実行時にDenoや追加のパーミッション指定は不要です。

### GitHub Releasesから入手する

バージョンタグ(`v*`)をpushすると、OSごとのzip(`linux.zip` / `macos.zip` /
`windows.zip`)がGitHub Releasesに公開されます。展開後の配置は次のとおりです。

| OS      | アーキテクチャ | ファイル                                  |
| ------- | -------------- | ----------------------------------------- |
| Linux   | x86_64         | `linux/baseline-mcp-server-x86_64`        |
| Linux   | ARM64          | `linux/baseline-mcp-server-aarch64`       |
| macOS   | x86_64         | `macos/baseline-mcp-server-x86_64`        |
| macOS   | ARM64          | `macos/baseline-mcp-server-aarch64`       |
| Windows | x86_64         | `windows/baseline-mcp-server-x86_64.exe`  |
| Windows | ARM64          | `windows/baseline-mcp-server-aarch64.exe` |

[最新リリース](https://github.com/yamanoku/baseline-mcp-server/releases/latest)
から環境に合ったzipをダウンロードして展開し、実行権限を付与してください。同梱の`SHA256SUMS`で改ざんがないことも確認できます。

```shell
unzip linux.zip
chmod +x linux/baseline-mcp-server-x86_64
sha256sum --ignore-missing -c SHA256SUMS
```

MCPクライアントでは、ダウンロードしたバイナリのパスを`command`に指定します。

```json
{
  "mcpServers": {
    "baseline-mcp-server": {
      "command": "/path/to/linux/baseline-mcp-server-x86_64"
    }
  }
}
```

### ローカルでコンパイルする

```shell
# 実行中のOS向け
deno task compile

# ドキュメント記載の全ターゲット向け(GitHub Releasesと同じ成果物)
deno task compile:all
```

成果物は`dist/`に出力されます。ホスト向けバイナリは`dist/baseline-mcp-server`、全ターゲット向けは`dist/linux/`・`dist/macos/`・`dist/windows/`です。

## 謝辞

このOSSはGPT-4o Image Generationによってロゴを製作、Claude 3.7
Sonnetによって実装、ドキュメントのサンプルを提案いただきました。感謝申し上げます。

## ライセンス

[MIT License](./LICENSE)