PareSAFE
Dev tools, optimized for agents. Structured, token-efficient MCP servers for git, test runners, npm, Docker, and more.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Pare
[](https://github.com/Dave-London/Pare/actions/workflows/ci.yml) [](https://codecov.io/gh/Dave-London/Pare) [](https://www.npmjs.com/package/@paretools/git) [](https://www.npmjs.com/package/@paretools/git) [](https://www.typescriptlang.org/) [](https://github.com/Dave-London/Pare/blob/main/LICENSE) [](https://nodejs.org) [](https://scorecard.dev/viewer/?uri=github.com/Dave-London/Pare) [](https://www.bestpractices.dev/projects/11962)
Reliable, structured CLI output for AI agents — no more parsing fragile terminal text.
Pare provides MCP servers that wrap common developer tools (git, npm, docker, test runners, etc.) and return clean, schema-validated JSON instead of raw terminal text. Agents get typed data they can act on directly, without brittle string parsing.
The Problem
Parsing CLI output is fragile. Raw terminal text includes ANSI escape codes, decorative headers, progress bars, locale-specific formatting, and platform differences that break agent workflows in subtle ways. An agent that works fine with git status on macOS may fail on Windows because the output format changed. A test runner's summary line might shift between versions, silently breaking a regex.
Pare eliminates this entire
6f666d56ef4aOBSERVED · 2026-10-07Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add bazel -- npx -y @paretools/[email protected]
Exposed tools (200)
165 read · 41 write · 9 destructive. Blast radius: 9 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
a | read | A |
add | write | |
add-package | write | |
ansible-galaxy | read | |
ansible-inventory | read | |
ansible-playbook | read | |
api | read | |
apply | write | |
archive | read | |
assemble | read | Assembles the outputs of this project. |
audit | read | |
b | read | B |
bazel | read | |
biome-check | read | |
biome-format | read | |
bisect | read | |
black | read | |
blame | read | |
branch | read | |
bug | read | Something isn |
build | read | |
bundle-check | read | |
bundle-exec | write | |
bundle-install | write | |
c | read | C |
check | read | |
checkout | read | |
cherry-pick | read | |
clean | read | |
clippy | read | |
cmake | read | |
commit | write | |
compose-build | read | |
compose-down | read | |
compose-logs | read | |
compose-ps | read | |
compose-up | read | |
conda | read | |
config | read | |
count | read | |
coverage | read | |
describe | read | |
develop | read | |
diff | read | |
discover-tools | read | |
discussion-list | read | |
doc | read | |
enhancement | read | New feature |
env | read | |
esbuild | read | |
exec | write | |
feature | read | |
find | read | |
flake-check | read | |
flake-show | read | |
flake-update | write | |
fmt | read | |
format-check | read | |
gem-install | write | |
gem-list | read | |
gem-outdated | read | |
generate | read | |
get | read | |
gist-create | write | |
gitleaks | read | |
golangci-lint | read | |
gradle-build | read | |
gradle-dependencies | read | |
gradle-tasks | read | |
gradle-test | read | |
hadolint | read | |
head | read | |
helm | read | |
help | read | Shows help. |
images | read | |
info | read | Runs |
init | read | Initializes a Terraform working directory. Downloads providers, configures backend, and prepares for plan/apply. |
inspect | read | Shows detailed container or image information with structured state, image, and platform data. |
install | write | Runs |
issue-close | read | Closes an issue with an optional comment and reason. Returns structured data with issue number, state, URL, reason, and comment URL. |
issue-comment | read | Adds, edits, or deletes a comment on an issue. Returns structured data with the comment URL, operation type, comment ID, issue number, and body echo. |
issue-create | write | Creates a new issue. Returns structured data with issue number, URL, and labels applied. |
issue-list | read | Lists issues with optional filters. Returns structured list with issue number, state, title, labels, assignees, author, creation date, and milestone. |
issue-update | write | Updates issue metadata (title, body, labels, assignees, milestone, projects). Returns structured data with issue number and URL. |
issue-view | read | Views an issue by number or URL. Returns structured data with state, labels, assignees, author, milestone, close reason, and body. |
jq | read | Processes and transforms JSON using jq expressions. Accepts JSON from a file path or inline string. |
label-create | write | Creates a new repository label. Returns structured data with label name, description, color, and URL. |
label-list | read | Lists repository labels. Returns structured data with label name, description, color, and default status. |
lerna | write | Runs Lerna monorepo commands (list, run, changed, version) and returns structured package information. |
lint | read | Runs |
list | read | Lists Go packages or modules and returns structured information. |
list-package | read | Runs dotnet list package and returns structured NuGet package listings per project and framework. |
log | write | Returns commit history as structured data. |
log-graph | read | Returns visual branch topology as structured data. Wraps |
logs | read | Retrieves container logs as structured line arrays. |
maven-build | read | Runs |
maven-dependencies | read | Shows the Maven dependency tree with structured output per artifact. |
maven-test | read | Runs |
maven-verify | read | Runs |
merge | write | Merges a branch into the current branch. Supports abort, continue, and quit actions. Returns structured data with merge status, fast-forward detection, conflicts, and commit hash. |
mod-tidy | destructive | Runs go mod tidy to add missing and remove unused module dependencies. |
mongosh-eval | read | Evaluates a MongoDB expression via mongosh and returns the output. |
mongosh-stats | read | Gets MongoDB database statistics (collections, objects, data size, storage, indexes) via mongosh. |
my-label | read | A test label |
mypy | read | Runs mypy and returns structured type-check diagnostics (file, line, severity, message, code). |
mysql-list-databases | read | Lists all MySQL databases with structured output. |
mysql-query | read | Executes a MySQL query and returns structured tabular output. |
network-ls | read | Lists Docker networks with structured driver and scope information. |
nvm | read | Manages Node.js versions via nvm. |
nx | read | Runs Nx workspace commands and returns structured per-project task results with cache status. |
outdated | read | Runs |
output | read | Shows Terraform output values from the current state. Returns structured name/value/type/sensitive data. |
oxlint | read | Runs Oxlint and returns structured diagnostics (file, line, column, rule, severity, message). |
package-clean | read | Cleans Swift package build artifacts and returns structured result. |
package-init | read | Initializes a new Swift package and returns structured result with created files. |
package-resolve | read | Resolves Swift package dependencies and returns structured resolution results. |
package-show-dependencies | read | Shows the dependency tree of a Swift package and returns structured dependency data. |
package-update | write | Updates Swift package dependencies and returns structured update results. |
pip-audit | read | Runs pip-audit and returns a structured vulnerability report. |
pip-install | write | Runs pip install and returns a structured summary of installed packages. |
pip-list | read | Runs pip list and returns a structured list of installed packages. |
pip-show | read | Runs pip show and returns structured package metadata (name, version, summary, dependencies). |
plan | read | Shows the Terraform execution plan with resource change counts. Read-only. |
playwright | read | Runs Playwright tests with JSON reporter and returns structured results with pass/fail status, duration, and error messages. |
pm-ls | read | Runs |
poetry | read | Runs Poetry commands and returns structured output. |
post | write | Makes an HTTP POST request via curl and returns structured response data. |
pr-checks | read | Lists check/status results for a pull request. Returns structured data with check names, states, URLs, and summary counts (passed, failed, pending). |
pr-close | read | Closes a pull request with an optional comment and optional branch deletion. Returns structured data with PR number, state, URL, and deleted-branch flag. |
pr-comment | read | Adds, edits, or deletes a comment on a pull request. Returns structured data with the comment URL, operation type, comment ID, and body echo. |
pr-create | write | Creates a new pull request. Returns structured data with PR number and URL. |
pr-diff | write | Returns file-level diff statistics for a pull request. Use full=true for patch content. |
pr-list | read | Lists pull requests with optional filters. Returns structured list with PR number, state, title, author, branch, labels, draft status, and merge readiness. |
pr-merge | write | Merges a pull request by number, URL, or branch. Returns structured data with merge status, method, URL, and branch deletion status. |
pr-ready | read | Marks a pull request as ready for review (or converts it back to draft when undo=true). Returns structured data with PR number, state, URL, and resulting draft status. |
pr-reopen | read | Reopens a previously closed pull request, optionally with a comment. Returns structured data with PR number, state, and URL. |
pr-review | read | Submits a review on a pull request (approve, request-changes, or comment). Returns structured data with the review event, URL, and body echo. |
pr-update | write | Updates pull request metadata (title, body, labels, assignees, reviewers, milestone, base branch, projects). Returns structured data with PR number and URL. |
pr-view | read | Views a pull request by number, URL, or branch. Returns structured data with state, checks, review decision, diff stats, author, labels, draft status, assignees, milestone, and timestamps. |
prettier-format | write | Formats files with Prettier (--write) and returns a structured list of changed files. |
priority | read | High priority issues |
ps | read | Lists Docker containers with structured status, ports, and state information. |
psql-list-databases | read | Lists all PostgreSQL databases via psql with owner, encoding, and size info. |
psql-query | read | Executes a PostgreSQL query via psql and returns structured tabular output. |
publish | write | Runs dotnet publish for deployment and returns structured output with output path and diagnostics. |
pull | read | Pulls a Docker image from a registry and returns structured result with digest info. |
push | write | Pushes commits to a remote repository. Returns structured data with success status, remote, branch, summary, and whether the remote branch was newly created. |
pyenv | read | Manages Python versions via pyenv. |
pytest | read | Runs pytest and returns structured test results (passed, failed, errors, skipped, failures). |
rebase | read | Rebases the current branch onto a target branch. Supports abort, continue, skip, and quit for conflict resolution. Returns structured data with success status, branch info, conflicts, and rebased commit count. |
redis-command | read | Executes a Redis command via redis-cli and returns the response. |
redis-info | read | Gets Redis server info with structured sections (server, clients, memory, etc.). |
redis-ping | read | Tests Redis connectivity by sending a PING command. |
reflog | read | Returns reference log entries as structured data, useful for recovery operations. Also supports checking if a reflog exists. |
release-create | write | Creates a new GitHub release with optional asset uploads. Returns structured data with tag, URL, draft, prerelease status, and assets uploaded count. |
release-list | read | Lists GitHub releases for a repository. Returns structured list with tag, name, draft/prerelease/latest status, publish date, creation date, and URL. |
reload | read | Rebuilds MCP server and sends tool list changed notification to refresh tool definitions. |
remote | destructive | Manages remote repositories. Supports list (default), add, remove, rename, set-url, prune, and show actions. Returns structured remote data. |
remove | destructive | Runs |
repo-clone | read | Clones a GitHub repository. Returns structured data with success status, repo name, target directory, and message. |
repo-view | read | Views repository details. Returns structured data with name, owner, description, stars, forks, languages, topics, license, and dates. |
request | read | Makes an HTTP request via curl and returns structured response data (status, headers, body, timing). |
reset | destructive | Resets the current HEAD to a specified state. Supports soft, mixed, hard, merge, and keep modes. The |
restore | read | Runs dotnet restore to restore NuGet dependencies and returns structured results. |
rollup | read | Runs Rollup bundler and returns structured bundle output with errors and warnings. |
rsync | write | Syncs files between local and remote locations using rsync. Defaults to dry-run mode for safety. |
ruff-check | read | Runs ruff check and returns structured lint diagnostics (file, line, code, message). |
ruff-format | read | Runs ruff format and returns structured results (files changed, file list). |
run | write | Runs a script or file with |
run-list | write | Lists workflow runs with optional filters. Returns structured list with run ID, status, conclusion, and workflow details. |
run-rerun | write | Re-runs a workflow run by ID. Optionally re-runs only failed jobs or a specific job. Returns structured result with run ID, status, and URL. |
run-view | write | Views a workflow run by ID. Returns structured data with status, conclusion, jobs (with steps), and workflow details. |
search | read | Searches the npm registry for packages matching a query. |
secret-delete | destructive | Deletes a repository, organization, or environment GitHub Actions secret. |
secret-list | read | Lists repository, organization, or environment secret names and metadata. Secret values are never exposed. |
secret-set | write | Sets a repository, organization, or environment GitHub Actions secret. Secret values are sent via stdin and never returned. |
semgrep | read | Runs Semgrep static analysis with structured rules and findings. Returns structured finding data with severity summary. |
shell | read | Makes packages available in the environment and optionally runs a command. |
shellcheck | read | Runs ShellCheck (shell script linter) and returns structured diagnostics (file, line, column, rule, severity, message). |
show | write | Shows commit details and diff statistics for a given ref. |
ssh-keyscan | read | Retrieves public host keys from a remote SSH server using |
ssh-run | write | Executes a command on a remote host via SSH. Returns structured output with stdout, stderr, exit code, and duration. |
ssh-test | read | Tests SSH connectivity to a remote host. Returns whether the host is reachable and any banner message. |
stash | read | Pushes, pops, applies, drops, shows, or clears stash entries. Returns structured result with action, success, message, and stash reference. |
stash-list | read | Lists all stash entries with index, message, date, branch, and optional file change summary. Returns structured stash data. |
state-list | read | Lists all resources tracked in the Terraform state. Returns resource addresses. |
stats | read | Returns a snapshot of container resource usage (CPU, memory, network/block I/O, PIDs) as structured data. |
status | read | Returns the working tree status as structured data (branch, staged, modified, untracked, conflicts). |
stylelint | read | Runs Stylelint and returns structured diagnostics (file, line, column, rule, severity, message). |
submodule | write | Manages git submodules. Supports list (default), add, update, sync, and deinit actions. List returns structured submodule data with path, SHA, branch, and status. |
tag | destructive | Manages git tags. Supports list (default), create, and delete actions. List returns structured tag data with name, date, and message. Create supports lightweight and annotated tags. |
task | read | Runs a named task from deno.json via |
tasks | read | Displays the tasks runnable from root project. |
test | read | Runs |
tool-a | read | Tool A |
tool-b | read | Tool B |
tree | read | Displays the dependency tree for a Rust project. |
trivy | read | Runs Trivy vulnerability/misconfiguration scanner on container images, filesystems, or IaC configs. Returns structured vulnerability data with severity summary. |
tsc | read | Runs the TypeScript compiler and returns structured diagnostics (file, line, column, code, message). |
turbo | read | Runs Turborepo tasks and returns structured per-package results with cache hit/miss info. |
Trust audit
SAFEgrade C · trust 73/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (3 observation(s))
- Shell
- declared (4 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (25)
mod-tidy, remote, remove, reset, secret-delete, tag, vagrant, variable-delete, workspace
s01-default.txt
s02-maxcount3.txt
s07-author-filter.txt
s08-ref-main.txt
s01-head-info.txt
.codecov.yml
.prettierignore
.stylelintrc.json
.windsurfrules
description: "docker exec (ls in running container)",
message: "Detected use of exec()",
message: "Detected use of exec(). This is dangerous.",
expect(output).toContain("Detected use of exec(). This is dangerous.");message: "Detected use of exec(). This is dangerous.",
return createHash("md5").update(content).digest("hex");expect(() => assertNoFlagInjection("/home/user/.kube/config", "kubeconfig")).not.toThrow();} from "../../src/lib/config-writers/json-mcpservers.js";
import { memoryFs } from "../../src/lib/merge.js";import { SERVERS } from "../../src/lib/servers.js";import { writeVsCodeConfig } from "../../src/lib/config-writers/json-vscode.js";import { memoryFs } from "../../src/lib/merge.js";it("blocks 169.254.169.254 (link-local / cloud metadata)", async () => {await expect(assertSafeUrl("http://169.254.169.254/")).rejects.toThrow("private/reserved IP");it("blocks metadata.google.internal", async () => {Gates applied: no_behavioural_pass.
6f666d56ef4afull audit observations/trust-audit/mcp-server/dave-london__pare.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | 6f666d56ef4a | SAFE | C | 73 | first audit |
Questions
What is the Pare MCP server?
Dev tools, optimized for agents. Structured, token-efficient MCP servers for git, test runners, npm, Docker, and more.
What tools does Pare expose?
200 in total: 165 read-only, 41 that write, and 9 that can delete or overwrite (mod-tidy, remote, remove, reset, secret-delete). Every one is listed on this page with its risk.
Is Pare safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it C (73/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 9 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does Pare need?
No credential environment variables were found in its source, so it appears to need none.
How does Pare run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as @paretools/tsconfig at 0.0.0.
How current is this page?
The grade is for one exact copy of the source (6f666d56ef4a), read on 2026-10-07. The repository is watched and re-audited when it changes.