Skip to main content
Glama

search_law

Search Japanese labor and social insurance laws by keyword using the e-Gov API. Find relevant legal texts when you don't know the specific law name.

Instructions

労働・社会保険関連の法令をキーワードで検索する。法令名が分からない場合に使用。e-Gov法令API v2を使用。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keywordYes検索キーワード。例: "労働基準", "雇用保険", "安全衛生", "育児休業", "厚生年金"
law_typeNo法令種別で絞り込み。Act=法律, CabinetOrder=政令(施行令), MinisterialOrdinance=省令(施行規則)
limitNo取得件数(デフォルト10、最大20)

Implementation Reference

  • The handler function in search_law.ts executes the searchLaw logic and formats the tool response.
    async (args) => {
      try {
        const result = await searchLaw({
          keyword: args.keyword,
          lawType: args.law_type,
          limit: args.limit,
        });
    
        if (result.results.length === 0) {
          return {
            content: [{
              type: 'text' as const,
              text: `"${args.keyword}" に一致する法令が見つかりませんでした。\nキーワードを変えて再検索してください(例: 類義語や略称を試す)。\nまた、get_law で法令名を直接指定して条文を取得することもできます。`,
            }],
          };
        }
    
        const lines = result.results.map((r, i) =>
          `${i + 1}. **${r.lawTitle}**\n   法令番号: ${r.lawNum}\n   law_id: ${r.lawId}\n   種別: ${r.lawType}\n   URL: ${r.egovUrl}`
        );
    
        return {
          content: [{
            type: 'text' as const,
            text: `# 法令検索結果: "${args.keyword}"\n\n${lines.join('\n\n')}\n\n---\n出典:e-Gov法令検索(デジタル庁)`,
          }],
        };
      } catch (error) {
        return {
          content: [{
            type: 'text' as const,
            text: `エラー: ${error instanceof Error ? error.message : String(error)}`,
          }],
          isError: true,
        };
      }
    }
  • The tool 'search_law' is registered here using the server.tool method.
    export function registerSearchLawTool(server: McpServer) {
      server.tool(
        'search_law',
        '労働・社会保険関連の法令をキーワードで検索する。法令名が分からない場合に使用。e-Gov法令API v2を使用。',
        {
          keyword: z.string().describe(
            '検索キーワード。例: "労働基準", "雇用保険", "安全衛生", "育児休業", "厚生年金"'
          ),
          law_type: z.enum(['Act', 'CabinetOrder', 'MinisterialOrdinance']).optional().describe(
            '法令種別で絞り込み。Act=法律, CabinetOrder=政令(施行令), MinisterialOrdinance=省令(施行規則)'
          ),
          limit: z.number().optional().describe(
            '取得件数(デフォルト10、最大20)'
          ),
        },
        async (args) => {
          try {
            const result = await searchLaw({
              keyword: args.keyword,
              lawType: args.law_type,
              limit: args.limit,
            });
    
            if (result.results.length === 0) {
              return {
                content: [{
                  type: 'text' as const,
                  text: `"${args.keyword}" に一致する法令が見つかりませんでした。\nキーワードを変えて再検索してください(例: 類義語や略称を試す)。\nまた、get_law で法令名を直接指定して条文を取得することもできます。`,
                }],
              };
            }
    
            const lines = result.results.map((r, i) =>
              `${i + 1}. **${r.lawTitle}**\n   法令番号: ${r.lawNum}\n   law_id: ${r.lawId}\n   種別: ${r.lawType}\n   URL: ${r.egovUrl}`
            );
    
            return {
              content: [{
                type: 'text' as const,
                text: `# 法令検索結果: "${args.keyword}"\n\n${lines.join('\n\n')}\n\n---\n出典:e-Gov法令検索(デジタル庁)`,
              }],
            };
          } catch (error) {
            return {
              content: [{
                type: 'text' as const,
                text: `エラー: ${error instanceof Error ? error.message : String(error)}`,
              }],
              isError: true,
            };
          }
        }
      );
    }
  • The actual business logic 'searchLaw' that interacts with the e-Gov API is defined here.
    export async function searchLaw(params: {
      keyword: string;
      lawType?: string;
      limit?: number;
    }): Promise<SearchLawResult> {
      const limit = Math.min(params.limit ?? 10, 20);
      const results = await searchLaws(params.keyword, limit, params.lawType);
    
      return {
        keyword: params.keyword,
        results: results.map((r: EgovLawSearchResult) => ({
          lawTitle: r.revision_info?.law_title ?? r.current_revision_info?.law_title ?? '',
          lawId: r.law_info.law_id,
          lawNum: r.law_info.law_num,
          lawType: r.law_info.law_type,
          egovUrl: getEgovUrl(r.law_info.law_id),
        })),
      };
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kentaroajisaka/labor-law-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server