mcp-spec-comments

mcp-spec-comments

A comment-based spec-driven development MCP server that facilitates workflows from requirements creation to implementation via AI, using @spec-impl markers.

Category
Visit Server

README

mcp-spec-comments

MCP server for spec-driven development with comment-based implementation

シンプルなコメントベースの設計駆動開発を支援するMCPサーバーです。AIとファイルの間でテンプレートやルールを橋渡しし、設計書の作成からコメント配置、実装までをサポートします。

特徴

  • 🎯 シンプル設計: MCPサーバーはファイルの読み書きに徹し、複雑な処理はAIに委譲
  • 📝 コメント駆動: @spec-impl マーカーで実装箇所と手順を明確化
  • 🔄 ワークフロー管理: 設計書作成 → コメント配置 → 実装 → 進捗確認の流れをサポート
  • ⚙️ カスタマイズ可能: テンプレートとルールをプロジェクトに合わせてカスタマイズ

ステータス

⚠️ 現在はローカル利用のみ対応

このプロジェクトは現在、npm パッケージとしての公開は行っていません。 ローカル環境または社内 Git リポジトリでの利用を想定しています。

インストール

ローカル利用の場合

  1. リポジトリをクローン:
git clone <repository-url> ~/mcp-spec-comments
cd ~/mcp-spec-comments
  1. 依存関係をインストール:
npm install
  1. ビルド:
npm run build

社内共有の場合

詳細は 社内利用セットアップガイド を参照してください。

セットアップ

1. spec-comments.config.yml を作成

プロジェクト固有の設定を反映したい場合は作成してください。もし作成しなかった場合、デフォルトの設定が反映されます。
プロジェクトルートに spec-comments.config.yml を作成します:

# テンプレート設定
templates:
  directory: "./templates"  # カスタムテンプレートの場所
  use_defaults: true        # デフォルトテンプレートを使用

# ルールファイル(任意)
rules:
  design_rules: "./rules/design-rules.md"
  comment_rules: "./rules/comment-rules.md"
  implementation_rules: "./rules/implementation-rules.md"

# 出力先のデフォルト設定
output:
  base_directory: "./.spec-comments"
  requirements_filename: "requirements.md"
  design_filename: "design.md"
  implementation_log_filename: "implementation.log"

# プロジェクト設定
project:
  root: "."
  source: "./src"

2. Claude に設定

方法A: Claude CLI から登録(推奨)

claude mcp add spec-comments -- node /path/to/mcp-spec-comments/dist/index.js

注意: /path/to/mcp-spec-comments は実際のインストールパスに置き換えてください。

方法B: 手動で設定ファイルを編集

claude_desktop_config.json を編集:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "spec-comments": {
      "command": "node",
      "args": [
        "/path/to/mcp-spec-comments/dist/index.js"
      ],
      "cwd": "/path/to/mcp-spec-comments"
    }
  }
}

注意: /path/to/mcp-spec-comments は実際のインストールパスに置き換えてください。

3. Claude を再起動

設定を反映させるため、Claude を再起動してください。

使い方

ワークフロー

このMCPサーバーは、フェーズごとのユーザー確認を重視した段階的なワークフローを採用しています。

フェーズ1: 要件定義書作成
   pass_to_ai_for_requirements でユーザー要件から要件定義書を生成
   ↓
   ✅ ユーザー確認・承認
   ↓
フェーズ2: 詳細設計書作成
   pass_to_ai_for_design で要件定義書から設計書を生成
   ↓
   ✅ ユーザー確認・承認
   ↓
フェーズ3: コメント配置
   pass_to_ai_for_comments で設計書からコメントを配置
   ↓
   ✅ ユーザー確認・承認
   ↓
フェーズ4: 実装処理
   pass_to_ai_for_implementation でコメントに従って実装
   ↓
   ✅ 完了

重要: 各フェーズ完了後、必ずユーザーの承認を得てから次のフェーズに進みます。

ツール一覧

1. pass_to_ai_for_requirements

ユーザー要件をAIに渡して要件定義書を作成(ワークフローの最初のステップ)。

