mcpField
L
ln-775-api-docs-generator

ln-775-api-docs-generator

github.com/levnikolaevich開発584432 回インストール2 日前に更新
リポジトリ

ln-775-api-docs-generator について

ln-775-api-docs-generatorは、.NETとPythonのAPI向けにSwagger/OpenAPIドキュメントを設定するプロジェクト初期化スキルです。エンドポイントや認証方式を調べ、既存設定を確認したうえで構成を生成またはカスタマイズします。

主な機能

  1. 01Swashbuckleを使う.NETとFastAPIに対応
  2. 02APIルート、認証方式、バージョンを調査
  3. 03OpenAPIメタデータとセキュリティスキームを設定
  4. 04.NETでXMLコメントを有効化
  5. 05生成した設定とスキーマを検証

活用シーン

  1. 01.NET APIへのSwaggerドキュメント追加
  2. 02FastAPIのOpenAPIスキーマのカスタマイズ
  3. 03API認証方式とエンドポイントスキーマの文書化

MCP 対応

設定生成前に、MCPツールで最新のSwashbuckleおよびFastAPIのドキュメントを調査します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-775-api-docs-generator

インストール後、Claude Code で/ln-775-api-docs-generatorを入力して読み込まれたか確認します。

詳細

ln-775-api-docs-generator

タイプ: L3 Worker カテゴリ: 7XX プロジェクトのブートストラップ

Swagger/OpenAPI を使用して API ドキュメントを構成します。


概要

項目詳細
入力ln-770 の Context Store
出力Swagger/OpenAPI の構成
スタック.NET(Swashbuckle)、Python(FastAPI 組み込み)

フェーズ 1:コンテキストの受け取りと API 構造の分析

Context Store を受け取り、API エンドポイントをスキャンします。

必須コンテキスト:

  • STACK:.NET または Python
  • PROJECT_ROOT:プロジェクトディレクトリのパス

冪等性チェック:

  • .NET:AddSwaggerGen または UseSwagger を Grep します
  • Python:FastAPI には OpenAPI が組み込まれています。カスタム構成を確認します
  • 見つかった場合:{ "status": "skipped" } を返します

API 分析:

  1. コントローラー/ルーターファイルをスキャンします
  2. 認証方式(JWT、OAuth2、API Key)を特定します
  3. API バージョニングを確認します

フェーズ 2:ドキュメント標準の調査

最新のドキュメントを確認するために MCP ツールを使用します。

.NET の場合:

MCP ref: "Swashbuckle ASP.NET Core OpenAPI Swagger configuration"
Context7: /domaindrivendev/Swashbuckle.AspNetCore

Python の場合:

MCP ref: "FastAPI OpenAPI documentation customization"
Context7: /tiangolo/fastapi

調査する主なパターン:

  1. OpenAPI 3.0/3.1 仕様
  2. セキュリティスキームの定義
  3. XML コメントの統合(.NET)
  4. レスポンス例とスキーマ
  5. API バージョニングのドキュメント

フェーズ 3:判断ポイント

Q1:API 情報
フィールド説明必須
タイトルAPI 名✓ はい
バージョンAPI バージョン(v1、v2)✓ はい
説明簡単な説明任意
連絡先サポートの連絡先任意
ライセンスAPI ライセンス任意
Q2:セキュリティスキーム
スキーム用途OpenAPI のタイプ
JWT Bearer(推奨)Authorization ヘッダー内のトークンhttp + bearer
API Keyヘッダーまたはクエリ内のキーapiKey
OAuth2OAuth2 の完全なフローoauth2
なしパブリック APIセキュリティなし
Q3:ドキュメント機能
機能.NETPythonデフォルト
XML コメント✓ 対応該当なし✓ 有効
レスポンス例✓ 手動✓ Pydantic✓ 有効
リクエスト検証✓ アノテーション✓ Pydantic✓ 有効
Try It Out✓ はい✓ はい✓ 有効

フェーズ 4:構成の生成

.NET の出力ファイル
ファイル目的
Extensions/SwaggerExtensions.csSwagger サービスの登録
*.csproj(更新)XML ドキュメントを有効化

