Zefix Search

Created By
Berg Digital3 months ago
⚠️ Unofficial MCP server for zefix.ch – Switzerland Central Business Name Index. This project is not affiliated with or endorsed by the Federal Department of Justice and Police (FDJP) - Federal Office of Justice (FOJ) who are developing and maintaining zefix.ch. Allows your AI-assistant to search for companies incorporated in Switzerland by their name or UID (CHE-nnn.nnn.nnn) with optional filters by canton of incorporation, legal form, location, previous names, etc. (mimics all filters in Zefix GUI). Equips your AI-assistant with full company details available in Zefix (business names and identifiers, purpose, address, auditors, change history, capital, names of legal representatives, merges & acquisitions) to build further automation workflows or answer business-specific questions.
Overview

Zefix MCP

⚠️ Unofficial MCP server for zefix.ch – Switzerland Central Business Name Index.
This project is not affiliated with or endorsed by the Federal Department of Justice and Police (FDJP) - Federal Office of Justice (FOJ) who are developing and maintaining zefix.ch.

Features and Use-cases

  • Allows your AI-assistant to search for companies incorporated in Switzerland by their name or UID (CHE-nnn.nnn.nnn) with optional filters by canton of incorporation, legal form, location, previous names, etc. (mimics all filters in Zefix GUI).
  • Equips your AI-assistant with full company details available in Zefix (business names and identifiers, purpose, address, auditors, change history, capital, names of legal representatives, merges & acquisitions) to build further automation workflows or answer business-specific questions.

Sample questions MCP can answer

Company lookup

  • "Find if Google has a legal body in Switzerland and show me their registered address."
  • "Was ist der vollständige rechtliche Name und die UID des Unternehmens, das als Migros bekannt ist?"
  • "Recherche le CHE-169.865.482 et dis-moi tout ce que tu sais à son sujet."

Filtering & discovery

  • "List all active Treuhand companies headquartered in canton Schaffhausen."
  • "Finde Einzelunternehmen im Bereich Malerei, die irgendwo in der Grossregion Zürich eingetragen sind."
  • "Dresse une liste des adresses et des représentants légaux de toutes les banques en Romandie."

History & changes

  • "What is the new name of the company formerly known as 'SwissAir'?"
  • "Zeig mir die vollständige Namens- und Eigentümergeschichte von Credit Suisse."
  • "Y a-t-il des entreprises qui ont repris ou fusionné avec UBS AG ?"

Due diligence & research

  • "Who is listed as auditor for Zurich Insurance Group?"
  • "Ich stehe kurz vor der Unterzeichnung eines Vertrags mit Hans Müller als Vertreter von Lindt & Sprüngli – ist er dazu bevollmächtigt?"
  • "Vérifie que Bollinger est une entreprise active spécialisée dans la plomberie, et dis-moi depuis combien de temps elle existe et quel est son capital enregistré."

Requirements

  • MCP host application (Claude, LLM Studio, VSCode+GHCP/Cline, Cursor, Dive, LibreChat, DeepChat, Chainlit etc.)
  • LLM that supports Tool calling (GPT-4.1+ Claude Sonnet/Opus, Gemini, Llama 3.1+, Qwen3.5, etc.)
  • (optional) Node.js 24+ (for development or local run without npx)

Installation

As a Claude Desktop Extension (easiest)

  1. Go to the Releases page and download the latest zefix.mcpb file.
  2. Double-click it — Claude Desktop opens automatically.
  3. Click Install.

Restart Claude Desktop if you do not see zefix tool in the list of available tools.

Add to your MCP host config:

{
  "mcpServers": {
    "zefix": {
      "command": "npx",
      "args": ["-y", "zefix-mcp-unofficial"]
    }
  }
}

npx downloads, caches, and runs the package automatically. No local install required.

From source

git clone https://github.com/your-org/zefix-mcp-unofficial.git
cd zefix-mcp-unofficial
npm install
npm run build

Than add this section to config file of your MCP host application (syntax may vary, check documentation for your MCP host app):

{
  "mcpServers": {
    "zefix": {
      "command": "node",
      "args": ["/absolute/path/to/zefix-mcp-unofficial/dist/index.js"]
    }
  }
}

Tool reference

get_companies

Search the Zefix registry. All parameters except name_or_uid are optional.

ParameterTypeDescription
name_or_uidstringCompany name or UID (CHE-nnn.nnn.nnn).
language_keystringResponse language: en, de, fr, it. Default: en.
cantonsstring[]Filter by canton codes, e.g. ["ZH", "BE"].
locationsstring[]Filter by legal seat town names, e.g. ["Zurich", "Bern"].
legalFormsstring[]Filter by legal form, e.g. ["AG", "GmbH"].
exactSearchbooleanSearch from start of name (default: true). Set false for substring/wildcard (*) search.
phoneticSearchbooleanEnable phonetic/fuzzy matching.
includeDeletedbooleanInclude deregistered companies (default: false).
includeFormerNamesbooleanAlso search former company names (default: false).

Tips:

  • If you know the UID, use it — it will return the most accurate full-detail result.
  • If exactSearch: true returns no results, retry with exactSearch: false and phoneticSearch: true combination.
  • Results are returned in Markdown, with detail level depending on amount of found companies:
    • 1 result → full details;
    • 2–10 → detailed summaries, but without full history and list of legal representatives;
    • 11+ → name/UID/status list only.
  • Results are capped at 100 items.
  • The server communicates over stdio (MCP standard transport) — it won't print anything to the terminal when run directly.
  • When MCP server queries Zefix REST API at https://www.zefix.ch/ZefixREST/api/v1/ (public, no authentication required) it submits User-Agent: zefix-mcp-unofficial for transparency. You may want to change uf if using this MCP as part of your larger solution.

Development and Debugging

Build

npm run build
# Compiled output goes to dist/index.js

Inspect

Use the MCP Inspector to interactively call tools and inspect responses:

npx @modelcontextprotocol/inspector node dist/index.js

The first run will prompt you to install @modelcontextprotocol/inspector. After startup, open the URL shown in the terminal (usually http://localhost:5173) to access the inspector UI.

Workflow:

  1. Select the get_companies tool in the left panel.
  2. Fill in parameters (e.g. name_or_uid: "Berg Digital").
  3. Click Run and inspect the raw response.

Publishing a new release

Pushing a v* tag triggers the GitHub Actions release workflow, which runs two jobs in parallel:

JobWhat it doesWhere it lands
Publish to npmnpm run build, npm publishnpmjs.com
Publish Claude pluginnpm run build, npx @anthropic-ai/mcpb pack, uploads the .mcpb assetGitHub Releases
# 1. Bump version in BOTH files (npm will reject publishing over an existing version):
#    - package.json  → "version": "x.y.z"
#    - manifest.json → "version": "x.y.z"

# 2. Commit, tag, push — the tag MUST point to the version-bump commit:
git add package.json manifest.json
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z
git push && git push --tags

⚠️ Common mistake: creating the tag before editing package.json/manifest.json. CI publishes whatever version string is in package.json at the tagged commit — the tag name itself is ignored by npm. If you tagged too early, move the tag to the correct commit:

git tag -d vX.Y.Z                   # delete local tag
git push origin :refs/tags/vX.Y.Z   # delete remote tag
# edit package.json + manifest.json, then:
git add package.json manifest.json
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z
git push && git push --tags

First-time setup (one-off):

  • npm token: create an Access token at npmjs.com → add it as a Repository secret named NPM_TOKEN in GitHub → Settings → Secrets and variables → Actions; token lifetime is 90 days (max) - update regularly.
  • GitHub releases: no extra setup needed — the workflow uses the built-in GITHUB_TOKEN with contents: write permission

License

Server Config

{
  "mcpServers": {
    "zefix": {
      "command": "npx",
      "args": [
        "-y",
        "zefix-mcp-unofficial"
      ]
    }
  }
}
Project Info
Created At
3 months ago
Updated At
3 months ago
Author Name
Berg Digital
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Bring your real authenticated browser session to AI coding agents. Local-first MCP server + Chrome MV3 extension. No cloud. No telemetry.
@Cubenest

peek records the user's actual logged-in browser (DOM via rrweb, console events, network metadata, optional response bodies via opt-in Deep capture) through a Chrome MV3 extension. The extension ships events through a native-messaging stdio bridge to a local MCP server (peek-mcp), which persists them to a SQLite database at ~/.peek/sessions.db. AI coding agents (Claude Code, Cursor, Cline, Windsurf) read sessions from the database via 10 MCP tools: Tool What it does list_recent_sessions List recently recorded sessions (id, origin, ts, event count). get_session_summary LLM-readable narrative summary of a session. get_session_console_errors Console errors recorded in a session. get_session_network_errors Failed/notable network requests in a session. get_user_action_before_error Last N user actions before a console error. generate_playwright_repro Generate a runnable Playwright test from a session. get_dom_snapshot Reconstruct the DOM at a given timestamp. query_dom_history Timeline of attribute/text changes for a selector. request_authorization Side-panel consent for write actions (Level 3). execute_action Dispatch a UI action (gated by permission level + destructive blocklist). Why local-first matters Every other "browser session for AI" tool ships to a vendor cloud. peek's SQLite + extension live on the user's machine — no remote endpoints, no telemetry. The privacy policy (docs/peek/PRIVACY_POLICY.md) is the source of truth. Install # 1. Add the MCP server to Claude Code claude mcp add peek -- npx -y @peekdev/mcp # 2. Install the Chrome extension from the Chrome Web Store # (link added once the CWS listing is approved)

a day ago