# behave (mcpb · behave_0.1.6_linux_amd64.mcpb)

Record how any CLI behaves and check that a rewrite behaves the same (golden tests).

- Trust score: 42/100 (low)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-22

## Components

- mcpb · `behave_0.1.6_darwin_amd64.mcpb`: 9/100, [markdown](https://verifymcp.io/servers/emirmrkaljevic-behave/behave-darwin-amd64.md), [page](https://verifymcp.io/servers/emirmrkaljevic-behave/behave-darwin-amd64)
- mcpb · `behave_0.1.6_darwin_arm64.mcpb`: 9/100, [markdown](https://verifymcp.io/servers/emirmrkaljevic-behave/behave-darwin-arm64.md), [page](https://verifymcp.io/servers/emirmrkaljevic-behave/behave-darwin-arm64)
- mcpb · `behave_0.1.6_linux_amd64.mcpb`: 42/100 (this document), [markdown](https://verifymcp.io/servers/emirmrkaljevic-behave/behave-linux-amd64.md), [page](https://verifymcp.io/servers/emirmrkaljevic-behave/behave-linux-amd64)
- mcpb · `behave_0.1.6_linux_arm64.mcpb`: 9/100, [markdown](https://verifymcp.io/servers/emirmrkaljevic-behave/behave-linux-arm64.md), [page](https://verifymcp.io/servers/emirmrkaljevic-behave/behave-linux-arm64)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/emirmrkaljevic/behave/releases/download/v0.1.6/behave_0.1.6_linux_amd64.mcpb`
- Transport: `stdio`
- SHA-256: `221ed952e2a474ed6c4113fcd95fe8d2eb197e2c05e3aa40df9e0e15d92131a6`

## 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**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
- **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 2 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 592 tokens (~118/item across 5 items; 5 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 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.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "behave_exec" implies "exec" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 6 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).

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the behave MCP server?

behave ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 221ed952e2a474ed6c4113fcd95fe8d2eb197e2c05e3aa40df9e0e15d92131a6; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/emirmrkaljevic/behave/releases/download/v0.1.6/behave_0.1.6_linux_amd64.mcpb`
- SHA-256: `221ed952e2a474ed6c4113fcd95fe8d2eb197e2c05e3aa40df9e0e15d92131a6`

### Verify on macOS / Linux

```bash
echo "221ed952e2a474ed6c4113fcd95fe8d2eb197e2c05e3aa40df9e0e15d92131a6  behave_0.1.6_linux_amd64.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\behave_0.1.6_linux_amd64.mcpb).Hash -eq "221ed952e2a474ed6c4113fcd95fe8d2eb197e2c05e3aa40df9e0e15d92131a6"
```

## 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-21 (score 42, +1)

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

### 2026-10-19 (score 41, +1)

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

### 2026-10-17 (score 40, +2)

- [functional improvement] Stability: unverified → 0.10

### 2026-10-14 (score 38)

First indexed and scored.

## MCP tools (5)

### `behave_add_case` (~78 tokens)

Add one case to a spec and record the original command's behavior for it.

Input parameters:

- `args` (null|array, required): arguments
- `dir` (string, required): spec directory
- `files` (object): input files, name to content
- `name` (string): short description of the case
- `stdin` (string): standard input

Output parameters:

- `args` (null|array)
- `exit` (integer)
- `file` (string)
- `flaky` (boolean)
- `name` (string)
- `stderr` (string)
- `stdout` (string)

### `behave_diff` (~123 tokens)

Replay a spec against an implementation (the recorded command if impl is empty) and report which cases and flags behave differently.

Input parameters:

- `dir` (string, required): spec directory
- `ignore_exit` (boolean): do not compare exit codes
- `ignore_stderr` (boolean): do not compare stderr
- `impl` (string): implementation to test; empty replays the recorded command
- `max_failures` (integer): failing cases to include in detail (default 10)
- `skip_tags` (null|array): skip cases with these tags, e.g. meta

Output parameters:

- `by_field` (object)
- `errors` (integer)
- `fail` (integer)
- `failures` (null|array)
- `pass` (integer)
- `skip` (integer)
- `summary` (string)

### `behave_exec` (~102 tokens)

Run a command once in an isolated temp directory and return its exit code, stdout and stderr. Nothing is saved. Use it to explore a tool.

Input parameters:

- `args` (null|array): arguments
- `command` (string, required): program name or path
- `files` (object): files to create in the work dir, name to content
- `stdin` (string): standard input
- `timeout_ms` (integer): timeout in milliseconds (default 5000)

Output parameters:

- `elapsed_ms` (integer)
- `exit` (integer)
- `stderr` (string)
- `stdout` (string)
- `timed_out` (boolean)

### `behave_list_cases` (~54 tokens)

List the cases in a spec with their arguments and recorded exit codes.

Input parameters:

- `dir` (string, required): spec directory
- `tag` (string): only cases with this tag, e.g. flag:--sort or manual

Output parameters:

- `cases` (null|array)
- `command` (string)
- `total` (integer)

### `behave_probe` (~170 tokens)

Read a command's --help/man page, generate test cases (flags, flag pairs, edge-case stdin, files, error paths) and record the command's behavior into a new spec directory.

Input parameters:

- `args` (null|array): positional argument samples, e.g. jq filters
- `command` (string, required): program to probe
- `dir` (string, required): spec directory to create
- `inputs` (string): stdin samples: text, json, both or auto (default)
- `max` (integer): maximum number of cases (default 500)
- `sample_files` (string): create a small sample directory tree in each work dir: auto (default; on when help mentions the current directory or recursion), on, off
- `skip_flags` (null|array): flags never to use

Output parameters:

- `cases` (integer)
- `dir` (string)
- `flags` (null|array)
- `flaky` (integer)
- `timed_out` (integer)

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/emirmrkaljevic-behave/behave-linux-amd64#diagnostics

## Score history

- 2026-10-22: 42
- 2026-10-21: 42
- 2026-10-20: 41
- 2026-10-19: 41
- 2026-10-18: 40
- 2026-10-17: 40
- 2026-10-16: 38
- 2026-10-15: 38
- 2026-10-14: 38

## Common questions

### What is the behave MCP server?

behave is an MCP server listed in the public MCP registry as io.github.emirmrkaljevic/behave. Record how any CLI behaves and check that a rewrite behaves the same (golden tests). This page covers its MCPB bundle (https://github.com/emirmrkaljevic/behave/releases/download/v0.1.6/behave_0.1.6_linux_amd64.mcpb).

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

behave scores 42 out of 100 on VerifyMCP. 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 behave MCP server expose?

behave exposes 5 tools: behave_add_case, behave_diff, behave_exec, behave_list_cases, behave_probe. Their descriptions and schemas cost roughly 527 tokens of context every time the server is loaded.

### What licence is the behave MCP server under?

behave 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

- Repository: https://github.com/emirmrkaljevic/behave
- Changelog RSS feed: https://verifymcp.io/servers/emirmrkaljevic-behave/behave-linux-amd64.xml
- Changelog JSON feed: https://verifymcp.io/servers/emirmrkaljevic-behave/behave-linux-amd64.json
- HTML version of this page: https://verifymcp.io/servers/emirmrkaljevic-behave/behave-linux-amd64
