Skip to main content
Glama

search_jaish_tsutatsu

Search Japanese labor safety and health circulars from JAISH by keyword to find regulations on occupational safety laws, pneumoconiosis prevention, and work environment standards.

Instructions

安全衛生情報センター(JAISH)から安全衛生関連の通達をキーワード検索する。労働安全衛生法、じん肺法、作業環境測定法等に関する通達を検索可能。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keywordYes検索キーワード。例: "特定化学物質", "有機溶剤", "安全教育", "健康診断", "石綿", "足場"
limitNo最大取得件数(デフォルト10、最大30)
max_pagesNo検索する年度数(デフォルト5)。増やすと古い通達も検索するが時間がかかる。

Implementation Reference

  • The handler function that executes the search_jaish_tsutatsu tool logic, calling the jaish-tsutatsu-service.
    async (args) => {
      try {
        const result = await searchJaishTsutatsu({
          keyword: args.keyword,
          limit: args.limit,
          maxPages: args.max_pages,
        });
    
        if (result.results.length === 0) {
          return {
            content: [{
              type: 'text' as const,
              text: `「${args.keyword}」に一致する安衛通達が見つかりませんでした(${result.pagesSearched}年度分を検索)。\nmax_pages を増やすと検索範囲が広がります。キーワードを変えて再検索も試してください。\n厚労省通達は search_mhlw_tsutatsu で検索できます。`,
            }],
          };
        }
    
        const lines = result.results.map((r, i) =>
          `${i + 1}. **${r.title}**\n   日付: ${r.date}\n   番号: ${r.number}\n   url: \`${r.url}\``
        );
    
        return {
          content: [{
            type: 'text' as const,
            text: `# JAISH安衛通達検索結果: 「${args.keyword}」\n\n${result.results.length}件(${result.pagesSearched}年度分を検索)\n\n${lines.join('\n\n')}\n\n---\n※ 本文を読むには get_jaish_tsutatsu で url を指定してください。\n出典:安全衛生情報センター(中央労働災害防止協会)`,
          }],
        };
      } catch (error) {
        return {
          content: [{
            type: 'text' as const,
            text: `エラー: ${error instanceof Error ? error.message : String(error)}`,
          }],
          isError: true,
        };
      }
    }
  • The registration function that defines the 'search_jaish_tsutatsu' tool with its schema and handler.
    export function registerSearchJaishTsutatsuTool(server: McpServer) {
      server.tool(
        'search_jaish_tsutatsu',
        '安全衛生情報センター(JAISH)から安全衛生関連の通達をキーワード検索する。労働安全衛生法、じん肺法、作業環境測定法等に関する通達を検索可能。',
        {
          keyword: z.string().describe(
            '検索キーワード。例: "特定化学物質", "有機溶剤", "安全教育", "健康診断", "石綿", "足場"'
          ),
          limit: z.number().optional().describe(
            '最大取得件数(デフォルト10、最大30)'
          ),
          max_pages: z.number().optional().describe(
            '検索する年度数(デフォルト5)。増やすと古い通達も検索するが時間がかかる。'
          ),
        },
        async (args) => {
          try {
            const result = await searchJaishTsutatsu({
              keyword: args.keyword,
              limit: args.limit,
              maxPages: args.max_pages,
            });
    
            if (result.results.length === 0) {
              return {
                content: [{
                  type: 'text' as const,
                  text: `「${args.keyword}」に一致する安衛通達が見つかりませんでした(${result.pagesSearched}年度分を検索)。\nmax_pages を増やすと検索範囲が広がります。キーワードを変えて再検索も試してください。\n厚労省通達は search_mhlw_tsutatsu で検索できます。`,
                }],
              };
            }
    
            const lines = result.results.map((r, i) =>
              `${i + 1}. **${r.title}**\n   日付: ${r.date}\n   番号: ${r.number}\n   url: \`${r.url}\``
            );
    
            return {
              content: [{
                type: 'text' as const,
                text: `# JAISH安衛通達検索結果: 「${args.keyword}」\n\n${result.results.length}件(${result.pagesSearched}年度分を検索)\n\n${lines.join('\n\n')}\n\n---\n※ 本文を読むには get_jaish_tsutatsu で url を指定してください。\n出典:安全衛生情報センター(中央労働災害防止協会)`,
              }],
            };
          } catch (error) {
            return {
              content: [{
                type: 'text' as const,
                text: `エラー: ${error instanceof Error ? error.message : String(error)}`,
              }],
              isError: true,
            };
          }
        }
      );
    }
  • The service function that implements the logic for searching JAISH (Japan Advanced Information Center for Safety and Health) notifications.
    export async function searchJaishTsutatsu(opts: {
      keyword: string;
      limit?: number;
      maxPages?: number;
    }): Promise<JaishSearchResponse> {
      const limit = Math.min(opts.limit ?? 10, 30);
      const maxPages = Math.min(opts.maxPages ?? 5, JAISH_INDEX_PAGES.length);
    
      const allResults: JaishIndexEntry[] = [];
      let pagesSearched = 0;
    
      for (let i = 0; i < maxPages && allResults.length < limit; i++) {
        const path = JAISH_INDEX_PAGES[i];
        try {
          const html = await fetchJaishIndex(path);
          const entries = parseJaishIndex(html);
          const filtered = filterJaishEntries(entries, opts.keyword);
          allResults.push(...filtered);
          pagesSearched++;
        } catch {
          // 404 or timeout — skip this year
          continue;
        }
      }
    
      return {
        results: allResults.slice(0, limit),
        pagesSearched,
      };
    }

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