mcpField
S
Swiss company data

Swiss company data

ローカル
prospex.chビジネス・マーケティング04 週間前に更新

Swiss company data について

swisscoは、企業登記、公報、入札などのスイスの企業・公共データを調べるコマンドラインツールです。認証情報不要の6つのオープンデータソースをまとめ、企業情報の変更も追跡できます。

主な機能

  1. 01企業登記情報を参照
  2. 02名称や事業目的で検索
  3. 03公報掲載と登記履歴を確認
  4. 04公共入札と供給業者を検索
  5. 05FINMA、LEI、研究案件を検索
  6. 06企業情報の変更を監視

活用シーン

  1. 01事業目的から見込み企業を絞り込む
  2. 02指定企業の登記変更を追跡
  3. 03入札や供給業者登録を確認
  4. 04ライセンス、LEI、研究案件を調べる

MCP 対応

同じ6つのデータソースをMCPサーバー経由でも提供し、watch以外の各コマンドに対応する9つのツールを備えています。ツールは行データ、件数、説明を返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ch-prospex-swissco": {
"command": "npx",
"args": [
"-y",
"swissco-mcp"
],
"env": {
"ZEFIX_USER": "<ZEFIX_USER>",
"ZEFIX_PASSWORD": "<ZEFIX_PASSWORD>",
"SWISSCO_STATE": "<SWISSCO_STATE>",
"SWISSCO_INTERVAL": "<SWISSCO_INTERVAL>"
}
}
}
}
起動コマンドnpx -y swissco-mcp
設定が必要な環境変数
ZEFIX_USERZefix PublicREST username, issued by [email protected]. Optional: every tool works without it.
ZEFIX_PASSWORDシークレットThe matching Zefix PublicREST password.
SWISSCO_STATEWhere gazette bodies and the two FINMA files are cached. Defaults to ~/.swissco.
SWISSCO_INTERVALSeconds between requests. Raises the floor of 0.5s and cannot lower it.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiswissco-mcp0.1.1
npmswissco-mcp0.1.1

ツール

9

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
leibooleanいいえLEI と、この企業を連結する事業体を追加します。リクエストを3回消費します。
uidstringはい任意の句読点形式のスイス UID:CHE-444.420.929、CHE444420929、または CH-ID。
finma_licencebooleanいいえFINMA のライセンスタイプと監督カテゴリーを追加します。キャッシュが空の場合、ダウンロードを2回行います。

詳細

swissco

PyPI Documentation

シェルからスイス企業のデータを利用できます。UIDで企業を検索したり、社名や法定目的で79万社を検索したり、官報の掲載情報を一覧表示したり、公共調達を閲覧したり、銀行のライセンスを確認したり、企業リストの変更を監視したりできます。

uvx swissco lookup CHE-444.420.929

すべてのデータは6つのオープンデータソースから取得しており、いずれも認証情報は不要です。商業登記簿のZefix on LINDAS、スイス商業公報のAmtsblattportal、公共調達のsimap.ch、認可を受けた銀行と証券会社のFINMA、法人識別子と企業グループ構造のGLEIF、連邦政府が資金提供する研究のARAMISです。

スイスのB2Bセールスインテリジェンスプラットフォーム、Prospexが開発・保守しています。

インストール

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

Python 3.14以降が必要です。

Docker
docker run --rm prospexch/swissco search "Nestlé" --limit 5

イメージは権限のないユーザーとして実行され、状態(watchで確認済みのIDとFINMAファイルのキャッシュ)は/home/swissco/.swisscoに保存されます。前回確認した内容を保持する必要がある場合は、ここにボリュームをマウントしてください。

docker run --rm -v swissco-state:/home/swissco/.swissco \
  prospexch/swissco watch --uid CHE-105.909.036

どのコマンドでも不要なZefix認証情報は、環境変数として渡します。

docker run --rm -e ZEFIX_USER -e ZEFIX_PASSWORD prospexch/swissco lookup CHE-105.909.036

コマンド

