Skip to main content
Glama
Sora-bluesky

building-standards-act-mcp

by Sora-bluesky

条文構造解析

analyze_article
Read-onlyIdempotent

Parses Japanese building standards law articles into JSON metadata (paragraph/item counts, reference stats, previews) to supply reliable source data for AI summaries and explanations.

Instructions

条文の構造を解析し、項数・号数・参照統計・プレビューなどのメタデータをJSON形式で返す。AIが要約・解説を生成する際の素材データとして活用。

Input Schema

NameRequiredDescriptionDefault
law_nameYes法令名(正式名称または略称。例: 建築基準法、建基法)
article_numberYes条文番号(例: 第20条、20)

Output Schema

NameRequiredDescriptionDefault
captionYes
law_numYes
law_nameYes
structureYes
article_numYes
article_titleYes
structured_dataYes
reference_summaryYes
paragraph_summariesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.11.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "definitions": {
      +    "__schema0": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "subitem_num": {
      +          "type": "string"
      +        },
      +        "subitem_sentence": {
      +          "type": "string"
      +        },
      +        "subitem_title": {
      +          "type": "string"
      +        },
      +        "subitems": {
      +          "items": {
      +            "$ref": "#/definitions/__schema0"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "subitem_num",
      +        "subitem_title",
      +        "subitem_sentence",
      +        "subitems"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "properties": {
      +    "article_num": {
      +      "type": "string"
      +    },
      +    "article_title": {
      +      "type": "string"
      +    },
      +    "caption": {
      +      "type": "string"
      +    },
      +    "law_name": {
      +      "type": "string"
      +    },
      +    "law_num": {
      +      "type": "string"
      +    },
      +    "paragraph_summaries": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "item_count": {
      +            "type": "number"
      +          },
      +          "paragraph_num": {
      +            "type": "string"
      +          },
      +          "preview": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "paragraph_num",
      +          "preview",
      +          "item_count"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "reference_summary": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "cross_law": {
      +          "type": "number"
      +        },
      +        "delegation": {
      +          "type": "number"
      +        },
      +        "referenced_laws": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "relative": {
      +          "type": "number"
      +        },
      +        "same_law": {
      +          "type": "number"
      +        },
      +        "total": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "total",
      +        "cross_law",
      +        "same_law",
      +        "relative",
      +        "delegation",
      +        "referenced_laws"
      +      ],
      +      "type": "object"
      +    },
      +    "structure": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "item_count": {
      +          "type": "number"
      +        },
      +        "paragraph_count": {
      +          "type": "number"
      +        },
      +        "subitem_count": {
      +          "type": "number"
      +        },
      +        "total_characters": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "paragraph_count",
      +        "item_count",
      +        "subitem_count",
      +        "total_characters"
      +      ],
      +      "type": "object"
      +    },
      +    "structured_data": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "article_caption": {
      +          "type": "string"
      +        },
      +        "article_num": {
      +          "type": "string"
      +        },
      +        "article_title": {
      +          "type": "string"
      +        },
      +        "paragraphs": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "items": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "item_num": {
      +                      "type": "string"
      +                    },
      +                    "item_sentence": {
      +                      "type": "string"
      +                    },
      +                    "item_title": {
      +                      "type": "string"
      +                    },
      +                    "subitems": {
      +                      "items": {
      +                        "$ref": "#/definitions/__schema0"
      +                      },
      +                      "type": "array"
      +                    }
      +                  },
      +                  "required": [
      +                    "item_num",
      +                    "item_title",
      +                    "item_sentence",
      +                    "subitems"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "paragraph_num": {
      +                "type": "string"
      +              },
      +              "paragraph_sentence": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "paragraph_num",
      +              "paragraph_sentence",
      +              "items"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "references": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "raw_text": {
      +                "type": "string"
      +              },
      +              "ref_type": {
      +                "enum": [
      +                  "same_law",
      +                  "cross_law",
      +                  "relative",
      +                  "delegation",
      +                  "unknown"
      +                ],
      +                "type": "string"
      +              },
      +              "target_article": {
      +                "type": "string"
      +              },
      +              "target_item": {
      +                "type": "string"
      +              },
      +              "target_law": {
      +                "type": "string"
      +              },
      +              "target_paragraph": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "raw_text",
      +              "ref_type"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "article_num",
      +        "article_caption",
      +        "article_title",
      +        "paragraphs"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "law_name",
      +    "law_num",
      +    "article_num",
      +    "article_title",
      +    "caption",
      +    "structure",
      +    "paragraph_summaries",
      +    "reference_summary",
      +    "structured_data"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.7.0

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety and repeatability profile is covered. The description adds that output is JSON metadata rather than article text, which is useful, but with an output schema present the enumerated return fields add little beyond structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the action and output shape, followed by the usage context. Nothing is redundant, though the second sentence is fairly generic guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, rich annotations, and fully documented parameters, the description only needs to frame purpose and usage, which it does. It could be stronger by distinguishing itself from the many sibling retrieval tools, but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters (law_name, article_number) are documented in the schema with format examples. The description contributes no additional parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it analyzes the structure of a legal article and returns metadata (paragraph counts, item counts, reference statistics, preview). This clearly differs from siblings that fetch raw text (get_law, search_articles), though the description never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an implied usage context — 'use as source material when an AI generates summaries or explanations' — which tells the agent this is a pre-processing step rather than a text-fetching tool. However, it names no alternatives and gives no when-not-to-use condition, so the routing signal remains inferential.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.