Skip to main content

swissco-mcp

PyPI Documentation

An MCP server for Swiss company data. Nine tools that look a company up by UID, search 790,000 of them by name or by statutory purpose, trace what changed in the commercial register, browse public tenders, check a bank licence, resolve a UID to an LEI and its group parent, and find federally funded research a company took part in.

claude mcp add swissco -- uvx swissco-mcp

All data comes from six open-data sources, none of which needs a credential: Zefix on LINDAS for the commercial register, the Amtsblattportal for the Swiss Official Gazette of Commerce, simap.ch for public procurement, FINMA for authorised banks and securities firms, GLEIF for the Legal Entity Identifier and group structure, and ARAMIS for federally funded research.

Built and maintained by Prospex, a Swiss B2B sales intelligence platform.

Install

The server runs over stdio and needs Python 3.14 or newer.

uvx swissco-mcp              # run it without installing
pip install swissco-mcp      # or install it

Registering it depends on the host. Claude Code takes one command:

claude mcp add swissco -- uvx swissco-mcp

Anything that reads a JSON config takes the equivalent block:

{
  "mcpServers": {
    "swissco": {
      "command": "uvx",
      "args": ["swissco-mcp"]
    }
  }
}

Tools

Tool What it answers
swissco_lookup Everything the register publishes about one company, optionally with its FINMA licence and its LEI
swissco_search Companies whose legal name or statutory purpose contains a term
swissco_publications Commercial-register publications from the gazette in a date range
swissco_events One company's registry events, each confirmed against the publication's own UID
swissco_tenders Public-procurement projects published on simap
swissco_vendor Whether a company holds a simap vendor profile, and what it says
swissco_finma Institutions on FINMA's list of authorised banks and securities firms
swissco_lei A company's LEI, the entity that consolidates it, and the entity at the top of that chain
swissco_research Federally funded research projects, Innosuisse and SNSF money included

Every tool returns the same envelope: rows, a count, and notes.

What the notes carry

Each source covers a slice of Swiss economic life, and a company's absence from one of them usually means it sits outside that slice. notes says which:

  • FINMA's list covers banks and securities firms. Insurers, portfolio managers and fund management companies hold their authorisations on other lists, so a company missing here may still be supervised.
  • About 28,000 Swiss entities hold an LEI, against roughly 790,000 in the commercial register. An absent LEI is the normal case.
  • ARAMIS searches project titles, abstracts and a free-text contractor field, and indexes the structured participant list under none of them. A company named only as a structured partner cannot be found through it.
  • LINDAS publishes the active commercial register. A deleted company can be missing from it while its gazette publications remain.

notes also reports what a call did with a request it had to trim, and how many requests a wide date range is about to cost.

Configuration

Every tool works with no configuration at all. Four environment variables change what it does:

Variable Effect
ZEFIX_USER, ZEFIX_PASSWORD Zefix PublicREST credentials, issued by zefix@bj.admin.ch. They add capital, status, former names and corporate relations to swissco_lookup, and a name-prefix search to swissco_search
SWISSCO_STATE Where gazette bodies and the two FINMA files are cached. Defaults to ~/.swissco
SWISSCO_INTERVAL Seconds between requests. It can raise the floor of 0.5s and cannot lower it

Rate limiting

Requests are paced at half a second apart, and each source that asks for something slower gets it: FINMA is paced at a second. These are small public services run by federal offices, and SWISSCO_INTERVAL can raise that floor but never lower it.

The command line

The same data is available as a shell command, from the same repository:

uvx swissco lookup CHE-444.420.929

See swissco on PyPI and its documentation.

Documentation

Full reference for every tool, its arguments and its caveats: swissco-mcp.readthedocs.io.

Licence

MIT. The data belongs to its publishers, and each source's own terms apply; the access and terms section lists them.

Metadata

Release files for swissco-mcp 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for swissco-mcp 0.1.1
File Size Uploaded Provenance
swissco_mcp-0.1.1.tar.gz 13.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for swissco-mcp 0.1.1
File Interpreter ABI Platform
swissco_mcp-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 29.2 kB

Release files / swissco_mcp-0.1.1.tar.gz

Download URL swissco_mcp-0.1.1.tar.gz
Size 13.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3b7ca17e3a40111f17772c3fbfa135168f577bfb37e43e4b9b5cd9ef89ce0626
BLAKE2b-256 checksum
How to use checksums
4fd6992f5b32fb12c4453fdbe105ef27485431c51aa9d2bc9c82ab9b0c2d2225
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / swissco_mcp-0.1.1-py3-none-any.whl

Download URL swissco_mcp-0.1.1-py3-none-any.whl
Size 15.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60112b889ee9b6a39815fd0c64461adc18adf0bbf35082b8f50258f6b076a031
BLAKE2b-256 checksum
How to use checksums
a44374f608b92f06bbd05cecb0ec7dfeb8fc596afbbae73e6df88bcd5e03f1a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for swissco-mcp 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page