Sampuli
Format-true synthetic test data for 90 countries — IBANs, SWIFT/BIC, IDs, cards, all certified.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"sampuli": {
"command": "npx",
"args": [
"@sampuli/mcp"
]
}
}
}Paquetes ejecutables
0.1.2stdioPuntos de conexión remotos
https://sampuli.site/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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".
Esquema de entrada
{
"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>".
Esquema de entrada
{
"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.
Esquema de entrada
{
"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#"
}Comunidad
Evidencia