protogrid

Search / io.github.cammac-creator/openswissdata

OpenSwissData

R0· no sign-in

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

v0.3.1 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality74needs work
Trust97of 100
Uptime, 30 days100%
Latency p50382 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "openswissdata": {
      "type": "http",
      "url": "https://mcp.openswissdata.com/jsonrpc"
    }
  }
}
claude mcp add --transport http openswissdata https://mcp.openswissdata.com/jsonrpc
[mcp_servers.openswissdata]
url = "https://mcp.openswissdata.com/jsonrpc"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "openswissdata": {
      "type": "remote",
      "url": "https://mcp.openswissdata.com/jsonrpc",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "openswissdata": {
      "type": "http",
      "url": "https://mcp.openswissdata.com/jsonrpc"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=openswissdata&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLm9wZW5zd2lzc2RhdGEuY29tL2pzb25ycGMifQ%3D%3D"
}
{
  "servers": {
    "openswissdata": {
      "type": "http",
      "url": "https://mcp.openswissdata.com/jsonrpc"
    }
  }
}
{
  "mcpServers": {
    "openswissdata": {
      "httpUrl": "https://mcp.openswissdata.com/jsonrpc"
    }
  }
}
extensions:
  "openswissdata":
    enabled: true
    name: "openswissdata"
    type: streamable_http
    uri: "https://mcp.openswissdata.com/jsonrpc"
    timeout: 300

Quality 74 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 1,899 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes17 tool changes in 30 days
  • fail
    stability.rug_pull4 tools kept their name but changed most of their description in 30 days; review before trusting them
dependencies67 · weight 15
  • pass
    deps.known_vulnsno known advisory in 98 resolved packages
  • fail
    deps.mcp_sdk_version@modelcontextprotocol/sdk 1.30.1 has 1 known advisory (GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/sdk to 1.31.0 or later
  • pass
    deps.resolvable@openswissdata/[email protected] resolved: 98 packages

7 tools, about 1,899 tokens to load them all · tool set 80a598bd60ff · tools last changed 2026-10-11 · checked 2026-10-20 00:54 UTC

Tool changes

  • company_checkchangeddescription
    before

    Look up a Swiss company by its UID (CHE-xxx.xxx.xxx): commercial register data (LINDAS), FINMA register entries and LEI records (GLEIF), each fact with its source and, when known, the date it was read, plus exact cross-checks between sources and checks of the registered address against the official localities and streets directories (swisstopo, when published). No score. Commercial register status (active or deleted), FOSC publications, SECO sanctions and officers are not covered.

    after · 88% of words in common

    Look up a Swiss company by its UID (CHE-xxx.xxx.xxx): commercial register data (LINDAS), FINMA register entries and LEI records (GLEIF), each fact with its source and, when known, the date it was read, plus exact cross-checks between sources and checks of the registered address against the official localities and streets directories (swisstopo, when published). No score. When available, the commercial register status (active, in liquidation or deleted, with the deletion date) is read from Zefix (OFRC). FOSC publications, SECO sanctions and officers are not covered.

  • company_checkchangeddescription
    before

    Look up a Swiss company by its UID (CHE-xxx.xxx.xxx): commercial register data (LINDAS), FINMA register entries and LEI records (GLEIF), each fact with its source and, when known, the date it was read, plus exact cross-checks between sources and checks of the registered address against the official localities directory (swisstopo, when published). No score. Commercial register status (active or deleted), FOSC publications, SECO sanctions and officers are not covered.

    after · 95% of words in common

    Look up a Swiss company by its UID (CHE-xxx.xxx.xxx): commercial register data (LINDAS), FINMA register entries and LEI records (GLEIF), each fact with its source and, when known, the date it was read, plus exact cross-checks between sources and checks of the registered address against the official localities and streets directories (swisstopo, when published). No score. Commercial register status (active or deleted), FOSC publications, SECO sanctions and officers are not covered.

  • company_checkadded

    Look up a Swiss company by its UID (CHE-xxx.xxx.xxx): commercial register data (LINDAS), FINMA register entries and LEI records (GLEIF), each fact with its source and, when known, the date it was read, plus exact cross-checks between sources and checks of the registered address against the official localities directory (swisstopo, when published). No score. Commercial register status (active or deleted), FOSC publications, SECO sanctions and officers are not covered.

  • kyc_checkchangeddescription
    before

    Search the FINMA register of supervised institutions and the FINMA warnings list by name (case- and accent-insensitive). Returns the closest top_k authorised entities and warning entries (exact name, then whole word, then substring; all words in any order as a fallback) with the total number of matches. Use it for basic counterparty screening; no result is not a compliance certificate.

    after · 80% of words in common

    Search the FINMA register of supervised institutions and the FINMA warnings list by name (case- and accent-insensitive). Returns the closest top_k authorised entities and warning entries (exact name, then whole word, then substring; all words in any order as a fallback) with the total number of matches. Only an identical name is reported as a FINMA warning-list match; a merely similar name is listed separately, to verify, and is never called a match. Use it for basic counterparty screening; no result is not a compliance certificate.

  • finma_searchadded

    FREE TRIAL without a key: 20 calls per day per IP address in total for tariff_semantic_search, classify_text and finma_search. Each answer states the trial calls left; check every result on the official FINMA register before use. Search the FINMA register by entity name, tolerant of case, accents, legal forms (AG, SA, Sàrl, GmbH, Ltd), ae/oe/ue spellings and one or two typos per word. Results are ranked exact, word start, whole word, prefix, substring, all words in any order, then typo guesses, each labelled with match_type. Set include_warnings=true to also search the FINMA warnings list. Each answer states the FINMA data version.

  • classify_textadded

    FREE TRIAL without a key: 20 calls per day per IP address in total for tariff_semantic_search, classify_text and finma_search. Each answer states the trial calls left; check every result on the NOGA publications of the Federal Statistical Office before use. Classify a business activity description (French, German, Italian or English) into the closest NOGA 2025 subclasses (6 digits) with their class (the NACE 2.1 class), official hierarchy and a similarity score, using a pinned multilingual mpnet model. A NOGA code as text lists its subclasses. Each answer states the index provenance and the classification reference version; combine with cross_walk for NACE, ISIC or NOGA 2008.

  • tariff_semantic_searchadded

    FREE TRIAL without a key: 20 calls per day per IP address in total for tariff_semantic_search, classify_text and finma_search. Each answer states the trial calls left; check every result on the official tariff at xtares.admin.ch before use. Find Swiss customs tariff (TARES) lines from a description of the goods in French, German, Italian or English, or from a tariff number. Each line is indexed with its official hierarchy (heading, intermediate texts, 8-digit line) in the four languages; ranking puts shared official words first and uses meaning (pinned multilingual mpnet model) as a tie-breaker and for synonyms. Returns the 8-digit code, its official path, a relative score, the TARES data version and the index provenance. Always inlines a non-official disclaimer.

  • finma_searchremoved

    Fuzzy search the FINMA registry by name (tolerates typos and legal-suffix variants like 'UBS Switzerland AG' vs 'UBS AG'). Returns top-K matches with confidence score, including LEI/UID where available. Set include_warnings=true to also surface entries from the FINMA warnings list.

  • tariff_semantic_searchremoved

    Semantic search across Swiss customs tariff (TARES) descriptions in French. Uses pre-computed Xenova/paraphrase-multilingual-mpnet-base-v2 embeddings (768d, FR) shipped with the TARES Pro bundle. Returns top-K HS8 codes by cosine similarity. Always inlines a non-official disclaimer.

  • entity_historyremoved

    Returns the timeline of changes for a FINMA-supervised entity (registration, authorisation type changes, status mutations, address moves, warning-list flag transitions). Keyed by Swiss UID (CHE-xxx.xxx.xxx). Irreplicable by scraping — finma.ch only publishes the current state.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-20d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

@openswissdata/[email protected] npm97 dependencies, resolved · MCP SDK @modelcontextprotocol/sdk 1.30.1 · advisories checked 2026-10-19

advisoryseveritypackagefixed in
GHSA-6qxp-vccf-f47hMCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP serverhigh@modelcontextprotocol/[email protected]MCP SDK, directfixed in 1.31.0

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.openswissdata.com/jsonrpc streamable-httpnoneyes100%382 ms2025-11-252026-10-19
packageregistryversionruntimesecrets
@openswissdata/mcpnpm0.1.2–OPENSWISSDATA_API_KEY

Tools (7)

classify_textread-onlyFREE TRIAL without a key: 20 calls per day per IP address in total for tariff_semantic_search, classify_text and finma_search. Each answer states the trial calls left; check every result on the NOGA publications of the Federal Statistical Office before use. Classify a business activity description (French, German, Italian or English) into the closest NOGA 2025 subclasses (6 digits) with their class (the NACE 2.1 class), official hierarchy and a similarity score, using a pinned multilingual mpnet model. A NOGA code as text lists its subclasses. Each answer states the index provenance and the classification reference version; combine with cross_walk for NACE, ISIC or NOGA 2008.
company_checkread-onlyLook up a Swiss company by its UID (CHE-xxx.xxx.xxx): commercial register data (LINDAS), FINMA register entries and LEI records (GLEIF), each fact with its source and, when known, the date it was read, plus exact cross-checks between sources and checks of the registered address against the official localities and streets directories (swisstopo, when published). No score. When available, the commercial register status (active, in liquidation or deleted, with the deletion date) is read from Zefix (OFRC). FOSC publications, SECO sanctions and officers are not covered.
cross_walkread-onlyFind correspondences between NOGA 2008, NOGA 2025, NACE 2.0, NACE 2.1 and ISIC 4 activity codes (Swiss, EU and UN classifications). Returns the exact or approximate relation, its sources and the documented path. Never chains two non-exact relations; a non-exact correspondence needs expert validation.
finma_searchread-onlyFREE TRIAL without a key: 20 calls per day per IP address in total for tariff_semantic_search, classify_text and finma_search. Each answer states the trial calls left; check every result on the official FINMA register before use. Search the FINMA register by entity name, tolerant of case, accents, legal forms (AG, SA, Sàrl, GmbH, Ltd), ae/oe/ue spellings and one or two typos per word. Results are ranked exact, word start, whole word, prefix, substring, all words in any order, then typo guesses, each labelled with match_type. Set include_warnings=true to also search the FINMA warnings list. Each answer states the FINMA data version.
kyc_checkread-onlySearch the FINMA register of supervised institutions and the FINMA warnings list by name (case- and accent-insensitive). Returns the closest top_k authorised entities and warning entries (exact name, then whole word, then substring; all words in any order as a fallback) with the total number of matches. Only an identical name is reported as a FINMA warning-list match; a merely similar name is listed separately, to verify, and is never called a match. Use it for basic counterparty screening; no result is not a compliance certificate.
tariff_lookupread-onlyLook up the Swiss customs tariff (TARES). An 8-digit Swiss tariff number (dots allowed) returns the full line: designations in FR/DE/IT/EN, MFN duty, preferential regimes, restrictions and customs relief codes. A 2- to 7-digit HS prefix (for example the international HS6 code) lists the Swiss 8-digit lines under it. Every result carries an unofficial-copy notice that the agent must show to the end user.
tariff_semantic_searchread-onlyFREE TRIAL without a key: 20 calls per day per IP address in total for tariff_semantic_search, classify_text and finma_search. Each answer states the trial calls left; check every result on the official tariff at xtares.admin.ch before use. Find Swiss customs tariff (TARES) lines from a description of the goods in French, German, Italian or English, or from a tariff number. Each line is indexed with its official hierarchy (heading, intermediate texts, 8-digit line) in the four languages; ranking puts shared official words first and uses meaning (pinned multilingual mpnet model) as a tie-breaker and for synonyms. Returns the 8-digit code, its official path, a relative score, the TARES data version and the index provenance. Always inlines a non-official disclaimer.

Schemas: list_tools.

Similar MCP servers

More from io.github.cammac-creator

Official server.json
{
  "name": "io.github.cammac-creator/openswissdata",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "tags": [
        "swiss",
        "switzerland",
        "customs",
        "tariff",
        "hs-code",
        "tares",
        "finma",
        "kyc",
        "noga",
        "nace",
        "isic",
        "compliance"
      ],
      "categories": [
        "government",
        "compliance",
        "finance"
      ]
    }
  },
  "title": "OpenSwissData",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.openswissdata.com/jsonrpc",
      "type": "streamable-http"
    }
  ],
  "version": "0.3.1",
  "packages": [
    {
      "version": "0.1.2",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@openswissdata/mcp",
      "registryType": "npm",
      "environmentVariables": [
        {
          "name": "OPENSWISSDATA_API_KEY",
          "format": "string",
          "isSecret": true,
          "description": "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)."
        },
        {
          "name": "OPENSWISSDATA_BASE_URL",
          "format": "string",
          "default": "https://mcp.openswissdata.com",
          "description": "Override the remote MCP endpoint (default: https://mcp.openswissdata.com). Useful for staging or self-hosting."
        },
        {
          "name": "OPENSWISSDATA_TIMEOUT_MS",
          "format": "string",
          "default": "30000",
          "description": "Per-request timeout in milliseconds."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/cammac-creator/openswissdata",
    "source": "github",
    "subfolder": "sdks/mcp-server"
  },
  "websiteUrl": "https://www.openswissdata.com",
  "description": "Swiss customs tariff (TARES), FINMA register, NOGA/NACE/ISIC codes. 3 free tools + search trial."
}