CivicDataForge MCP
A community MCP server providing public-record evidence for property, compliance, and research workflows. It supports checking short-term rental permits, enriching property data, and accessing government data services via a Streamable HTTP endpoint.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://civicdataforge.pages.dev/mcpWhat its tools do
15 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (4)
Can change data (11)
civicdataforge--civicdataforge-evidence-gatewaycivicdataforge--str-permit-registrycivicdataforge--fl-dbpr-vacation-rentalscivicdataforge--property-violationscivicdataforge--leie-exclusion-screeningcivicdataforge--restaurant-inspection-scorescivicdataforge--multistate-childcare-licensingcivicdataforge--texas-childcare-licensingcivicdataforge--epa-echo-facility-compliancecivicdataforge--norway-company-evidenceabort-actor-run
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Check short-term rental permits for specific addresses
- Enrich property data with source-linked evidence
- Access government data services for compliance research
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- civicdataforge 1.6.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 15 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
15 advertised
civicdataforge_free_permit_check — Free STR permit check (no key)
Free, no key needed. Checks whether each address appears on its city's own published short-term rental permit list, for the 18 cities whose lists are searchable live (Albuquerque, Arlington TX, Asheville, Aspen, Bend, Coconino County, Denver, Houston, Huntington Beach, Louisville, Marin County, Nashville, New Orleans, Norfolk, Orlando, Sacramento, San Bernardino County, Seattle). Returns has_permit, expired, no_permit_found or close_match with the city's status, expiry date, the address as the city lists it, and a link to the city record. Other covered places return audit_only with the Permit Audit ($4.99) link. Up to 25 lines a call, 200 an hour.
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "For one address: the city."
},
"lines": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"required": [
"city",
"address"
],
"properties": {
"city": {
"type": "string",
"description": "City or county, e.g. \"Denver\" or \"Denver, CO\"."
},
"address": {
"type": "string",
"description": "Street address starting with the house number."
}
}
}
]
},
"maxItems": 25,
"minItems": 1,
"description": "Addresses to check. Each is {city, address} or one string like \"123 Main St, Denver\"."
},
"address": {
"type": "string",
"description": "For one address: the street address."
}
}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}civicdataforge--civicdataforge-evidence-gateway — CivicDataForge Evidence Gateway
Use for routing a supported U.S. property, India company or supplier, restricted-party, EPA facility, or rights-first China-facing intake task into one minimized, receipt-bound packet. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without modifying government records.
{
"type": "object",
"required": [
"task",
"subject"
],
"properties": {
"task": {
"enum": [
"us_property_decision",
"india_company_evidence",
"india_supplier_pack",
"restricted_party_screening",
"epa_facility_evidence",
"earth_observation_evidence",
"china_counterparty_intake"
],
"type": "string",
"title": "Evidence task"
},
"purpose": {
"type": "string",
"title": "Purpose"
},
"subject": {
"type": "object",
"title": "Exact subject identifiers",
"additionalProperties": true
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Rights-labeled customer or licensed evidence",
"default": []
},
"retentionDays": {
"type": "integer",
"title": "Packet retention days",
"default": 0,
"maximum": 365,
"minimum": 0
},
"batchReference": {
"type": "string",
"title": "Customer batch reference",
"maxLength": 120
},
"transactionGate": {
"type": "boolean",
"title": "Include caller-policy transaction state",
"default": false
},
"previousReceiptHash": {
"type": "string",
"title": "Previous evidence-state receipt",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"screenRestrictedParties": {
"type": "boolean",
"title": "Screen China-facing subject against the U.S. ITA CSL",
"default": true
}
},
"description": "Route a U.S., India, global screening, EPA, or China-facing evidence task through one receipt-bound contract."
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}civicdataforge--str-permit-registry — US STR Permit Registry
Use for address, permit-ID, or jurisdiction research across the supported US short-term-rental permit sources. For Florida statewide DBPR lodging licenses, use fl-dbpr-vacation-rentals instead. Address mode preserves explicit evidence decisions, scope, and receipts. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without modifying government records.
{
"type": "object",
"properties": {
"cities": {
"type": "array",
"items": {
"enum": [
"albuquerque",
"arlington",
"asheville",
"aspen",
"austin",
"bend",
"boston",
"chattanooga",
"chicago",
"coconino",
"denver",
"houston",
"huntington_beach",
"kansas_city",
"las_vegas",
"louisville",
"marin",
"nashville",
"new_orleans",
"norfolk",
"orlando",
"osceola_county",
"philadelphia",
"polk_county",
"sacramento",
"san_bernardino",
"san_diego",
"san_juan",
"scottsdale",
"seattle",
"columbus_ga",
"cook_county_mn",
"little_rock_ar",
"cody_wy",
"green_bay_wi",
"key_west_fl",
"covington_ky",
"shreveport_la",
"north_las_vegas_nv",
"summit_county_co",
"breckenridge_co",
"placer_county_ca",
"washington_dc",
"honolulu",
"honolulu_nuc",
"big_bear_lake_ca",
"clear_creek_co",
"corpus_christi_tx",
"cambridge_ma",
"belton_tx",
"bedford_tx",
"baldwin_county_ga",
"ruidoso_nm",
"long_lake_township_mi",
"south_haven_mi"
],
"type": "string",
"enumTitles": [
"Albuquerque, NM",
"Arlington, TX",
"Asheville, NC",
"Aspen, CO",
"Austin, TX",
"Bend, OR",
"Boston, MA",
"Chattanooga, TN",
"Chicago, IL",
"Coconino County, AZ",
"Denver, CO",
"Houston, TX",
"Huntington Beach, CA",
"Kansas City, MO",
"Las Vegas, NV",
"Louisville, KY",
"Marin County, CA",
"Nashville, TN",
"New Orleans, LA",
"Norfolk, VA",
"Orlando, FL",
"Osceola County, FL",
"Philadelphia, PA",
"Polk County, FL",
"Sacramento, CA",
"San Bernardino County, CA",
"San Diego, CA",
"San Juan County, WA",
"Scottsdale, AZ",
"Seattle, WA",
"Columbus, GA",
"Cook County, MN",
"Little Rock, AR",
"Cody, WY",
"Green Bay, WI",
"Key West, FL",
"Covington, KY",
"Shreveport, LA",
"North Las Vegas, NV",
"Summit County, CO",
"Breckenridge, CO",
"Placer County, CA",
"Washington, DC",
"Honolulu, HI",
"Honolulu, HI (approved nonconforming use certificates)",
"Big Bear Lake, CA",
"Clear Creek County, CO",
"Corpus Christi, TX",
"Cambridge, MA",
"Belton, TX",
"Bedford, TX",
"Baldwin County, GA",
"Ruidoso, NM",
"Long Lake Township, MI",
"South Haven, MI"
]
},
"title": "Cities",
"editor": "select",
"default": [
"orlando"
],
"prefill": [
"orlando"
],
"description": "Which of the 55 city registries to pull (54 places; Honolulu publishes two). Published fields vary by city; see the README coverage table."
},
"status": {
"enum": [
"all",
"active"
],
"type": "string",
"title": "Permit status filter",
"editor": "select",
"default": "all",
"prefill": "active",
"enumTitles": [
"All permits",
"Active only"
],
"description": "Return all permits, or only currently-active licenses."
},
"snapshot": {
"type": "boolean",
"title": "Monitor changes from a complete pull",
"default": false,
"description": "Persist a query-scoped baseline and compare it with the prior complete run. Requires maxRecordsPerCity to be cleared; capped results are rejected so they cannot create false disappearance alerts."
},
"maxRecordsPerCity": {
"type": "integer",
"title": "Max records per city",
"default": 50,
"minimum": 1,
"prefill": 25,
"nullable": true,
"description": "Cap records per city (leave empty for the full registry)."
},
"resolveJurisdiction": {
"type": "boolean",
"title": "Resolve governing jurisdiction",
"default": true,
"description": "Use coordinates and Census boundaries to distinguish an incorporated city from an unincorporated county area. Disable for a faster raw-source pull."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}civicdataforge--fl-dbpr-vacation-rentals — Florida DBPR Vacation-Rental Licenses
Use for Florida statewide DBPR vacation-rental and lodging-license evidence. For municipal STR permits use str-permit-registry; for code violations use property-violations. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without modifying government records.
{
"type": "object",
"properties": {
"city": {
"type": "string",
"title": "City",
"editor": "textfield",
"nullable": true,
"description": "Filter by property location city (e.g. Kissimmee, Orlando, Destin). Leave empty for all."
},
"county": {
"type": "string",
"title": "County",
"editor": "textfield",
"prefill": "Orange",
"nullable": true,
"description": "Filter to one Florida county by property location (e.g. Orange, Osceola, Dade, Monroe, St. Johns). Leave empty for statewide."
},
"status": {
"enum": [
"all",
"current",
"delinquent"
],
"type": "string",
"title": "License status",
"editor": "select",
"default": "all",
"prefill": "current",
"enumTitles": [
"All licenses",
"Current only",
"Delinquent only"
],
"description": "Current = up to date with DBPR; Delinquent = license not renewed on time (expiry date has passed)."
},
"maxRecords": {
"type": "integer",
"title": "Max records",
"default": 100,
"minimum": 1,
"prefill": 25,
"description": "Cap total records returned (statewide is ~174k)."
},
"licenseType": {
"enum": [
"all",
"condo",
"dwelling"
],
"type": "string",
"title": "License type",
"editor": "select",
"default": "all",
"enumTitles": [
"Both types",
"Vacation Rental — Condo",
"Vacation Rental — Dwelling"
],
"description": "DBPR licenses vacation rentals as Condos (type 2006) or Dwellings (type 2007, incl. single-family homes & townhouses)."
},
"nameContains": {
"type": "string",
"title": "Name contains",
"editor": "textfield",
"nullable": true,
"description": "Case-insensitive substring match on the business name or licensee name."
},
"proxyConfiguration": {
"type": "object",
"title": "Proxy",
"editor": "proxy",
"default": {
"useApifyProxy": true
},
"prefill": {
"useApifyProxy": true
},
"description": "The state site blocks plain datacenter traffic; Apify Proxy is used by default. Switch to residential if datacenter IPs get blocked."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}civicdataforge--property-violations — Municipal Property Violations
Use for municipal building, property, and code-violation research in supported jurisdictions. Do not use for STR licensing or restaurant health inspections; choose the corresponding permit or inspection tool. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without modifying government records.
{
"type": "object",
"properties": {
"cities": {
"type": "array",
"items": {
"enum": [
"chicago",
"nyc",
"san_francisco",
"austin"
],
"type": "string",
"enumTitles": [
"Chicago, IL",
"New York City, NY",
"San Francisco, CA",
"Austin, TX"
]
},
"title": "Cities",
"editor": "select",
"default": [
"austin"
],
"prefill": [
"austin"
],
"description": "Which city building code-enforcement / property-violation registries to pull."
},
"status": {
"enum": [
"all",
"open"
],
"type": "string",
"title": "Violation status filter",
"editor": "select",
"default": "all",
"prefill": "open",
"enumTitles": [
"All violations",
"Open / active only"
],
"description": "Return all violations, or only currently OPEN/active ones (the distress signal buyers usually want)."
},
"maxRecordsPerCity": {
"type": "integer",
"title": "Max records per city",
"default": 100,
"minimum": 1,
"prefill": 25,
"nullable": true,
"description": "Cap records per city, newest first (leave empty to pull the full registry)."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}civicdataforge--leie-exclusion-screening — HHS-OIG LEIE Exclusion Screening
Use to find review candidates in the HHS-OIG LEIE by name, valid NPI, state, specialty, or exclusion type. Do not treat a candidate match as identity adjudication or use this tool for facility licensing. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without changing the source list.
{
"type": "object",
"properties": {
"mode": {
"enum": [
"screen",
"filter"
],
"type": "string",
"title": "Mode",
"editor": "select",
"default": "screen",
"prefill": "filter",
"enumTitles": [
"Screen a list",
"Filter the LEIE list"
],
"description": "screen checks people/entities and returns evidence records; filter pulls source LEIE records with provenance."
},
"state": {
"type": "string",
"title": "State (filter mode)",
"editor": "textfield",
"prefill": "FL",
"nullable": true,
"description": "Two-letter state code, for example TX."
},
"enrichNpi": {
"type": "boolean",
"title": "Resolve identity with CMS NPPES",
"default": true,
"description": "Look up matched LEIE NPIs or a caller-supplied NPI in the official CMS registry and return explainable correlation signals. NPI status is not licensure or eligibility."
},
"samApiKey": {
"type": "string",
"title": "SAM.gov API key",
"editor": "textfield",
"isSecret": true,
"description": "Caller-supplied SAM.gov public API key. Required only when includeSam is enabled; never returned in output."
},
"specialty": {
"type": "string",
"title": "Specialty (filter mode)",
"editor": "textfield",
"nullable": true,
"description": "Substring match on specialty, such as NURSING, PHARMACY, or HOME HEALTH."
},
"includeSam": {
"type": "boolean",
"title": "Also check SAM.gov active exclusions",
"default": false,
"description": "Opt in to the official GSA SAM.gov Exclusions API. Requires your own public SAM.gov API key."
},
"maxRecords": {
"type": "integer",
"title": "Max records (filter mode)",
"default": 100,
"minimum": 1,
"prefill": 50,
"nullable": true,
"description": "Caps LEIE records returned in filter mode."
},
"screenList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"npi": {
"type": "string",
"title": "NPI",
"pattern": "^[0-9]{10}$",
"description": "Optional 10-digit NPI. The Actor also validates the NPI check digit and rejects invalid values."
},
"ref": {
"type": "string",
"title": "Caller reference",
"description": "Optional caller reference returned with the evidence record."
},
"name": {
"type": "string",
"title": "Name",
"minLength": 1,
"description": "Person or entity name. Required when NPI is omitted."
},
"state": {
"type": "string",
"title": "State",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional two-letter state used to constrain name candidates."
}
}
},
"title": "People / entities to screen",
"editor": "json",
"default": [],
"maxItems": 500,
"description": "For screen mode. Each item: { \"name\": \"JOHN SMITH\" or \"ACME HOME HEALTH\", \"npi\": \"1234567893\" (optional valid test NPI), \"state\": \"NC\" (optional), \"ref\": \"your-id\" (optional) }. Name-only matches are normalized exact-name candidates, constrained by state when supplied, and require human review."
},
"exclusionType": {
"type": "string",
"title": "Exclusion type (filter mode)",
"editor": "textfield",
"nullable": true,
"description": "OIG exclusion authority code, such as 1128a1 or 1128b5."
},
"maxNpiLookups": {
"type": "integer",
"title": "Maximum CMS NPI lookups",
"default": 10,
"maximum": 25,
"minimum": 0,
"description": "Caps NPPES calls per run. Remaining rows still receive LEIE results and show that enrichment was skipped."
},
"maxSamQueries": {
"type": "integer",
"title": "Maximum SAM.gov queries",
"default": 10,
"maximum": 10,
"minimum": 0,
"description": "Caps SAM.gov calls per run to respect the official API's role-dependent rate limits."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}civicdataforge--restaurant-inspection-scores — Restaurant Inspection Scores
Use for official restaurant inspection scores, violations, and facility-history research in supported jurisdictions. Do not use for general property-code violations or childcare inspections. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without modifying government records.
{
"type": "object",
"properties": {
"since": {
"type": "string",
"title": "Inspections since",
"editor": "textfield",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"nullable": true,
"description": "Inclusive ISO date YYYY-MM-DD."
},
"until": {
"type": "string",
"title": "Inspections through",
"editor": "textfield",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"nullable": true,
"description": "Inclusive ISO date YYYY-MM-DD."
},
"cities": {
"type": "array",
"items": {
"enum": [
"nyc",
"chicago",
"austin",
"cincinnati",
"boulder",
"montgomery",
"king_county"
],
"type": "string",
"enumTitles": [
"New York City, NY",
"Chicago, IL",
"Austin, TX",
"Cincinnati, OH",
"Boulder County, CO",
"Montgomery County, MD",
"King County, WA"
]
},
"title": "Jurisdictions",
"editor": "select",
"default": [
"chicago"
],
"prefill": [
"chicago"
],
"description": "Official inspection feeds to query. Every output and run receipt discloses source age, row grain, and source status."
},
"resultContains": {
"type": "string",
"title": "Result or grade contains",
"editor": "textfield",
"nullable": true,
"description": "Case-insensitive substring on the jurisdiction's published result or grade. A source with no such field returns no matches; scores are never guessed into grades."
},
"socrataAppToken": {
"type": "string",
"title": "Socrata application token",
"editor": "textfield",
"isSecret": true,
"nullable": true,
"description": "Optional caller-owned app token for a dedicated Socrata rate-limit pool. It is sent only as X-App-Token and never returned."
},
"maxRecordsPerCity": {
"type": "integer",
"title": "Maximum records per jurisdiction",
"default": 100,
"maximum": 5000,
"minimum": 1,
"prefill": 25,
"description": "Bounded newest-first query limit per jurisdiction (1-5,000)."
},
"businessNameContains": {
"type": "string",
"title": "Business name contains",
"editor": "textfield",
"nullable": true,
"description": "Case-insensitive establishment-name substring. Applied server-side where supported and verified client-side for every source."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}civicdataforge--multistate-childcare-licensing — Multi-State Childcare Licensing
Use for cross-state childcare licensing, inspection, and deficiency research across supported states. For Texas-only operation, inspection, or deficiency filters, use texas-childcare-licensing instead. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without modifying government records.
{
"type": "object",
"properties": {
"county": {
"type": "string",
"title": "County",
"editor": "textfield",
"nullable": true,
"description": "Filter to one county (e.g. 'Sussex', 'Oneida', 'Boulder'). Applied server-side where the state feed carries a county column; CT publishes no county so a county filter returns no CT rows. Leave empty for statewide."
},
"states": {
"type": "array",
"title": "States",
"editor": "stringList",
"default": [
"CT"
],
"prefill": [
"CT"
],
"nullable": true,
"description": "Which states to pull. Available: NY (16.8k facilities), NJ (4.2k), CO (4.5k), CT (16.2k + inspections), DE (1.2k + inspections & deficiencies). Leave empty for all five."
},
"licenseStatus": {
"type": "string",
"title": "License status",
"editor": "textfield",
"nullable": true,
"description": "Case-insensitive substring match on the facility's license status (e.g. 'ACTIVE', 'License', 'Licensed'). Leave empty for all statuses."
},
"minDeficiencies": {
"type": "integer",
"title": "Min cited deficiencies",
"minimum": 0,
"nullable": true,
"description": "Only return facilities with at least this many cited deficiencies (compliance screening). Deficiency counts are published only by Delaware; other states have none, so this filter excludes them."
},
"maxInspectionRows": {
"type": "integer",
"title": "Max inspection rows per state",
"default": 200,
"minimum": 1,
"prefill": 50,
"nullable": true,
"description": "Cap the inspection/deficiency rows fetched per state before building the per-facility compliance lookup (leave empty to read the full feed; CT ships ~97k inspection rows)."
},
"includeInspections": {
"type": "boolean",
"title": "Include inspection / deficiency data",
"default": false,
"prefill": false,
"description": "When on, fetch each state's inspection/deficiency feed and merge per-facility inspection_count and (DE) deficiency_count + top cited regulations. Turn off for a faster, licensing-only pull. Only affects CT and DE."
},
"maxRecordsPerState": {
"type": "integer",
"title": "Max records per state",
"default": 50,
"minimum": 1,
"prefill": 25,
"nullable": true,
"description": "Cap the number of facility records pulled from each state (leave empty for the full registry)."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}civicdataforge--texas-childcare-licensing — Texas Childcare Licensing
Use for Texas-only childcare operation, inspection, and deficiency evidence. For comparable research spanning multiple supported states, use multistate-childcare-licensing instead. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without modifying government records.
{
"type": "object",
"properties": {
"county": {
"type": "string",
"title": "County",
"editor": "textfield",
"prefill": "Travis",
"nullable": true,
"description": "Filter to one Texas county (e.g. HARRIS, DALLAS, TRAVIS). Leave empty for statewide."
},
"maxRecords": {
"type": "integer",
"title": "Max records",
"default": 100,
"minimum": 1,
"prefill": 25,
"nullable": true,
"description": "Cap total records (leave empty for the full registry, ~100k)."
},
"operationType": {
"type": "string",
"title": "Operation type",
"editor": "textfield",
"nullable": true,
"description": "e.g. 'Licensed Center', 'Licensed Child-Care Home', 'Listed Family Home'. Leave empty for all."
},
"minHighDeficiencies": {
"type": "integer",
"title": "Min high-severity deficiencies",
"minimum": 0,
"nullable": true,
"description": "Only return operations with at least this many high-severity deficiencies (compliance screening)."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}civicdataforge--epa-echo-facility-compliance — EPA ECHO Facility Compliance Evidence
Use for a bounded EPA ECHO facility query that preserves published identity, compliance, inspection, and enforcement evidence while keeping environmental safety UNKNOWN. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without modifying government records.
{
"type": "object",
"properties": {
"zip": {
"type": "string",
"title": "ZIP code",
"pattern": "^[0-9]{5}(-[0-9]{4})?$"
},
"city": {
"type": "string",
"title": "City",
"maxLength": 100
},
"state": {
"type": "string",
"title": "State",
"pattern": "^[A-Za-z]{2}$"
},
"facilityId": {
"type": "string",
"title": "EPA FRS Registry ID",
"pattern": "^[0-9]{12}$",
"description": "Exact 12-digit Facility Registry Service ID, for example 110000367567."
},
"facilityName": {
"type": "string",
"title": "Facility name",
"maxLength": 200,
"minLength": 3,
"description": "Published facility name. Add location fields to reduce ambiguity."
},
"maxCandidates": {
"type": "integer",
"title": "Maximum candidates",
"default": 5,
"maximum": 10,
"minimum": 1
},
"nameMatchMode": {
"enum": [
"exact",
"contains",
"begins"
],
"type": "string",
"title": "Name matching",
"default": "exact",
"description": "Exact is the responsible default. Contains is discovery-only and may require review."
},
"streetAddress": {
"type": "string",
"title": "Street address",
"maxLength": 200,
"minLength": 5,
"description": "Full or partial published street address. Address-only searches also require city, state, or ZIP."
},
"includeProgramDetails": {
"type": "boolean",
"title": "Retrieve program details",
"default": true
}
},
"description": "Provide a 12-digit EPA FRS Registry ID, or a bounded facility name/address query. Exact FRS ID is the strongest selector."
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}civicdataforge--norway-company-evidence — Norway Company & Supplier Evidence
Use for exact nine-digit Norwegian organisation-number evidence or bounded company-name research from Brønnøysundregistrene. NLOD 2.0 permits commercial reuse with attribution and change disclosure, but buyer-specific privacy and lawful-basis review may still be required for personal-data-bearing records; this Actor omits roles, contacts, and street address lines and never issues a KYC, procurement, sanctions, or eligibility verdict. Starts the bound Apify Actor with the caller's APIFY_TOKEN, may consume Apify usage, waits up to 60 seconds, and returns at most 1,000 source-linked rows without modifying government records.
{
"type": "object",
"required": [
"queries"
],
"properties": {
"queries": {
"type": "array",
"items": {
"type": "object",
"required": [
"purpose"
],
"properties": {
"name": {
"type": "string",
"title": "Entity name",
"maxLength": 180,
"minLength": 2,
"description": "Bounded official name search. The API's published candidates are returned; ambiguous candidates are not silently resolved."
},
"purpose": {
"enum": [
"ENTITY_VERIFICATION",
"SUPPLIER_ONBOARDING_EVIDENCE",
"PROCUREMENT_RESEARCH",
"OTHER"
],
"type": "string",
"title": "Evidence purpose",
"editor": "select",
"enumTitles": [
"Entity verification",
"Supplier onboarding evidence",
"Procurement research",
"Other evidence purpose"
],
"description": "Caller-declared workflow context recorded in the receipt; it never changes source facts or produces an eligibility verdict."
},
"reference": {
"type": "string",
"title": "Caller reference",
"maxLength": 200,
"description": "Optional non-sensitive caller reference bound into the evidence receipt."
},
"organisationNumber": {
"type": "string",
"title": "Organisation number",
"description": "Exact nine-digit Norwegian organisation number."
},
"previousRecordReceipts": {
"type": "array",
"items": {
"type": "string"
},
"title": "Previous record receipts",
"editor": "stringList",
"maxItems": 50,
"description": "Optional prior record receipt hashes used only for deterministic added, removed, or unchanged classification."
},
"previousDecisionReceiptHash": {
"type": "string",
"title": "Previous decision receipt",
"description": "Optional prior SHA-256 decision receipt used only for deterministic change classification."
}
}
},
"title": "Company queries",
"editor": "json",
"prefill": [
{
"purpose": "SUPPLIER_ONBOARDING_EVIDENCE",
"reference": "supplier-no-001",
"organisationNumber": "974760673"
}
],
"maxItems": 25,
"minItems": 1,
"description": "One to 25 evidence queries. Prefer the exact nine-digit organisation number. A supplied name alongside an organisation number is returned as a consistency check, never as a replacement identifier."
},
"maxRecords": {
"type": "integer",
"title": "Maximum returned name candidates",
"editor": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Name searches request one additional record internally so truncation is detected and disclosed."
},
"batchReference": {
"type": "string",
"title": "Batch reference",
"editor": "textfield",
"maxLength": 200,
"description": "Optional non-sensitive batch reference bound into the shared batch receipt."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get-actor-run — Get Actor run
Read the status, storage identifiers, summary, and next step for an Actor run. A positive waitSecs value waits for a terminal state within the documented cap.
{
"type": "object",
"required": [
"runId"
],
"properties": {
"runId": {
"type": "string",
"minLength": 1,
"description": "Actor run ID."
},
"waitSecs": {
"type": "integer",
"default": 30,
"maximum": 45,
"minimum": 0,
"description": "Seconds to wait for a terminal state."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get-dataset-items — Get dataset items
Read result rows from a caller-owned Apify dataset, with bounded pagination and optional field selection.
{
"type": "object",
"required": [
"datasetId"
],
"properties": {
"desc": {
"type": "boolean"
},
"omit": {
"type": "string"
},
"clean": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1
},
"fields": {
"type": "string"
},
"offset": {
"type": "number"
},
"flatten": {
"type": "string"
},
"datasetId": {
"type": "string",
"minLength": 1,
"description": "Dataset ID or username~dataset-name."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get-key-value-store-record — Get key-value store record
Read one exact record from a caller-owned Apify key-value store.
{
"type": "object",
"required": [
"keyValueStoreId",
"recordKey"
],
"properties": {
"recordKey": {
"type": "string",
"minLength": 1,
"description": "Exact record key."
},
"keyValueStoreId": {
"type": "string",
"minLength": 1,
"description": "Key-value store ID or username~store-name."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}abort-actor-run — Abort Actor run
Abort a caller-owned Actor run that is starting or running. Terminal runs are unchanged.
{
"type": "object",
"required": [
"runId"
],
"properties": {
"runId": {
"type": "string",
"minLength": 1,
"description": "Actor run ID to abort."
},
"gracefully": {
"type": "boolean",
"description": "Request a graceful abort with the provider timeout."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 499 ms
- 95th percentile latency
- 499 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 499 ms · metadata changed · 15 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http civicdataforge-mcp https://civicdataforge.pages.dev/mcpCodex
codex mcp add civicdataforge-mcp --url https://civicdataforge.pages.dev/mcpCursor
{
"mcpServers": {
"civicdataforge-mcp": {
"url": "https://civicdataforge.pages.dev/mcp"
}
}
}Cline
{
"mcpServers": {
"civicdataforge-mcp": {
"type": "streamableHttp",
"url": "https://civicdataforge.pages.dev/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"civicdataforge-mcp": {
"type": "http",
"url": "https://civicdataforge.pages.dev/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http civicdataforge-mcp https://civicdataforge.pages.dev/mcpClaude Desktop
https://civicdataforge.pages.dev/mcpWindsurf
{
"mcpServers": {
"civicdataforge-mcp": {
"serverUrl": "https://civicdataforge.pages.dev/mcp"
}
}
}Let your agent find its tools
Find servers like CivicDataForge MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.