Official MCP server for openapi.com — gateway and Python SDK for AI agents to access authenticated openapi.com API services
Server provides 19 read-only tools with consistent HTTP transport and FastMCP framework. Tool naming follows verb_noun patterns well (check_*, get_*, find_*). Descriptions are present for all tools and most parameters, but quality is uneven: some are comprehensive (e.g., get_company_IT_full with detailed field list), while others are terse or lack critical context. Parameter descriptions exist but many lack format/constraint details. Output schemas are not documented, the rubric requires documented return types for A+ tools, and this server provides none. Tool annotations (readOnlyHint) are correctly applied, but error handling guidance is absent. No pagination documentation despite several tools that could return large result sets (e.g., get_company_IT_search). Field chaining is unclear, it's not obvious which tools can accept output from others.
Show the last status of an async request
Retrieve vehicle data for a supported country and plate. Available combinations: IT-car, IT-bike, IT-insurance, FR-car, FR-bike, UK-car, UK-bike, UK-mot, PT-car, PT-insurance, ES-car, ES-bike.
Searches for the ISTAT code associated with a given Italian municipality.
Retrieves the list of Italian municipalities and their ISTAT code based on the ZIP code.
Retrieves detailed data about an Italian municipality using the ISTAT code: - istat:istatCode - comune:municipalityName - regione:regionName - provincia:provinceName - prefisso:telephoneLocalPrefix - cod_fisco:cadastralCodeor BelfioreCode of town, - superficie:surfaceArea - num_residenti:numberOfResidents - nome_abitanti:inhabitantsName - patrono.nomepatronSaintName, - patrono.datapatronSaintDate, - municipio:municipalityAddress - istat_old:oldIstatCode - sigla_provincia:provinceAbbreviation - email:emailAddress - pec:certifiedEmailAddress - tel:telephoneNumber - fax:faxNumber - frazioni:fractions - cap:postalCodes
No output schemas documented. Rubric baseline requires 100% of A+ tools to have documented return types. LLMs cannot plan downstream calls or extract relevant fields without knowing response structure.
Terse descriptions on discovery/list tools. Tools like get_IT_regions_list, get_IT_provinces_list, get_IT_metropolitan_cities_list, and get_suppressed_italian_municipalities lack context: what data structure is returned? When should LLM use each tool vs. the others? Current descriptions are 30-50 chars; baseline expects 50+ for clarity.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 75 | <=2025-11-25 | v2 |
Retrieve informations about a place supplying address. To improve success of results, use the format: ``[street], [city] [postal code] [country]``.
Returns the list of Italian metropolitan cities
Returns the list of Italian provinces
Returns the list of Italian regions
Returns taxCode, companyName, vatCode, address, activityStatus, reaCode, cciaa, atecoClassification, detailedLegalForm, startDate, registrationDate, endDate, pec, taxCodeCeased, taxCodeCeasedTimestamp, vatGroup, sdiCode, sdiCodeTimestamp, balanceSheets (turnover, employee, networt, staffCost, totalAssets.avgGrossSalary of the last 10 years), shareHolders of an italian company from vatCode or taxCode.
Returns the complete and detailed profile of an Italian company. The lookup uses a VAT number or Tax Code. - Company Data (Name, VAT Number, Tax Code, CCIAA, and REA) - Managers - Registered Office and other types of offices - Activity Classifications (New ATECO 2025, ATECO history since 2022, NACE, SIC, RAE, and SAE) - Corporate Affiliation - Exporter / Importer Status - Company Size - Company Contacts (Email, phone, fax, website, social media) - Shareholders and their ownership shares - Regarding shareholders, it is possible to access the list of the top 10 (based on ownership share size) and view their respective ownership shares. - Liquidity and profitability - Receivables and Payables - EBITDA and EBIT - Cashflow with a 2-year history - Financial fixed assets - Production value and costs - Financial revenues and expenses - Tangible, intangible, and financial assets - Net profit/loss Use get_company_IT_search to obtain VAT
Returns a list of Italian companies based on the search criteria. Use this tool if you do not know the VAT number of a company. Use it with ``dryRun=1`` and no ``limit`` parameter to get only the count of available results for the matching criteria. Use it to extract enriched data, paginated with ``skip`` up to 1000 records, such as name, address, PEC, start data, or advanced data.
Returns taxCode, companyName, vatCode, address, activityStatus, sdiCode, registrationDate of an italian company from vatCode or taxCode.
Returns the download links for the documents produced by a request.
Returns the details and status of a specific DocuEngine request.
Returns the list of all available DocuEngine services with their required parameters.
Returns the list of suppressed or merged Italian municipalities
Obtain daily world exchange rates based on USD value.
Get place information from ID or latitude/longitude: To obtain infos via ID make sure to pass the following format: {"type": "id", "id": "<id>"} To obtain infos via lat/long, make sure to provide the following format: {"type": "coordinates", "lat": "<lat>", "long": "<long>"}
Parameters lack format/constraint documentation. E.g., check_license_plate accepts countryCode (2-digit) and type (car|bike|insurance|mot) but descriptions are minimal. LLMs cannot infer valid values or formats without explicit constraints (enum, pattern, min/max).
No pagination guidance on large-result tools. get_company_IT_search accepts skip/limit params (good), but many other tools like get_docuengine_services or find_IT_municipality_by_istat lack pagination docs. Rubric baseline requires limit, offset, and total count for large-result tools.
No error handling guidance. Tools provide no indication of failure modes, retryability, or recovery paths. E.g., if check_license_plate fails, should LLM retry? Ask user for a different plate? Rubric requires error responses to guide agent behavior.
Unclear tool relationships and chaining. E.g., get_company_IT_search can accept skip/limit; does it return a next_cursor or total_count to enable pagination in agent loops? Does find_IT_municipality_by_istat's output contain fields that downstream tools accept? Missing chain documentation forces discovery overhead.