{"name":"io.github.huangjunsong404-crypto/china-nmpa-udi","slug":"huangjunsong404-crypto-china-nmpa-udi","title":"China NMPA Medical Device Data","description":"Structured China NMPA UDI data for AI agents: devices, registrants, models and registration numbers.","url":"https://mcp.market/server/huangjunsong404-crypto-china-nmpa-udi","rating":null,"grade":"C","score":63,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":5,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":1,"ok":1,"last_checked_at":"2026-09-19T17:40:28.045Z","last_ok_at":"2026-09-19T17:40:28.045Z","latency_ms":111},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/huangjunsong404-crypto/agentdata-api","website":null,"version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://mcp.agentdatacore.com/mcp"}],"packages":[],"tools":[{"name":"find_ccc_products","description":"Find CCC catalog product entries by product or category text. Inputs: product. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Catalog matches only; does not determine certification or legal applicability. No match returns an empty data array. Required: product. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"product":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded CCC product or category text. Literal, case-sensitive substring match; no fuzzy search. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["product"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"find_ccc_standard_references","description":"Find occurrences of a recorded standard number in CCC reference metadata. Inputs: standard_number. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Reference occurrences only; does not imply equivalence or applicability. No match returns an empty data array. Required: standard_number. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"standard_number":{"type":"string","minLength":1,"maxLength":256,"description":"Standard number exactly as recorded, including spaces, punctuation and version suffix if present. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["standard_number"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"find_country_institutions","description":"Find recorded institutions and roles for a country, optionally filtered by institution text. Inputs: country, institution. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: country. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"country":{"type":"string","minLength":1,"maxLength":256,"description":"Country or region label exactly as recorded; no country-code or alias conversion. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Required. Supplied filters are combined with AND."},"institution":{"description":"Recorded institution name or entity identifier text. Literal, case-sensitive substring match; no fuzzy search. Non-empty string, at most 256 characters; control characters are not accepted. Optional; omitted means no filter on this field. Supplied filters are combined with AND.","type":"string","minLength":1,"maxLength":256},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["country"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"find_license_catalog_items","description":"Find licence catalog entries by recorded product or commodity text. Inputs: product. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: product. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"product":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded licence commodity or subject text. Literal, case-sensitive substring match; no fuzzy search. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["product"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_ccc_rule_versions","description":"Find recorded versions and dates for a CCC rule number. Inputs: rule_number. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded version facts only; does not infer legal applicability. No match returns an empty data array. Required: rule_number. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"rule_number":{"type":"string","minLength":1,"maxLength":256,"description":"CCC rule number exactly as recorded, including punctuation and version suffix if present. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["rule_number"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_customs_commodity_trade","description":"Query China import or export observations by recorded major-commodity label. Inputs: period, commodity, flow and optional metric. Selected exact Chinese aliases and normalized existing names are supported; this is not general translation or HS-code classification. Returns trade_value or quantity observations with original commodity labels, units, scope, source_class, provenance, snapshot, pagination and limits. No category merging or conversion. No match returns an empty data array. Required: period, commodity, flow. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"period":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded statistical period: YYYY-MM for a single month, or YYYY-01/YYYY-MM for January-to-month cumulative observations. Exact collected period; these periods are not interchangeable. A snapshot identifies the dataset version, not a selectable statistical period. Required."},"commodity":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded major-commodity name or a selected exact Chinese alias. Existing literal substring matching remains; known aliases resolve only to their exact canonical label. NFKC, leading/trailing spaces and letter case are normalized for known names. No fuzzy translation, HS mapping or broader/narrower category expansion. Required."},"flow":{"type":"string","enum":["IMPORT","EXPORT"],"description":"China trade direction: IMPORT or EXPORT. Required."},"metric":{"description":"Recorded metric trade_value or quantity. trade_value currently uses 1000USD; quantity units vary by commodity and are returned unchanged. Optional; omission includes both collected metrics.","type":"string","minLength":1,"maxLength":256},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["period","commodity","flow"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_customs_country_trade","description":"Query China merchandise trade by partner country/region, including all-partner totals using country TOTAL. Inputs: period, country and optional flow. IMPORT and EXPORT are China imports and exports; BOTH is recorded combined trade. Returns recorded trade values and units (currently 1000USD), scope, source_class, provenance, snapshot, pagination and limits. No commodity filter or currency conversion. No match returns an empty data array. Required: period, country. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"period":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded statistical period: YYYY-MM for a single month, or YYYY-01/YYYY-MM for January-to-month cumulative observations. Exact collected period; these periods are not interchangeable. A snapshot identifies the dataset version, not a selectable statistical period. Required."},"country":{"type":"string","minLength":1,"maxLength":256,"description":"China trade partner country/region, or TOTAL for all partners. TOTAL is an aggregate, not an alias for China. Exact recorded name or selected one-to-one alias; original labels remain in output. Required."},"flow":{"description":"China trade direction: IMPORT or EXPORT or BOTH (recorded combined total). Optional; omission includes collected directions.","type":"string","enum":["IMPORT","EXPORT","BOTH"]},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["period","country"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_foreign_investment_stats","description":"Find foreign-investment observations for a statistical year, optionally filtered by country or measure. Inputs: year, country, metric. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: year. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"year":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Recorded statistical year as an integer; this is not the publication year. Exact match. Non-negative integer within the server integer range. Required. Supplied filters are combined with AND."},"country":{"description":"Country or region label exactly as recorded; no country-code or alias conversion. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Optional; omitted means no filter on this field. Supplied filters are combined with AND.","type":"string","minLength":1,"maxLength":256},"metric":{"description":"Statistical measure label exactly as recorded; no unit conversion or aggregation. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Optional; omitted means no filter on this field. Supplied filters are combined with AND.","type":"string","minLength":1,"maxLength":256},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["year"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_gazette_items","description":"Find entries in a gazette issue, optionally filtered by document number. Inputs: issue, document_number. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: issue. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"issue":{"type":"string","minLength":1,"maxLength":256,"description":"Gazette issue label exactly as recorded. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Required. Supplied filters are combined with AND."},"document_number":{"description":"Document number exactly as recorded. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Optional; omitted means no filter on this field. Supplied filters are combined with AND.","type":"string","minLength":1,"maxLength":256},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["issue"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_information_standard","description":"Retrieve definitions of information formation classes, provenance fields and snapshot/version metadata. Takes no arguments. Returns the information-standard document, not business records or an assessment of facts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_mofcom_trade_stats","description":"Query collected country-workbook trade observations (flows relative to the named reporting country) or China–Portuguese-speaking-country bilateral year-to-date observations. Inputs: period and optional country, flow and metric. This collection is not China national all-partner monthly totals. Returns original structured observations, units, scope, source_class, provenance, snapshot, pagination and limits. No conversion, aggregation or cross-period calculation. No match returns an empty data array. Required: period. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"period":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded statistical period: YYYY-MM for a single month, or YYYY-01/YYYY-MM for January-to-month cumulative observations. Exact collected period; these periods are not interchangeable. A snapshot identifies the dataset version, not a selectable statistical period. Required."},"country":{"description":"Reporting country in country workbooks, or China bilateral partner in Portuguese-speaking-country observations; returned scope distinguishes them. Exact recorded name or a documented one-to-one alias. Optional.","type":"string","minLength":1,"maxLength":256},"flow":{"description":"Flow relative to the named reporting country for COUNTRY_WORKBOOK_AS_REPORTED; China flow relative to the named partner for CHINA_PORTUGUESE_COUNTRIES_YTD. Recorded values IMPORT, EXPORT or BOTH; scope remains in each fact. Optional.","type":"string","minLength":1,"maxLength":256},"metric":{"description":"Recorded metric trade_value; country workbook unit is 亿美元, China–Portuguese-speaking-partner unit is 万美元. No unit conversion. Optional.","type":"string","minLength":1,"maxLength":256},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["period"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_recall_record","description":"Retrieve a recall notice or detail record using an existing search-result identifier. Inputs: record_id. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: record_id. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"record_id":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Existing integer recall record identifier returned by search_recalls. Exact match. Non-negative integer within the server integer range. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["record_id"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_standard_metadata","description":"Retrieve standard metadata when its recorded standard number is known. Inputs: standard_number. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Metadata only; no standard full text. No match returns an empty data array. Required: standard_number. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"standard_number":{"type":"string","minLength":1,"maxLength":256,"description":"Standard number exactly as recorded, including spaces, punctuation and version suffix if present. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["standard_number"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_udi_company_products","description":"Find recorded medical-device products associated with a company or registrant name. Inputs: company. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: company. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"company":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded registrant/company name, including recorded English names. Literal, case-sensitive substring match; no fuzzy search. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["company"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_udi_device","description":"Look up medical-device records when a UDI identifier is known. Inputs: udi. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: udi. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"udi":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded UDI identifier; retain leading zeros. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["udi"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"get_udi_registration_products","description":"Find medical-device records associated with a registration or filing number. Inputs: registration_no. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: registration_no. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"registration_no":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded registration or filing number, including its original punctuation. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["registration_no"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"search_policy_facts","description":"Find policy and document facts by title or document-number text. Inputs: query. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: query. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded policy title or document-number text. Literal, case-sensitive substring match; no fuzzy search. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["query"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"search_recalls","description":"Find recall notices and detail records by product, manufacturer or title text. Inputs: query. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded notices only; an empty result does not establish absence of recalls. No match returns an empty data array. Required: query. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded recall title, product name or manufacturer text. Literal, case-sensitive substring match; no fuzzy search. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["query"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"search_standard_metadata","description":"Find standard metadata by title text, optionally filtered by its recorded status. Inputs: query, status. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Metadata only; no standard full text. No match returns an empty data array. Required: query. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded Chinese or English standard-title text. Literal, case-sensitive substring match; no fuzzy search. Non-empty string, at most 256 characters; control characters are not accepted. Required. Supplied filters are combined with AND."},"status":{"description":"Standard status label exactly as published; no translation or status inference. Exact match. Non-empty string, at most 256 characters; control characters are not accepted. Optional; omitted means no filter on this field. Supplied filters are combined with AND.","type":"string","minLength":1,"maxLength":256},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["query"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"search_udi_category","description":"Find medical devices by a recorded category name or classification code. Inputs: category. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: category. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded device category name or classification code. Literal, case-sensitive substring match; no fuzzy search. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["category"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}},{"name":"search_udi_products","description":"Find medical devices by product or trade-name text. Inputs: query. Returns paginated structured records with source_class, provenance, snapshot, pagination and limits. Recorded facts only; this query performs no new inference or aggregation. Coverage is limited to the available snapshot. No match returns an empty data array. Required: query. Missing required or invalid input produces an argument error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":256,"description":"Recorded product or trade-name text. Literal, case-sensitive substring match; no fuzzy search. Non-empty string, at most 256 characters; control characters are not accepted. Required."},"limit":{"description":"Maximum number of records returned. Integer 1–100; default 20. A page may contain fewer records.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Zero-based pagination offset. Integer 0–999; default 0. Offsets of 1000 or greater are rejected. Use the returned next_offset when present.","type":"integer","minimum":0,"maximum":999},"snapshot":{"description":"Optional expected snapshot.version, not a historical-version selector. If omitted, the current dataset snapshot is used. For continued pagination reuse the previous response snapshot.version; a mismatch is rejected.","type":"string","minLength":1,"maxLength":256}},"required":["query"],"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false}}],"scan":{"score":63,"grade":"C","scanned_at":"2026-09-19T10:15:40.703Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T10:15:40.660Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2563ms"]},"poisoning":{"score":15,"max":15,"notes":["21 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.agentdatacore.com/mcp","reachable":true,"authRequired":false,"latencyMs":2563,"serverInfo":{"name":"china-nmpa-medical-device-data","version":"1.0.1"}}],"packages":[],"repo":{"found":false,"owner":"huangjunsong404-crypto","repo":"agentdata-api","error":"repo not found"},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":5}}}},"grade_history":[],"reviews":[]}