生成プロセス:

  1. MCP ref を使用して、最新の Swashbuckle API を確認します
  2. 以下を含む SwaggerExtensions を生成します:
    • AddEndpointsApiExplorer
    • OpenApiInfo を含む AddSwaggerGen
    • セキュリティ定義(認証が検出された場合)
    • XML コメントの取り込み
  3. ドキュメント生成用に csproj を更新します

追加するパッケージ:

  • Swashbuckle.AspNetCore

登録コード:

builder.Services.AddSwaggerServices();
// ...
app.UseSwaggerServices();

csproj の更新:

<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
  <NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
Python の出力ファイル
ファイル目的
core/openapi_config.pyOpenAPI のカスタマイズ

生成プロセス:

  1. MCP ref を使用して、FastAPI の OpenAPI カスタマイズを確認します
  2. 以下を含む openapi_config.py を生成します:
    • カスタム OpenAPI スキーマ
    • セキュリティスキームの定義
    • タグと説明
  3. FastAPI が OpenAPI を自動生成します

注: FastAPI には OpenAPI のサポートが組み込まれています。このワーカーはデフォルト構成をカスタマイズします。

登録コード:

from core.openapi_config import custom_openapi
app.openapi = lambda: custom_openapi(app)

フェーズ 5:検証

検証手順:

  1. 構文チェック:

    • .NET:dotnet build --no-restore
    • Python:python -m py_compile core/openapi_config.py
  2. ドキュメントへのアクセス:

    スタックURL
    .NEThttp://localhost:5000/swagger
    Pythonhttp://localhost:5000/docs
    Python(ReDoc)http://localhost:5000/redoc
  3. 内容の確認:

    • すべてのエンドポイントが表示されている
    • リクエスト/レスポンスのスキーマが表示されている
    • セキュリティスキームが表示されている(構成されている場合)
    • Try It Out が機能する
  4. OpenAPI 仕様の検証:

    # .NET
    curl http://localhost:5000/swagger/v1/swagger.json | jq .
    
    # Python
    curl http://localhost:5000/openapi.json | jq .
    

セキュリティスキームの例

JWT Bearer(.NET)
// Structure only - actual code generated via MCP ref
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
    Description = "JWT Authorization header using Bearer scheme",
    Name = "Authorization",
    In = ParameterLocation.Header,
    Type = SecuritySchemeType.Http,
    Scheme = "bearer",
    BearerFormat = "JWT"
});
JWT Bearer(Python/FastAPI)
# Structure only - actual code generated via MCP ref
from fastapi.security import HTTPBearer
security = HTTPBearer()

コーディネーターに戻る

{
  "status": "success",
  "files_created": [
    "Extensions/SwaggerExtensions.cs"
  ],
  "packages_added": [
    "Swashbuckle.AspNetCore"
  ],
  "registration_code": "builder.Services.AddSwaggerServices();",
  "message": "Configured Swagger/OpenAPI documentation"
}

参考リンク


重要なルール

  • 最新の Swashbuckle/FastAPI API には MCP ref を使用する — 記憶に頼って設定をハードコードしないでください
  • 認証スキームを自動検出する — JWT、OAuth2、または API Key をスキャンし、それに応じてセキュリティ定義を設定してください
  • .NET で XML ドキュメントを有効にする — GenerateDocumentationFile を使って csproj を更新し、警告 1591 を抑制してください
  • FastAPI:置き換えずにカスタマイズする — 組み込みの OpenAPI はデフォルトで動作するため、カスタムスキーマ/セキュリティのみを追加してください
  • 冪等性 — AddSwaggerGen/UseSwagger が存在する場合は、status: "skipped" を返してください

完了の定義

  • Context Store を受信済み(スタック、プロジェクトルート)
  • API 構造を分析済み(コントローラー/ルーター、認証方式、バージョニング)
  • MCP ツールを使用してドキュメント作成の標準を調査済み
  • API 情報とセキュリティスキームを含む Swagger/OpenAPI 設定を生成済み
  • XML コメントを有効化済み(.NET)、またはカスタム OpenAPI スキーマを設定済み(Python)
  • 構文を検証済み(dotnet build または py_compile)
  • ln-770 コーディネーターに構造化 JSON レスポンスを返却済み

バージョン: 2.0.0 最終更新日: 2026-01-10

コメント