search_documents

Pack: federal-register · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/search_documents for the schema, then POST the same URL with its arguments for the data.

Search the US Federal Register by topic / keyword for proposed rules, final rules, notices, and presidential documents. Use this whenever the question mentions a SUBJECT (“EV tax credits”, “AI export controls”, “PFAS regulations”, “clean energy”, “ozempic labeling”, etc.) — recent_rules takes no topic filter and would return random unrelated rules. For a STRUCTURED count/list (“how many executive orders in 2026”, “list 2026 proclamations”), pass type:“presidential_document” plus presidential_document_type rather than relying on free-text query — a free-text search for “executive order” also matches documents that merely MENTION one, over- or under-counting the real set. To find or confirm ONE specific executive order by its number, pass executive_order_number instead — it scopes and filters for you, no type/presidential_document_type needed. Returns title, abstract, agency, publication date, links, and for presidential documents also executive_order_number, signing_date, and citation. The response always echoes filters_applied: a genuine zero still says exactly what was searched, so it is never a bare empty result. Examples: search_documents({query: “EV tax credit”, type: “rule”}), search_documents({type: “presidential_document”, presidential_document_type: “executive_order”, since: “2026-01-01”}), search_documents({executive_order_number: “14435”}), search_documents({query: “Strait of Hormuz”, since: “365d”}). Pass since to constrain to recent documents — without it the relevance ranker can return decade-old docs for sparse-term queries.

Parameters

NameTypeRequiredDescription
querystringnoSearch keywords (e.g., “clean energy tax credit”). Optional if type/agency/since/presidential_document_type/executive_order_number already scope the search — forcing a free-text term onto a structured count/list question (e.g. “executive order”) distorts it, since the term index matches MENTIONS of a thing as well as the thing itself.
typestringnoDocument type filter: “rule”, “proposed_rule”, “notice”, “presidential_document” — mapped internally to the Federal Register API’s own codes (RULE/PRORULE/NOTICE/PRESDOCU); an unrecognized value is refused rather than silently matching nothing.
presidential_document_typestringnoOnly with type:“presidential_document” — narrows to one sub-type: “executive_order”, “proclamation”, “memorandum”, “determination”, “notice”, or “other”. This is the STRUCTURED way to count/list executive orders etc.; prefer it over a free-text query for “how many X” questions.
executive_order_numberstringnoLook up ONE executive order by its number, e.g. “14435” or “EO 14435” — automatically scopes to type:“presidential_document” + presidential_document_type:“executive_order” and filters the result to an exact number match, so neither needs to be passed separately. Conflicts with an explicit type/presidential_document_type that names something other than presidential documents / executive orders.
agencystringnoAgency slug filter (e.g., “environmental-protection-agency”, “securities-and-exchange-commission”)
sincestringnoPublication date floor. Accepts ISO date (“2025-01-01”) or shorthand (“30d”, “12m”, “365d”, “1y”). Recommended for any topical search to avoid stale results — the relevance ranker can surface 2004-2008 documents for queries with sparse hits.

Example call

Arguments

{
  "query": "clean energy tax credit"
}

curl

curl -X POST https://gateway.pipeworx.io/federal-register/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_documents","arguments":{"query":"clean energy tax credit"}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('search_documents', {
  "query": "clean energy tax credit"
});

More examples

{
  "query": "artificial intelligence",
  "type": "proposed_rule",
  "agency": "environmental-protection-agency"
}
{
  "executive_order_number": "14435"
}

Response shape

Always returns: query, total, returned, documents

FieldTypeDescription
querystringThe search query string
totalnumberTotal count of matching documents
returnednumberNumber of documents returned in this response
documentsarrayArray of formatted Federal Register documents
Full JSON Schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The search query string"
    },
    "total": {
      "type": "number",
      "description": "Total count of matching documents"
    },
    "returned": {
      "type": "number",
      "description": "Number of documents returned in this response"
    },
    "documents": {
      "type": "array",
      "description": "Array of formatted Federal Register documents",
      "items": {
        "type": "object",
        "properties": {
          "document_number": {
            "type": [
              "string",
              "null"
            ],
            "description": "Federal Register document number"
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Document title"
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Document type (rule, notice, etc.)"
          },
          "abstract": {
            "type": [
              "string",
              "null"
            ],
            "description": "Document abstract or summary"
          },
          "citation": {
            "type": [
              "string",
              "null"
            ],
            "description": "Citation reference"
          },
          "publication_date": {
            "type": [
              "string",
              "null"
            ],
            "description": "Publication date (ISO format)"
          },
          "agencies": {
            "type": "array",
            "description": "List of responsible agencies",
            "items": {
              "type": "string"
            }
          },
          "html_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL to HTML version of document"
          },
          "pdf_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL to PDF version of document"
          },
          "action": {
            "type": [
              "string",
              "null"
            ],
            "description": "Action description"
          },
          "dates": {
            "type": [
              "string",
              "null"
            ],
            "description": "Key dates related to document"
          },
          "docket_ids": {
            "type": "array",
            "description": "Associated docket identifiers",
            "items": {
              "type": "string"
            }
          },
          "page_length": {
            "type": [
              "number",
              "null"
            ],
            "description": "Number of pages in document"
          },
          "significant": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether document is marked as significant"
          }
        }
      }
    }
  },
  "required": [
    "query",
    "total",
    "returned",
    "documents"
  ]
}

Connect

Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://pipeworx.io/mcp"
    }
  }
}
Connect to just the federal-register pack
{
  "mcpServers": {
    "federal-register": {
      "url": "https://gateway.pipeworx.io/federal-register/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build October 30, 2026