すべてのコマンドで、--format table|json|csv、--limit、--quietを指定できます。

swissco lookup

1社について、登記簿に掲載されているすべての情報を取得します。

$ swissco lookup CHE-444.420.929
legal name       Baumberger Bau AG
uid              CHE-444.420.929
chid             CH-036.9.103.786-9
ehra id          1702823
legal form code  0151
legal form       Schweizerische Zweigniederlassung im Handelsregister eingetragen
municipality     Koppigen
canton           BE
address          Hauptstrasse 6, 3425 Koppigen
purpose          Anbieten von Kleintransporte aller Art.
zefix uri        https://register.ld.admin.ch/zefix/company/1702823

CHE-444.420.929、CHE444420929、または他のテキストに含まれるUIDを指定できます。

swissco search

法定社名または法定目的で企業を検索します。法定目的とは、企業が登記簿に自社の事業内容をどのように記載しているかを指します。

$ swissco search "usinage" --canton VD --limit 5
LEGAL_NAME                             UID              LEGAL_FORM                                         MUNICIPALITY  CANTON  PURPOSE
-------------------------------------  ---------------  -------------------------------------------------  ------------  ------  ------------------------------------------------------------
Atelier roue libre S.A.                CHE-261.821.895  Aktiengesellschaft                                 Penthalaz     VD      La société a pour but l'usinage, la réparation, la révision…
Cute Cut Sàrl                          CHE-403.577.924  Gesellschaft mit beschränkter Haftung GMBH / SARL  Lausanne      VD      la société a pour but toutes activités, notamment la fabric…
DecoupART CNC Sàrl                     CHE-342.723.896  Gesellschaft mit beschränkter Haftung GMBH / SARL  Paudex        VD      la société a pour but tous types de travaux dans les domain…
LAVA Technologies Sàrl en liquidation  CHE-217.431.384  Gesellschaft mit beschränkter Haftung GMBH / SARL  Nyon          VD      la société a pour but: développement de machines d'usinage …
Pousaz Mécanique SA                    CHE-166.712.190  Aktiengesellschaft                                 Oron          VD      La société a pour but l'exploitation d'un atelier mécanique…

--cantonには2文字のコードを、--legal-formにはeCH-0097コードを指定します(0106はAG、0107はGmbHです)。

swissco publications

官報に掲載された商業登記情報を、日付の範囲を指定して取得します。

swissco publications --canton ZH --since 2026-08-01
swissco publications --canton ZH --since 2026-08-01 --type CAPITAL_INCREASED

--typeを指定しない場合、一覧ページのみが読み込まれます。2,000件の掲載情報ごとに1回リクエストします。--typeを指定すると、条件に合う掲載情報の本文を取得し、shab-parserが認識する11種類のイベントに分類します。そのため、まず期間と州を絞り込んでください。

約10日を超える期間は、自動的に複数の期間に分割されます。ページオフセットが10,000に達するリクエストはAPIに拒否されます。また、官報には1日あたり約1,000件の商業登記情報が掲載されます。

swissco events

1社の登記履歴を取得します。

swissco events CHE-444.420.929 --since 2024-01-01

官報の一覧ページにはUIDがなく、タイトルのみが記載されています。そのため、まずUIDから法定社名を特定し、その名前と一致しそうなタイトルの掲載情報を残してから、本文を取得し、イベント自体のUIDが一致するものを残します。タイトルとの一致はダウンロードする掲載情報を決めるために使い、本文のUIDは報告する内容を決めるために使います。取得した本文は状態ディレクトリにキャッシュされるため、期間が重なる再実行では追加コストはかかりません。

swissco watch

前回からの変更を確認します。

printf 'CHE-444.420.929\nCHE-105.943.826\n' > uids.txt
swissco watch uids.txt --state ~/.swissco/

各社をフィンガープリントで比較します。フィンガープリントは、企業の識別情報、住所、目的の各フィールドから生成したダイジェストです。変更があれば終了コード10を、変更がなければ0を返すため、cronで結果に応じた処理を分岐できます。

