Sampuli
Format-true synthetic test data for 90 countries — IBANs, SWIFT/BIC, IDs, cards, all certified.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"sampuli": {
"command": "npx",
"args": [
"@sampuli/mcp"
]
}
}
}実行可能なパッケージ
0.1.2stdioリモートエンドポイント
https://sampuli.site/api/mcpstreamable-httpできること
ツール一覧
ツール(6)
🟢sampuli_list_countries
List every country Sampuli can generate synthetic test data for (90 countries), with the ISO code used as a spec prefix.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sampuli_describe_country(country)
List a country's available fields (phone, national ID, tax number, IBAN, SWIFT/BIC, card, …) and preset scenarios.
入力スキーマ
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "ISO code, e.g. \"ke\", \"de\", \"us\", \"ng\"."
}
},
"required": [
"country"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪sampuli_generate(spec, count, fields, seed, format)
Generate format-true, entirely synthetic test data for a country. spec is "<country>.<selector>" where selector is a field key ("phone"), "person" (a full coherent record), or "preset:<key>" (a scenario). Values match each country's real formats and pass validators (IBAN mod-97, card Luhn, …) but are never real or registered.
入力スキーマ
{
"type": "object",
"properties": {
"spec": {
"type": "string",
"description": "e.g. \"ke.person\" (core fields), \"ke.full\" (every field incl. card/passport/income), \"de.iban\", \"ng.phone\", \"ke.company\", \"ke.product\", \"ke.preset:kyc\"."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"description": "How many rows (omit for one)."
},
"fields": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string",
"const": "all"
}
],
"description": "Which fields for a person record, or \"all\"."
},
"seed": {
"type": "string",
"description": "Reproducible output — same seed, same data."
},
"format": {
"type": "string",
"enum": [
"json",
"csv"
],
"description": "Output format (default json)."
}
},
"required": [
"spec"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sampuli_fetch(query, count, format, seed)
Fetch synthetic test data from a natural request when you don't know the exact spec — e.g. "a SWIFT code for China", "Kenya phone number", "German passport", "a Nigerian BVN". Sampuli resolves the country and field for you (China→cn, "SWIFT code"→swift) and generates a format-true value. Prefer sampuli_generate when you already have a spec like "cn.swift".
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Plain-language request, e.g. \"a SWIFT code for China\", \"UK IBAN\", \"India GSTIN\"."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"description": "How many (omit for one)."
},
"format": {
"type": "string",
"enum": [
"json",
"csv"
],
"description": "Output format (default json)."
},
"seed": {
"type": "string",
"description": "Reproducible output."
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢sampuli_list_types
List the country-agnostic generic types (uuid, enum, int, float, date, vin, isbn, imei, mac, email, …) usable in a custom schema or as "any.<type>".
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪sampuli_schema(fields, count, seed, format)
Generate rows from a custom schema, mixing generic types and country-accurate fields. Each field has a name and a type — a generic type ("uuid", "int:0,500", "enum:free,pro,team", "date:2021,2025") or a country field spec ("ke.phone", "de.iban"). Optional per-field "blank" (0–1) makes it null that often.
入力スキーマ
{
"type": "object",
"properties": {
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Column name."
},
"type": {
"type": "string",
"description": "Generic type or country field spec, e.g. \"uuid\", \"int:0,500\", \"ke.phone\"."
},
"blank": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Probability (0–1) the value is null."
}
},
"required": [
"name",
"type"
],
"additionalProperties": false
},
"description": "The columns to generate."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"description": "How many rows (default 1)."
},
"seed": {
"type": "string",
"description": "Reproducible output."
},
"format": {
"type": "string",
"enum": [
"json",
"csv"
]
}
},
"required": [
"fields"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}コミュニティ
エビデンス