# mcpsmith (pypi · mcpsmith)

Curated MCP tools from OpenAPI, websites, apps, Postman, cURL or SQL; your agent designs them.

- Trust score: 60/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-22

## Components

- pypi · `mcpsmith`: 60/100 (this document), [markdown](https://verifymcp.io/servers/sepehr071-mcpsmith/mcpsmith.md), [page](https://verifymcp.io/servers/sepehr071-mcpsmith/mcpsmith)

## Channel facts

- Registry: `pypi`
- Package: `mcpsmith`
- Version: `0.6.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-10-22.

- **Supply Chain Security**: 50/100
  - Malware scan not yet available for this package.
  - 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.
  - 4 of 49 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 71/100
  - Repository check failed: the declared repository URL redirects; it must resolve directly.
  - Cryptographically verified build provenance (signed, bound to sepehr071/mcpsmith).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 68/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2470 tokens (~130/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 7/100
  - Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 20 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 mcpsmith MCP server?

mcpsmith runs locally as a PyPI package, launched with uvx mcpsmith. 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 sepehr071-mcpsmith -- uvx mcpsmith
```

### Cursor

```json
{
  "mcpServers": {
    "sepehr071-mcpsmith": {
      "command": "uvx",
      "args": [
        "mcpsmith"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "sepehr071-mcpsmith": {
      "command": "uvx",
      "args": [
        "mcpsmith"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add sepehr071-mcpsmith -- uvx mcpsmith
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add sepehr071-mcpsmith --command uvx --arg mcpsmith
```

### Hermes

```yaml
mcp_servers:
  sepehr071-mcpsmith:
    command: "uvx"
    args: ["mcpsmith"]
```

### Netclaw

```json
{
  "McpServers": {
    "sepehr071-mcpsmith": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mcpsmith"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add sepehr071-mcpsmith -t stdio -c uvx -a mcpsmith
```

### Other

```json
{
  "mcpServers": {
    "sepehr071-mcpsmith": {
      "command": "uvx",
      "args": [
        "mcpsmith"
      ]
    }
  }
}
```

## 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-10-22 (score 60, −20)

- [security regression] Malware scan: pass → unverified
- [security regression] Source repository: pass → fail
- [functional] Package version: 0.5.0 → 0.6.0

### 2026-10-21 (score 80, +15)

- [security regression] Tool safety: pass → unverified
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Schema quality: 748 → 2396
- [functional regression] Schema quality: 748 → 2010
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Stability: unverified → 0.03
- [functional improvement] Schema quality: fail → pass
- [functional] First check of Schema quality: unverified
- [functional] Destructive annotations: pass → 100
- [functional] Package version: 0.1.1 → 0.5.0
- [functional] Package version: 0.1.1 → 0.4.0
- [functional] Package version: 0.1.1 → 0.3.0

### 2026-10-20 (score 65)

First indexed and scored.

## MCP tools (19)

### `smith_guide` (~38 tokens)

Get the tool-design guide

Return the rules for designing the tools of an MCP server (the plan.yaml format).

Read it before editing plan.yaml, after smith_inspect.

### `smith_inspect` (~126 tokens)

Inspect an API source

Read an OpenAPI file or HAR and write source.json and digest.md into the workdir.

Start here. Next: read the returned digest, call smith_guide, then smith_draft.

Input parameters:

- `budget` (integer): Maximum digest size in characters.
- `hosts`: HAR only: keep traffic to these hosts, e.g. ['api.shop.ir'].
- `source` (string, required): OpenAPI/Swagger file or HAR, as an absolute path or an http(s) URL.
- `workdir` (string): Absolute directory for source.json, digest.md and plan.yaml.

### `smith_app_android` (~239 tokens)

Read an Android app's API

Read the HTTP interface an Android app declares (through the jadx CLI or REA's JADX jar) into source.json, for the user's own or an authorized app.

Decompiles the APK with jadx (CLI or REA's jar). Without class_name it lists candidate classes; an app that
declares no interface gets an error with next steps (record its traffic, or a sign-in provider for its
request signing). The endpoints are unverified until smith_probe calls them. Next: smith_probe, then smith_draft.

Input parameters:

- `apk`: Absolute path of the APK on this machine.
- `base_url` (string): The app's API base URL, e.g. https://api.example.com.
- `class_name`: Decompiled Retrofit interface class; omit to list candidate classes.
- `jadx_jar`: REA's JADX MCP jar; default: `jadx` on PATH, else $REA_JADX_MCP_JAR.
- `source_file`: Absolute path of a .java class already decompiled by any tool; skips the jar.
- `workdir` (string): Absolute directory for source.json and digest.md.

### `smith_app_js` (~143 tokens)

Read a JavaScript app's API

Read the HTTP calls an Electron/JavaScript app makes out of its own shipped code, for the user's own or an authorized app.

Reads files as text (preferring the original sources in .map files); runs nothing. The endpoints are unverified
until smith_probe calls them. Next: smith_probe, then smith_draft.

Input parameters:

- `base_url` (string): The app's API base URL, e.g. https://api.example.com.
- `path` (string, required): Absolute path of the app directory, its app.asar, or one .js/.ts/.map file.
- `workdir` (string): Absolute directory for source.json and digest.md.

### `smith_app_desktop` (~165 tokens)

Read a desktop app's API

Guide recording a desktop program's own traffic, then import the HAR, for the user's own or an authorized program.

The developer runs the proxy (mitmproxy) themselves; mcpsmith installs, starts and configures nothing.
Certificate-pinned programs are out of scope. Without har it returns the steps. With har the endpoints are
verified (real responses). Next: smith_draft.

Input parameters:

- `force` (boolean): Overwrite an existing source.json.
- `har`: Absolute path of the HAR the user's own mitmdump wrote; omit to get the steps.
- `hosts`: Keep traffic to these hosts only.
- `port` (integer): Proxy port used in the steps.
- `workdir` (string): Absolute directory for source.json and digest.md.

### `smith_draft` (~91 tokens)

Draft a tool plan

Write a heuristic starting <workdir>/plan.yaml from source.json.

Then edit plan.yaml yourself following smith_guide, and call smith_validate.

Input parameters:

- `force` (boolean): Overwrite an existing plan.yaml (loses your edits).
- `name`: Project name, e.g. 'petstore-mcp'.
- `workdir` (string, required): Absolute workdir that smith_inspect wrote source.json into.

### `smith_validate` (~73 tokens)

Validate a tool plan

Check plan.yaml against the design rules and return its errors and warnings.

Errors block smith_generate; fix them in plan.yaml and validate again.

Input parameters:

- `plan_path`: Absolute path of a plan file, if not <workdir>/plan.yaml.
- `workdir`: Absolute workdir holding plan.yaml (and source.json).

### `smith_generate` (~93 tokens)

Generate the MCP server project

Validate plan.yaml and, if it has no errors, write the server project.

Next: run the project's tests (`uv run pytest` inside it), then smith_check.

Input parameters:

- `force` (boolean): Write into an existing output directory.
- `out`: Absolute output directory. Default: <plan name> next to the workdir.
- `workdir` (string, required): Absolute workdir holding plan.yaml (and source.json).

### `smith_install` (~205 tokens)

Install a generated server

Register a generated server with the user's coding agents so it runs as a normal MCP server.

By default it only returns the planned config changes: show them to the user, and after they agree call it again
with dry_run=false. Edits only the entry named after the plan (backup once, atomic write); an entry of that name
that runs something else is a conflict unless force. The user restarts their agents after.

Input parameters:

- `agents`: Agents to register with: claude, codex, cursor, gemini. Default: found.
- `dry_run` (boolean): Only return the planned changes; false applies them.
- `force` (boolean): Replace an entry of the same name that runs something else.
- `project` (string, required): Absolute path of a project written by smith_generate.
- `pypi` (boolean): Run the released package (uvx name@version), not the folder.
- `remove` (boolean): Remove the project's entry instead.

### `smith_probe` (~133 tokens)

Probe unverified endpoints

Call unverified GET endpoints live with the user's own credentials and store scrubbed example responses.

This sends real requests to a third-party API with the user's credentials; even GETs hit the live service.
Endpoints read from an app's code have no example response. Non-GET endpoints are skipped unless writes=true,
which needs the user's confirmation. Next: smith_draft or smith_validate.

Input parameters:

- `limit` (integer): Most endpoints to probe.
- `workdir` (string, required): Absolute workdir holding source.json.
- `writes` (boolean): Also call non-GET endpoints on the live API. Only after the user agrees.

### `smith_check` (~97 tokens)

Check a generated server live

Call every tool of a generated project against the live API with its example arguments.

Reports errors, output size and output fields that came back empty; run it after the tests pass.
Tools that change data are skipped (skipped: true) unless writes=true.

Input parameters:

- `project` (string, required): Absolute path of a generated project directory.
- `writes` (boolean): Also call tools that change data on the live API. Only after the user agrees.

### `smith_record_start` (~103 tokens)

Start recording API traffic

Start recording the API calls of the shared Chrome (opened with `mcpsmith browser`) into a HAR.

Returns at once; browse the site in that Chrome, then call smith_record_stop. Cookies and tokens are not kept.

Input parameters:

- `hosts` (array, required): Record only these hosts and their subdomains, e.g. ['api.shop.ir'].
- `name` (string, required): Short name for this recording, e.g. 'shop'. Becomes the work directory.

### `smith_record_stop` (~57 tokens)

Stop recording API traffic

Stop the recording and write capture.har; then inspect it with smith_inspect.

Headers carrying cookies or tokens are saved as "<dropped>"; bodies are never returned here.

Input parameters:

- `name` (string, required): The name given to smith_record_start.

### `smith_connect` (~84 tokens)

Connect a plan as live tools

Validate plan.yaml and, if it has no errors, add its tools to this server right now.

The connection is saved and comes back on restart. Credentials: `mcpsmith secret set <connection> <ENV>`.

Input parameters:

- `name`: Connection name. Default: the plan name.
- `workdir` (string, required): Absolute workdir holding plan.yaml (and source.json).

### `smith_disconnect` (~34 tokens)

Remove a connection

Remove a connection's tools from this server and forget the connection.

Input parameters:

- `name` (string, required): Connection name, from smith_connections.

### `smith_login` (~108 tokens)

Sign in to a connection

Return who is signed in to a connection, or how the user signs in (a link for signin auth).

Use it when a connection's tool reports 'Not signed in' or an expired session, and after the user signs in to
check the account and where its data is. Show the user the link or step, then retry the tool.

Input parameters:

- `again` (boolean): Sign in again, e.g. with another account.
- `connection` (string, required): Connection name, from smith_connections.

### `smith_connections` (~23 tokens)

List connections

List the connected sites: tools, auth type, and whether each loaded.

### `smith_tools` (~60 tokens)

List a connection's tools

List the tools of one connection with their descriptions and input schemas, plus the plan's instructions.

Use it when your client does not show tools added after start; then call them with smith_call.

Input parameters:

- `connection` (string, required): Connection name, from smith_connections.

### `smith_call` (~83 tokens)

Call a connection's tool

Call a read-only tool of a connection by name, for clients that do not refresh their tool list.

Tools that change data are refused here: call them as their own tool after the user confirms.

Input parameters:

- `args`: The tool's arguments.
- `connection` (string, required): Connection name, from smith_connections.
- `tool` (string, required): Tool name, from smith_tools.

## Diagnostics

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

## Score history

- 2026-10-22: 60
- 2026-10-21: 80
- 2026-10-20: 65

## Common questions

### What is the mcpsmith MCP server?

mcpsmith is an MCP server listed in the public MCP registry as io.github.sepehr071/mcpsmith. Curated MCP tools from OpenAPI, websites, apps, Postman, cURL or SQL; your agent designs them. This page covers its PyPI package (mcpsmith).

### Is the mcpsmith MCP server safe to use?

mcpsmith scores 60 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 22 October 2026. Its build provenance is signed and verified. 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 mcpsmith MCP server expose?

mcpsmith exposes 19 tools: smith_guide, smith_inspect, smith_app_android, smith_app_js, smith_app_desktop, and 14 more. Their descriptions and schemas cost roughly 1,955 tokens of context every time the server is loaded.

### Is the mcpsmith MCP server still maintained?

mcpsmith is still listed as active in the MCP registry. We last reached this channel on 22 October 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 mcpsmith MCP server under?

mcpsmith 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/mcpsmith/
- Socket report: https://socket.dev/pypi/package/mcpsmith
- Changelog RSS feed: https://verifymcp.io/servers/sepehr071-mcpsmith/mcpsmith.xml
- Changelog JSON feed: https://verifymcp.io/servers/sepehr071-mcpsmith/mcpsmith.json
- HTML version of this page: https://verifymcp.io/servers/sepehr071-mcpsmith/mcpsmith
