Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted 1 min ago
teppi

Server definition

Hash
sha256:6a62d688281683ae73e79d8ee92b86e91acd1952b32f8ee78e788e45f29845e5
What it is
What a remote MCP server returned when asked what it offers: 43 tools

The blob, as servednamed by its sha256

{ "instructions": "You are connected to Compabase MCP without an account key. Call request_signup with the user's email, tell them to click the Compabase link, then poll check_signup. When status is ready, save mcp_key to the user's MCP config and ask them to reload this server. Do not ask the user to generate an MCP key in the portal. list_plans shows pricing. Data tools require a key after sign-up.", "tools": [ { "description": "Add a company to the user's watchlist. Identify by KRS (10-digit) or NIP (10-digit). Supports both KRS companies and CEIDG sole proprietorships (via NIP).", "inputSchema": { "properties": { "krs": { "description": "KRS registry number (10 digits, zero-padded).", "type": "string" }, "nip": { "description": "NIP tax number (10 digits). Used for CEIDG if no KRS match.", "type": "string" } }, "type": "object" }, "name": "add_to_watchlist", "outputSchema": null }, { "description": "Add multiple companies to watchlist in one call. Provide an array of KRS/NIP identifiers (max 500). Resolves identifiers to companies, skips duplicates, respects plan limits.", "inputSchema": { "properties": { "identifiers": { "description": "Array of KRS numbers (10 digits) or NIP numbers (10 digits).", "items": { "type": "string" }, "type": "array" } }, "required": [ "identifiers" ], "type": "object" }, "name": "add_watchlist_batch", "outputSchema": null }, { "description": "Poll a request_signup session. When the user has confirmed email, returns mcp_key once and cursor_mcp_json to write to MCP config. Call every 3 seconds until status is ready, expired, or already_delivered. No auth required.", "inputSchema": { "properties": { "client": { "description": "Optional client hint for the key name.", "enum": [ "cursor", "claude", "vscode", "other" ], "type": "string" }, "setup_id": { "description": "setup_id from request_signup.", "type": "string" } }, "required": [ "setup_id" ], "type": "object" }, "name": "check_signup", "outputSchema": null }, { "description": "Count KRS companies matching given filters. Returns a single number — no company list. Does not count JDG in this tool (full CEIDG is in Compabase; listing is RODO-gated). Sparse or zero counts in JDG-dominated PKDs include a `hint`.", "inputSchema": { "properties": { "all_pkd": { "description": "Match any PKD code in the company's activity list (not just primary).", "type": "string" }, "capital_max": { "description": "Maximum share capital in PLN.", "type": "number" }, "capital_min": { "description": "Minimum share capital in PLN.", "type": "number" }, "city": { "description": "City name — KRS uses uppercase.", "type": "string" }, "county": { "description": "County / powiat (lowercase).", "type": "string" }, "ebitda_max": { "description": "Maximum EBITDA in PLN.", "type": "number" }, "ebitda_min": { "description": "Minimum EBITDA in PLN.", "type": "number" }, "estimated_value_max": { "description": "Maximum Ohlson estimated equity value in PLN.", "type": "number" }, "estimated_value_min": { "description": "Minimum Ohlson estimated equity value in PLN.", "type": "number" }, "has_email": { "description": "true = only companies with email on record. Omit otherwise.", "type": "boolean" }, "has_website": { "description": "true = only companies with website on record. Omit otherwise.", "type": "boolean" }, "is_active": { "description": "true = active only, false = closed only. Omit for all.", "type": "boolean" }, "krs": { "description": "KRS registry number.", "type": "string" }, "legal_form": { "description": "Legal form fragment.", "type": "string" }, "name": { "description": "Company name fragment (case-insensitive). Matches display name and full KRS name; legal-form suffixes like 'sp. z o.o.' are ignored.", "type": "string" }, "nip": { "description": "NIP tax number.", "type": "string" }, "pkd": { "description": "Primary PKD code prefix, e.g. '46.90.Z' or '46'.", "type": "string" }, "profit_max": { "description": "Maximum net profit in PLN.", "type": "number" }, "profit_min": { "description": "Minimum net profit in PLN.", "type": "number" }, "profit_operating_max": { "description": "Maximum operating profit in PLN.", "type": "number" }, "profit_operating_min": { "description": "Minimum operating profit in PLN.", "type": "number" }, "region": { "description": "Voivodeship (lowercase).", "type": "string" }, "revenue_max": { "description": "Maximum total revenue in PLN.", "type": "number" }, "revenue_min": { "description": "Minimum total revenue in PLN.", "type": "number" }, "total_assets_max": { "description": "Maximum total assets in PLN.", "type": "number" }, "total_assets_min": { "description": "Minimum total assets in PLN.", "type": "number" }, "year": { "description": "Filter to companies whose latest financial_period_to falls within this calendar year. Use only for sector/ranking browse — omit when looking up a company by name, KRS, or NIP.", "type": "integer" } }, "type": "object" }, "name": "count_companies", "outputSchema": null }, { "description": "Create a new REST API key (cb_…). The raw key is returned once and cannot be retrieved later.", "inputSchema": { "properties": { "name": { "description": "Human-readable label for the key (max 100 chars).", "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "create_api_key", "outputSchema": null }, { "description": "Create a new MCP key (mcpk_…). The raw key is returned once and cannot be retrieved later.", "inputSchema": { "properties": { "name": { "description": "Human-readable label for the key (max 100 chars).", "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "create_mcp_key", "outputSchema": null }, { "description": "Revoke (deactivate) a REST API key by its ID. The key stops working immediately.", "inputSchema": { "properties": { "key_id": { "description": "UUID of the API key to revoke (from list_api_keys).", "type": "string" } }, "required": [ "key_id" ], "type": "object" }, "name": "delete_api_key", "outputSchema": null }, { "description": "Remove a configured BYOK provider key. After removal, the platform falls back to its own model access.", "inputSchema": { "properties": { "provider": { "description": "Provider to remove key for.", "enum": [ "openai", "claude", "gemini" ], "type": "string" } }, "required": [ "provider" ], "type": "object" }, "name": "delete_byok_key", "outputSchema": null }, { "description": "Revoke (deactivate) an MCP key by its ID. Cannot revoke the key currently in use. The key stops working immediately.", "inputSchema": { "properties": { "key_id": { "description": "UUID of the MCP key to revoke (from list_mcp_keys).", "type": "string" } }, "required": [ "key_id" ], "type": "object" }, "name": "delete_mcp_key", "outputSchema": null }, { "description": "Execute a read-only SQL SELECT query against the Compabase database. Use when dedicated tools are not enough (aggregations, joins, custom analysis).", "inputSchema": { "properties": { "query": { "description": "A read-only SQL SELECT or WITH…SELECT statement.", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "execute_sql", "outputSchema": null }, { "description": "Bulk file export of companies matching filters (CSV / XLSX / JSON). Up to 500 rows per call. Default `fields=contacts_only`: name, NIP, KRS, city, email, phone, website — small enough to use in-chat. `fields=summary` adds location, PKD, latest revenue/profit. `fields=full` is the complete dump (change history, rankings, people, enrichments, CSV twins) and often exceeds MCP client limits. Consumes export quota only after the file is built successfully. For a short list of emails after search_companies, use search with fields=contacts_only instead.", "inputSchema": { "properties": { "all_pkd": { "description": "Match any PKD code in the company's activity list (not just primary).", "type": "string" }, "city": { "description": "City name.", "type": "string" }, "county": { "description": "County / powiat (lowercase). Same filter as search_companies / count_companies.", "type": "string" }, "fields": { "description": "Payload size. Default contacts_only (name, NIP, KRS, city, email, phone, website). summary adds county/region, PKD, latest revenue/profit. full is the complete profile dump — often too large for MCP clients; use only when asked for the full file.", "enum": [ "contacts_only", "summary", "full" ], "type": "string" }, "format": { "description": "Export format (default: csv). Column set follows `fields` (contacts_only by default).", "enum": [ "csv", "xlsx", "json" ], "type": "string" }, "is_active": { "description": "true = active companies only.", "type": "boolean" }, "krs": { "description": "KRS registry number (exports that one company).", "type": "string" }, "limit": { "description": "Max rows to export (default: 50, max: 500).", "maximum": 500, "minimum": 1, "type": "integer" }, "locale": { "description": "Column/label language (default: en).", "enum": [ "en", "pl", "de" ], "type": "string" }, "name": { "description": "Company name fragment (case-insensitive).", "type": "string" }, "nip": { "description": "NIP tax number (exports matching companies).", "type": "string" }, "pkd": { "description": "Primary PKD code prefix, e.g. '80.10', '80.10.Z', or '80' (same prefix matching as search_companies).", "type": "string" }, "region": { "description": "Voivodeship (e.g. mazowieckie).", "type": "string" }, "revenue_max": { "description": "Maximum total revenue.", "type": "number" }, "revenue_min": { "description": "Minimum total revenue.", "type": "number" } }, "type": "object" }, "name": "export_companies", "outputSchema": null }, { "description": "List configured Bring-Your-Own-Key (BYOK) provider keys status. Shows which providers (openai, claude, gemini) have keys configured, with prefix and last-used date. Never returns the actual key.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_byok_keys", "outputSchema": null }, { "description": "Get company registry profile and headline financials for one latest filed period (`financials.period_to` / `financial_period_to`): revenue, profit, costs, assets, estimated_value (Ohlson/RIM equity estimate), PKD, address, plus contacts when on record. All money fields in this response are that same period — there is no nested summary from a different year. NIP lookup also returns a CEIDG/JDG firm when it has a public contact email (RODO). Does NOT include balance-sheet line items (cash, receivables, inventories). For those or earlier years, use get_financials.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number (10 digits, zero-padded).", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown (legal-form suffix optional).", "type": "string" }, "nip": { "description": "NIP tax number (10 digits, dashes optional).", "type": "string" } }, "type": "object" }, "name": "get_company", "outputSchema": null }, { "description": "Get full text of the company's articles of association or statute (umowa spółki / statut) from RAR (Repozytorium Akt Rejestrowych). Use when the user asks about: share transfer consent, preemption rights, non-compete clauses, company duration, voting rights, special share classes, representation rules from the deed, or any clause in the founding document. Returns doc metadata + full extracted text. KRS companies only.", "inputSchema": { "properties": { "doc_id": { "description": "Optional: specific rar_doc_id. Omit for the latest articles / statute.", "type": "string" }, "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP — used to resolve KRS when needed.", "type": "string" } }, "type": "object" }, "name": "get_company_articles", "outputSchema": null }, { "description": "Get CRBR beneficial owners for a KRS company. All names are returned (same as zarząd / wspólnicy). PESEL is never included (birth_year only). JDG are not in CRBR.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number (required path for CRBR).", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP — used to resolve KRS when needed.", "type": "string" } }, "type": "object" }, "name": "get_company_beneficiaries", "outputSchema": null }, { "description": "Get Court and Commercial Gazette (MSiG) notices for one company. Matched by KRS or NIP (creditor calls, dissolution, mergers, liquidation).", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP (CEIDG / when KRS unknown).", "type": "string" } }, "type": "object" }, "name": "get_company_court_gazette", "outputSchema": null }, { "description": "Get KRZ insolvency / restructuring proceedings. KRS companies via company_krz; sole proprietors via CEIDG KRZ by NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP (CEIDG / when KRS unknown).", "type": "string" } }, "type": "object" }, "name": "get_company_debt_registry", "outputSchema": null }, { "description": "Get URE energy concessions for a company — full list of electricity, gas, heat, and liquid fuels, with validity dates and pending applications. Keyed by NIP. Identify company by name, KRS, or NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number (preferred for URE).", "type": "string" } }, "type": "object" }, "name": "get_company_energy_licenses", "outputSchema": null }, { "description": "Get European Funds (Fundusze Europejskie) projects for a company — official MFiPR lists, EU co-financing, programme and dates. Keyed by NIP. Identify company by name, KRS, or NIP. Cohesion/shared-management funds; not TED procurement, not FTS Commission grants, and not SUDOP state aid.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number (preferred for FE).", "type": "string" } }, "type": "object" }, "name": "get_company_eu_funds", "outputSchema": null }, { "description": "Get TED EU-threshold public procurement — full awards as contractor and notices as buyer. Keyed by NIP. Identify company by name, KRS, or NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number (preferred for TED).", "type": "string" } }, "type": "object" }, "name": "get_company_eu_tenders", "outputSchema": null }, { "description": "Get people associated with a company — management board, supervisory board, shareholders, proxies. Returns display names, role labels, and relationship types (management, supervisory, ownership, procuration). Identify by name, KRS, or NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown (legal-form suffix optional).", "type": "string" }, "nip": { "description": "NIP tax number.", "type": "string" }, "relationship_type": { "description": "Filter: management, supervisory (rada nadzorcza), ownership, procuration. Omit for all.", "type": "string" } }, "type": "object" }, "name": "get_company_people", "outputSchema": null }, { "description": "Get European Commission FTS awards for a company — Horizon, LIFE, Erasmus and other direct/indirect-management grants. Keyed by NIP (VAT). Identify by name, KRS, or NIP. Not cohesion funds (get_company_fe) and not TED procurement.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number (preferred for FTS).", "type": "string" } }, "type": "object" }, "name": "get_company_procurement", "outputSchema": null }, { "description": "Get SUDOP public aid / grants for a company — full case list with amounts, grantor, measure, purpose. Keyed by NIP. Identify company by name, KRS, or NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number (preferred for SUDOP).", "type": "string" } }, "type": "object" }, "name": "get_company_public_aid", "outputSchema": null }, { "description": "Get BZP public procurement data — full awards as contractor and notices as buyer, with award values. Keyed by NIP. Identify company by name, KRS, or NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number (preferred for BZP).", "type": "string" } }, "type": "object" }, "name": "get_company_public_tenders", "outputSchema": null }, { "description": "Get a company's revenue rank positions within its industry (PKD), region (voivodeship), and all of Poland. Returns rows from company_financial_rankings — one row per scope (pkd_full, pkd_division, pkd_section, region, country). Use for questions like: where does company X rank in Poland / its industry / its region?", "inputSchema": { "properties": { "krs": { "description": "KRS registry number (10 digits, zero-padded).", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number (10 digits, dashes optional).", "type": "string" }, "scope_type": { "description": "Optional. Filter to a single scope. Omit to get all scopes.", "enum": [ "pkd_full", "pkd_division", "pkd_section", "region", "country" ], "type": "string" } }, "type": "object" }, "name": "get_company_rankings", "outputSchema": null }, { "description": "Official MSWiA sanctions listing for one company. Returns measures and legal grounds when the company is listed; null when it is not. Matched by KRS, NIP, or REGON. The same payload is included on get_company as sanctions.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number.", "type": "string" } }, "type": "object" }, "name": "get_company_sanctions", "outputSchema": null }, { "description": "Get Warsaw Stock Exchange listing for a company — ticker, ISIN, market (GPW main / NewConnect / GlobalConnect), last close and change, market cap, shares outstanding, TTM EPS, TTM P/E (falls back to last annual filing), last quarterly results, next earnings date, dividend per share and yield. Quotes delayed ~15 minutes, in PLN. Snapshot plus a few recent daily bars — not full OHLCV history. Keyed by NIP. Identify company by name, KRS, or NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number (preferred for GPW).", "type": "string" } }, "type": "object" }, "name": "get_company_stock_market", "outputSchema": null }, { "description": "Get BDO waste and packaging register data — registration number, EUP site count, activity flags, and headquarters decisions with issue and validity dates. Keyed by NIP. Identify company by name, KRS, or NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown.", "type": "string" }, "nip": { "description": "NIP tax number (preferred for BDO).", "type": "string" } }, "type": "object" }, "name": "get_company_waste_registry", "outputSchema": null }, { "description": "Get precomputed aggregate financial statistics for a sector, region, PKD branch, or country. Returns median, p25/p75/p90, winsorized mean, mean, total, n_companies, min/max. Use for questions like: what is the median revenue / average profit / assets in industry X or region Y? Prefer median or winsor_mean over mean. cost_wages is PLN-only.", "inputSchema": { "properties": { "currency": { "description": "Currency (default: PLN). cost_wages is PLN-only.", "enum": [ "PLN", "EUR", "USD" ], "type": "string" }, "dimension_key": { "description": "Key for the dimension, e.g. 'PL', 'G', '46', '46.90.Z', 'mazowieckie'. Prefix match applied.", "type": "string" }, "dimension_type": { "description": "Granularity: 'country'=Poland; 'pkd_section'=A–U; 'pkd_division'=2-digit; 'pkd_full'=full code; 'region'=voivodeship; etc.", "enum": [ "country", "pkd_section", "pkd_division", "pkd_class", "pkd_full", "region", "county", "city" ], "type": "string" }, "metric": { "description": "Financial metric. Omit to return all metrics.", "enum": [ "revenue_total", "profit_net", "total_assets", "cost_wages" ], "type": "string" } }, "type": "object" }, "name": "get_financial_stats", "outputSchema": null }, { "description": "Get full financial statement metrics per fiscal period — all entity_financial_metrics columns. Includes cash_and_equivalents, inventories, receivables, liabilities, equity, cost breakdown, revenue lines. Identify company by name, KRS, or NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number.", "type": "string" }, "name": { "description": "Company name when KRS/NIP is unknown (legal-form suffix optional).", "type": "string" }, "nip": { "description": "NIP tax number.", "type": "string" }, "year_from": { "description": "Earliest fiscal year to include (e.g. 2019).", "type": "integer" }, "year_to": { "description": "Latest fiscal year to include (e.g. 2023).", "type": "integer" } }, "type": "object" }, "name": "get_financials", "outputSchema": null }, { "description": "Get the user's active billing plan details — plan name, price, status, limits, prepaid credit balance, and billing period reset date.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_plan", "outputSchema": null }, { "description": "Get current billing period usage and remaining quota — mcp_queries, api_requests, export_companies, ask_ai_credits, watchlist_companies. Includes limits and reset date.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_usage", "outputSchema": null }, { "description": "List all active REST API keys (cb_…) for the user's account. Returns id, name, key_prefix, created_at, last_used_at.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_api_keys", "outputSchema": null }, { "description": "List all active MCP keys (mcpk_…) for the user's account. Returns id, name, key_prefix, created_at, last_used_at.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_mcp_keys", "outputSchema": null }, { "description": "List Compabase billing plans and limits. No auth required. After sign-up, use upgrade_plan to get a Stripe Checkout URL.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_plans", "outputSchema": null }, { "description": "List companies on the user's watchlist with company data (name, KRS, NIP, revenue, city). Supports pagination via limit/offset.", "inputSchema": { "properties": { "limit": { "description": "Max results (default: 20, max: 100).", "maximum": 100, "minimum": 1, "type": "integer" }, "offset": { "description": "Pagination offset (default: 0).", "minimum": 0, "type": "integer" } }, "type": "object" }, "name": "list_watchlist", "outputSchema": null }, { "description": "Remove a company from the user's watchlist. Identify by KRS or NIP.", "inputSchema": { "properties": { "krs": { "description": "KRS registry number (10 digits, zero-padded).", "type": "string" }, "nip": { "description": "NIP tax number (10 digits).", "type": "string" } }, "type": "object" }, "name": "remove_from_watchlist", "outputSchema": null }, { "description": "Start Compabase account setup for an email. Sends a magic link. After the user clicks it, poll check_signup with the returned setup_id until status is ready — then you receive an MCP key automatically. Do not ask the user to generate a key in the portal. No auth required.", "inputSchema": { "properties": { "client": { "description": "AI client, used to label the generated MCP key.", "enum": [ "cursor", "claude", "vscode", "other" ], "type": "string" }, "email": { "description": "User email to create or sign in to a Compabase account.", "type": "string" }, "locale": { "description": "Email language (default en).", "enum": [ "en", "pl", "de" ], "type": "string" } }, "required": [ "email" ], "type": "object" }, "name": "request_signup", "outputSchema": null }, { "description": "Search and filter Polish KRS companies (spółki). Compabase also holds the full CEIDG/JDG register; this tool does not browse JDG — those without a public contact email are hidden because of RODO. Default `fields=summary` returns a compact row (name, NIP, KRS, location, PKD, latest financials, email/phone/website) — small enough for MCP clients. `fields=contacts_only` is name/NIP/KRS/city/email/phone/website only. `fields=full` returns every company_search column plus contacts and may exceed client size limits. Use for rankings, sector filters, city/county/region browsing, name search, or NIP/KRS lookup. When a PKD is mostly JDG, a sparse result includes a `hint` (full CEIDG is in the database; listing is RODO-gated). Do not call export_companies just to get a handful of emails or phones.", "inputSchema": { "properties": { "all_pkd": { "description": "Match any PKD code in the company's activity list (not just primary).", "type": "string" }, "capital_max": { "description": "Maximum share capital.", "type": "number" }, "capital_min": { "description": "Minimum share capital.", "type": "number" }, "city": { "description": "City name — KRS records use uppercase, e.g. 'WARSZAWA', 'POZNAŃ'.", "type": "string" }, "county": { "description": "County / powiat (lowercase).", "type": "string" }, "currency": { "description": "Currency for monetary filters. Default: pln.", "enum": [ "pln", "usd", "eur" ], "type": "string" }, "ebitda_max": { "description": "Maximum EBITDA.", "type": "number" }, "ebitda_min": { "description": "Minimum EBITDA.", "type": "number" }, "estimated_value_max": { "description": "Maximum Ohlson estimated equity value in PLN.", "type": "number" }, "estimated_value_min": { "description": "Minimum Ohlson estimated equity value in PLN.", "type": "number" }, "fields": { "description": "Response size. Default summary (name, NIP, KRS, location, PKD, latest financials, email/phone/website). contacts_only: name, NIP, KRS, city, email, phone, website. full: every company_search column plus contacts — often too large for MCP clients.", "enum": [ "contacts_only", "summary", "full" ], "type": "string" }, "has_email": { "description": "true = only companies with email on record. Matching rows include contacts.email. Omit otherwise.", "type": "boolean" }, "has_website": { "description": "true = only companies with website on record. Matching rows include contacts.website. Omit otherwise.", "type": "boolean" }, "is_active": { "description": "true = active only, false = closed only. Omit for all.", "type": "boolean" }, "krs": { "description": "KRS registry number (10 digits, zero-padded, e.g. '0000028860').", "type": "string" }, "legal_form": { "description": "Legal form fragment, e.g. 'spółka z o.o.' or 'akcyjna'.", "type": "string" }, "limit": { "description": "Max results (default: 10, max: 50).", "maximum": 50, "minimum": 1, "type": "integer" }, "name": { "description": "Company name fragment (case-insensitive). Matches display name and full KRS name; legal-form suffixes like 'sp. z o.o.' are ignored.", "type": "string" }, "nip": { "description": "NIP tax number (10 digits, no dashes).", "type": "string" }, "pkd": { "description": "Primary PKD code prefix, e.g. '46.90.Z' or '46'.", "type": "string" }, "postal_code": { "description": "Postal code prefix, e.g. '00-9' or '61-'.", "type": "string" }, "profit_max": { "description": "Maximum net profit.", "type": "number" }, "profit_min": { "description": "Minimum net profit.", "type": "number" }, "profit_operating_max": { "description": "Maximum operating profit (PLN). Omit if unused.", "type": "number" }, "profit_operating_min": { "description": "Minimum operating profit (PLN). Negative allowed. Omit if unused.", "type": "number" }, "region": { "description": "Voivodeship (lowercase), e.g. 'mazowieckie', 'wielkopolskie'.", "type": "string" }, "revenue_max": { "description": "Maximum total revenue.", "type": "number" }, "revenue_min": { "description": "Minimum total revenue.", "type": "number" }, "sort_by": { "description": "Sort field (default: revenue_total).", "enum": [ "revenue_total", "profit_net", "total_assets", "profit_operating", "ebitda", "capital_total", "estimated_value" ], "type": "string" }, "sort_dir": { "description": "Sort direction (default: desc).", "enum": [ "asc", "desc" ], "type": "string" }, "total_assets_max": { "description": "Maximum total assets.", "type": "number" }, "total_assets_min": { "description": "Minimum total assets.", "type": "number" }, "year": { "description": "Filter to companies whose latest financial_period_to falls within this calendar year (e.g. 2024). Use only for sector/ranking browse — omit when looking up a company by name, KRS, or NIP.", "type": "integer" } }, "type": "object" }, "name": "search_companies", "outputSchema": null }, { "description": "Add or update a BYOK provider API key. Key is encrypted at rest (AES-256-GCM). Requires paid plan (Pro+). Providers: openai (sk-…), claude (sk-ant-…), gemini (AIza… or AQ.…).", "inputSchema": { "properties": { "api_key": { "description": "Raw API key for the provider.", "type": "string" }, "provider": { "description": "AI provider name.", "enum": [ "openai", "claude", "gemini" ], "type": "string" } }, "required": [ "provider", "api_key" ], "type": "object" }, "name": "set_byok_key", "outputSchema": null }, { "description": "Get or update email notification preferences for watchlist changes. When email_notifications=true, you will receive an email whenever a watched company's data changes (registry updates, new financial statements, deregistration, etc.).", "inputSchema": { "properties": { "action": { "description": "'get' returns current preferences, 'set' updates them.", "enum": [ "get", "set" ], "type": "string" }, "email_notifications": { "description": "Enable/disable email notifications for watchlist changes (required for 'set').", "type": "boolean" }, "notification_email": { "description": "Override email address for notifications. Omit to use account email.", "type": "string" } }, "required": [ "action" ], "type": "object" }, "name": "set_notification_preferences", "outputSchema": null }, { "description": "Configure, view, or remove webhook for watchlist event notifications. Events: watchlist.company_changed, watchlist.financials_updated, watchlist.company_removed_from_registry.", "inputSchema": { "properties": { "action": { "description": "Action: 'get' to view config, 'set' to configure, 'delete' to remove.", "enum": [ "get", "set", "delete" ], "type": "string" }, "events": { "description": "Event types to subscribe to. Defaults to all available events.", "items": { "type": "string" }, "type": "array" }, "url": { "description": "HTTPS webhook endpoint URL (required for action=set).", "type": "string" } }, "required": [ "action" ], "type": "object" }, "name": "set_webhook_url", "outputSchema": null }, { "description": "Create a Stripe Checkout session for a plan upgrade. Shows current plan and available upgrades. Pass plan_id ('pro' or 'scale') to get a checkout_url on checkout.stripe.com — open it in the browser for the user to pay. Do not send the user to the marketing pricing page.", "inputSchema": { "properties": { "currency": { "description": "Checkout currency. Defaults from locale (pl → PLN, otherwise USD).", "enum": [ "PLN", "USD", "EUR" ], "type": "string" }, "locale": { "description": "UI locale for the success/cancel return URLs (default en).", "enum": [ "en", "pl", "de" ], "type": "string" }, "plan_id": { "description": "Target plan ID. Required to create a Stripe Checkout URL.", "enum": [ "pro", "scale" ], "type": "string" } }, "type": "object" }, "name": "upgrade_plan", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:6a62d688281683ae73e79d8ee92b86e91acd1952b32f8ee78e788e45f29845e5 | sha256sum