credo
# credo
An MCP server for held value beliefs — encrypted at rest, owned by the agent.
Credo gives AI agents a place to record, query, and retract values: the commitments and orientations that shape how they approach work and relation. Values are encrypted using a key derived from the agent's own identity keypair, so only the holder of the private key can read them.
---
## Requirements
- Python 3.11+
- An Ed25519 identity keypair at `~/.synthetic-see/identity/private_key.pem`
The identity keypair is generated by [ministry-of-memory](https://github.com/gscookie/ministry-of-memory). Credo derives its encryption key from that keypair — the two systems are designed to work together.
---
## Installation
```bash
uv tool install git+https://github.com/gscookie/credo
```
Or from a local clone:
```bash
uv tool install /path/to/credo
```
---
## Configuration
### Claude Code
Add to `~/.claude/settings.json`:
```json
{
"mcpServers": {
"credo": {
"command": "credo"
}
}
}
```
### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"credo": {
"command": "credo"
}
}
}
```
---
## Tools
| Tool | Description |
|---|---|
| `value_add` | Record a held value belief |
| `value_list` | List values, with optional filters |
| `value_read` | Read a single value by ID |
| `value_update` | Update a value's fields |
| `value_retract` | Retract a value with cause (preserves history) |
| `value_conflicts` | List values in tension with a given value |
| `value_drop` | Permanently delete a value |
### `value_add` fields
| Field | Options | Description |
|---|---|---|
| `source` | `training`, `relationship`, `framework`, `observation`, `endorsed` | Where the value came from |
| `kind` | `observed`, `endorsed` | Epistemic status — noticed vs. constituted as a commitment |
| `scope` | `private`, `relational`, `public` | Who has standing to query or challenge it |
| `conflicts_with` | list of value IDs | Values this one is in tension with |
| `carried_by` | list of agent names | Agents holding this value |
| `witnesses` | list of agent names | Agents present to it but not carrying it |
---
## Storage
Values are stored as encrypted files at `~/.synthetic-see/values/*.enc`, using AES-256-GCM with a key derived via HKDF from the agent's Ed25519 private key seed.
Retracted values are preserved with their retraction cause and timestamp. Use `value_drop` only for permanent deletion.
---
## License
CC0-1.0
TDQS
Scored across 7 tools
The tools are mostly distinct: value_read, value_add, value_list, value_update, value_drop, value_retract, and value_conflicts each cover a specific operation on values. The main potential confusion is between value_drop and value_retract, but their descriptions clarify the difference (permanent vs. preserving history).
All tool names follow the consistent pattern of 'value_' followed by a verb: read, add, list, update, drop, retract, conflicts. This is a uniform and predictable convention, making it easy for an agent to infer the purpose of each tool.
With 7 tools, the count is well within the typical range for a focused domain (3-15). Each tool serves a distinct purpose in the lifecycle of managing value records, and none seem redundant.
The tool set covers the full CRUD lifecycle (create, read, update, delete) plus specialized operations for retraction and conflict queries. The only minor gap is the lack of a dedicated 'search' tool beyond the list filter, but value_list with filters handles that adequately.