cn_safe_violation_notices_search

Pack: cn-safe-penalties · 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/cn_safe_violation_notices_search for the schema, then POST the same URL with its arguments for the data.

Search the State Administration of Foreign Exchange’s published notices of foreign-exchange violation cases (国家外汇管理局关于外汇违规案例的通报): the firms and banks penalised for illegal currency dealing through underground banks, evasion of foreign exchange (逃汇), sham trade and bank handling failures, with the conduct, the legal article applied and the fine or confiscation, and the link to the official notice. FIRMS ONLY: cases against natural persons are not returned and people named inside a firm case are left out (counts only). One call reads one page of the publisher’s newest-first release list (about 20 releases, 64 pages back to 2018), picks the violation notices on it and reads up to limit of them. query (Chinese words such as a company name, 逃汇, 地下钱庄) is matched only within those cases. No match says which page and period were searched. Example: page=20.

Parameters

NameTypeRequiredDescription
querystringnoChinese words matched in the firm cases of the notices read: a company name, a conduct (逃汇, 非法买卖外汇). Optional.
pagenumbernoPage of the newest-first release list (default 1). Violation notices are a few per year, so the newest page often has none; page 20 reaches early 2019.
limitnumbernoMaximum violation notices read from the page (1-3, default 3).

Example call

Arguments

{
  "page": 20,
  "limit": 1
}

curl

curl -X POST https://gateway.pipeworx.io/cn-safe-penalties/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"cn_safe_violation_notices_search","arguments":{"page":20,"limit":1}}}'

TypeScript (@pipeworx/sdk)

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

const result = await pipeworx.call('cn_safe_violation_notices_search', {
  "page": 20,
  "limit": 1
});

Response shape

FieldTypeDescription
queryobject
foundboolean
returned_noticesnumber
noticesarray
searchedobject
individual_cases_omittednumber
unclassified_cases_omittednumber
person_sentences_omittednumber
unread_noticesnumber
data_as_ofnull
sourcestring
notestring
Full JSON Schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "query": {
          "type": "null"
        },
        "page": {
          "type": "number"
        }
      },
      "additionalProperties": true
    },
    "found": {
      "type": "boolean"
    },
    "returned_notices": {
      "type": "number"
    },
    "notices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "published_on": {
            "type": "string"
          },
          "notice_url": {
            "type": "string"
          },
          "firm_cases": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "case_number": {
                  "type": "number"
                },
                "case_title": {
                  "type": "string"
                },
                "entity": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "penalty_text": {
                  "type": "string"
                }
              },
              "additionalProperties": true
            }
          },
          "firm_cases_in_notice": {
            "type": "number"
          }
        },
        "additionalProperties": true
      }
    },
    "searched": {
      "type": "object",
      "properties": {
        "list": {
          "type": "string"
        },
        "page": {
          "type": "number"
        },
        "pages_total": {
          "type": "number"
        },
        "entries_on_page": {
          "type": "number"
        },
        "page_covers": {
          "type": "object",
          "properties": {
            "newest": {
              "type": "string"
            },
            "oldest": {
              "type": "string"
            }
          },
          "additionalProperties": true
        },
        "violation_notices_on_page": {
          "type": "number"
        },
        "violation_notices_read": {
          "type": "number"
        },
        "violation_notice_titles_not_read": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "published_on": {
                "type": "string"
              },
              "notice_url": {
                "type": "string"
              }
            },
            "additionalProperties": true
          }
        }
      },
      "additionalProperties": true
    },
    "individual_cases_omitted": {
      "type": "number"
    },
    "unclassified_cases_omitted": {
      "type": "number"
    },
    "person_sentences_omitted": {
      "type": "number"
    },
    "unread_notices": {
      "type": "number"
    },
    "data_as_of": {
      "type": "null"
    },
    "source": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": true
}

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 cn-safe-penalties pack
{
  "mcpServers": {
    "cn-safe-penalties": {
      "url": "https://gateway.pipeworx.io/cn-safe-penalties/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build November 15, 2026