0 7 * * * swissco watch ~/uids.txt --quiet --format json > ~/changes.json \
          || mail -s "registry changes" [email protected] < ~/changes.json

データセットから外れたUIDは、削除済みではなく、データセットに存在しなくなったとして報告されます。LINDASに含まれるのは有効な事業体のみのため、再登録や訂正、掲載の遅れによってUIDがデータセットから外れることがあります。

swissco tenders

simap の公共調達プロジェクトを、州と公開日で検索します。

$ swissco tenders --canton ZG --since 2026-08-25 --limit 3
TITLE                                                  PROJECT_NUMBER  BUYER                           CANTON  CITY  PUBLICATION_DATE  PUBLICATION_TYPE
-----------------------------------------------------  --------------  ------------------------------  ------  ----  ----------------  ----------------
Neubau Pfarreizentrum, Katholische Kirchgemeinde Baar  22047           Katholische Kirchgemeinde Baar  ZG      Baar  2026-09-05        award

--canton と --type は複数回指定でき、--lang ではタイトルと発注者の表示言語を選択できます。ページングにはオフセットではなくカーソルを使用するため、範囲を広く指定しても失敗せず、ページ数が増えるだけです。

日付範囲で絞り込む対象は、各プロジェクトの最新の公開日であり、その中の落札日ではありません。3月に落札されたプロジェクトでも、最新の公開が8月の訂正であれば、8月を含む範囲でのみ表示されます。

swissco vendor

企業が simap のサプライヤーとして登録されているかどうかを確認します。

$ swissco vendor CHE-409.633.691
name                   Egli Gartenbau AG Sursee
uid no                 CHE-409.633.691
city                   Sursee
canton                 LU
url                    https://www.gartenbau-egli.ch
company size           medium

UID を正式名称に変換して検索し、ディレクトリ独自の uidNo と照合して確認します。候補の検索には名称を使い、その中からの特定には UID を使います。ディレクトリには「Egli Gartenbau AG Sursee」と「Egli Gartenbau AG Uster」の両方が登録されています。

企業が落札した案件を調べるコマンドはありません。 simap の落札情報に記載されるサプライヤーには UID がなく、調達担当者が入力した自由記述の名称しかありません。その名称を照合すると、もっともらしく見えても別の企業についての結果になる場合があるため、この機能は提供していません。

swissco finma

FINMA が認可した銀行および証券会社を UID と照合します。

$ swissco finma --uid CHE-105.845.287
name                  Aargauische Kantonalbank
city                  Aarau 1
licence type          Bank
supervisory category  3
uid                   CHE-105.845.287

swissco finma "Raiffeisen" のように検索でき、lookup では --licence、--category、--finma も使用できます。両方のファイルはステートディレクトリに1週間キャッシュされます。

対象は銀行と証券会社のみです。FINMA は保険会社、ポートフォリオマネージャー、ファンド運用会社を別のリストで認可しており、このツールはそれらを読み込みません。見つからない場合にわかるのは「このリストに載っていない」ということだけであり、「無認可」という意味ではありません。

swissco lei

企業の法人識別子(LEI)と、その企業を連結対象としているグループを表示します。

$ swissco lei CHE-412.669.376
legal name                 UBS Switzerland AG
lei                        549300WOIFUSNYH0FL22
registered as              CHE-412.669.376
jurisdiction               CH
status                     ACTIVE
initial registration date  2014-12-15
direct parent              UBS AG (BFM8T61CT2L1QCEMIK50, CH)
ultimate parent            UBS Group AG (549300SZJ9VS8SGXAN81, CH)
direct children            0

--children を指定すると、この企業を数える代わりに、この企業が連結対象としている企業を一覧表示します。lookup の --lei は同じ項目を企業プロフィールに含めます。

親会社が国外にあることが多いため、この機能が役立ちます。国外の所有者にはスイスの商業登記簿の登録がないため、登記簿だけではこの質問に答えられません。