パラメータ:

  • user_input (必須): ユーザーの要件や作りたいものの説明
  • feature_name (必須): 機能名(例: user-authentication, payment-system
  • output_path (任意): 出力先のファイルパス(デフォルト: .spec-comments/{feature_name}/requirements.md

:

ユーザー入力: ユーザー認証機能を持つWebアプリケーション
機能名: user-authentication
出力先: .spec-comments/user-authentication/requirements.md (自動生成)

2. pass_to_ai_for_design

要件定義書を元にAIに設計書を作成させる(ワークフローの2番目のステップ)。

パラメータ:

  • requirements_path (必須): 要件定義書のファイルパス
  • feature_name (必須): 機能名(要件定義書作成時と同じ名前を指定)
  • output_path (任意): 出力先のファイルパス(デフォルト: .spec-comments/{feature_name}/design.md

:

要件定義書: .spec-comments/user-authentication/requirements.md
機能名: user-authentication
出力先: .spec-comments/user-authentication/design.md (自動生成)

3. pass_to_ai_for_comments

設計書を元にAIにコメント(@spec-implマーカー)を配置させる(ワークフローの3番目のステップ)。

パラメータ:

  • design_path (必須): 設計書のファイルパス
  • target_files (任意): コメントを配置する対象ファイルのパス配列

:

設計書: docs/design.md
対象ファイル: ["src/auth.ts", "src/user.ts"]

4. pass_to_ai_for_implementation

コメント付きファイルをAIに渡して実装させる(ワークフローの最後のステップ)。

パラメータ:

  • target_files (必須): 実装対象のファイルパス配列
  • implementation_order (任意): 実装順序

:

対象ファイル: ["src/auth.ts"]

コメントマーカー形式

// @spec-impl [ID] [優先度] [状態]
// [実装内容の説明]
// [実装手順を箇条書きで記述]
// @spec-end

:

// @spec-impl AUTH-001 HIGH TODO
// ユーザー認証処理を実装
// 1. リクエストからAuthorizationヘッダーを取得
// 2. トークンの検証(JWTライブラリ使用)
// 3. トークンが無効な場合は401エラーを返す
// 4. 有効な場合はユーザー情報をデコードして返却
// @spec-end

実装後:

// @spec-impl AUTH-001 HIGH DONE
// ユーザー認証処理を実装
export function authenticateUser(token: string): User | null {
  // 実装されたコード
}
// @spec-end

デフォルトテンプレート

パッケージには以下のデフォルトテンプレートが含まれています:

requirements.md - 要件定義書テンプレート

包括的な要件定義書テンプレートで、小規模から大規模プロジェクトまで対応可能です。

主な特徴:

  • ユーザーストーリー形式(As a/I want/so that)
  • WHEN/THEN形式の受け入れ基準
  • 優先度・依存関係の管理
  • 詳細な非機能要件(コードアーキテクチャ、パフォーマンス、セキュリティ、信頼性、スケーラビリティ、ユーザビリティ、保守性)
  • リスク管理と成功基準
  • スケジュールとマイルストーン
  • 承認フローと改訂履歴

含まれるセクション:

  • プロジェクト概要とビジョンとの整合性
  • ステークホルダー情報
  • 機能要件(優先度・依存関係付き)
  • 非機能要件(詳細)
  • 技術制約とスコープ
  • 前提条件と依存関係
  • 用語集
  • リスクと対策
  • 成功基準
  • スケジュールとマイルストーン
  • 承認フローと改訂履歴

その他のテンプレート

  • design.md: 詳細設計書テンプレート
  • comment-rules.md: コメント記述ルール
  • implementation-rules.md: 実装ルール

これらは spec-comments.config.ymluse_defaults: true にすることで使用できます。

ディレクトリ構造

このMCPサーバーは、機能ごとにドキュメントを整理する構造を採用しています:

your-project/
├── .spec-comments/              # 機能別ドキュメントの基底ディレクトリ
│   ├── user-authentication/     # 機能1: ユーザー認証
│   │   ├── requirements.md      # 要件定義書
│   │   └── design.md            # 詳細設計書
│   ├── payment-system/          # 機能2: 決済システム
│   │   ├── requirements.md
│   │   └── design.md
│   └── dashboard-ui/            # 機能3: ダッシュボードUI
│       ├── requirements.md
│       └── design.md
├── src/                         # 実装コード
├── templates/                   # カスタムテンプレート(任意)
│   ├── requirements.md
│   └── design.md
└── spec-comments.config.yml     # 設定ファイル

ポイント:

  • 機能名(feature_name)は各ツール実行時に指定
  • .spec-comments/{feature_name}/ 配下にドキュメントが自動配置される
  • 出力先をカスタマイズしたい場合は output_path パラメータで上書き可能

カスタマイズ

テンプレートのカスタマイズ

プロジェクトの templates/ ディレクトリにカスタムテンプレートを配置できます:

your-project/
├── templates/
│   ├── requirements.md      # カスタム要件定義テンプレート
│   ├── design.md            # カスタム設計書テンプレート
│   └── my-custom.md         # 独自テンプレート
└── spec-comments.config.yml

出力先のカスタマイズ

spec-comments.config.yml で基底ディレクトリやファイル名を変更できます:

output:
  base_directory: "./docs/features"  # 基底ディレクトリを変更
  requirements_filename: "spec.md"   # ファイル名を変更
  design_filename: "architecture.md"

将来的な機能

実装状況管理機能(未実装)

現在、@spec-impl マーカーの状態管理は手動で行う必要がありますが、将来的には以下の機能を追加予定です:

  • 実装状況の自動スキャン: プロジェクト内の @spec-impl マーカーをスキャンして一覧表示
  • 進捗レポート: TODO/IN_PROGRESS/DONE の状態別に集計
  • 実装順序の管理: [実装順序:数値] に基づいて次に実装すべき項目を提案
  • 優先度フィルタリング: 優先度別の絞り込み表示

この機能が実装されるまでは、エディタの検索機能(@spec-impl[状態:TODO] など)で手動管理してください。

ライセンス

MIT

作者

yerabu

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured