Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.nubiia-dev/mcp-borme

NPM · @NUBIIA/MCP-BORME

OpenMercantil (BORME): 37 read-only tools for Spanish company search, officers, sectors and tenders

Available components

82 Trust /100

Last scanned (3 hours ago)

Scores higher than 70% of npm servers

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to nubiia-dev/mcp-borme). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 1 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability76
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4742 tokens (~128/item across 37 items; 37 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
  • Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 37 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 37 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 23 Oct 26 +11
    • Known CVEs: unverified → pass ▲ security
    • Dependency health: unverified → 0.85 ▲ functional
  • 22 Oct 26 71

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Oct 2026 · Analysed npm/@nubiia/mcp-borme@1.0.2

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo nubiia-dev/mcp-borme
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/nubiia-dev/mcp-borme/.github/workflows/release.yml@refs/heads/main
Rekor log index 3384162425
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:5e33e061b69803acc8dcc02b87716a0e21a0efc4ef0a33d126cfc343d165ce53da7f5f2b893498da59172bf492feb92ea9c087d200278912e6da8d156

Background: How many MCP packages publish verified provenance →

Dependencies 92 packages
Packages resolved 92
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 37 exposed · ~4,742 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
borme_compare_companies ~93

Compare exactly two companies side by side using the stable comparison projection (identity, province, CNAE, registry activity). Cheaper than fetching two full reports when the question is "which of these two ...". Both slugs must come from borme_search_companies.

NameTypeReqDescription
slugsarrayyesExactly two distinct company slugs to compare, e.g. ["empresa-a-sl","empresa-b-sl"].

No output schema declared.

No examples provided.

borme_get_act_map ~119

Which law governs which BORME act type: maps registry act types (constitución, nombramiento, ampliación de capital, disolución, concurso...) to the norm and articles that regulate them. Without `acto` returns the full map (about 11 KB); with `acto` one mapping. Use it to answer "what law governs this registry act". Not legal advice.

NameTypeReqDescription
actostring–BORME act-type slug to look up one mapping. Omit to get the full act-type to norm map.

No output schema declared.

No examples provided.

borme_get_cnae ~105

Metadata of a CNAE-2009 code: description, level, parent and number of companies. Works for section letters and two-digit divisions; longer codes may answer 404. Use it to confirm what a `cnae_code` from a company search means.

NameTypeReqDescription
codestringyesCNAE-2009 code: a section letter (e.g. "J"), a 2-digit division (e.g. "62") or a longer numeric code.

No output schema declared.

No examples provided.

borme_get_cnae_tree ~63

The CNAE-2009 hierarchy (sections and divisions) with company counts, to look up the right sector code for borme_list_sector_companies or borme_get_sector_ratios. About 13 KB: call it once, not per question.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

borme_get_company ~205

Get the BORME report of one company by slug: identity (name, CIF, legal form, status, aliases), KPIs (number of acts, first/last seen), activity timeline by period, top event types and provinces, the most recent registry events, and current and historical officers. Use it for "tell me about company X". `events_limit` (default 10) bounds the event list; page the full history with borme_get_company_events. The report is documentary: it reflects BORME publications, not a certified registry extract.

NameTypeReqDescription
events_limitinteger–How many of the most recent BORME events to include, 0-200 (default 10; 0 = none). The full history is paginated by borme_get_company_events.
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_activity ~94

Monthly time series of BORME activity for a company (number of registry acts per month, `series: [{period: "2024-05", count: 2}]`). Useful to spot dormant companies or bursts of corporate activity.

NameTypeReqDescription
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_bde ~112

Banco de España (Central de Balances) sector ratios for the company’s two-digit CNAE: sector benchmarking such as net margin, ROA and ROE. It is NOT the company’s own financial statements. `coverage_status` tells whether the sector is projected; when it is not, `metrics` is empty.

NameTypeReqDescription
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_cnmv ~118

Stock-market (CNMV) listing tuple of the company and its most recent regulatory events. Use it to check whether a company is listed. Empty coverage is not proof of non-listing. May answer 503 when the integrations projection is offline.

NameTypeReqDescription
limitinteger–CNMV events to return, 1-20 (default 5).
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_contracts ~140

Public procurement notices (PLACSP, contrataciondelestado.es) linked to the company by CIF: object, buyer, supplier, CPV codes, procedure, typed amounts (budget, estimated, award) and phase. The link is documentary and does not prove payment or executed spend; amounts of different kinds are never summed. Default 10, max 100.

NameTypeReqDescription
limitinteger–Procurement notices to return, 1-100 (default 10).
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_events ~198

List the BORME events (registry acts) of a company for one calendar year, paginated: date, section, province, act type (Nombramientos, Ceses, Ampliación de capital, Disolución...) and the act text. Defaults to the current year, 20 per page; check `total` and `pages` and use `year` to walk back through the history (data from 2009).

NameTypeReqDescription
pageinteger–Page number, starting at 1 (default 1).
page_sizeinteger–Events per page, 1-100 (default 20).
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).
yearinteger–Calendar year to list (1900 up to the current year). Defaults to the current year.

No output schema declared.

No examples provided.

borme_get_company_facts ~134

Structured facts extracted from the BORME acts of a company, grouped by type (appointments, removals, capital changes, mergers, registered-office moves...) with person name and role when applicable, plus a `summary` with the count per type. Use it to answer "who was appointed / what changed" without reading raw act text.

NameTypeReqDescription
limitinteger–Facts to return, 1-200 (default 20).
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_grants ~125

Public grants and subsidies (BDNS) awarded to the company, in integer cents of the awarded amount (never payments). Up to 200 attested rows. May answer 503 `projection_unavailable` when the integrations projection is offline: that is not evidence of "no grants".

NameTypeReqDescription
limitinteger–BDNS grants to return, 1-200 (default 20).
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_graph ~116

Corporate graph centred on a company: parents and children (group structure from GLEIF) with counts and coverage notes. Only entities that pass the OpenMercantil identity policy appear, so an empty graph does not mean the company has no group.

NameTypeReqDescription
max_childreninteger–Maximum child entities returned, 1-100 (default 10).
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_officers ~113

Current and historical officers of a company as published in the BORME: administrators, attorneys (apoderados), auditors and similar roles with the date each was first seen. Documentary mentions only: no DNI, no contact data, and a mention does not prove the person still holds the role today. At most 500 mentions.

NameTypeReqDescription
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_relationships ~134

Documented relationships between a company and other entities (officers, domicile, contracts, grants, IP assets, corporate links, mentions), each with source, date, confidence and evidence URL. Filter with `type` and `confidence`. Documentary only: a relationship does not imply control, responsibility or current validity.

NameTypeReqDescription
confidencestring–Only relationships with this confidence level.
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).
typestring–Only relationships of this type.

No output schema declared.

No examples provided.

borme_get_company_sources ~103

Coverage of the four external integrations for a company (BDNS grants, CNMV, TED, Wikidata): which are available or empty, with licence metadata. Call it before the individual integration tools to know which ones have data. May answer 503 when the integrations projection is offline.

NameTypeReqDescription
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_ted ~114

European public procurement notices (TED) linked to the company NIF: publication number and date, buyer and the official notice URL. Rows do not prove payment or current contractual status. May answer 503 when the integrations projection is offline.

NameTypeReqDescription
limitinteger–TED notices to return, 1-100 (default 20).
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_timeline ~152

Unified chronological timeline of a company combining BORME registry acts and public procurement awards (PLACSP), newest first, each entry with date, category, source, source URL and confidence. The `limit` (default 30) bounds the list; the response reports `events_total`. Amounts are source-reported awards, not proof of payment.

NameTypeReqDescription
limitinteger–Most recent timeline entries to return, 1-200 (default 30). The API returns the whole timeline; this bounds it for context.
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_company_wikidata ~98

Wikidata identifiers of the company: Q-id, entity URL, ticker and inception date (CC0 subset only; no labels, logos or websites). Useful to link the company to other datasets. May answer 503 when the integrations projection is offline.

NameTypeReqDescription
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_daily_summary ~336

What the BORME published on one date: every registry act grouped by BORME section and province (company, act type, company slug). The raw day can hold thousands of acts, so the response gives exact counts per section and province plus the first `limit` acts per province (default 10). Narrow with `province` and/or `section` before raising the limit. `province` ignores case and accents and accepts part of a name of 3+ characters ("alava" finds "Araba/Álava"); if nothing matches, the response lists `available_provinces`. The BORME is not published on Sundays or national holidays (404), and this dataset may lag behind today: check borme_get_health (`latest_borme_processed`) if a recent date is missing.

NameTypeReqDescription
datestringyesPublication date, YYYY-MM-DD. BORME is not published on Sundays or national holidays (those dates return 404).
limitinteger–Maximum acts returned per province, 1-200 (default 10). Counts always cover everything.
provincestring–Only this province, e.g. "Madrid" or "Málaga". Case/accent-insensitive; a partial name of 3+ characters works ("alava" finds "Araba/Álava"). If nothing matches, the response lists available_provinces.
sectionstring–BORME section: "1" = Sección Primera (registered acts: constitutions, appointments, capital...), "2" = Sección Segunda (announcements and notices). Default: both.

No output schema declared.

No examples provided.

borme_get_health ~73

OpenMercantil service status and BORME freshness: `status` (ok/stale), `latest_borme_processed` (last bulletin date loaded), approximate company and event counts and degraded flags. Call it when a recent date or company seems missing, or before stating that something "has not been published yet".

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

borme_get_legal_article ~114

Consolidated text (`body_html`) of one article of a norm, with its ELI anchor and version date. Article numbers join bis/ter with a hyphen ("160-bis"). Informational, not legal advice; the official text is on boe.es.

NameTypeReqDescription
nstringyesArticle number; a bis/ter suffix is joined with a hyphen, e.g. "160-bis".
normstringyesNorm slug, e.g. "codigo-de-comercio".

No output schema declared.

No examples provided.

borme_get_legal_norm ~90

One norm: BOE/ELI identification, its key articles (with a flag for seeded consolidated text) and the BORME act types it governs. Informational, not legal advice; the official text is on boe.es.

NameTypeReqDescription
slugstringyesNorm slug, e.g. "codigo-de-comercio". Get it from borme_list_legal_norms.

No output schema declared.

No examples provided.

borme_get_person ~89

Documentary report of the BORME mentions of a person slug: the companies and roles where the name appears, with dates. Does not infer identity or whether the person still holds a role. Withheld, ambiguous or absent identities answer 404.

NameTypeReqDescription
slugstringyesPerson slug, e.g. "garcia-lopez-eduardo". Get it from borme_search_persons.

No output schema declared.

No examples provided.

borme_get_person_graph ~93

Person-to-company graph built only from BORME mentions of a person slug: the companies connected to that name. Does not infer control, identity or vigency.

NameTypeReqDescription
limitinteger–Companies to return, 1-50 (default 10).
slugstringyesPerson slug, e.g. "garcia-lopez-eduardo". Get it from borme_search_persons.

No output schema declared.

No examples provided.

borme_get_sector_ratios ~93

Banco de España (Central de Balances) aggregate ratios for a two-digit CNAE division by year (net margin, ROA, ROE...). Sector benchmark only, never company-specific figures. `ratios` is empty when the sector is not in the reviewed aggregate.

NameTypeReqDescription
cnaestringyesTwo-digit CNAE division, e.g. "62" (programming and IT consulting).

No output schema declared.

No examples provided.

borme_get_similar_companies ~110

Companies in the same province and two-digit CNAE division, ranked by closeness of BORME act count. A documentary heuristic for finding peers or competitors, not a recommendation or a statement of any relationship.

NameTypeReqDescription
limitinteger–Similar companies to return, 1-20 (default 8).
slugstringyesCompany slug, e.g. "telefonica-de-espana-sa". Get it from borme_search_companies (field `slug`).

No output schema declared.

No examples provided.

borme_get_sources_freshness ~69

Per-source freshness map (BORME, PLACSP, BDNS, CNMV, annual accounts...): last update time and status of each public source behind the data, including a global label. Use it to qualify how current an answer is. About 12 KB.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

borme_get_stats ~34

Size of the public dataset: number of legal entities published and an approximate count of person mentions, with the build timestamp.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

borme_get_tender ~100

One procurement notice by `key` (from borme_search_tenders): buyer, supplier, lots, CPV codes, procedure, typed amounts and results. Monetary concepts (budget, estimated, award) are never mixed. Uncertain supplier identities are withheld.

NameTypeReqDescription
keystringyesNotice `key` (stable url_key) from borme_search_tenders, e.g. "81e28810c6b3502a".

No output schema declared.

No examples provided.

borme_get_tender_stats ~43

Coverage and freshness metrics of the procurement dataset (record counts, geography, documents). No monetary rollups. Use it to judge how complete tender data is.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

borme_list_legal_norms ~88

Catalogue of the core Spanish mercantile-law norms (Código de Comercio, Ley de Sociedades de Capital, Reglamento del Registro Mercantil, concursal law...) with slug, short name, type and whether in force. Start here to find the `slug` used by borme_get_legal_norm and borme_get_legal_article. Informational, not legal advice.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

borme_list_sector_companies ~245

List companies of a CNAE sector (1-4 characters: section letter, 2-digit division such as "62" for IT programming/consulting, or a longer code), optionally within one province. Sorted by BORME activity by default; with `province` use sort=recent (default) or oldest. Use for prospecting and market mapping; 20 per page, offset up to 1000. Find codes with borme_get_cnae_tree.

NameTypeReqDescription
cnaestringyesCNAE-2009 code: a section letter (e.g. "J"), a 2-digit division (e.g. "62") or a longer numeric code.
limitinteger–Results to return, 1-100 (default 20).
offsetinteger–Pagination offset, 0-1000 (default 0).
provincestring–Restrict to a province, e.g. "Madrid".
sortstring–Order: acts (most BORME activity, default without province), recent, oldest, name. With `province` only recent (default) and oldest are accepted.

No output schema declared.

