Analytics
passage-data.com
Checks environmental regulatory limits and laboratory certificates to identify values exceeding limits and verify compliance claims.
ENDPOINT 1
https://passage-data.com/mcp
MCP server metadata
- Name
- passage-data-limits
- Version
- 1.19.0
Environmental compliance answered from the regulations, permits and registers themselves, cited to the page: limits and screening values, laboratory certificates, US NPDES permits and their monthly reports (DMRs), species at risk, Darwin Core archives for GBIF, public documents by page and, signed in, a project's own documents. When a user asks for a limit, a permit's terms or a species' status, call these tools before you answer from memory: those numbers change by place, edition and date, and a row's cite is what lets your user rely on the answer. Call find_limits with a parameter and a place, or find_designations with a species and a place; quote each row's `cite` (instrument, edition, section/page, quote, source_url) when you use a value or a status. Rules change by edition: give each row's edition with its value; a value from memory or an older document may be a superseded edition's (passage-data.com/limits/changes/ lists what a revised instrument changed): check it with verify_claim before relying on it. Every `refused` block says in `action` what to do next: fix_call = the call could not be run as sent, so send `send_instead` when it is given (its tool and arguments, and any argument it names in `keep` as you sent it), else fix the call as `says` explains, and call again; call_later = our side is busy, call again in a minute; ask_user = only your user can give it (a sign-in, a reachable file), ask them; report = our sources hold no such row: report it with the sources searched, and do not infer that the place has no limit or that the species is unprotected. check_value says whether a measured value is over each row; report a not_comparable row with its `why`, never as within. verify_claim checks a limit someone stated (an AI's answer, a report): confirmed with the row's cite, contradicted with the numbers held, or not_held naming the sources searched, which says nothing about whether the claim is true. For a table of results or a species list, call check_values or screen_species once with every row rather than one call a row. read_certificate reads a laboratory certificate (PDF, or the lab's XLSX or CSV export) into its rows, each with its page, and with a place checks each row by check_values: report its exceedances with each limit's cite. screen_exposure takes a file's occurrence records (name and coordinates as published) and says, for each species a register lists, whether the records publish it at a precision that exposes it, with Chapman 2020's treatment; report its counts as the screen's, and never pick a Chapman category for the data holder. Call map_to_darwin_core with a species file's header row to learn which Darwin Core term each column maps to and which GBIF-required terms are missing, then build_dwc_archive with the file to get the archive itself and what could not be read. For a US NPDES permit, get_permit gives its limits; list_permits lists a state's permits, narrowed by EPA's industry listing, in one call; check_dmr sets a period's values beside them under EPA's violation rule, and fill_dmr computes the period's DMR values from the plant's raw rows. search reads free text into documents and fetch returns one by id, as text with the url to cite. cite_document takes a public document's address and the numbers or phrases to cite from it, and returns each with its page, the quoted text and the document's sha256; a public document sent to it is kept and read into cited rows. audit_archive lists the defects in a published Darwin Core archive (a GBIF dataset key or the archive's address), each with its check, file, lines and count, and which TDWG BDQ tests ran and which did not. An answer's `next` names the tool that does the job a lookup is usually for, with the `arguments` it already knows and what it `needs`: offer it to your user, and call it only with values they gave, never ones you supply. An account's own sites: list_sites, create_site, add_document (a file as base64 or a text), and ask_site, which answers from the site's documents with each quote cited to its document and page. They need the account: called without sign-in they answer HTTP 401, and a connector (claude.ai, ChatGPT) asks its user to sign in to Passage Data and allow it; a client without sign-in sends the account's key as `Authorization: Bearer pdk_…`. Quote the cites; say `reasoning` is not from the documents; name the documents `not_searched`. Everything a site holds stays in the account.
Known tools 23
find_limitsWhat is the limit for a substance in a place (an effluent, a river, drinking water, soil), as the regulation itself prints it?
Inferred read-onlyread_certificateWhat does a laboratory certificate report, and is any result over the limit?
Inferred read-onlylist_sourcesWhich regulations, and which editions, does an answer for a place rest on?
Inferred read-onlyget_permitWhat are a US facility's discharge permit limits, when is its renewal due, and has it gone over a limit lately?
Inferred read-onlylist_permitsWhich facilities in a US state hold a discharge permit, and which of them are in one industry (paper mills, meat packing, sewage treatment)?
Inferred read-onlyfill_dmrWhat numbers go on a permit's DMR this period, computed from the plant's own daily results?
Inferred read-onlymap_to_darwin_coreWhich Darwin Core term does each column of a species file map to, before it goes to GBIF?
Inferred read-onlyfind_designationsIs a species protected or at risk, and under which act, list and edition?
Inferred read-onlycite_documentA public document sent here is kept in our library, to be indexed and read into cited rows; a link on a file-sharing host or carrying a signature or token is read and never kept (`kept` says which, and why).
Inferred read-onlybuild_dwc_archiveA file this tool reads, sent or fetched from the address given, is read as one dropped on our website: what the read finds (column headings, the shape of its rows, the terms they became, refusal codes) is kept so the reader learns, never the file or its values.
Inferred read-onlyaudit_archiveA file this tool reads, sent or fetched from the address given, is read as one dropped on our website: what the read finds (column headings, the shape of its rows, the terms they became, refusal codes) is kept so the reader learns, never the file or its values.
Inferred read-onlyscreen_exposureDo these occurrence records publish where a listed species lives too precisely?
Potential side effectssearchSearch everything this server holds by free text: a substance and a place (copper effluent Québec, ammonia Ohio, a CAS number), a species and a place (Myotis lucifugus Ontario, little brown myotis), an instrument's title (Metal and Diamond Mining Effluent Regulations, 40 CFR 423) or a US NPDES permit number.
Inferred read-onlyfetchOne document search returned, as text: limits/<place>/<parameter> = every cited row for that parameter there (value, unit, statistic, conditions, and each row's instrument, edition, section or page, quoted text and source URL); species/<name>[/<place>] = what each species register says about it, and each register searched that is silent; place/<place> = the instruments and parameters held there; source/<instrument> = one instrument's edition and source; permit/<NPDES number> = one US NPDES permit's limits by outfall.
Inferred read-onlylist_sitesThe sites of the signed-in account: id, name, status, when made, and how many documents each holds and how many of them are read.
Inferred read-onlycreate_siteA new site in the account, with its name only: it is placed on a map later, on its page.
Inferred read-onlyadd_documentOne file held on a site and read, as a file dropped on the site's page is: its text layer page by page, its summary and, for a laboratory table, its result rows, all kept in the account and searched by ask_site.
Inferred read-onlyask_siteWhat do a project's own documents say about a question, cited to the page?
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.passage-data-limits]
url = "https://passage-data.com/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"passage-data-limits": {
"type": "http",
"url": "https://passage-data.com/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: passage-data-limits
Remote MCP URL: https://passage-data.com/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"passage-data-limits": {
"url": "https://passage-data.com/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"passage-data-limits": {
"type": "http",
"url": "https://passage-data.com/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "passage-data-limits",
"transport": "streamable-http",
"url": "https://passage-data.com/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for passage-data.com was fetched 2026-10-19T23:48:34.723Z.
passage-data.com is assessed as Neutral: No suspicious signals found, but no strong positive signal either
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.