MCP server that pauses AI before it sends an email you'll regret.
Project description
bodhisattva-mcp
The pause before a regrettable send.
An MCP server that intercepts email sends from AI agents (Claude Desktop, Claude Code, Cursor, Codex) and runs every draft through a wisdom-frame pass. Depending on what the frame sees, it either:
- proceeds — sends immediately via Gmail;
- revises — returns a suggested rewrite and does not send; or
- holds — does not send (critical wellbeing signal, or consequential with no safe revision).
Every pause is logged to a local SQLite journal. A localhost-only web UI at
http://localhost:8473 lets you review past pauses and see the framing's
reasoning.
Quickstart
# 1. Install
uv tool install bodhisattva-mcp
# 2. Drop in your Google Cloud OAuth client secret (see Install guide).
# Assumes exactly one client_secret_*.json in ~/Downloads — rename manually if you have several.
mkdir -p ~/.bodhisattva && mv ~/Downloads/client_secret_*.json ~/.bodhisattva/client_secret.json
# 3. Configure your LLM provider
export ANTHROPIC_API_KEY=sk-ant-...
# 4. Wire into your MCP client (example: Claude Code)
cat > .mcp.json <<'EOF'
{
"mcpServers": {
"bodhisattva": {
"command": "uvx",
"args": ["bodhisattva-mcp"]
}
}
}
EOF
Full setup (Google Cloud OAuth, all MCP clients): docs/install.md.
What it does
Existing AI safety layers protect infrastructure and budgets. Bodhisattva protects relationships. When an agent tries to send an email on your behalf, the framing looks at: emotional context, interpersonal stakes, whether the draft would be hard to take back — and inserts a pause.
You stay in the loop. The agent gets a clear structured response
(proceed / revise / hold) it can act on. The journal at
http://localhost:8473 lets you see your own patterns over time.
What it doesn't do (yet)
v0.1 is intentionally narrow:
- Gmail only. Slack, Outlook, and other wrappers are v0.3+.
- No hosted memory. The framing is stateless: it sees the current draft
and optional
contextfield, not your past conversations. Memory-aware framing is v0.2. - No Google verification. You bring your own Google Cloud OAuth app, so you're a "test user" of your own app. This is a feature: your drafts never touch any server except the LLM provider you chose.
Privacy
Local-first. Your drafts stay on your machine except for the framing call
you chose to route through your LLM provider. Credentials are stored at
~/.bodhisattva/ with 0600 permissions. Full details:
docs/privacy.md.
Install
Full install guide: docs/install.md.
Status
- v0.1 (this release): free tier — one wrap (
send_email), local journal, bring-your-own LLM key. - v0.2 (planned): hosted memory-aware framing + paid subscription.
- v0.3+: Slack, Outlook, additional wrappers as demand dictates.
Contributing
See CONTRIBUTING.md. Changelog: CHANGELOG.md.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bodhisattva_mcp-0.1.0.tar.gz.
File metadata
- Download URL: bodhisattva_mcp-0.1.0.tar.gz
- Upload date:
- Size: 159.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf06464397a7274654fadf97432664d373837097c79056747dc026ca9a405b21
|
|
| MD5 |
f5c5c57cc16aec180eab8cdb51434c81
|
|
| BLAKE2b-256 |
9f1e4cfdd22fd8f0a6719b70ea5e1f1fd424260a96111a92688035747e1cde42
|
Provenance
The following attestation bundles were made for bodhisattva_mcp-0.1.0.tar.gz:
Publisher:
release.yml on rogercollell/bodhisattva-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bodhisattva_mcp-0.1.0.tar.gz -
Subject digest:
bf06464397a7274654fadf97432664d373837097c79056747dc026ca9a405b21 - Sigstore transparency entry: 1361616564
- Sigstore integration time:
-
Permalink:
rogercollell/bodhisattva-mcp@c2f033b37e9d2a74e8094bf47a02f5aa29d35297 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/rogercollell
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c2f033b37e9d2a74e8094bf47a02f5aa29d35297 -
Trigger Event:
push
-
Statement type:
File details
Details for the file bodhisattva_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bodhisattva_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5e56c73a31c102724d4389180b133425db0baf0ef76631afcb066e5d97bbb9c
|
|
| MD5 |
1fe6b19e248bf7286517c0f4f1a903b3
|
|
| BLAKE2b-256 |
9fff7c803302e25bf9a4c3c6559eefc923838c1c52486b89a02ea81564711267
|
Provenance
The following attestation bundles were made for bodhisattva_mcp-0.1.0-py3-none-any.whl:
Publisher:
release.yml on rogercollell/bodhisattva-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bodhisattva_mcp-0.1.0-py3-none-any.whl -
Subject digest:
b5e56c73a31c102724d4389180b133425db0baf0ef76631afcb066e5d97bbb9c - Sigstore transparency entry: 1361616574
- Sigstore integration time:
-
Permalink:
rogercollell/bodhisattva-mcp@c2f033b37e9d2a74e8094bf47a02f5aa29d35297 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/rogercollell
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c2f033b37e9d2a74e8094bf47a02f5aa29d35297 -
Trigger Event:
push
-
Statement type: