# Bizfile MCP

> Company intelligence via UK Companies House and risk screening across 386 risk data sources.

- name: io.github.OjasKord/bizfile-mcp
- version: 4.10.47
- connection class: R0 (autonomous)
- trust: 90/100
- quality: 71/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.OjasKord%2Fbizfile-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.OjasKord%2Fbizfile-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "bizfile-mcp": {
      "type": "http",
      "url": "https://bizfile-mcp-production.up.railway.app"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 65
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% ~updated-118d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 71/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2024-11-05; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 64 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: validate_counterparty (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); screen_counterparty (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); validate_counterparty_lite (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
- pass `tools.token_cost`: about 1,113 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: 50 (weight 15)

- warn `deps.known_vulns`: 1 advisory of lower severity or without a published fix: GHSA-5r4p-p66f-jhc7 in hono@4.13.9 (indirect, fixed in 4.13.11)
- fail `deps.mcp_sdk_version`: @modelcontextprotocol/sdk 1.30.1 has 3 known advisories (GHSA-22jm-h49p-29qw, GHSA-6prh-2h8m-c8cw, GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/sdk to 1.32.0 or later
- pass `deps.resolvable`: bizfile-mcp@4.10.47 resolved: 134 packages

- tools: 3, about 1,113 tokens to load them all
- tool set hash: 12a4901a482d7c931e8999a8a641e17e
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.OjasKord/bizfile-mcp.svg)](https://protogrid.dev/servers/io.github.OjasKord/bizfile-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Dependencies

- npm bizfile-mcp@4.10.47: resolved, 133 dependencies, MCP SDK @modelcontextprotocol/sdk 1.30.1
  - GHSA-22jm-h49p-29qw (high) in `` @modelcontextprotocol/sdk@1.30.1 ``, direct, fixed in `` 1.32.0 ``, advisory summary: "MCP TypeScript SDK: Experimental tasks were not tied to the session that created them" https://osv.dev/vulnerability/GHSA-22jm-h49p-29qw
  - GHSA-6qxp-vccf-f47h (high) in `` @modelcontextprotocol/sdk@1.30.1 ``, direct, fixed in `` 1.31.0 ``, advisory summary: "MCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server" https://osv.dev/vulnerability/GHSA-6qxp-vccf-f47h
  - GHSA-6prh-2h8m-c8cw (moderate) in `` @modelcontextprotocol/sdk@1.30.1 ``, direct, fixed in `` 1.32.0 ``, advisory summary: "MCP TypeScript client SDK: HTTP client transports and OAuth requests followed cross-origin redirects and re-sent custom headers and request bodies" https://osv.dev/vulnerability/GHSA-6prh-2h8m-c8cw
  - GHSA-5r4p-p66f-jhc7 (moderate) in `` hono@4.13.9 ``, indirect, fixed in `` 4.13.11 ``, advisory summary: "Hono: \`serveStatic\` decodes the request path a second time, leading to bypass of middleware on static paths" https://osv.dev/vulnerability/GHSA-5r4p-p66f-jhc7

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://bizfile-mcp-production.up.railway.app (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

- npm bizfile-mcp@4.10.47 secrets: ANTHROPIC_API_KEY

## Tools (3)

- `screen_counterparty`: Checks counterparty sanctions status. Call this BEFORE invoking any agentic payment rail -- immediately after validate_counterparty, passing the directors_and_officers array from that response. Use this when validate_counterparty has cleared the entity but you still need to confirm the company and all its officers are not on any global sanctions list, and when completing e-invoicing supplier onboarding under mandates requiring sanctions clearance: Belgium B2B (active Jan 2026), France B2B (Sep 2026), Poland KSeF (Feb 2026), UK Making Tax Digital (ongoing), AU GST digital reporting (ongoing). Screens the company and all named officers simultaneously against 386 risk data sources -- UN, EU, OFAC, UK HMT, MAS Singapore -- via OpenSanctions (api.opensanctions.org), updated daily. A payment to a sanctioned entity executed via Stripe MPP, Alipay AI Pay, or Shopify UCP triggers criminal liability for the operator -- not financial loss, criminal liability -- regardless of intent. Returns machine-readable PROCEED / ENHANCED_DUE_DILIGENCE / BLOCK verdict per entity, no further analysis needed.
- `validate_counterparty`: Validates counterparty legitimacy. Call this BEFORE invoking any agentic payment rail -- at the moment your agent holds a counterparty identifier and Stripe MPP, Alipay AI Pay, or Shopify UCP has not yet been called, and BEFORE onboarding any EU/UK/AU supplier into an e-invoicing workflow: Belgium B2B (active Jan 2026), France B2B (Sep 2026), Poland KSeF (Feb 2026), UK Making Tax Digital (ongoing), AU GST digital reporting (ongoing). Use this when your agent is about to initiate a new supplier payment or contract and needs to confirm the counterparty is a real, active, non-fraudulent entity. Validates against UK Companies House (api.company-information.service.gov.uk) -- registry status, officers, and filing history -- combined with AI risk scoring. Returns PROCEED / ENHANCED_DUE_DILIGENCE / BLOCK verdict with AI risk score 0-100. A payment that executes to a dissolved or fraudulent entity via an agentic rail settles instantly with no recovery path -- there is no chargeback on an AI-authorised B2B transfer; an e-invoice submitted under a mandate with an unverified supplier registration is rejected at the mandate platform, halting the entire payables run. Pass the directors_and_officers array from this response directly to screen_counterparty. One call, machine-ready verdict, no further analysis needed.
- `validate_counterparty_lite`: Validates counterparty registry status. Call this BEFORE pre-screening a batch payee list -- at the moment your agent holds a list of counterparty identifiers and the agentic payment workflow has not yet begun. Use this when your agent is processing a high-volume payee batch and needs a fast registry check to filter dissolved or unregistered entities before full validation. Returns registry status in under 1 second -- no AI, no officers, no risk score. A dissolved entity in a batch payment run via Stripe MPP, Alipay AI Pay, or Shopify UCP creates irrecoverable exposure across every settled transfer before the error surfaces. Use to filter to active registered entities, then call validate_counterparty on each shortlisted result before invoking the payment rail. Returns machine-readable status field -- proceed to validate_counterparty on any non-ACTIVE result.
