firmy.ai: Polish company and person registers (KRS, CEIDG) for AI agents
ai.firmy/mcpVersion 1.0.0Polish companies and people: KRS, CEIDG, financials, boards, VAT, sanctions. Free, no API key.
Status
Responds509 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:29 UTC
- Latency
- 509 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://firmy.ai/mcpResponds509 msNo sign-in
Claude Code
claude mcp add --transport http firmy https://firmy.ai/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: firmy
Remote MCP server URL: https://firmy.ai/mcpCursor
{
"mcpServers": {
"firmy": {
"url": "https://firmy.ai/mcp"
}
}
}VS Code
code --add-mcp '{"name":"firmy","type":"http","url":"https://firmy.ai/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
8 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
get_accountZwraca tryb, w jakim działasz (darmowy albo Pro), i czy jesteś zalogowany; w trybie darmowym także krótką instrukcję, jak korzystać z serwera. Tryb darmowy czyta tylko to, co serwis już zna (sekcja spoza pamięci wraca jako "missing" z AUTH_REQUIRED); "id" to KRS, NIP, REGON, adres firmy.ai albo "p-…" osoby; zacznij od search_companies, gdy nie masz identyfikatora. Użyj na początku rozmowy, żeby wiedzieć, czy sekcje spoza pamięci serwisu da się dociągnąć. Koszt: 0 operacji. Przykład: {}. | Not declared | Yes | Yes | Not declared |
get_companyTryb darmowy czyta tylko to, co serwis już zna (sekcja spoza pamięci wraca jako "missing" z AUTH_REQUIRED); "id" to KRS, NIP, REGON, adres firmy.ai albo "p-…" osoby; zacznij od search_companies, gdy nie masz identyfikatora. Zwraca profil firmy i sekcje z "include" (bez "include": profile, people, ownership, ai_scores, description) w jednym wywołaniu oraz mapę "available", która mówi, co jeszcze można dopytać (finanse, dokumenty, VAT, sankcje, przetargi i inne). Sekcje do wyboru: profile, people, ownership, subsidiaries, group_structure, sole_proprietor, financials, documents, beneficial_owners, vat, bankruptcy, sanctions, knf_warnings, tenders, public_aid, domain, ai_scores, description, job_offers, foundation_spending, reviews, similar. Użyj, gdy masz KRS, NIP, REGON albo adres strony firmy; gdy masz tylko nazwę, najpierw search_companies. Koszt w trybie Pro (operacje za sekcję, która chybiła w pamięci serwisu): profile 3, subsidiaries 1, sole_proprietor 1, financials 20, documents 1, beneficial_owners 5, vat 1, bankruptcy 4, public_aid 1, domain 1, description 1, job_offers 1, foundation_spending 20; w trybie darmowym 0, a sekcja spoza pamięci wraca jako "missing" z AUTH_REQUIRED. Przykład: {"id": "0000006865", "include": ["financials", "vat", "sanctions"]}. | No | No | No | Yes |
get_personZwraca profil osoby z KRS (funkcje w firmach, bez daty urodzenia) i sekcje z "include" (bez "include": profile, shareholdings, co_managers, sanctions, bio) w jednym wywołaniu oraz mapę "available". Sekcje do wyboru: profile, shareholdings, co_managers, beneficial_owner_in, sanctions, bio, namesakes. Użyj, gdy masz identyfikator osoby "p-…" z search_persons, z odpowiedzi get_company albo adres strony /osoba/…; gdy masz tylko imię i nazwisko, najpierw search_persons. Osoba, która sprzeciwiła się publikacji, odpowiada błędem GONE. Koszt w trybie Pro (operacje za sekcję, która chybiła w pamięci serwisu): profile 1, shareholdings 1, bio 1; w trybie darmowym 0, a sekcja spoza pamięci wraca jako "missing" z AUTH_REQUIRED. Przykład: {"id": "p-a4df0b6002743095015b98a43bddabc8", "include": ["shareholdings", "co_managers"]}. | No | No | No | Yes |
list_companiesZwraca stronę 100 firm z listy tak, jak ją pokazują listy na stronie: według miasta, działu PKD (dwie cyfry), formy prawnej albo litery początkowej nazwy (litera tylko z miastem). Użyj do przeglądania firm z jednego miasta, branży albo formy prawnej; gdy szukasz konkretnej firmy po nazwie, użyj search_companies. Koszt w trybie Pro: 0 operacji. Lista działu PKD czyta nocne fakty i bywa niedostępna, gdy jeszcze ich nie zbudowano. Przykład: {"pkd_division": "62", "city": "Kraków", "page": 2}. | Not declared | Yes | Yes | Not declared |
rank_companiesZwraca ranking firm według jednej miary: revenue (przychody), profit (zysk netto), growth (wzrost przychodów r/r), margin (marża netto), altman (wskaźnik Altmana Z) albo valuation (wycena AI), z wartością miary, opcjonalnie dla jednego miasta. Użyj do pytań „największe, najbardziej zyskowne, najszybciej rosnące firmy”; nie użyj do porównania dwóch konkretnych firm (wołaj dla nich get_company z sekcją financials). Koszt w trybie Pro: 0 operacji. Ranking obejmuje tylko firmy ze zbadanymi sprawozdaniami. Przykład: {"metric": "revenue", "city": "Gdańsk", "limit": 10}. | Not declared | Yes | Yes | Not declared |
refresh_companyOdświeża dane firmy: unieważnia pamięć podręczną, ładuje ją od nowa razem ze sprawozdaniami, zapisuje wskaźniki i zwraca pola, które się zmieniły; ta sama blokada 6 godzin na firmę co przycisk „Odśwież” na stronie. Użyj, gdy get_company zwraca dane wyraźnie nieaktualne i potrzebujesz nowszych; w innych wypadkach get_company wystarcza. Koszt w trybie Pro: 25 operacji; w trybie darmowym narzędzie odpowiada AUTH_REQUIRED, a z "estimate": true szacunkiem (0 operacji, "allowed": false). Przykład: {"id": "0000006865"}. | No | No | No | Yes |
search_companiesZwraca listę firm z KRS pasujących do nazwy, NIP-u, numeru KRS albo REGON-u: id (numer KRS), nazwę, NIP, REGON, miasto, formę prawną, status i adres strony. Użyj, gdy nie masz identyfikatora firmy albo chcesz zawęzić nazwę do miasta; gdy masz KRS lub NIP, wołaj od razu get_company. Koszt w trybie Pro: 0 operacji (wyszukiwarka KRS i baza, bez płatnych źródeł). Przykład: {"query": "CD Projekt", "city": "Warszawa"}. | Not declared | Yes | Yes | Not declared |
search_personsZwraca listę osób z KRS o podanym imieniu i nazwisku: publiczny identyfikator "p-…" (id), imiona, nazwisko, liczbę powiązań z firmami i adres strony. Użyj, gdy masz imię i nazwisko, a potrzebujesz identyfikatora osoby do get_person; imiennicy są rozróżniani przez liczbę powiązań, a ich profile przez get_person. Nie ma wyszukiwania po PESEL ani po dacie urodzenia. Koszt w trybie Pro: 0 operacji. Przykład: {"query": "Jan Kowalski"}. | Not declared | Yes | Yes | Not declared |
Details
- Registry status
- Active
- Published
- Nov 2, 2026
- Updated
- Nov 2, 2026
- Repository
- Not given
- Categories (suggested)
- Invoicing and accountingFinance and paymentsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared