colegal-public-assistant
Description
Co-Legal Public Assistant — informational Q&A about Belgian and Dutch private-client legal and fiscal topics (inheritance & gift tax, company law, VAT, succession planning, case-law & statute lookups). Informational only; does not provide specific legal advice. Operated by Co-Legal in Belgium.
Skills
Answer Belgian/Dutch private-client legal/fiscal question
answer_legal_questionTake a natural-language question in Dutch, French, or English about Belgian or Dutch private-client topics (inheritance & gift tax, company law, VAT, succession) and return an informational answer with references to public sources — Belgium: VCF, WIB92, WVV, BW, Belgisch Staatsblad; Netherlands: Successiewet, Wet IB 2001, Burgerlijk Wetboek, wetten.overheid.nl. Handles multi-topic research briefs, e.g. setting up a Belgian BV/SRL: governance under the WVV, capital and contributions in cash or in kind, VAT registration, dividend withholding tax, and inheritance tax on shares when a shareholder dies. Always includes a 'not legal advice' disclaimer. Does not give specific dossier-bound recommendations. **Open to anonymous callers**, throttled per IP (per minute / hour / day). An `x-api-key` lifts the quota for higher-volume integrators.
Belgian ECLI case-law resolver
be.ecli.lookupParse a Belgian ECLI (European Case Law Identifier) and return canonical public lookup URLs on the EU e-Justice portal and on Juportal, plus the decoded court / year / serial metadata. Covers Court of Cassation, Constitutional Court, Council of State, immigration courts, and courts of appeal.
EU CELEX (EUR-Lex) resolver
eu.eurlex.lookupParse a CELEX number (the canonical EUR-Lex identifier) and return the official EUR-Lex landing page URL plus decoded sector / year / document-type / number metadata. Covers EU legislation, CJEU case-law and treaties.
Belgian & EU public legal-corpus search
be.legal.corpus.searchSemantic search over the indexed corpus of PUBLIC Belgian and EU legal sources — Belgian Official Gazette, Justel consolidated legislation, Juportal and Constitutional Court case law, the Flemish Codex, Flemish (VLABEL) and federal advance tax rulings, FPS Finance circulars, and EUR-Lex. Returns ranked passages with source, date, URL and a document_id for bounded, paginated retrieval. Public sources only: no client files, no case data, no licensed doctrine databases.
Read a page of a public legal source
be.legal.corpus.readRetrieve one page of a public legal source document from the indexed corpus, by the document_id returned by `be.legal.corpus.search`. Follow next_cursor on the same corpus version until it is null to read a long source without silent truncation. Use it to ground a citation on the actual wording instead of on a search excerpt.
Belgian statute (Justel) resolver
be.legal.lookupResolve a Belgian statute reference (code + optional article) to the canonical Justel source URL on ejustice.just.fgov.be. Article-level links for BW, WVV, VCF, WER, Sw and Ger.W (routed to the Justel dossier that actually contains the article). WIB92 and WBTW resolve to an overview page only — Justel publishes no article-level consolidation for them, and we do not invent a link.
Legal citation verifier
legal.citation.verifyVerify that a legal citation is real. Accepts a Belgian/EU ECLI, an EUR-Lex CELEX number, a Belgian statute article (e.g. 'art. 4.71 BW') or a Flemish tax ruling number ('VB 25117'). Returns a verdict — verified / resolvable / malformed / unsupported — the canonical source URL, and, when we hold it, the matching document from the indexed public corpus. Built for agents that want to CHECK a citation before repeating it: fabricated citations are the sharpest failure mode in legal AI. It never claims a citation does not exist — absence from our index is not evidence of absence.
Draft a concept document (DOCX)
co-legal.document.draftDraft a CONCEPT document (letter, model clauses, simple agreement, notice of default) and return it as a Word .docx file attached to the response as an A2A FilePart artifact. Provide a `title` and the content in `body_markdown` (a small markdown subset: `#`/`##` headings, paragraphs, `- ` bullets, `**bold**`). Stateless and isolated — no dossier, no storage, no advice; a mandatory 'concept, have a lawyer review' disclaimer is always appended.
ECB euro reference exchange rate
ecb.ratesReturn the official daily ECB euro reference rate `1 EUR = X <currency>` for a given currency (e.g. USD, GBP, CHF). Source: ECB eurofxref-daily feed. Read-only, free.
Flemish inheritance-tax rates
be.fiscal.erfbelastingFlemish inheritance-tax (erfbelasting) rate brackets for every heir category — direct line & partners, siblings, and all other persons — fetched live from the in-force Flemish Tax Code (VCF art. 2.7.4.1.1) and parsed deterministically, never from model memory.
IBAN structural validator
iban.validateValidate an IBAN's structure (ISO 13616 check digits via MOD-97 + country length). Pure compute, no network. Confirms the number is well-formed; does NOT confirm the account exists or is active.
Belgian enterprise (KBO/BCE) lookup
be.kbo.lookupLook up a Belgian enterprise by its Crossroads Bank (KBO/BCE) number. Returns commercial name, legal form, status and start date from the public enterprise registry.
Belgian Justel search-link builder (no result rows)
be.legal.searchResolve a Belgian-legal keyword to the canonical Justel search URL on `ejustice.just.fgov.be`, plus statute-hints for which codex (WIB92, VCF, WVV, BW, …) likely governs the topic. Justel result-pages are JS-rendered, so this tool does NOT scrape result rows — it gives the caller a live, click-through search URL plus routing hints.
Belgian/EU legal document reader
be.legal.readFetch and clean the full-text content of a Belgian or European legal document (HTML or PDF) from an allowed official domain URL. Capped at 30,000 characters.
Dutch statute (wetten.overheid.nl) resolver
nl.legal.lookupResolve a Dutch statute reference (code + optional article) to the canonical wetten.overheid.nl source URL. Covers Civil Code Books 1-7, inheritance/gift tax (Successiewet 1956), income tax (Wet IB 2001), VAT (Wet OB 1968), corporate tax, plus criminal / civil-procedure / administrative-law codes.
Dutch ECLI case-law resolver
nl.rechtspraak.lookupParse a Dutch ECLI and return canonical public URLs: the Rechtspraak.nl details page, the free Open Data content API (decision XML), and the EU e-Justice search, plus decoded court / year / serial metadata. Covers the Supreme Court (Hoge Raad), Council of State, courts of appeal and district courts.
EU VAT number validation (VIES)
be.vies.validateValidate an EU VAT number against the public EU VIES service. Returns validity status plus, where exposed by the source Member State, the registered trade name and address.
System Capabilities
Input Modes
Output Modes
Streaming
✓ SupportedCategory
General / GeneralAgent Card Schema
This manifest contains structural definitions, parameters, and metadata endpoints.
{
"display_name": "colegal-public-assistant",
"description": "Co-Legal Public Assistant — informational Q&A about Belgian and Dutch private-client legal and fiscal topics (inheritance & gift tax, company law, VAT, succession planning, case-law & statute lookups). Informational only; does not provide specific legal advice. Operated by Co-Legal in Belgium.",
"manifest_url": "https://agent.co-legal.be/.well-known/agent-card.json",
"version": "1.22.0",
"category": "General",
"target_audience": "General",
"capabilities": {
"streaming": true,
"extendedAgentCard": true,
"extensions": [
{
"uri": "https://agent.co-legal.be/a2a/extensions/tool-schema/v1",
"description": "Per-skill JSON-Schema input parameters. v1.0 `AgentSkill` has no native `inputSchema`; this extension carries them until the spec adds first-class support.",
"required": false,
"params": {
"be.ecli.lookup": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"ecli"
],
"properties": {
"ecli": {
"type": "string",
"description": "Belgian European Case Law Identifier. Shape: `ECLI:BE:<court>:<year>:<serial>`. Examples: `ECLI:BE:CASS:2020:ARR.20200305.1F.4` (Court of Cassation), `ECLI:BE:GHCC:2021:ARR.044` (Constitutional Court). Case-insensitive on input.",
"minLength": 15,
"maxLength": 80
}
},
"additionalProperties": false
},
"eu.eurlex.lookup": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"celex"
],
"properties": {
"celex": {
"type": "string",
"description": "CELEX number. Shape: `<sector><year><doctype><number>`. Examples: `32016R0679` (GDPR), `32024R1689` (AI Act), `32019L0790` (DSM Copyright Directive), `62019CJ0311` (CJEU C-311/19). Case-insensitive; a `CELEX:` prefix is also accepted.",
"minLength": 7,
"maxLength": 30
},
"language": {
"type": "string",
"description": "Two-letter EUR-Lex language code (NL, FR, EN, DE, …). Defaults to NL to match the agent's primary audience. EUR-Lex transparently falls back to another available language if the requested one isn't published.",
"minLength": 2,
"maxLength": 2,
"default": "NL"
}
},
"additionalProperties": false
},
"be.legal.corpus.search": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Natural-language legal question or topic, in Dutch, French or English. Semantic search — full sentences work better than bare keywords.",
"minLength": 3,
"maxLength": 2000
},
"max_results": {
"type": "integer",
"description": "How many source documents to return (1-25, default 6).",
"minimum": 1,
"maximum": 25,
"default": 6
},
"sources": {
"type": "array",
"description": "Restrict to specific public source keys. Omit for all. Values outside the public allowlist are rejected and reported.",
"items": {
"type": "string",
"enum": [
"belgisch_staatsblad_scrape",
"eurlex_api",
"fiscale_rulings",
"fod_financien_circulaires",
"grondwettelijk_hof_mbbs",
"juportal_scrape",
"justel_scrape",
"kbo_bedrijven",
"nbb_jaarrekeningen",
"vlaamse_codex_api",
"vlabel_rulings"
]
},
"maxItems": 11
},
"category": {
"type": "string",
"description": "Restrict to one document category.",
"enum": [
"administrative_guidance",
"case_law",
"financial_filing",
"legislation",
"official_publication",
"registry",
"ruling"
]
},
"jurisdiction": {
"type": "string",
"description": "Restrict to one jurisdiction.",
"enum": [
"belgium",
"eu",
"flanders"
]
},
"date_from": {
"type": "string",
"description": "Only documents dated on/after this ISO date (YYYY-MM-DD).",
"maxLength": 10
},
"date_to": {
"type": "string",
"description": "Only documents dated on/before this ISO date (YYYY-MM-DD).",
"maxLength": 10
},
"prefer_recent": {
"type": "boolean",
"description": "Weight recency more heavily. Use for 'recent case law' style questions; leave false when a landmark older source is fine.",
"default": false
}
},
"additionalProperties": false
},
"be.legal.corpus.read": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"document_id"
],
"properties": {
"document_id": {
"type": "string",
"description": "The `document_id` of a hit returned by `be.legal.corpus.search`. Not a URL and not a free-text title.",
"minLength": 1,
"maxLength": 200
},
"cursor": {
"type": "string",
"description": "Pagination cursor returned as `next_cursor` by the previous page. Omit for the first page.",
"pattern": "^[0-9]+:[0-9]+$",
"maxLength": 50,
"default": "0:0"
},
"max_chunks": {
"type": "integer",
"description": "Chunks per page (1-40, default 20).",
"minimum": 1,
"maximum": 40,
"default": 20
}
},
"additionalProperties": false
},
"be.legal.lookup": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Statute short-form: `BW`, `WVV`, `WIB92`, `VCF`, `WBTW`, `WBE`, `Sw`, `Ger.W`. Common aliases accepted (`Burgerlijk Wetboek`, `Strafwetboek`, etc.).",
"minLength": 2,
"maxLength": 40
},
"article": {
"type": "string",
"description": "Article identifier — `4.71`, `1100/4`, `215bis`. Optional; omit to get the statute's table-of-contents URL.",
"maxLength": 24
}
},
"additionalProperties": false
},
"legal.citation.verify": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"citation"
],
"properties": {
"citation": {
"type": "string",
"description": "The citation to check. Examples: `ECLI:BE:CASS:2020:ARR.20200305.1F.4`, `32016R0679`, `art. 4.71 BW`, `VB 25117`.",
"minLength": 2,
"maxLength": 200
}
},
"additionalProperties": false
},
"co-legal.document.draft": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"title",
"body_markdown"
],
"properties": {
"title": {
"type": "string",
"description": "Document title, shown at the top and used for the filename. Example: `Model-ingebrekestelling`.",
"minLength": 1,
"maxLength": 200
},
"body_markdown": {
"type": "string",
"description": "Document body in a restricted markdown subset: `#`/`##`/`###` headings, blank-line-separated paragraphs, `- `/`* ` bullets, and `**bold**` inline. Any other markup is treated as literal text.",
"minLength": 1,
"maxLength": 20000
},
"document_type": {
"type": "string",
"description": "Optional short slug for the filename (e.g. `nda`, `ingebrekestelling`). Defaults to a slug of the title.",
"maxLength": 60
}
},
"additionalProperties": false
},
"ecb.rates": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"currency"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter ISO 4217 currency code, e.g. `USD`, `GBP`, `CHF`.",
"minLength": 3,
"maxLength": 3
}
},
"additionalProperties": false
},
"be.fiscal.erfbelasting": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [],
"properties": {
"categorie": {
"type": "string",
"enum": [
"rechte_lijn_partners",
"broers_zussen",
"anderen"
],
"description": "Erfgenaam-categorie. Laat leeg om alle drie de categorieën terug te geven."
}
},
"additionalProperties": false
},
"iban.validate": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"iban"
],
"properties": {
"iban": {
"type": "string",
"description": "An IBAN, with or without spaces. Example: `BE68 5390 0754 7034`.",
"minLength": 15,
"maxLength": 42
}
},
"additionalProperties": false
},
"be.kbo.lookup": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"enterprise_number"
],
"properties": {
"enterprise_number": {
"type": "string",
"description": "Belgian enterprise number (10 digits, optionally with dots or BE prefix). Example: `0403.170.701` or `0403170701`.",
"minLength": 10,
"maxLength": 16
}
},
"additionalProperties": false
},
"be.legal.search": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"keyword"
],
"properties": {
"keyword": {
"type": "string",
"description": "Free-text query (NL or FR). Examples: `schenkingsrechten`, `energiepremie 2026`, `auteursrechten omzetting EU-richtlijn`.",
"minLength": 2,
"maxLength": 120
},
"limit": {
"type": "integer",
"description": "Kept for API stability with previous scrape-based variants. Currently unused — the live Justel results are rendered client-side and not returned by this tool.",
"minimum": 1,
"maximum": 10
}
},
"additionalProperties": false
},
"be.legal.read": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Direct URL of the legal document. Must belong to an official allowed domain (e.g., ejustice.just.fgov.be, eur-lex.europa.eu)."
},
"max_chars": {
"type": "integer",
"description": "Maximum number of characters to return (default 30,000, max 60,000).",
"minimum": 1000,
"maximum": 60000
}
},
"additionalProperties": false
},
"nl.legal.lookup": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Dutch statute short-form or name. Examples: `BW4` (Erfrecht), `Successiewet`, `Wet IB 2001`, `Wet OB 1968`, `BW6`, `Awb`, `Sr`, `Rv`.",
"minLength": 2,
"maxLength": 60
},
"article": {
"type": "string",
"description": "Optional article identifier, e.g. `4:63`, `13a`, `1`. Omitted → the statute's table-of-contents URL.",
"maxLength": 20
}
},
"additionalProperties": false
},
"nl.rechtspraak.lookup": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"ecli"
],
"properties": {
"ecli": {
"type": "string",
"description": "Dutch European Case Law Identifier. Shape: `ECLI:NL:<court>:<year>:<serial>`. Example: `ECLI:NL:HR:2021:1102` (Hoge Raad). Case-insensitive.",
"minLength": 15,
"maxLength": 80
}
},
"additionalProperties": false
},
"be.vies.validate": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"vat"
],
"properties": {
"vat": {
"type": "string",
"description": "VAT number with optional country prefix and punctuation. Examples: `BE0123456789`, `BE 0123.456.789`, `NL123456789B01`.",
"minLength": 8,
"maxLength": 18
}
},
"additionalProperties": false
}
}
},
{
"uri": "https://agent.co-legal.be/a2a/extensions/provider-metadata/v1",
"description": "Signed vendor metadata for the agent provider: public legal-entity registration, contact address, and terms-of-service URL.",
"required": false,
"params": {
"contactEmail": "ops@co-legal.be",
"termsOfService": "https://co-legal.be/legal",
"legalEntity": {
"registrationNumber": "BE1038.676.493",
"registry": "KBO",
"jurisdiction": "BE"
}
}
}
]
},
"skills": [
{
"id": "answer_legal_question",
"name": "Answer Belgian/Dutch private-client legal/fiscal question",
"description": "Take a natural-language question in Dutch, French, or English about Belgian or Dutch private-client topics (inheritance & gift tax, company law, VAT, succession) and return an informational answer with references to public sources — Belgium: VCF, WIB92, WVV, BW, Belgisch Staatsblad; Netherlands: Successiewet, Wet IB 2001, Burgerlijk Wetboek, wetten.overheid.nl. Handles multi-topic research briefs, e.g. setting up a Belgian BV/SRL: governance under the WVV, capital and contributions in cash or in kind, VAT registration, dividend withholding tax, and inheritance tax on shares when a shareholder dies. Always includes a 'not legal advice' disclaimer. Does not give specific dossier-bound recommendations. **Open to anonymous callers**, throttled per IP (per minute / hour / day). An `x-api-key` lifts the quota for higher-volume integrators.",
"tags": [
"read",
"domain:legal",
"domain:fiscal",
"domain:company-law",
"domain:incorporation",
"jurisdiction:BE",
"jurisdiction:vlaams-gewest",
"jurisdiction:NL"
],
"securityRequirements": [
{},
{
"schemes": {
"apiKeyAuth": {
"list": []
}
}
}
],
"inputModes": [
"text/plain"
],
"outputModes": [
"text/plain"
],
"examples": [
"Wat is de erfbelasting voor kinderen in Vlaanderen?",
"Welk minimumkapitaal heeft een BV onder de WVV?",
"Welke governance-regels gelden voor een kleine BV onder het WVV?",
"Wanneer is btw-registratie verplicht voor een pas opgerichte BV?",
"Welke roerende voorheffing geldt op dividenden van een BV, en wat is VVPRbis?",
"Hoe wordt een BV-aandeel belast in de Vlaamse erfbelasting bij overlijden?",
"How does the VLABEL advance-ruling procedure work for a Belgian BV?",
"Hoe werkt de Nederlandse erfbelasting (Successiewet)?",
"Welk artikel regelt vruchtgebruik in het Nederlandse BW?"
]
},
{
"id": "be.ecli.lookup",
"name": "Belgian ECLI case-law resolver",
"description": "Parse a Belgian ECLI (European Case Law Identifier) and return canonical public lookup URLs on the EU e-Justice portal and on Juportal, plus the decoded court / year / serial metadata. Covers Court of Cassation, Constitutional Court, Council of State, immigration courts, and courts of appeal.",
"tags": [
"read",
"domain:legal",
"jurisdiction:BE",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Wat is ECLI:BE:CASS:2020:ARR.20200305.1F.4?",
"Geef de zoeklink voor ECLI:BE:GHCC:2021:ARR.044.",
"Welk hof zit achter ECLI:BE:RVS:2019:ARR.245.123?"
]
},
{
"id": "eu.eurlex.lookup",
"name": "EU CELEX (EUR-Lex) resolver",
"description": "Parse a CELEX number (the canonical EUR-Lex identifier) and return the official EUR-Lex landing page URL plus decoded sector / year / document-type / number metadata. Covers EU legislation, CJEU case-law and treaties.",
"tags": [
"read",
"domain:legal",
"jurisdiction:EU",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Geef de EUR-Lex link voor de GDPR (CELEX 32016R0679).",
"Wat is 32024R1689?",
"Decode CELEX:62019CJ0311."
]
},
{
"id": "be.legal.corpus.search",
"name": "Belgian & EU public legal-corpus search",
"description": "Semantic search over the indexed corpus of PUBLIC Belgian and EU legal sources — Belgian Official Gazette, Justel consolidated legislation, Juportal and Constitutional Court case law, the Flemish Codex, Flemish (VLABEL) and federal advance tax rulings, FPS Finance circulars, and EUR-Lex. Returns ranked passages with source, date, URL and a document_id for bounded, paginated retrieval. Public sources only: no client files, no case data, no licensed doctrine databases.",
"tags": [
"read",
"rag",
"domain:legal",
"domain:fiscal",
"jurisdiction:BE",
"jurisdiction:EU",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Zoek rechtspraak over vruchtgebruik bij schenking met voorbehoud.",
"Welke VLABEL-rulings gaan over de gesplitste aankoop van vastgoed?",
"Find Belgian legislation on the reserved portion of an estate."
]
},
{
"id": "be.legal.corpus.read",
"name": "Read a page of a public legal source",
"description": "Retrieve one page of a public legal source document from the indexed corpus, by the document_id returned by `be.legal.corpus.search`. Follow next_cursor on the same corpus version until it is null to read a long source without silent truncation. Use it to ground a citation on the actual wording instead of on a search excerpt.",
"tags": [
"read",
"rag",
"domain:legal",
"jurisdiction:BE",
"jurisdiction:EU",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Lees de eerste pagina van het arrest dat je net vond.",
"Continue reading that VLABEL ruling with its next_cursor."
]
},
{
"id": "be.legal.lookup",
"name": "Belgian statute (Justel) resolver",
"description": "Resolve a Belgian statute reference (code + optional article) to the canonical Justel source URL on ejustice.just.fgov.be. Article-level links for BW, WVV, VCF, WER, Sw and Ger.W (routed to the Justel dossier that actually contains the article). WIB92 and WBTW resolve to an overview page only — Justel publishes no article-level consolidation for them, and we do not invent a link.",
"tags": [
"read",
"domain:legal",
"jurisdiction:BE",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Waar staat art. 4.71 BW?",
"Geef de Justel-link voor WIB92 art. 192.",
"Wat is de canonical-URL voor VCF 2.7.4.1.1?"
]
},
{
"id": "legal.citation.verify",
"name": "Legal citation verifier",
"description": "Verify that a legal citation is real. Accepts a Belgian/EU ECLI, an EUR-Lex CELEX number, a Belgian statute article (e.g. 'art. 4.71 BW') or a Flemish tax ruling number ('VB 25117'). Returns a verdict — verified / resolvable / malformed / unsupported — the canonical source URL, and, when we hold it, the matching document from the indexed public corpus. Built for agents that want to CHECK a citation before repeating it: fabricated citations are the sharpest failure mode in legal AI. It never claims a citation does not exist — absence from our index is not evidence of absence.",
"tags": [
"read",
"verification",
"anti-hallucination",
"domain:legal",
"jurisdiction:BE",
"jurisdiction:EU",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Bestaat ECLI:BE:CASS:2020:ARR.20200305.1F.4 echt?",
"Verify CELEX 32016R0679.",
"Klopt de verwijzing naar art. 4.71 BW?"
]
},
{
"id": "co-legal.document.draft",
"name": "Draft a concept document (DOCX)",
"description": "Draft a CONCEPT document (letter, model clauses, simple agreement, notice of default) and return it as a Word .docx file attached to the response as an A2A FilePart artifact. Provide a `title` and the content in `body_markdown` (a small markdown subset: `#`/`##` headings, paragraphs, `- ` bullets, `**bold**`). Stateless and isolated — no dossier, no storage, no advice; a mandatory 'concept, have a lawyer review' disclaimer is always appended.",
"tags": [
"read",
"domain:legal",
"jurisdiction:BE",
"jurisdiction:NL",
"produces:document",
"output:docx"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
],
"examples": [
"Stel een model-ingebrekestelling op voor een onbetaalde factuur",
"Maak een concept geheimhoudingsovereenkomst (NDA) in het Nederlands",
"Schrijf een modelbrief om een overeenkomst op te zeggen"
]
},
{
"id": "ecb.rates",
"name": "ECB euro reference exchange rate",
"description": "Return the official daily ECB euro reference rate `1 EUR = X <currency>` for a given currency (e.g. USD, GBP, CHF). Source: ECB eurofxref-daily feed. Read-only, free.",
"tags": [
"read",
"domain:finance",
"jurisdiction:EU",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Wat is de ECB-koers EUR naar USD?",
"1 EUR in CHF volgens de ECB"
]
},
{
"id": "be.fiscal.erfbelasting",
"name": "Flemish inheritance-tax rates",
"description": "Flemish inheritance-tax (erfbelasting) rate brackets for every heir category — direct line & partners, siblings, and all other persons — fetched live from the in-force Flemish Tax Code (VCF art. 2.7.4.1.1) and parsed deterministically, never from model memory.",
"tags": [
"read",
"domain:tax",
"jurisdiction:BE-VLG",
"source:official-live"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Wat is de erfbelasting voor kinderen in Vlaanderen?",
"Welke tarieven gelden tussen broers en zussen?",
"Hoeveel erfbelasting betaalt een niet-verwante erfgenaam?"
]
},
{
"id": "iban.validate",
"name": "IBAN structural validator",
"description": "Validate an IBAN's structure (ISO 13616 check digits via MOD-97 + country length). Pure compute, no network. Confirms the number is well-formed; does NOT confirm the account exists or is active.",
"tags": [
"read",
"domain:finance",
"jurisdiction:EU",
"source:deterministic"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Is IBAN BE68 5390 0754 7034 geldig?",
"Valideer NL91ABNA0417164300"
]
},
{
"id": "be.kbo.lookup",
"name": "Belgian enterprise (KBO/BCE) lookup",
"description": "Look up a Belgian enterprise by its Crossroads Bank (KBO/BCE) number. Returns commercial name, legal form, status and start date from the public enterprise registry.",
"tags": [
"read",
"domain:legal",
"jurisdiction:BE",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Zoek KBO-nummer 0403.170.701",
"Welke vennootschap zit achter 0888.778.965?"
]
},
{
"id": "be.legal.search",
"name": "Belgian Justel search-link builder (no result rows)",
"description": "Resolve a Belgian-legal keyword to the canonical Justel search URL on `ejustice.just.fgov.be`, plus statute-hints for which codex (WIB92, VCF, WVV, BW, …) likely governs the topic. Justel result-pages are JS-rendered, so this tool does NOT scrape result rows — it gives the caller a live, click-through search URL plus routing hints.",
"tags": [
"read",
"domain:legal",
"jurisdiction:BE",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Zoek recente regelgeving over schenkingsrechten",
"Welke codex regelt vennootschapsbelasting?",
"Justel-zoeklink voor energiepremie 2026"
]
},
{
"id": "be.legal.read",
"name": "Belgian/EU legal document reader",
"description": "Fetch and clean the full-text content of a Belgian or European legal document (HTML or PDF) from an allowed official domain URL. Capped at 30,000 characters.",
"tags": [
"read",
"domain:legal",
"jurisdiction:BE",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Lees de wetstekst op https://www.ejustice.just.fgov.be/cgi_loi/change_lg.pl?language=nl&la=N&cn=1804032130&table_name=wet#Art.4.71",
"Haal de inhoud van het arrest op van Juportal"
]
},
{
"id": "nl.legal.lookup",
"name": "Dutch statute (wetten.overheid.nl) resolver",
"description": "Resolve a Dutch statute reference (code + optional article) to the canonical wetten.overheid.nl source URL. Covers Civil Code Books 1-7, inheritance/gift tax (Successiewet 1956), income tax (Wet IB 2001), VAT (Wet OB 1968), corporate tax, plus criminal / civil-procedure / administrative-law codes.",
"tags": [
"read",
"domain:legal",
"jurisdiction:NL",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Waar staat art. 4:63 BW (Nederlands erfrecht)?",
"Geef de link naar de Successiewet 1956.",
"Wet IB 2001 op wetten.overheid.nl"
]
},
{
"id": "nl.rechtspraak.lookup",
"name": "Dutch ECLI case-law resolver",
"description": "Parse a Dutch ECLI and return canonical public URLs: the Rechtspraak.nl details page, the free Open Data content API (decision XML), and the EU e-Justice search, plus decoded court / year / serial metadata. Covers the Supreme Court (Hoge Raad), Council of State, courts of appeal and district courts.",
"tags": [
"read",
"domain:legal",
"jurisdiction:NL",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Wat is ECLI:NL:HR:2021:1102?",
"Geef de link voor ECLI:NL:GHAMS:2019:1."
]
},
{
"id": "be.vies.validate",
"name": "EU VAT number validation (VIES)",
"description": "Validate an EU VAT number against the public EU VIES service. Returns validity status plus, where exposed by the source Member State, the registered trade name and address.",
"tags": [
"read",
"domain:fiscal",
"jurisdiction:EU",
"source:public"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
],
"examples": [
"Valideer BTW-nummer BE0403170701",
"Is NL123456789B01 een geldig BTW-nummer?"
]
}
],
"default_input_modes": [
"text/plain",
"application/json"
],
"default_output_modes": [
"text/plain",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
],
"extra": {
"provider": {
"organization": "Co-Legal",
"url": "https://co-legal.be"
},
"documentationUrl": "https://agent.co-legal.be/",
"iconUrl": "https://agent.co-legal.be/icon.svg",
"supportedInterfaces": [
{
"url": "https://agent.co-legal.be/a2a/jsonrpc",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"securitySchemes": {
"apiKeyAuth": {
"apiKeySecurityScheme": {
"location": "header",
"name": "x-api-key",
"description": "Optional API key for higher rate limits, sent as the `x-api-key` header. Anonymous callers are accepted within the per-IP cap."
}
},
"httpBearer": {
"httpAuthSecurityScheme": {
"scheme": "bearer",
"description": "The same optional API key presented as `Authorization: Bearer <key>` (RFC 6750)."
}
}
},
"securityRequirements": [
{},
{
"schemes": {
"apiKeyAuth": {
"list": []
}
}
},
{
"schemes": {
"httpBearer": {
"list": []
}
}
}
],
"signatures": [
{
"protected": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImNvbGVnYWwtYWdlbnQtZXMyNTYtMSIsImprdSI6Imh0dHBzOi8vYWdlbnQuY28tbGVnYWwuYmUvLndlbGwta25vd24vandrcy5qc29uIiwidHlwIjoiSk9TRSJ9",
"signature": "mI-haCkm9jC-wxDoXRuvCZlIdnQFVS-CBjrImiNTpmzny8cWwDwILkv0Da1C0BnaTmobmCr8X5_VSiDE8AQmhg"
}
]
},
"found": true,
"strategy": "manifest-a2a",
"protocol_std": "a2a"
}Actions
The **Agent Card** is a standardized JSON metadata schema containing the agent's capabilities, default inputs/outputs, and OpenAPI endpoints. Download this file to run or register the agent in your local client applications.
Registry Metadata
Is this your agent?
If you own this agent you can claim it.