Zefix MCP
Enables AI assistants to search the Swiss Central Business Name Index (Zefix) for companies by name or UID, with optional filters, and retrieve full company details including address, legal form, history, and representatives.
README
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)
- Go to the Releases page and download the latest
zefix.mcpbfile. - Double-click it — Claude Desktop opens automatically.
- Click Install.
Restart Claude Desktop if you do not see zefix tool in the list of available tools.
Via npx (recommended for all other MCP hosts)
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.
| Parameter | Type | Description |
|---|---|---|
name_or_uid |
string | Company name or UID (CHE-nnn.nnn.nnn). |
language_key |
string | Response language: en, de, fr, it. Default: en. |
cantons |
string[] | Filter by canton codes, e.g. ["ZH", "BE"]. |
locations |
string[] | Filter by legal seat town names, e.g. ["Zurich", "Bern"]. |
legalForms |
string[] | Filter by legal form, e.g. ["AG", "GmbH"]. |
exactSearch |
boolean | Search from start of name (default: true). Set false for substring/wildcard (*) search. |
phoneticSearch |
boolean | Enable phonetic/fuzzy matching. |
includeDeleted |
boolean | Include deregistered companies (default: false). |
includeFormerNames |
boolean | Also 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: truereturns no results, retry withexactSearch: falseandphoneticSearch: truecombination. - Results are returned in YAML format, with detail level depending on amount of found companies:
- 1 result → full details including SOGC publication history;
- 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 submitsUser-Agent: zefix-mcp-unofficialfor 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:
- Select the
get_companiestool in the left panel. - Fill in parameters (e.g.
name_or_uid: "Berg Digital"). - 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:
| Job | What it does | Where it lands |
|---|---|---|
| Publish to npm | npm run build, npm publish |
npmjs.com |
| Publish Claude plugin | npm run build, npx @anthropic-ai/mcpb pack, uploads the .mcpb asset |
GitHub 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 inpackage.jsonat 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_TOKENin 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_TOKENwithcontents: writepermission
License
- MIT.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.