io.github.juliusgerman/entyrix-mcp
io.github.juliusgerman/entyrix-mcpjuliusgermanstreamable-httpv0.2.1Scanned
KYB data from 23 European business registries — company briefs, financials, ownership, AML screening
13 tools: 4 change things and 9 only read.
- Reads private data · 0
- Reads text others write · 1
- Can send data out · 0
- 1 finding
Tools listed without sign-in. Remote posture
Anlyon alternative
4 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
13 tools
Changes things 4Claude Code: ask
check_complianceLightweight public compliance snapshot for one company (works without an account): sanctions screening, insolvency, debtor registers, VAT reliability.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Lightweight public compliance snapshot for one company (works without an account): sanctions screening, insolvency, debtor registers, VAT reliability. For the full KYB picture use kyb_check. A null field means WITHHELD or not measured — it does NOT mean clean.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Public compliance snapshot
company_briefCompact, deterministic Markdown brief of one company (≤12 KB): identity, address, industry, latest financials, credit score and recommended limit, cyber score, risk flags (insolven…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Compact, deterministic Markdown brief of one company (≤12 KB): identity, address, industry, latest financials, credit score and recommended limit, cyber score, risk flags (insolvency, tax debt, sanctions), NIS2 status and key people where licensed. The best single call for 'tell me about company X'. Accepts every registry identifier shape we carry (SK/CZ IČO, AT Firmenbuch e.g. '033209m', PL REGON, FR SIREN, …); pass `country` for anything that is not an 8-digit IČO. Every fact comes from the database — missing data is marked, never invented.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Company brief
kyb_checkOne-call Know-Your-Business summary for one company: registry status, insolvency, liquidation, sanctions screening, debarment, tax/social/health debts, VAT reliability and the over…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it One-call Know-Your-Business summary for one company: registry status, insolvency, liquidation, sanctions screening, debarment, tax/social/health debts, VAT reliability and the overall risk verdict. Use before onboarding a customer or supplier. A null field means WITHHELD or NOT MEASURED — it does NOT mean clean; say so when you report it.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: KYB / AML summary
screen_companiesRun kyb_check on up to 25 companies at once and get one compact row per company (status, insolvency, sanctions, debts, verdict).1 finding
Why it is in this group
- The description's first verb is "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "screen_companies" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.
Description, as the server wrote it Run kyb_check on up to 25 companies at once and get one compact row per company (status, insolvency, sanctions, debts, verdict). Use for supplier lists or portfolios. Each company counts as one API request against your rate limit. Requires an authenticated account.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Screen companies
Only reads 9Show 9 read-only tools
advanced_searchStructured company search for portfolio building and market sizing — NOT for finding one known company (use search_companies).No findings
Why it is in this group
- The name "advanced_search" says "search": a word for reading.
Description, as the server wrote it Structured company search for portfolio building and market sizing — NOT for finding one known company (use search_companies). Filters: country, NACE prefix, status, region, turnover range (EUR), employee range, founding date range, VAT payer, tax debt, sanctions. Results are paged (limit + offset); the response says how many matched. Only the listed arguments exist — anything else is rejected, never silently ignored.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Filter companies
find_suppliersPublic procurement contracts this company is party to (SK CRZ + CZ Registr smluv), newest first, paged.No findings
Why it is in this group
- The name "find_suppliers" says "find": a word for reading.
Description, as the server wrote it Public procurement contracts this company is party to (SK CRZ + CZ Registr smluv), newest first, paged. HONEST SCOPE: this is business-to-government procurement, NOT a commercial supply chain — do not present it as one.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Public-sector contracts
get_company_detailsFull record for one company: identity, address, legal form, status flags, NACE, and the whole enrichment layer we hold (web, tech stack, NIS2, EU funds, LEI, HU de minimis state ai…Reads text others writeNo findings
Why it is in this group
- The name "get_company_details" says "get": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "web": it reads web pages, which anyone can write.
Description, as the server wrote it Full record for one company: identity, address, legal form, status flags, NACE, and the whole enrichment layer we hold (web, tech stack, NIS2, EU funds, LEI, HU de minimis state aid granted, HU public procurement from EKR, …). Large — prefer company_brief unless you need a specific field. Natural-person fields are gated and may be withheld; a withheld field is not the same as an empty one.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Full company record
get_company_networkCompanies connected to this one through shared officers or owners (one hop).No findings
Why it is in this group
- The name "get_company_network" says "get": a word for reading.
Description, as the server wrote it Companies connected to this one through shared officers or owners (one hop). Use for group structure and beneficial-ownership tracing. Person names are gated like everywhere else.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Company network
get_company_relationsDirect relations of one company — statutory officers, owners, parents, subsidiaries, M&A events — without traversing the wider graph.No findings
Why it is in this group
- The name "get_company_relations" says "get": a word for reading.
Description, as the server wrote it Direct relations of one company — statutory officers, owners, parents, subsidiaries, M&A events — without traversing the wider graph. `shareholders` are owners only; members of the supervisory board are in `supervisoryBoard`. SK M&A events: effectiveDate is the date stated by the register; when missing, derivedEffectiveDate may carry a date INFERRED from the absorbed firm's deregistration (effectiveDateSource: "derived") — present it as an estimate, never as a register fact.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Direct relations
get_financialsFiled financial statements of one company, one row per fiscal year (newest first), with revenue, profit, assets, equity, liabilities and year-over-year trend.No findings
Why it is in this group
- The name "get_financials" says "get": a word for reading.
Description, as the server wrote it Filed financial statements of one company, one row per fiscal year (newest first), with revenue, profit, assets, equity, liabilities and year-over-year trend. Amounts are EUR CENTS as integers (divide by 100 for euros). Use for trend and solvency questions; company_brief already carries the latest year.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Financial statements
list_rankingsA published ranking by its slug (e.g.No findings
Why it is in this group
- The name "list_rankings" says "list": a word for reading.
Description, as the server wrote it A published ranking by its slug (e.g. largest employers, top taxpayers). Call WITHOUT a key first to list the available slugs — inventing one returns an error.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Published rankings
lookup_companyResolve exactly one company by its national registry identifier in a given country.No findings
Why it is in this group
- The name "lookup_company" says "lookup": a word for reading.
Description, as the server wrote it Resolve exactly one company by its national registry identifier in a given country. Handles every identifier shape we carry (SK/CZ/EE IČO, AT Firmenbuch e.g. '187a', SI/LV registry numbers, …). Returns the core record: identity, address, legal form, status, NACE. For an LLM-ready summary prefer company_brief; for the full enrichment layer use get_company_details.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Look up company by registry ID
search_companiesFind companies by name (or name fragment) across the pan-European dataset.No findings
Why it is in this group
- The name "search_companies" says "search": a word for reading.
Description, as the server wrote it Find companies by name (or name fragment) across the pan-European dataset. Returns ranked candidates with registry identifier, country, legal form and status. Use this FIRST when you only know a name; then pass the identifier + country to lookup_company or company_brief. Do not use it to filter by industry or size — that is advanced_search.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Search companies by name
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write1
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 22, 2026, 15:01 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 4
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- not observed
- RFC 9728 protected resource metadata
- https://entyrix.com/.well-known/oauth-protected-resource/mcp/v1
- Authorization servers
- https://entyrix.com
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- yes
- Client ID metadata documents
- yes
- WarnThe whole server
The endpoint served tools/list without credentials, and the list has 4 tools that change things (4 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://entyrix.com/mcp/v1: tools/list returned 13 tools to an anonymous client, including company_brief (write), kyb_check (write), screen_companies (write), check_compliance (write)
Findings
Matches of fixed checks, with the text they matched.
- Warnscreen_companies
The server marks "screen_companies" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 0.2.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http entyrix https://entyrix.com/mcp/v1claude mcp add --transport http entyrix https://entyrix.com/mcp/v1Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__entyrix__search_companies",
"mcp__entyrix__lookup_company",
"mcp__entyrix__get_company_details",
"mcp__entyrix__get_financials",
"mcp__entyrix__get_company_network",
"mcp__entyrix__get_company_relations",
"mcp__entyrix__advanced_search",
"mcp__entyrix__find_suppliers",
"mcp__entyrix__list_rankings"
],
"ask": [
"mcp__entyrix__company_brief",
"mcp__entyrix__kyb_check",
"mcp__entyrix__screen_companies",
"mcp__entyrix__check_compliance"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as entyrix. Review it before you use it.
Capability tags behind 1 rule
- mcp__entyrix__get_company_details untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.github.juliusgerman/entyrix-mcp/verify?hash=600cf912c7b57c2f7080ba50a81fe31b18b816f040bcb475e37f112dec67c835" | jq -e '.changed == false'Pinned hash 600cf912c7b5, from Oct 21, 2026, 19:24 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.github.juliusgerman/entyrix-mcp/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.github.juliusgerman/entyrix-mcp)Source: MCP Registry · repository. Synced Oct 21, 2026, 18:37 UTC.