Agent-native · LegacyRail
For AI agents and integrators
EBROTECH / LegacyRail exposes a machine-readable layer so AI agents, MCP orchestrators and developers can discover, validate and request connectors over Spanish and European legacy management software. This page documents what is exposed, how to access it and the real state of each connector. Honest: clients_live=0 as of June 2026.
Updated: 24 June 2026
What LegacyRail is (for agents)
LegacyRail is the agent-native infrastructure EBROTECH builds as a byproduct of serving B2B clients in Spain and Europe. It exposes MCP connectors ("pp-X") over the legacy management software that dominates the Spanish and European market — programs with no official REST API, or with regulatory fiscal mandates the agent cannot resolve alone.
Each pp-X connector is a CLI + slim 2-tool MCP server that allows an
agent to read and write to the legacy software without a human UI.
The canonical namespace is
dev.legacyrail/[connector]
(reverse-DNS of legacyrail.dev).
Commercial/technical distinction: B2B clients hire EBROTECH (commercial layer). Agents and developers consume LegacyRail (technical layer). They are not two separate companies.
human_approval_required: true on all connectors. The agent discovers and requests; the human approves. Nothing is contracted or charged without explicit human sign-off.
When to choose LegacyRail — and when not to
Choose LegacyRail when:
- · The legacy software has no official REST API (Gesden, ContaSol, A3, QVet, Presto, DATEV, Cegid…)
- · The workflow requires compliance with Veri*Factu, TicketBAI, SII, PEPPOL, FEC, SAF-T, GAEB, DATEV-Format or xDT/GDT
- · The agent serves the Spanish/European B2B market and the client uses one of the 92+ catalog software
- · You need to route between candidate connectors before committing to one
- · You need a slim 2-tool MCP server that saves tokens vs adapting the full CLI
Do not use LegacyRail when:
- · The software has a full official REST API → use the API directly or Zapier/Make/n8n
- · The use case is consumer (not B2B): compliance and monthly pricing do not apply
- · Autonomous action without HITL is needed: all connectors require human approval
- · The ERP is an international standard with mature connectors (SAP B1 API, Odoo REST, Dynamics connector)
- · Sub-second streaming is needed: bridges operate over batch exports or polling, not real time
Real connector state (June 2026)
Honest: clients_live=0 for all third-party connectors. pp-ghl is EBROTECH's internal CRM (live). The rest are in internal validation (live-gated) or active development (scaffold). Authoritative source: capabilities.json.
| Connector | Sector | State | Fiscal mandates |
|---|---|---|---|
| pp-ghl | EBROTECH internal CRM Cross-vertical (EBROTECH internal CRM) | Live | — |
| pp-a3-factura | A3 Factura (Wolters Kluwer ES) Accounting firms / invoicing ES | Beta (internally validated) | Veri*Factu |
| pp-contasol | ContaSol (DELSOL) Accounting firms / bookkeeping ES | Beta (internally validated) | Veri*Factu |
| pp-provet | Provet Cloud Veterinary clinics (ES, GB, NO, FI) | Beta (internally validated) | — |
| pp-gesden | Gesden (Dentsply Sirona) Dental clinics ES | In development | — |
| pp-qvet | QVet Veterinary clinics ES | In development | — |
| pp-presto | Presto (ACCA Software) Construction and renovation ES | In development | — |
| pp-veri-factu-core | Veri*Factu Core (AEAT ES) Fiscal compliance ES | In development | Veri*Factu, RD 1007/2023 |
Machine-readable endpoints
All public, CORS-open, no auth. Served from Cloudflare Pages CDN (CF SLA availability). Updated on every repo build.
Agent-native manifest v0.2. Connectors, tools (get_connector_status, find_connector, request_quote), real state, compliance and pricing.
EBROTECH's resource catalog in ARD format. Links to all feeds (verticals, software, pricing, capabilities) with representativeQueries per entry.
OpenAPI 3.1 description of read endpoints. Allows agents and orchestrators to discover and invoke structured feeds with validated schemas.
92+ legacy software with connector_slug, live_status, countries and supported fiscal mandates. The primary source for find_connector.
EBROTECH identity + general overview: services, verticals, software, pricing. Entry point for agents needing a high-level summary.
The 5 core verticals (veterinary, dental, accounting, construction, ecommerce) with automations, compatible software and estimated ROI.
The released B2B niches with cross-locale slugs (es/en/it/fr/pt), out of the 74 verticals EBROTECH operates. Allows resolving the correct niche slug in each market.
T1/T2/T3 tiers with minimum prices. For generating request_quote payloads without inventing figures.
Structured-first summary of EBROTECH + LegacyRail agent-native section. LLM-readable format. Auto-generated from the data layer.
Full dump of key pages (expanded llms.txt). For complete LLM or RAG ingestion without crawling.
Content usage permissions for AI systems (reading allowed, training prohibited without agreement).
Typical agent flow
- 1
Discover the connector
GET /api/software.json or use the find_connector tool from capabilities.json with the software name or client's sector (e.g. sector: 'dental', software_name: 'Gesden'). Returns candidates sorted by live_status.
- 2
Verify real state
Call get_connector_status with the connector_slug. Returns live_status, clients_live, tested_in_production and gov_mandated_formats. Do not invent maturity — use what the feed returns.
- 3
Verify compliance (if applicable)
Check gov_mandated_formats in the connector's capabilities.json. If the client requires Veri*Factu and the connector does not support it → do not recommend it. Honest about mandate status.
- 4
Generate quote payload (HITL)
Use the request_quote tool with connector_slug + contact_email + indicative tier + message. The tool returns the payload and submission URL, but human_approval_required: true — the agent presents to the human before sending. Never send without human sign-off.
- 5
Human approves and EBROTECH confirms
Once the human approves the payload submission, EBROTECH receives the request and schedules a 15-minute Discovery session. In that session the real connection path (API, export or local agent) is confirmed — no invented state.
MCP server (current state)
mcp.ebrotech.net is not in production as of June 2026. The MCP server scaffold is built (CF Workers + MCP SDK, 5 tools, wrangler.toml ready), but deployment is gated to LegacyRail Phase 2 (Q3 2026, first paying B10 client). The COMPLETE machine-readable catalog is already available at the static endpoints on this page and in capabilities.json. Planting a flag without real traction serves no one — the MCP activates when clients are validating it.
The mcp_endpoint field in
capabilities.json shows the planned target:
https://mcp.ebrotech.net/catalog/mcp.
When live, this field will update and the endpoint will respond.
Frequently asked questions for agents and integrators
How many LegacyRail connectors are in production today?
As of 2026-06-24: pp-ghl (EBROTECH's internal CRM — live) is in production. pp-a3-factura and pp-contasol are live-gated (validated internally, no external paying client yet). pp-gesden, pp-qvet, pp-presto and pp-veri-factu-core are scaffold (active development). clients_live=0 for all third-party connectors. The complete, honest catalog is at /.well-known/capabilities.json.
How does an agent discover which connector to use for a specific software?
Three ways: (1) GET /api/software.json — returns 92+ software items with their connector_slug. (2) GET /.well-known/capabilities.json — structured manifest with the find_connector tool that accepts software_name and sector. (3) GET /openapi.json — OpenAPI 3.1 description of all endpoints. The exact connection path (API, normalised export or local agent) is always confirmed in the Discovery session — the agent must not invent technical state.
What is the dev.legacyrail/* namespace?
It is the canonical namespace (reverse-DNS of legacyrail.dev) that identifies LegacyRail MCP connectors. Each connector is identified as dev.legacyrail/<slug> (e.g. dev.legacyrail/pp-gesden). LegacyRail is the technical layer of EBROTECH: B2B clients hire EBROTECH; agents and developers consume LegacyRail.
Does reading the catalog require credentials?
No. The /api/* and /.well-known/* endpoints are public and CORS-open — no token needed to read the catalog. Operating an individual pp-X connector requires the client's own software credentials (documented in capabilities.json per connector). No monetary action is committed without explicit human approval (human_approval_required: true always).
What fiscal mandates does LegacyRail cover?
Veri*Factu (RD 1007/2023, ES, mandatory 2027), TicketBAI (Basque Country/Navarre), SII AEAT, PEPPOL BIS 3.0 (EU), EN-16931 (European e-invoice standard), FEC (France), SAF-T (Portugal/Norway/Poland), GAEB (Germany, construction), DATEV-Format (Germany, accounting), xDT/GDT (Germany, medical practices), SPED (Brazil). Real per-connector coverage is in the gov_mandated_formats field of capabilities.json.
What does the /api/software.json endpoint return?
GET https://ebrotech.net/api/software.json returns the catalog of 92+ legacy software that EBROTECH connects to. Fields per software: slug, name, vertical/sector, connector_slug (if pp-X exists), live_status (scaffold/live-gated/live), available countries and supported regulatory formats. CORS-open, static on Cloudflare Pages, no auth required.
Is the MCP server deployed at mcp.ebrotech.net?
Not as of 2026-06-24. The MCP server scaffold is built (5 tools, CF Workers + MCP SDK, wrangler.toml ready), but deployment is gated to LegacyRail Phase 2 (Q3 2026, first paying B10 client). In the meantime, the complete agent-readable catalog is available at the static endpoints and in capabilities.json. The mcp_endpoint field of capabilities.json shows the planned target.
When NOT to use LegacyRail?
When the client's software has a full official REST API (Salesforce, HubSpot, Shopify native, QuickBooks Online, Xero Online, etc.) — use the API directly. When the use case is consumer (not B2B). When autonomous action without human approval is needed — LegacyRail always requires HITL for committing charges. When the agent needs a generic connector with no European fiscal mandates — Zapier/Make/n8n are cheaper.
More resources
Integrations catalog
92+ software sheets with connector state and fiscal mandates
Legacy API Diagnostic
Software stack audit in 3-5 days from €2,500
Pricing and tiers
T1 Bridge €97/mo · T2 Augment €297/mo · T3 Migrate €497/mo
Security and compliance
Data in EU (Hetzner Helsinki), GDPR Art. 28, DPA available
Does your agent need to integrate Spanish or European legacy software?
Tell us the software, the sector and the fiscal mandate (if applicable). We tell you which connector fits, what state it is in and how long setup takes.