Swiss company data について
swisscoは、企業登記、公報、入札などのスイスの企業・公共データを調べるコマンドラインツールです。認証情報不要の6つのオープンデータソースをまとめ、企業情報の変更も追跡できます。
主な機能
- 01企業登記情報を参照
- 02名称や事業目的で検索
- 03公報掲載と登記履歴を確認
- 04公共入札と供給業者を検索
- 05FINMA、LEI、研究案件を検索
- 06企業情報の変更を監視
活用シーン
- 01事業目的から見込み企業を絞り込む
- 02指定企業の登記変更を追跡
- 03入札や供給業者登録を確認
- 04ライセンス、LEI、研究案件を調べる
MCP 対応
同じ6つのデータソースをMCPサーバー経由でも提供し、watch以外の各コマンドに対応する9つのツールを備えています。ツールは行データ、件数、説明を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y swissco-mcpZEFIX_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| lei | boolean | いいえ | LEI と、この企業を連結する事業体を追加します。リクエストを3回消費します。 |
| uid | string | はい | 任意の句読点形式のスイス UID:CHE-444.420.929、CHE444420929、または CH-ID。 |
| finma_licence | boolean | いいえ | FINMA のライセンスタイプと監督カテゴリーを追加します。キャッシュが空の場合、ダウンロードを2回行います。 |
詳細
swissco
シェルからスイス企業のデータを利用できます。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-parser | Zefix:LINDAS SPARQL、PublicREST、UID検証 |
shab-parser | SHAB:検出、取得、解析、11種類のイベント分類 |
どちらもMITライセンスで、このプロジェクトと並行してメンテナンスされています。simap、FINMA、GLEIF、ARAMISにはクライアントがないため、swissco はこの4つに独自のクライアントを備えています。
リストの監視にとどまらない活用
cronから実行する swissco watch は、Prospex が販売するサービスの無料版です。Prospexは登録簿全体を継続的に監視し、採用、資金調達、入札、ウェブ上のシグナルと照合します。これには、このツールが意図的に扱わないsimapの落札情報も含まれます。そして、そうした変化のうち、電話をかける価値があるものを知らせます。cronジョブとUIDリストで事足りるなら、このツールだけで十分です。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。