Skip to main content
Service status
Model Context Protocol·4 tools without an account · 100 requests/hour/IP

A Swiss MCP server for Claude Code & Cursor.

Plug Swiss federal datasets (TARES, NOGA, FINMA) directly into your AI agent. JSON-RPC 2.0, pre-computed multilingual embeddings, signed cryptographic manifest. Free tier 100 req/hour.

Endpoints
9 tools
URL
mcp.openswissdata.com
Spec
MCP 2025-11-25
Open standard: JSON-RPC 2.0 over HTTPS·Auth: Bearer token (OAuth 2.1 available)·Hosted in Switzerland-EU
Installation/HTTP connection

Connect openswissdata to Claude Code.

Step 1 · Add the server

In a terminal with Claude Code installed:

claude mcp add --transport http openswissdata https://mcp.openswissdata.com/mcp/jsonrpc

Step 2 · Restart Claude Code

Check the connection using /mcp. Four tools work without an account, and the three search tools on trial (20 calls per day); the others require existing access rights.

Step 3 · Test

For example, ask: “Look up TARES tariff 09011100 using tariff_lookup”. Then check the returned unit and conditions.

Claude Code setup: official documentation. The JSON-RPC examples below also let you test the service.

9 tools available/JSON-RPC 2.0/spec 2025-11-25

Three data packs. Nine tools.

// pack TARES

tariff_lookupNo account

Look up an eight-digit Swiss tariff code with its unit, conditions and summary limitations.

curl example ↓
curl -X POST https://mcp.openswissdata.com/mcp/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tariff_lookup",
    "arguments": {
      "hs8": "09011100",
      "lang": "fr"
    }
  }
}'
scope: tariff:read
tariff_semantic_searchTrial, no account

Similarity search in a separate index; file updates do not automatically refresh this index.

curl example ↓
curl -X POST https://mcp.openswissdata.com/mcp/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tariff_semantic_search",
    "arguments": {
      "query": "18-carat gold jewellery",
      "top_k": 5
    }
  }
}'
scope: tariff:semantic
tariff_changelogAccess rights required

Changes observed between archived TARES versions. Coverage depends on the versions available.

curl example ↓
curl -X POST https://mcp.openswissdata.com/mcp/jsonrpc \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <access_token>" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tariff_changelog",
    "arguments": {
      "hs8": "09011100",
      "since": "2025-01-01"
    }
  }
}'
scope: tariff:semantic

// pack Classifications

cross_walkNo account

Sourced mappings between NOGA, NACE and ISIC with exact or approximate relationships and explicit limits.

curl example ↓
curl -X POST https://mcp.openswissdata.com/mcp/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "cross_walk",
    "arguments": {
      "code": "62.10",
      "source": "NOGA_2025",
      "target": "NACE_2.1"
    }
  }
}'
scope: classifications:read
classify_textTrial, no account

NOGA 2025 suggestions from a text. Similarity is not a probability or an official classification decision.

curl example ↓
curl -X POST https://mcp.openswissdata.com/mcp/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "classify_text",
    "arguments": {
      "text": "retail of coffee beans and roasting",
      "top_k": 3
    }
  }
}'
scope: classifications:semantic

// pack FINMA

kyc_checkNo account

Name search in the FINMA registry and separately in warnings. A similar name does not establish identity.

curl example ↓
curl -X POST https://mcp.openswissdata.com/mcp/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "kyc_check",
    "arguments": {
      "name": "UBS Switzerland AG"
    }
  }
}'
scope: finma:read
company_checkNo account

Swiss company lookup by UID: commercial register (LINDAS), FINMA register entries and LEI records (GLEIF), each fact with its source. When available, also gives the commercial register status from Zefix (OFRC): active, in liquidation or deleted.

curl example ↓
curl -X POST https://mcp.openswissdata.com/mcp/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "company_check",
    "arguments": {
      "uid": "CHE-103.137.179"
    }
  }
}'
scope: finma:read
finma_searchTrial, no account

Approximate name search in the FINMA registry; warnings remain separate.

curl example ↓
curl -X POST https://mcp.openswissdata.com/mcp/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "finma_search",
    "arguments": {
      "name": "Vontobel",
      "top_k": 5,
      "include_warnings": true
    }
  }
}'
scope: finma:read
entity_historyAccess rights required

Changes observed in available snapshots. Observation dates are not official decision dates.

curl example ↓
curl -X POST https://mcp.openswissdata.com/mcp/jsonrpc \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <access_token>" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "entity_history",
    "arguments": {
      "uid": "CHE-101.329.561"
    }
  }
}'
scope: finma:history

Available without an account: tariff_lookup, kyc_check, company_check and cross_walk (100 requests/hour per IP). Trial of tariff_semantic_search, classify_text and finma_search without an account: 20 calls per day per IP for the three together, each answer stating the calls left and the official source on which to check the result (xtares.admin.ch, FINMA register, NOGA publications of the Federal Statistical Office). Other tools require the relevant access rights; new paid subscriptions are closed. STATENT is suspended pending evidence of redistribution rights. Vector indexes are not refreshed by file collection jobs.

Sandbox playground/try it right now

Without installing Claude Code, test the endpoints from your browser.

→ Free tier: 100 req/hour per IP. No account required to test.

→ Select a tool, adjust the arguments, click "Try it"…
Pricing/generous by design

Free tier capable. Pro for production workflows.

New Pro and Business subscriptions are temporarily unavailable. Free access and dataset file purchases remain available.

Free
0 CHF

100 req/hour per IP. No account required to test.

Test now →
currently closed
Pro
49 CHF/month

5,000 req/month. Currently closed to new subscriptions.

New subscriptions temporarily closed

Business
199 CHF/month

50,000 req/month + advanced tools. Fintechs & ERP integrators.

New subscriptions temporarily closed

Enterprise
Custom

Unlimited volume, SLA, bespoke. Banks & large accounts.

Request a quote →
Compare plans in detail

Swiss data for your agents.

Free tier 100 req/hour. No account required to test. Open MCP spec 2025-11-25.