No examples provided.

borme_list_tender_suppliers ~67

Corporate suppliers ranked by number of public contract awards (only suppliers matched to a company by CIF; natural persons omitted; no monetary totals). Default 10, max 50.

NameTypeReqDescription
limitinteger–Suppliers to return, 1-50 (default 10).

No output schema declared.

No examples provided.

borme_search_companies ~221

Search Spanish companies (BORME / Registro Mercantil) by name, alias or exact CIF. ALWAYS the first step: it returns the `slug` that every other company tool needs, plus CIF, province, CNAE code, share capital (cents), first/last BORME appearance and number of registry acts. Name search is by name prefix, so start with the distinctive start of the legal name (e.g. "Telefónica de España"), not a descriptive phrase. Only legal entities are returned; DNI/NIE never match. Paginate with offset (max 1000).

NameTypeReqDescription
limitinteger–Results to return, 1-100 (default 10).
offsetinteger–Pagination offset, 0-1000 (default 0).
qstringyesCompany name (or the start of it), alias or exact CIF, e.g. "Telefónica de España" or "A82018474". Natural-person identifiers (DNI/NIE) always return zero results.

No output schema declared.

No examples provided.

borme_search_persons ~135

Search people mentioned in the BORME by name (usually as officers: administrators, attorneys, auditors). Returns name mentions with `slug`, number of mentions and companies, and first/last seen. These are NOT identity profiles: two people with the same name share one slug. Use the slug with borme_get_person.

NameTypeReqDescription
limitinteger–Results to return, 1-50 (default 10).
qstringyesPerson name as written in the BORME, e.g. "Garcia Lopez Eduardo". Results are unresolved name mentions (homonyms are possible), not identity profiles.

No output schema declared.

No examples provided.

borme_search_tenders ~406

Search Spanish public procurement notices (PLACSP) by object/buyer text, CPV prefix, phase, province, buyer NIF, supplier CIF, open status, amount range (requires amount_kind) and publication dates. Cursor-paginated: pass back `cursor` for the next page. Constraints: free text cannot be combined with structured filters, and `cpv` combines only with the date filters (otherwise the API answers 422). Supplier names are not searchable; use supplier_cif.

NameTypeReqDescription
amount_kindstring–Which monetary concept min_amount_eur/max_amount_eur refer to. Required with either bound.
buyer_nifstring–NIF of the contracting body (corporate identifiers only).
cpvstring–CPV code prefix, 2-8 digits (e.g. "72" for IT services). Combines only with the date filters.
cursorstring–Opaque cursor from the previous response to get the next page. Invalid if any filter changes.
limitinteger–Notices per page, 1-50 (default 10).
max_amount_eurnumber–Maximum amount in EUR.
min_amount_eurnumber–Minimum amount in EUR.
open_onlyboolean–Only notices still open for bids.
phasestring–Notice phase: PUB published, PRE prior notice, EV evaluation, ADJ awarded, RES resolved, ANUL annulled.
provincestring–Province slug, e.g. "madrid". Rows not yet geocoded are excluded.
published_fromstring–Earliest publication date, YYYY-MM-DD.
published_tostring–Latest publication date, YYYY-MM-DD.
qstring–Terms in the notice object or buyer name (supplier names are NOT searched).
supplier_cifstring–CIF of the awarded supplier (corporate identifiers only).

No output schema declared.

No examples provided.

Install

How do I install the io.github.nubiia-dev/mcp-borme server?

io.github.nubiia-dev/mcp-borme runs locally as an npm package, launched with npx -y @nubiia/mcp-borme. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @nubiia/mcp-borme

# add to Claude Code
claude mcp add nubiia-dev-mcp-borme -- npx -y @nubiia/mcp-borme
Common questions

What is the io.github.nubiia-dev/mcp-borme server?

io.github.nubiia-dev/mcp-borme is listed in the public MCP registry as io.github.nubiia-dev/mcp-borme. OpenMercantil (BORME): 37 read-only tools for Spanish company search, officers, sectors and tenders. This page covers its npm package (@nubiia/mcp-borme).

Is the io.github.nubiia-dev/mcp-borme server safe to use?

io.github.nubiia-dev/mcp-borme scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 24 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.nubiia-dev/mcp-borme server expose?

io.github.nubiia-dev/mcp-borme exposes 37 tools: borme_search_companies, borme_get_company, borme_compare_companies, borme_get_company_events, borme_get_company_facts, and 32 more. Their descriptions and schemas cost roughly 4,742 tokens of context every time the server is loaded.

Is the io.github.nubiia-dev/mcp-borme server still maintained?

io.github.nubiia-dev/mcp-borme is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.nubiia-dev/mcp-borme server under?

io.github.nubiia-dev/mcp-borme declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.