Sampuli
Format-true synthetic test data for 90 countries — IBANs, SWIFT/BIC, IDs, cards, all certified.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"sampuli": {
"command": "npx",
"args": [
"@sampuli/mcp"
]
}
}
}Ausführbare Pakete
0.1.2stdioRemote-Endpunkte
https://sampuli.site/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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".
Eingabe-Schema
{
"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>".
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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#"
}Community
Nachweis