add-builtin-transform
Skill1 starsChanged 14 days agoMITView on GitHub
Procedimiento para añadir un transform integrado a maltego-mcp (sin API key o de un proveedor con API key) con tests sin red, verificación en vivo y documentación. Úsala cuando haya que incorporar una nueva fuente OSINT o un conector de proveedor.
- Reads credentials
In this repository31 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- add-machineSkill
- company-footprintSkill
- custom-providerSkill
- external-osint-toolsSkill
- hybrid-deploymentSkill
- identity-footprintSkill
- infrastructure-mappingSkill
- ioc-graph-compositionSkill
- maltego-formatsSkill
- mcp-tool-changeSkill
- non-standard-entitiesSkill
- osint-investigationSkill
- releaseSkill
- security-reviewSkill
- add-builtin-transformSkill
- add-machineSkill
- company-footprintSkill
- custom-providerSkill
- external-osint-toolsSkill
- hybrid-deploymentSkill
- identity-footprintSkill
- infrastructure-mappingSkill
- ioc-graph-compositionSkill
- maltego-formatsSkill
- mcp-tool-changeSkill
- non-standard-entitiesSkill
- osint-investigationSkill
- releaseSkill
- security-reviewSkill
The file
Files
Añadir un transform integrado
- Diseño: tipo(s) Maltego de entrada y salida, etiqueta de relación (
snake_case), fuente y si necesita API key. Comprueba enosint_list_entity_typesque los tipos existen. - Implementación en
src/maltego_mcp/transforms/builtin.py:- handler
async def _mi_transform(ctx, etype, value, props, n) -> TransformResponse. - HTTP solo con
_get_json(ctx, url, headers=..., params=..., not_found_ok=...)odoh(ctx, nombre, tipo). - Clave con
ctx.key("PROVEEDOR_API_KEY"); preferible en cabecera antes que en la URL. - Resultados con
_ent(tipo, valor, etiqueta, weight=..., prop__con__puntos="...")yreturn _limit(items, n). - Valida lo que llega de fuera (hostnames con
_HOSTNAME_RE, IPs conipaddress).
- handler
- Registro: añade
_b("Nombre", entradas, salidas, "descripción", "categoria", handler, ("CLAVE",))aBUILTIN_TRANSFORMS. Proveedores: categoríaproveedor:<nombre>y su clave enPROVIDER_KEYS. - Machines: si encaja, añádelo a la etapa adecuada en
machines.py(se omite solo si falta la clave). - Tests en
tests/test_builtin.py: respuesta simulada con el formato REAL del servicio enRouter, caso parametrizado, errores (401/429/timeout) y cabeceras de autenticación. - Verificación en vivo (solo transforms sin clave): ejecútalo una vez contra el servicio real con
uv run maltegoctl lookup Nombre valor. - Documentación: tabla de transforms en
README.md,README.es.md,docs/USO.md;docs/COBERTURA.md(V = probado en vivo, S = simulado);.env.examplesi hay clave nueva;CHANGELOG.md. uv run pytest -q && uv run ruff check . && uv run mypy src.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

