mcpField
A
archlang-mcp

archlang-mcp

ローカル
archlang.ukメディア・デザイン26今日更新

archlang-mcp について

archlang-mcpは、コードで記述した建築平面図の作成、確認、修復を行うstdio MCPサーバーです。ArchLangライブラリをMCPネイティブなホスト向けのツールとして公開し、ArchLang CLIの代替ではなく補完として機能します。

主な機能

  1. 01平面図をSVG、テキスト、JSON、PNGに変換
  2. 02部屋、面積、隣接関係を記述
  3. 03ルール検査と平面図の検証
  4. 04図面ソースの修復と補完
  5. 05言語仕様とスキーマを提供

活用シーン

  1. 01コード化した平面図をレンダリングして確認
  2. 02設計概要に沿って平面図を検証
  3. 03レイアウトの問題を修正し図面の詳細を補完

MCP 対応

stdioサーバーはArchLangの操作をMCPツールとして公開し、言語仕様、スキーマ、文法をリソースとして提供します。ツールは平面図ソースを受け取り、構造化された結果を返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"chanmeng666-archlang": {
"command": "npx",
"args": [
"-y",
"@chanmeng666/archlang-mcp"
]
}
}
}
起動コマンドnpx -y @chanmeng666/archlang-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@chanmeng666/archlang-mcp0.2.29

ツール

10

掲載時のツール一覧 · 今日に更新

パラメーター型必須説明
levelintegerいいえ複数階の平面図で、この階のみをレンダリングします。宣言されていない階はエラーとなり、推測されません。
formatenumいいえsvg(デフォルト)または txt(依存関係のない ASCII)。svg | txt
sourcestringいいえArchLang ソース(`plan "…" { … }`)。これか plan_json のいずれかを指定してください。
overlayenumいいえオプションの動線オーバーレイを描画します(SVG のみ)。circulation
plan_jsonobjectいいえPlan JSON(RPLAN 形式)。`source` の代わりに指定でき、.arch に変換してからコンパイルされます。
accessiblebooleanいいえアクセシビリティメタデータ <title>/<desc>/role/aria を出力します(SVG のみ)。

詳細

@chanmeng666/archlang-mcp

ArchLang 用の Model Context Protocol サーバーです。MCP に対応したホストから、コードで記述された建築の平面図を作成、検査、修復できます。

これは @chanmeng666/archlang ライブラリを薄く包む stdio シムです(サブプロセスも再実装もありません)。各ツールは、エクスポートされた単一の純粋関数をラップします。コアは 依存関係ゼロのままです。MCP SDK はこのパッケージ内でのみ使用されます。

CLI を優先する場合

ArchLang の主なエージェント向けインターフェースは、このサーバーではなく、エージェントネイティブな archlang CLI です。CLI は呼び出されるまでエージェントのコンテキストウィンドウをまったく消費しませんが、MCP ツールのスキーマは常にウィンドウ内にあります。エージェントがすでにシェルを使える場合は、次を優先してください。

npx -y @chanmeng666/archlang context     # the whole language + workflow + CLI + errors, one call
npx -y @chanmeng666/archlang compile plan.arch -o out.svg --json

npm i -g @chanmeng666/archlang の後は、同じ呼び出しを archlang context および archlang compile … として実行できます。このパッケージは arch というエイリアスもインストールしますが、Linux、macOS、Git Bash では coreutils に独自の arch が含まれているため、そこで arch をそのまま実行すると別のプログラムが起動します。

この MCP サーバーは、MCP ネイティブのホストがレジストリを通じて ArchLang を検出し、シェルを使わずに操作できるようにするために存在します。公式 MCP レジストリには io.github.ChanMeng666/archlang-mcp として掲載されています。これは検出のための経路であり、置き換えを目的としたものではありません。ADR 0012(ADR 0009 のプロトコルより配布を優先する方針を修正)を参照してください。

サーバーの指示

initialize 時にサーバーは短い instructions 文字列を送信し、対応するホストはこれをモデルのコンテキストに追加します。まず archlang://spec リソースを読み、次に .arch を記述して → compile(および fix)→ describe → strict:true を指定した validate の順に実行し、エクスポートする前に完了させてください。これは SKILL.md のループを簡潔にまとめたもので、テストでは、そこで指定されたコマンドが CLI マニフェストと、そのループの順序に一致することを確認します。

ツール

すべてのツールは ArchLang の source(plan "…" { … } 形式の文字列)を受け取り、構造化 JSON を返します。compile は plan_json(Plan-JSON / RPLAN 形式)も受け付けます。

