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.
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.
Three data packs. Nine tools.
// pack TARES
tariff_lookupNo accountLook 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"
}
}
}'tariff_semantic_searchTrial, no accountSimilarity 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
}
}
}'tariff_changelogAccess rights requiredChanges 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"
}
}
}'// pack Classifications
cross_walkNo accountSourced 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"
}
}
}'classify_textTrial, no accountNOGA 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
}
}
}'// pack FINMA
kyc_checkNo accountName 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"
}
}
}'company_checkNo accountSwiss 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"
}
}
}'finma_searchTrial, no accountApproximate 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
}
}
}'entity_historyAccess rights requiredChanges 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"
}
}
}'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.
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"…
Free tier capable. Pro for production workflows.
New Pro and Business subscriptions are temporarily unavailable. Free access and dataset file purchases remain available.
5,000 req/month. Currently closed to new subscriptions.
New subscriptions temporarily closed
50,000 req/month + advanced tools. Fintechs & ERP integrators.
New subscriptions temporarily closed
Swiss data for your agents.
Free tier 100 req/hour. No account required to test. Open MCP spec 2025-11-25.