GLEIF のレベル2レコードが示すのは会計上の連結関係です。親会社とは、この企業を自社の会計に連結している事業体を指し、必ずしもその企業の全持分を所有しているとは限りません。LEI を保有するスイスの事業体は約28,000社で、登記簿に登録された約790,000社と比べて少数です。そのため、見つからない場合にわかるのは「LEI の登録がない」ということだけであり、それ以上の意味はありません。

swissco research

連邦政府の研究・イノベーション委託事業の登録簿である ARAMIS から、連邦政府が資金提供する研究プロジェクトを検索します。Innosuisse と SNSF の資金も含まれます。

$ swissco research CHE-337.958.399
TITLE                                 PROJECT_NUMBER    OFFICE      STATUS      START_DATE  ROLE
Reducing Documentation Burden in S…   137.839 INNO-ICT  INNOSUISSE  In Process  2026-06-01  Implementation Partner

UID は各プロジェクト固有の参加者 UID と照合されるため、報告される各行は正確です。自由記述は入力どおりに検索され、一致した結果ごとに参加組織が返されます。参加者リストの取得にはプロジェクトごとに1回リクエストが必要なため、--limit で詳細を取得する候補数を制限できます。--lang では DE、EN、FR、IT を選択できます。

ARAMIS はプロジェクトのタイトル、概要、自由記述の請負業者欄を検索しますが、構造化された参加者リストはどの項目にもインデックスされていません。構造化されたパートナーとしてのみ記載されている企業は検索できません。Innosuisse の実施パートナーは通常ここに記載されるため、検索結果が空でも、この企業の名前が記載されたプロジェクトがないということしかわかりません。企業が連邦政府の研究資金を受け取っていない証拠にはなりません。

swissco は参加者から組織、役割、UID、所在地を読み取ります。ARAMIS は研究者の氏名、メールアドレス、電話番号も公開していますが、パーサーにはこれらを格納するフィールドがありません。

出力

出力を変更するのは --format だけです。jq にパイプしたコマンドも、人が画面で確認する同じコマンドも、同一のバイト列を生成するため、ターミナルで動作するスクリプトは CI でも動作します。

table と csv は、json がシリアライズするものと同じ行から生成されるため、ある形式には列が存在するのに、別の形式では欠落するといったことはありません。進行状況のメッセージは stderr に出力され、--quiet で非表示にできます。エラーは単一の JSON オブジェクトとして stderr に出力されます。

コーディングエージェントから使用する

このリポジトリにはエージェントスキルが含まれています。このスキルは、Claude Code、Cursor、Codex、およびほか約20のエージェントに、swissco の使い方を教えます。すべてのコマンドと、気づかないうちに誤った回答を生む落とし穴を網羅しています。

スキルは .agents/skills/swissco/ ディレクトリにあります。これは、仕様に準拠するすべてのエージェントが確認する、クライアント共通の配置場所です。Claude Code が独自の場所で見つけられるよう、.claude/skills/swissco からそこへシンボリックリンクを張っています。tests/test_skill.py は実行のたびに、仕様のルールに照らしてスキルを検証するため、テストスイートが問題を検出せずにスキルが形式から逸脱することはありません。

npx skills add prospex-ch/swissco-cli

インストールすると、利用するプロジェクトの .agents/skills/swissco/ に配置され、各エージェントのディレクトリへシンボリックリンクが張られます。すべてのプロジェクトに一度でインストールするには -g を、確認なしで既定値を受け入れるには --all を追加します。swissco は引き続き PATH 上にあるか、uvx 経由で利用できる必要があります。

これにより、エージェントは適切なコマンドを自ら実行して、「ツーク州で事業目的にブロックチェーンへの言及がある企業はどこか」や「6月以降、CHE-105.943.826 に何か変更はあったか」といった質問に答えられます。

MCP サーバーとして使用する

同じ6つのデータソースを、このリポジトリから MCP サーバーとして利用できます。ツールは9つあり、watch を除く各コマンドに1つずつ対応しています。

