# io.github.byteplant-devops/byteplant-mcp (pypi · byteplant-mcp)

An MCP server that provides Email, Phone and Address Validation Services from Byteplant

- Trust score: 76/100 (medium)
- Change this week: −5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- mcpb · `byteplant-mcp.mcpb`: 13/100, [markdown](https://verifymcp.io/servers/byteplant-devops-byteplant-mcp/byteplant-mcp-2.md), [page](https://verifymcp.io/servers/byteplant-devops-byteplant-mcp/byteplant-mcp-2)
- pypi · `byteplant-mcp`: 76/100 (this document), [markdown](https://verifymcp.io/servers/byteplant-devops-byteplant-mcp/byteplant-mcp.md), [page](https://verifymcp.io/servers/byteplant-devops-byteplant-mcp/byteplant-mcp)

## Channel facts

- Registry: `pypi`
- Package: `byteplant-mcp`
- Version: `1.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-04.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised build step with no custom scripting around it.
  - 1 of 32 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 35 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 58/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1304 tokens (~434/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 67/100
  - Stability observed for 20 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 95/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 83% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 3 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 3 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the io.github.byteplant-devops/byteplant-mcp server?

io.github.byteplant-devops/byteplant-mcp runs locally as a PyPI package, launched with uvx byteplant-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add byteplant-devops-byteplant-mcp -- uvx byteplant-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "byteplant-devops-byteplant-mcp": {
      "command": "uvx",
      "args": [
        "byteplant-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "byteplant-devops-byteplant-mcp": {
      "command": "uvx",
      "args": [
        "byteplant-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add byteplant-devops-byteplant-mcp -- uvx byteplant-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "byteplant-devops-byteplant-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "byteplant-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add byteplant-devops-byteplant-mcp --command uvx --arg byteplant-mcp
```

### Hermes

```yaml
mcp_servers:
  byteplant-devops-byteplant-mcp:
    command: "uvx"
    args: ["byteplant-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "byteplant-devops-byteplant-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "byteplant-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add byteplant-devops-byteplant-mcp -t stdio -c uvx -a byteplant-mcp
```

### Other

```json
{
  "mcpServers": {
    "byteplant-devops-byteplant-mcp": {
      "command": "uvx",
      "args": [
        "byteplant-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 76, −5)

- [functional] Stability: pass → 0.67

### 2026-10-29 (score 81, 0)

- [security] Stability: 0.97 → pass

### 2026-10-28 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-22 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-20 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-18 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (3)

### `validate_email` (~246 tokens)

Validate an email address

Validate an email address and return info about it.

Result fields:
\- status (int): API result code. 401, 118 and 119 status codes indicate API errors:
  401 -> info: 'Email address missing'
  118 -> info: 'Rate Limit Exceeded'
  119 -> info: 'API Key Invalid or Depleted'
\- info (string): short status description
\- details (string): full status description
\- freemail (boolean): indicates freemail addresses (Gmail, Yahoo, Outlook/Hotmail/Live, AOL, ...) [true | false]
\- ratelimit_remain (int): number of API requests remaining before the API rate limit is reached (the default API rate limit allows 100 API requests in 300s)
\- ratelimit_seconds (int): number of seconds remaining in the current rate limit interval
\- category, status_description: added from the numeric status code (category is VALID, SUSPECT, INVALID, INDETERMINATE or UNKNOWN)

Input parameters:

- `email` (string, required): The email address to validate
- `timeout` (integer): Timeout in seconds (min 5, max 300)

### `validate_phone` (~400 tokens)

Validate a phone number

Validate a phone number and return its status, line type, carrier codes, location and national/international formats.

Result fields:
\- status (string): VALID_CONFIRMED, VALID_UNCONFIRMED, INVALID, DELAYED, RATE_LIMIT_EXCEEDED, API_KEY_INVALID_OR_DEPLETED
\- linetype (string): FIXED_LINE, MOBILE, VOIP, TOLL_FREE, PREMIUM_RATE, SHARED_COST, PERSONAL_NUMBER, PAGER, UAN, VOICEMAIL
\- location (string): geographical location (city, county, state)
\- countrycode (string): two letter ISO 3166-1 country code
\- formatnational (string): phone number in national format
\- formatinternational (string): phone number in international format
\- mcc (string): mobile country code to identify a mobile network operator (carrier) using the GSM (including GSM-R), UMTS, and LTE networks
\- mnc (string): mobile network code to identify a mobile network operator (carrier) using the GSM (including GSM-R), UMTS, and LTE networks
\- ratelimit_remain (int): number of API requests remaining before the API rate limit is reached (the default API rate limit allows 100 API requests in 300s)
\- ratelimit_seconds (int): number of seconds remaining in the current rate limit interval

Input parameters:

- `code` (string): Two letter ISO 3166-1 country code. Required for numbers in national format; leave empty if the number starts with '+'
- `locale` (string): IETF language tag for geocoding results
- `mode` (string): 'extensive' (full validation) or 'express' (static checks only, faster)
- `phone` (string, required): Phone number to validate, in national format or international format with a leading '+'
- `timeout` (integer): Timeout in seconds (min 5, max 300)

### `validate_address` (~658 tokens)

Validate a postal address

Validate and standardize a postal address and return its status, standardized address components, and optionally its coordinates.

Result fields:
\- status (string):
  VALID: address is correct and deliverable.
  SUSPECT: address is incorrect and needs corrections to be deliverable, a suggested correction is provided.
  INVALID: address is incorrect and not deliverable - either there is no match at all in the reference data or the address is ambiguous and there are a lot of different matches. In these cases automatic correction suggestions are not available.
  DELAYED, NO_COUNTRY, RATE_LIMIT_EXCEEDED, API_KEY_INVALID_OR_DEPLETED, RESTRICTED, INTERNAL_ERROR
\- formattedaddress (string): full address in standardized format
\- supplement (string): additional address details (building / unit / apt / suite etc.)
\- street (string): street address in standardized format
\- streetnumber (string): street number in standardized format
\- postalcode (string): zip / postal code in standardized format
\- city (string): city in standardized format
\- type (string): address type: S = Street address | P = P.O. Box, Pick-Up or other delivery service
\- rdi (string): Residential Delivery Indicator (Commercial / Residential)
\- district (string): district in standardized format
\- county (string): county in standardized format
\- state (string): state / province in standardized format
\- country (string): two-letter ISO 3166-1 country code
\- latitude (number): latitude (for valid addresses if Geocoding is enabled)
\- longitude (number): longitude (for valid addresses if Geocoding is enabled)
\- diagnostics (string): detailed diagnostic hints, indicating errors in the address input
\- corrections (string): detailed correction hints, indicating which parts of the address input have been fixed
\- ratelimit_remain (int): number of API requests remaining before the API rate limit is reached (the default API rate limit allows 100 API requests in 300s)
\- ratelimit_seconds (int): number of seconds remaining…

Input parameters:

- `additional_info` (string): Building/unit/apt/floor etc.
- `charset` (string): Output character set: 'utf-8' or 'us-ascii'
- `city` (string)
- `code` (string, required): Two-letter ISO 3166-1 country code, 'XX' for international
- `geocoding` (boolean): Return latitude and longitude for valid addresses
- `locale` (string): Output language for countries with multiple postal languages, as an IETF language tag. Use only to translate addresses; always leave empty for address validation
- `postal_code` (string)
- `state` (string)
- `street_adr` (string, required): Street, house number and building, may include unit/apt etc. May also contain the complete address (leave the other optional fields empty then). Always use ',' to separate address elements where requ…
- `street_num` (string): House number/building, if it isn't part of street_adr
- `timeout` (integer): Timeout in seconds (min 5, max 300, default 10)

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/byteplant-devops-byteplant-mcp/byteplant-mcp#diagnostics

## Score history

- 2026-11-04: 76
- 2026-11-03: 81
- 2026-11-02: 81
- 2026-11-01: 81
- 2026-10-31: 81
- 2026-10-30: 81
- 2026-10-29: 81
- 2026-10-28: 81
- 2026-10-27: 80
- 2026-10-26: 80
- 2026-10-25: 79
- 2026-10-24: 79
- 2026-10-23: 78
- 2026-10-22: 78
- 2026-10-21: 77
- 2026-10-20: 77
- 2026-10-19: 76
- 2026-10-18: 76
- 2026-10-17: 75
- 2026-10-16: 75
- 2026-10-15: 74
- 2026-10-14: 39
- 2026-10-13: 39
- 2026-10-12: 39
- 2026-10-09: 24
- 2026-10-04: 67
- 2026-10-03: 67
- 2026-10-02: 67
- 2026-10-01: 67
- 2026-09-30: 67

## Common questions

### What is the io.github.byteplant-devops/byteplant-mcp server?

io.github.byteplant-devops/byteplant-mcp is listed in the public MCP registry as io.github.byteplant-devops/byteplant-mcp. An MCP server that provides Email, Phone and Address Validation Services from Byteplant. This page covers its PyPI package (byteplant-mcp).

### Is the io.github.byteplant-devops/byteplant-mcp server safe to use?

io.github.byteplant-devops/byteplant-mcp scores 76 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.byteplant-devops/byteplant-mcp server expose?

io.github.byteplant-devops/byteplant-mcp exposes 3 tools: validate_email, validate_phone, validate_address. Their descriptions and schemas cost roughly 1,304 tokens of context every time the server is loaded.

### Is the io.github.byteplant-devops/byteplant-mcp server still maintained?

io.github.byteplant-devops/byteplant-mcp is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.byteplant-devops/byteplant-mcp server under?

io.github.byteplant-devops/byteplant-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- PyPI project: https://pypi.org/project/byteplant-mcp/
- Socket report: https://socket.dev/pypi/package/byteplant-mcp
- Repository: https://github.com/byteplant-devops/byteplant-mcp
- Changelog RSS feed: https://verifymcp.io/servers/byteplant-devops-byteplant-mcp/byteplant-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/byteplant-devops-byteplant-mcp/byteplant-mcp.json
- HTML version of this page: https://verifymcp.io/servers/byteplant-devops-byteplant-mcp/byteplant-mcp