ツール機能
compileソース(または plan_json)を SVG、依存関係のない ASCII(format:"txt")、オブジェクト形式の Plan JSON(format:"json"。plan_json が受け取る形式)、または PNG 画像(archlang preview の幅を使用しますが、width で上書きできます。範囲内にクランプされます。オプションの @resvg/resvg-js が必要ですが、.mcpb バンドルには含まれません)にレンダリングします。accessible と overlay:"circulation" はオプトインです。出力と診断情報を返します。複数階のプランではすべての階を pages[] で返し、level を指定すると1階分をレンダリングします。
describe意味的な情報(部屋、面積、隣接関係、ドア、動線、ゾーン、階、正確な floor_polygon / floor_circle の形状、およびどの位置が手作業で記述され、どの位置がリゾルバーから導出されたかを示す freedom レポート)を返します。画像を使わずに意図を検証できます。
lint助言的な W_* の健全性警告を返します(間接的なラベルの別名から推測した部屋用途について、修正情報を含む W_ALIAS_MATCH が含まれる場合があります)。profile でルールセットを選択します。
validate解析、解決、lint を実行する出荷判定ツールです。strict は警告があると失敗し、graph は内部ドアの隣接関係を意図した部屋グラフと照合し、intent は概要の契約条件に照らして判定します(archlang://intent-schema を参照)。
score継続的な意図 METER です。概要をプランがどの程度満たしているかを示します(satisfied / total / score / subscores)。測定のみを行い、合否判定はしません。
repair明示的な修正ツールです。壁、出入口、ドアの開閉軌跡からはみ出した家具を修正し、新しい .arch ソースと変更ログを返します。ドアや窓は追加しません。
finish図面を完成させます。家具のない部屋に家具を配置してから、不足している paper、scale、dims auto、title、schedule rooms、legend を追加し、新しい .arch ソースと変更ログを返します。不足しているものだけを補います。only を指定すると1つの段階(furnish または sheet)のみを実行し、reissue を指定すると paper / scale を置き換える場合があります。
fixプランの診断情報に含まれる、機械的に適用可能な修正を実行します(構文上の修正ツール。上限付きの不動点反復)。unsafe を指定すると maybe-incorrect も対象にします。
suggest到達不能な部屋や窓のない寝室を解消するための、助言的なドア/窓の記述を返します(それぞれ、安定した参照(記述された ID または一意なカテゴリ)または絶対座標で壁を参照します。再バインド可能な位置 ID は使用しません)。データを返すだけで、適用はしません。
completeソースのバイトオフセット位置で有効な LSP 補完項目を返します。
linkインストール不要でブラウザーからプランを表示できる2つの URL を返します。playground はホストされたエディターでレンダリングされたプランを表示し、embed は iframe 用にプランのみを表示します。さらに、圧縮されたプランのサイズ bytes と ok も返します(プランをコンパイルできない場合は errors の件数も返します。その場合もリンクは生成され、ページには診断情報が表示されます)。プランは URL のフラグメントに格納されます。./link をエクスポートするコアが必要です。古いコアでは ok:false と、必要なバージョンが返されます。
compile の accessible がここで行うことと、行わないこと

accessible: true にすると、このシムが公開するオプションのすべてとして、SVG のルートに <title>/<desc> のペアと role="img" が設定されます。v1.36 の要素コントロールは MCP から利用できません。 これらを使うには accessible と合わせて annotate が必要ですが、このツールは format:"txt" の場合にしか annotate を渡しません。また、accessible はブール値として受け取るため、1 つの HTML ページ上に複数のプランを配置しても arch-title/arch-desc が重複しないようにする { idPrefix } 形式も指定できません。

キーボードやスクリーンリーダーで操作できる図を必要とするホストは、各要素に data-arch-primary、role="button"、aria-label を付与するため、ライブラリを呼び出す必要があります。CLI でも生成できません。annotate にフラグがないため、archlang compile --accessible で生成できるのも <title>/<desc> のペアまでです。

import { compile } from "@chanmeng666/archlang";
compile(src, { annotate: true, accessible: { idPrefix: "plan-7" } });

出力の仕様、埋め込み側で引き続き対応が必要な事項、スクリーンリーダーに関する既知の制限については、言語リファレンスをご覧ください。

リソース

URI内容
archlang://spec言語仕様の全体(1 ページ、spec.llm.md)。
archlang://contextエージェント向けの完全なコンテキスト:仕様+ワークフロー+CLI リファレンス+エラーカタログ(llms-full.txt)。
archlang://schemaPlan-JSON コンパイル入力用の JSON Schema(2020-12)。
archlang://grammarパース可能な生成を保証する、GBNF 制約付きデコード文法。
archlang://intent-schemabrief の Intent 用 JSON Schema(2020-12)。validate の intent と score の brief が受け取る形式です。

インストール

Claude Code
claude mcp add archlang -- npx -y @chanmeng666/archlang-mcp
Claude Desktop

claude_desktop_config.json に追加します(Settings → Developer → Edit Config)。

{
  "mcpServers": {
    "archlang": {
      "command": "npx",
      "args": ["-y", "@chanmeng666/archlang-mcp"]
    }
  }
}
Cursor

.cursor/mcp.json(プロジェクト)または ~/.cursor/mcp.json(グローバル)に追加します。

{
  "mcpServers": {
    "archlang": {
      "command": "npx",
      "args": ["-y", "@chanmeng666/archlang-mcp"]
    }
  }
}
VS Code

.vscode/mcp.json に追加します。

{
  "servers": {
    "archlang": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@chanmeng666/archlang-mcp"]
    }
  }
}

ライセンス

MIT © Chan Meng

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。