Skip to main content
Glama
Sora-bluesky

building-standards-act-mcp

by Sora-bluesky

条文取得

get_law
Read-onlyIdempotent

Retrieve specific articles from Japanese building standards laws by law name and article number, with alias, appendix, and structured JSON support to validate citations.

Instructions

条番号を指定して法令の条文を取得する。附則・別表にも対応。略称・正式名称のいずれでも指定可能。format=structured で条→項→号の階層構造をJSON形式で取得可能。format=text の上限は、structuredContent を含む応答全体が約5万字に収まる値。長い条の中の項・表の行は find で探し、offset を推測しない。

Input Schema

NameRequiredDescriptionDefault
findNoこの条の本文から探す語。指定すると最初の一致を含む行から本文を返し、一致位置の一覧を matches に入れる。空白は無視し、全角・半角の違いは区別しない。長い条の中の項・表の行を探すときに使い、offset を推測しない。format=text のみ適用。続きは find を外して next_offset を指定。
formatNo出力形式。text: 従来のテキスト形式、structured: 条→項→号の階層を持つJSON構造化形式text
offsetNo本文の取得開始位置(0から始まる文字位置)。続きは案内された offset を指定。format=text のみ適用。
law_nameYes法令名(正式名称、略称のいずれか。例: 建築基準法、建基法)
max_charsNo本文と参照一覧(references)を合わせた最大文字数(1,000〜24,000)。省略時は20,000文字。format=text のみ適用。
article_numberYes条文番号(例: 第20条、20、第6条の2、附則、附則第3条、別表第一)

Output Schema

NameRequiredDescriptionDefault
findNo
noteNo
formatYes
offsetNo
sourceYes
articleYes
law_numYes
matchesNo
revisionNo
law_titleYes
truncatedNo
next_offsetNo
total_charsNo
matches_totalNo
revision_noteNo
references_totalNo
references_truncatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv1.11.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / find
      Added value: +{
      +  "description": "この条の本文から探す語。指定すると最初の一致を含む行から本文を返し、一致位置の一覧を matches に入れる。空白は無視し、全角・半角の違いは区別しない。長い条の中の項・表の行を探すときに使い、offset を推測しない。format=text のみ適用。続きは find を外して next_offset を指定。",
      +  "maxLength": 100,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / max_chars
      Added value: +{
      +  "default": 20000,
      +  "description": "本文と参照一覧(references)を合わせた最大文字数(1,000〜24,000)。省略時は20,000文字。format=text のみ適用。",
      +  "maximum": 24000,
      +  "minimum": 1000,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "本文の取得開始位置(0から始まる文字位置)。続きは案内された offset を指定。format=text のみ適用。",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • 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": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "article_caption": {
      +              "type": "string"
      +            },
      +            "article_num": {
      +              "type": "string"
      +            },
      +            "article_title": {
      +              "type": "string"
      +            },
      +            "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"
      +            },
      +            "text": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "article_num",
      +            "article_caption",
      +            "article_title",
      +            "text"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "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"
      +        }
      +      ]
      +    },
      +    "find": {
      +      "type": "string"
      +    },
      +    "format": {
      +      "enum": [
      +        "text",
      +        "structured"
      +      ],
      +      "type": "string"
      +    },
      +    "law_num": {
      +      "type": "string"
      +    },
      +    "law_title": {
      +      "type": "string"
      +    },
      +    "matches": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    "matches_total": {
      +      "type": "number"
      +    },
      +    "next_offset": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "offset": {
      +      "type": "number"
      +    },
      +    "references_total": {
      +      "type": "number"
      +    },
      +    "references_truncated": {
      +      "type": "boolean"
      +    },
      +    "revision": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "amendment_enforcement_date": {
      +          "type": "string"
      +        },
      +        "current_revision_status": {
      +          "type": "string"
      +        },
      +        "law_revision_id": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "law_revision_id",
      +        "amendment_enforcement_date",
      +        "current_revision_status"
      +      ],
      +      "type": "object"
      +    },
      +    "revision_note": {
      +      "type": "string"
      +    },
      +    "source": {
      +      "const": "e-Gov法令検索",
      +      "type": "string"
      +    },
      +    "total_chars": {
      +      "type": "number"
      +    },
      +    "truncated": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "law_title",
      +    "law_num",
      +    "source",
      +    "format",
      +    "article"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.7.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive). The description adds genuinely useful behavior: the ~50,000-character cap on the whole response including structuredContent, the structured JSON hierarchy, and the find/matches continuation pattern. It does not describe auth or rate limits, but adds real context beyond the annotations.

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?

Four dense sentences, purpose front-loaded, each carrying distinct information (scope, format options, size limit, find/offset rule). No filler, though the limit sentence is a bit convoluted.

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?

An output schema exists, so return-shape explanation is unnecessary and the description rightly focuses on format choice, size cap, and pagination via find/offset. Covers what an agent needs to call it correctly, with the only gap being tool-level alternatives.

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 the per-parameter descriptions are already rich (find semantics, offset, max_chars range, enum for format). The description restates format=text vs structured and the find/offset workflow but adds little syntax or meaning beyond the schema. Baseline 3 is correct.

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?

Specific verb+resource: retrieve a law's provisions by article number, with explicit coverage of 附則・別表 and acceptance of abbreviations or official names. This implicitly separates it from get_full_law (whole law) by keying on a single article, but no sibling is named explicitly, so it stops short of a 5.

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 good intra-tool guidance (use find for paragraphs/table rows in long articles, don't guess offset; format=structured for hierarchical JSON), but there is no statement of when to choose this tool over search_articles, search_law, or get_full_law. Usage across siblings is left to inference.

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