Back to Browse

Openswissdata MCP Server

Developer ToolsLow Risk9.5MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Swiss customs tariff (TARES), FINMA register, NOGA/NACE/ISIC codes. 3 free tools + search trial.

About

Swiss customs tariff (TARES), FINMA register, NOGA/NACE/ISIC codes. 3 free tools + search trial.

Remote endpoints: streamable-http: https://mcp.openswissdata.com/jsonrpc

Security Report

9.5
Low Risk9.5Low Risk

Valid MCP server (2 strong, 0 medium validity signals). No known CVEs in dependencies. ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.

6 tools verified · Open access · 2 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

database

Check that this permission is expected for this type of plugin.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Optional existing OAuth token for Pro tools (closed to new subscribers). Without it: 3 free tools (100 calls/hour/IP) plus a trial of the 3 search tools (20 calls/day/IP in total).Required

Environment variable: OPENSWISSDATA_API_KEY

Override the remote MCP endpoint (default: https://mcp.openswissdata.com). Useful for staging or self-hosting.Optional

Environment variable: OPENSWISSDATA_BASE_URL

Per-request timeout in milliseconds.Optional

Environment variable: OPENSWISSDATA_TIMEOUT_MS

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

OpenSwissData

Swiss federal reference data for AI agents and developers: the Swiss customs tariff (TARES, 8-digit tariff numbers with MFN duty and preferential regimes), the FINMA register of supervised institutions and the FINMA warnings list, and NOGA / NACE / ISIC activity-code correspondences.

  • Free MCP endpoint, no key or sign-up: https://mcp.openswissdata.com/jsonrpc, three tools (tariff_lookup, kyc_check, cross_walk), 100 calls per hour per IP address, plus a free trial of the three search tools (tariff_semantic_search, classify_text, finma_search): 20 calls per day per IP address in total. Claude Code: claude mcp add --transport http openswissdata https://mcp.openswissdata.com/jsonrpc. Local-process clients: npx -y @openswissdata/mcp.
  • Full datasets as signed files: openswissdata.com. Summary for AI agents: llms.txt.
  • Unofficial copies: binding decisions belong to the official sources (xtares.admin.ch, finma.ch, the Swiss Federal Statistical Office).

Tools

ToolAccessWhat it answers
tariff_lookupFree, no keySwiss customs tariff line for an 8-digit tariff number (MFN duty, preferential regimes, restrictions, relief codes), or the Swiss lines under a 2- to 7-digit HS prefix
kyc_checkFree, no keyFINMA register of supervised institutions and FINMA warning list, searched by name, closest matches first
cross_walkFree, no keyCorrespondence of an activity code between NOGA 2008/2025, NACE 2.0/2.1 and ISIC 4, with the relation type and its source
tariff_semantic_searchFree trial, no key (20 calls/day in total)TARES lines from a description in French, German, Italian or English, using each line's official hierarchy
tariff_changelogExisting access grantMFN duty history of a tariff number across archived releases
classify_textFree trial, no key (20 calls/day in total)NOGA 2025 subclasses suggested for an activity description (FR/DE/IT/EN)
finma_searchFree trial, no key (20 calls/day in total)FINMA register search tolerant of accents, legal forms and typos, each match labelled with its type
entity_historyExisting access grantChange history of a FINMA-supervised entity by Swiss UID

New Pro subscriptions are closed; the three free tools and the search trial need no sign-up. The endpoint accepts browser calls (CORS, any origin, no cookies).


Jeux de données publics suisses normalisés : FINMA, TARES et classifications. API Hono, site Astro et collectes TypeScript dans ce dépôt. Les données des clients et les preuves privées restent hors Git.

Préparer une copie de travail

Node 22.12 ou ultérieur ; la CI et Railway utilisent Node 22. Utiliser une copie isolée et lire AGENTS.md avant de commencer. Depuis la racine de cette copie :

npm ci
npm --prefix web ci
npm run typecheck
npm test
npm run build

Ces contrôles ne demandent aucun secret de production. Ne pas copier un .env ni une base de clients pour tester. Le build prépare des modèles publics figés : le premier passage demande le réseau et plusieurs gigaoctets ; les suivants contrôlent et réutilisent dist/models. La construction du site vérifie ensuite liens, langues et sitemap.

Les tests créent des bases fictives dans des dossiers temporaires et injectent explicitement leurs clés Ed25519 éphémères. Ils ne remplacent jamais la clé publique officielle et ne contactent pas les autorités d’horodatage pour fabriquer les archives de test. La CI vérifie que les fichiers suivis sont inchangés après les tests.

Démarrer localement

Après construction, depuis la copie isolée, sans variables de production :

npm run db:migrate
npm run dev

L’application est accessible sur http://localhost:3000. DATABASE_PATH permet de choisir une base locale fictive ; par défaut, elle est créée dans data/openswissdata.sqlite. Le site servi vient de web/dist et se reconstruit avec npm run web:build. npm run web:dev lance séparément le serveur Astro.

Une base vide permet de démarrer, mais ne satisfait pas /api/health/ready : ce contrôle exige les trois versions distribuées et les ressources du site. Ne pas inventer des versions pour contourner la disponibilité. Les tests créent leurs propres références fictives. Paiement, messagerie et stockage ne fonctionnent qu’avec leurs connexions configurées ; les commandes de vérification ci-dessus n’en ont pas besoin.

db:migrate initialise le schéma et applique les évolutions idempotentes de getDb(). Ce n’est pas un exécuteur de toutes les anciennes migrations SQL : l’élargissement historique Business reste une intervention distincte avant réouverture de cette offre.

Carte du projet

DossierRôle
src/routes, src/libAPI, comptes, CRM privé, droits, files de livraison et suivi financier
src/dbSchéma SQLite ; le volume Railway conserve la base
src/legalContrats datés immuables et registre des versions
src/mcpOutils MCP, OAuth, données réellement chargées et rafraîchissement R2
etlSources en bronze, validation, archives signées, publication des jeux de données
webSite Astro, pages de produits, compte, bureau et centre juridique FR/DE/EN
sdksIntégrations publiables avec installation et tests indépendants
testsScénarios fictifs, pannes, reprises et contrats techniques
docs/internalRapports et preuves privés, ignorés par Git

Les archives vendues résident dans R2. La base référence leurs versions ; catalogue, échantillons et caches MCP suivent les publications validées. Les fiches publiques FINMA et les index vectoriels historiques sont distincts : voir docs/fiches-publiques.md et les limites dans AGENTS.md.

La procédure de sauvegarde et de reprise distingue les contrôles réels de la base, les témoins indépendants dans le stockage et l’exercice complet du service restant à réaliser.

Publication et contrôles

main alimente Railway, qui attend les tests GitHub puis /api/health/ready. Un changement uniquement documentaire ou ETL peut être ignoré par les filtres de railway.json : le SHA de l’application demeure alors celui du dernier déploiement. Un push réussi ne prouve pas la publication.

Après modification : tests adaptés, typage, build si application/site, npm run security:public, puis contrôle de la CI et de la version réellement servie à /api/health/ready. Vérifier les parcours concernés dans un navigateur, aussi sur mobile. Les contrôles /ready (démarrage), /freshness (FINMA) et /deep (diagnostic privé des dépendances externes) ont des rôles différents. /deep exige une session administrateur ; le bureau propose le contrôle dans Automatisations. Les moniteurs sans session utilisent /ready et /freshness, sans lancer d’appels Stripe ou R2.

Ne pas lancer les commandes etl:* comme un simple test : elles peuvent publier. Utiliser les simulations prévues dans AGENTS.md et les workflows manuels, qui démarrent en simulation. Ne pas rouvrir les abonnements ou l’offre Pro sans traiter leurs conditions spécifiques.

Reviews

No reviews yet

Be the first to review this server!