claude mcp add swissco -- uvx swissco-mcp

すべてのツールは rows、count、notes を返します。rows は swissco --format json が出力する辞書で、どちらから取得しても各フィールドの名前は同じです。notes には各データソースの対象範囲が記載されており、これによって空の結果にも意味が生まれます。FINMA のリストには保険会社とポートフォリオマネージャーが含まれず、スイスの事業体のうち LEI を持つのは約28,000件で、レジストリ全体では約790,000件です。

mcp/ にあり、PyPI パッケージ swissco-mcp と、同名の npm パッケージとして配布されています。また、ch.prospex/swissco として登録されています。各ツール、その引数、注意事項についての完全なリファレンスは、swissco-mcp.readthedocs.io をご覧ください。

アクセスと利用条件

SHAB / Amtsblattportal。 REST API は、運営者が機械からのアクセス用に提供している手段です。自由にアクセスでき、公開データの取得に認証は不要で、文書化されたレート制限もありません。ページサイズの上限は2,000件です。ウェブサイトの UI は robots.txt で禁止されていますが、この制限は API には及びません。運営者はデータの完全性を保証しておらず、法的拘束力を持つのは署名済み PDF のみです。

LINDAS の Zefix。 opendata.swiss で公開されており、認証情報は不要です。商用利用の条件はこれまで確定していません。適用される条件はデータセットのページに記載されています。

Zefix PublicREST。 [email protected] が発行する認証情報が必要です。ここに記載されているコマンドは、すべて認証情報なしで動作します。--user/--password または ZEFIX_USER/ZEFIX_PASSWORD で認証情報を指定すると、lookup では資本金、ステータス、削除日、旧名称、企業間関係が、search では名称の前方一致検索が利用できるようになります。

simap。 読み取り API は認証なしで応答します。サイトの robots.txt では、シングルページアプリの案件詳細ルートへのアクセスが禁止されています。swissco はこれらのルートへのアクセスを明示的に拒否します。robots.txt は /api については何も定めておらず、ここに記載されているリクエストはすべて /api に送信されます。

FINMA。 公開されている2つのファイルを、通常のブラウザーと同じ方法でダウンロードします。FINMA はファイルをバージョン管理せずに再公開するため、1週間キャッシュし、その後再取得します。

GLEIF。 レコード API は認証なしで応答します。GLEIF は誰でも利用できるよう LEI データを公開しており、利用規約に適用される条件が記載されています。

ARAMIS。 公開サービスは認証なしで応答しますが、過剰なリクエストを避けるよう求めているため、swissco はリクエスト間隔を調整し、プロジェクトを1件ずつ読み取ります。43 MB の一括エクスポートは、このクライアントの許可リストに含まれていないホストにあるため、どのコマンドからも取得できません。

適切な利用者として

これらは連邦政府機関が運営する、小規模な公開サービスです。swissco は最大でも0.5秒に1回リクエストを送信します。より余裕を求めるFINMAについては1秒に1回です。失敗時には指数バックオフを行い、このリポジトリのURLを含む実際の User-Agent を使って自身を識別します。--interval でこれらの間隔を長くすることはできますが、短くすることはできません。

使用パッケージ

パッケージ内容
zefix-parserZefix:LINDAS SPARQL、PublicREST、UID検証
shab-parserSHAB:検出、取得、解析、11種類のイベント分類

どちらもMITライセンスで、このプロジェクトと並行してメンテナンスされています。simap、FINMA、GLEIF、ARAMISにはクライアントがないため、swissco はこの4つに独自のクライアントを備えています。

リストの監視にとどまらない活用

cronから実行する swissco watch は、Prospex が販売するサービスの無料版です。Prospexは登録簿全体を継続的に監視し、採用、資金調達、入札、ウェブ上のシグナルと照合します。これには、このツールが意図的に扱わないsimapの落札情報も含まれます。そして、そうした変化のうち、電話をかける価値があるものを知らせます。cronジョブとUIDリストで事足りるなら、このツールだけで十分です。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。