Install
$ agentstack add mcp-olegsotnikov-sallyport ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Sallyport
Let your agent touch prod. Keep the keys.
Sallyport is a free Mac app that holds API and SSH credentials in an encrypted local vault and executes authenticated actions for AI agents. The agent asks for an operation over MCP; Sallyport runs it, records it in a signed journal, and the key never appears in the agent's environment. There is no command that reveals a stored credential, and no export or recovery route either.
Website: sallyport.dev
Why
Coding agents read .env files, shell variables, and config files, and so does every package they pull in. Recent npm supply-chain attacks harvested credentials from exactly those places, and a prompt-injected agent can leak a token without any malware at all.
Traditional secret managers still deliver the secret to the workload. That model breaks when the workload itself is untrusted. Sallyport inverts it: the workload gets an action, the vault keeps the secret.
The exact security boundary, including what Sallyport does not stop, is written down in [docs/14-trust-model.md](docs/14-trust-model.md) and [docs/08-security-model.md](docs/08-security-model.md). Executor responses are returned as received, so a target that echoes sensitive data is outside the credential-isolation guarantee.
Repository
This public repository contains one source snapshot per Sallyport release. Pull requests are not accepted here. Report bugs and security issues as described in [CONTRIBUTING.md](CONTRIBUTING.md).
Install
Install the signed and notarized DMG from sallyport.dev, [Releases](../../releases), or Homebrew:
brew install --cask olegsotnikov/tap/sallyport
Launch the app, create the vault, add a credential, and point your MCP client at the gate:
claude mcp add sallyport -- /Applications/Sallyport.app/Contents/MacOS/sp mcp
From install to the first gated call takes about two minutes. Requires Apple Silicon and macOS 14 or newer. Release checksums are published with each release and in https://sallyport.dev/downloads/manifest.json.
Authorization
Every action follows the fixed ladder in [docs/14-trust-model.md](docs/14-trust-model.md):
- The vault must be ready.
- A marked key or MCP server requires per-call approval.
- A new process requires session approval unless observe mode or the optional allowlist applies.
- Sallyport audits and executes the action.
Approvals use a click or Touch ID and resolve in process. They are not signed grants. A separate Secure Enclave signer signs audit rows and integrity anchors.
The app supports http.request, ssh.exec, sallyport.request_credential, and configured upstream MCP tools. There is no credential-reveal route, but target and upstream results may contain credentials or other sensitive data.
Build
(cd core && go test -race ./...)
(cd mac && swift build -c release && swift test)
Creating the signed .app bundle requires the matching Apple signing identity and provisioning profile and is performed by release CI. The public snapshot supports source compilation and tests; it cannot reproduce Apple's signature without the private signing material.
Run the Secure Enclave self-test from an official signed bundle:
mac/build/Sallyport.app/Contents/MacOS/Sallyport --selftest
Configure an MCP client to run Sallyport.app/Contents/MacOS/sp mcp. The shipped sp CLI contains only mcp and version.
Documentation
| File | Contents | |---|---| | [docs/14-trust-model.md](docs/14-trust-model.md) | authorization and vault states | | [docs/01-architecture.md](docs/01-architecture.md) | components and call flow | | [docs/02-channels.md](docs/02-channels.md) | HTTP, SSH, and upstream MCP | | [docs/04-vault.md](docs/04-vault.md) | vault and keystore | | [docs/05-approvals.md](docs/05-approvals.md) | session and per-call approvals | | [docs/06-audit.md](docs/06-audit.md) | audit, result handling, and recordings | | [docs/07-identity-deployment.md](docs/07-identity-deployment.md) | process identity and deployment | | [docs/08-security-model.md](docs/08-security-model.md) | threats and residual risk | | [docs/11-reference.md](docs/11-reference.md) | settings, tools, operations, errors | | [docs/15-messaging.md](docs/15-messaging.md) | messaging and claims policy |
License
Licensed under [Apache-2.0](LICENSE.md).
The Sallyport name, glyph, and logo are trademarks. See [TRADEMARK.md](TRADEMARK.md).
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: OlegSotnikov
- Source: OlegSotnikov/sallyport
- License: Apache-2.0
- Homepage: https://sallyport.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.