Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Record agent judgments and their real outcomes on GRAFOMEM Cloud. Capture now, score later.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
GRAFOMEM_CGR_TENANT_KEY, GRAFOMEM_CGR_TENANT, GRAFOMEM_CGR_ROLE_KEYS_JSON, GRAFOMEM_CGR_ROLE_KEYS, GRAFOMEM_CGR_FORBIDDEN_TENANTS, GRAFOMEM_APIAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"cgr-capture": {
"command": "uvx",
"args": [
"grafomem-cgr"
],
"env": {
"GRAFOMEM_CGR_TENANT_KEY": "your-value",
"GRAFOMEM_CGR_TENANT": "your-value",
"GRAFOMEM_CGR_ROLE_KEYS_JSON": "your-value",
"GRAFOMEM_CGR_ROLE_KEYS": "your-value",
"GRAFOMEM_CGR_FORBIDDEN_TENANTS": "your-value",
"GRAFOMEM_API": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add cgr-capture --env GRAFOMEM_CGR_TENANT_KEY=your-value --env GRAFOMEM_CGR_TENANT=your-value --env GRAFOMEM_CGR_ROLE_KEYS_JSON=your-value --env GRAFOMEM_CGR_ROLE_KEYS=your-value --env GRAFOMEM_CGR_FORBIDDEN_TENANTS=your-value --env GRAFOMEM_API=your-value -- uvx grafomem-cgrTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"cgr-capture": {
"command": "uvx",
"args": [
"grafomem-cgr"
],
"env": {
"GRAFOMEM_CGR_TENANT_KEY": "your-value",
"GRAFOMEM_CGR_TENANT": "your-value",
"GRAFOMEM_CGR_ROLE_KEYS_JSON": "your-value",
"GRAFOMEM_CGR_ROLE_KEYS": "your-value",
"GRAFOMEM_CGR_FORBIDDEN_TENANTS": "your-value",
"GRAFOMEM_API": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"cgr-capture": {
"type": "stdio",
"command": "uvx",
"args": [
"grafomem-cgr"
],
"env": {
"GRAFOMEM_CGR_TENANT_KEY": "your-value",
"GRAFOMEM_CGR_TENANT": "your-value",
"GRAFOMEM_CGR_ROLE_KEYS_JSON": "your-value",
"GRAFOMEM_CGR_ROLE_KEYS": "your-value",
"GRAFOMEM_CGR_FORBIDDEN_TENANTS": "your-value",
"GRAFOMEM_API": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
GRAFOMEM_CGR_ROLE_KEYS_JSON envGRAFOMEM_CGR_ROLE_KEYS envGRAFOMEM_CGR_FORBIDDEN_TENANTS envGRAFOMEM_API envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde über die Domain grafomem.com bestätigt (die Registry prüft, wem die Domain gehört)
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: GRAFOMEM_CGR_TENANT_KEY, GRAFOMEM_CGR_TENANT
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.0) kam vor 2 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Detailing Manager
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
An MCP server that lets a coding agent record its own judgments and how they turned out, against your GRAFOMEM Cloud tenant.
The model is capture now, score later. Every time your agent makes a call it could be wrong about — "this deploy is safe", "this scan is clean", "this review finding is real" — it records the judgment. Later, when reality settles, it records the outcome. The two are joined by a work_item_id you choose. What accumulates is an append-only, attributable record of judgments and their results.
This package is the capture half only. It writes to your tenant; it does not compute, serve, or display scores.
cgr.cosign.v1 verifier (optional extra)Beside the capture client, this package also ships a reference verifier for the cgr.cosign.v1 two-party co-signature envelope — grafomem_cgr.cosign_verify.verify(record, registry, ledger, trusted_issuers), implementing docs/cgr/cgr-cosign-v1-spec.md §8 (amended by decisions 0010 and 0011). trusted_issuers is required (§8.2a issuer pinning): a collection of issuer key ids with no default and no trust-everything path — omitting it or passing an empty set rejects, rather than trusting the record's self-declared issuer. It is the second, independent reference implementation (the first is @gns-foundation/cgr-verify, JS); both pass the same 28-vector conformance corpus at conformance/cgr-cosign-v1/ with zero verdict disagreements. Install its deps with the extra:
pip install grafomem-cgr[verify] # rfc8785 + cryptography
Capture does not depend on it; the extra is verifier-only.
domain. The domain you pass is stored durably per decision (see below), so it can be attributed later — but it is not scored separately yet.A GRAFOMEM Cloud account. The free tier is sufficient — expected volume is a handful of decisions per day. Note that governed decisions meter as real usage on your plan; the server prints your current usage on startup so this is never a surprise.
One command, plus environment variables — no repo checkout, no launcher script.
Claude Code:
claude mcp add grafomem-cgr --scope user \
--env GRAFOMEM_CGR_TENANT_KEY=sk_your_api_key \ --env GRAFOMEM_CGR_TENANT=your_tenant_id \ --env GRAFOMEM_CGR_ROLE_KEYS_JSON='{"cc-builder@acme":"<64-hex public key>"}' \ -- uvx grafomem-cgr
Or any MCP client that reads a JSON config:
{
"mcpServers": { "grafomem-cgr": { "command": "uvx", "args": ["grafomem-cgr"], "env": { "GRAFOMEM_CGR_TENANT_KEY": "sk_your_api_key", "GRAFOMEM_CGR_TENANT": "your_tenant_id", "GRAFOMEM_CGR_ROLE_KEYS_JSON": "{\"cc-builder@acme\":\"<64-hex public key>\"}" } } } }
| Variable | Required | Meaning |
|---|---|---|
GRAFOMEM_CGR_TENANT_KEY | yes | Your tenant's X-API-Key. Needs decisions:read for the durability guard. |
GRAFOMEM_CGR_TENANT | yes | The tenant id you expect that key to resolve to. If the key resolves anywhere else, every write is refused. |
GRAFOMEM_CGR_ROLE_KEYS_JSON | one of | Role handles → public agent_key, inline as JSON. |
GRAFOMEM_CGR_ROLE_KEYS | these two | Same mapping, as a path to a JSON file. |
GRAFOMEM_CGR_FORBIDDEN_TENANTS | no | Comma-separated tenant ids to always refuse, even if pinned by mistake. Put your production tenant here. |
GRAFOMEM_API | no | Base URL. Defaults to https://api.grafomem.com. |
A role handle (cc-builder@acme) is the identity a judgment is attributed to. Its agent_key is a stable Ed25519 public key, 64 hex characters — the subject the record binds to. Generate one per role:
openssl genpkey -algorithm Ed25519 -out cc-builder.pem
openssl pkey -in cc-builder.pem -pubout -outform DER | tail -c 32 | xxd -p -c 64
Keep the private half. This version does not use it — it binds to the public key only — but per-decision proof-of-possession is planned hardening, and holding the private key is what will let you prove the identity is yours.
`cgr_record_decision` — record a judgment.
| arg | |||
|---|---|---|---|
work_item_id | stable join key you choose (PR number, task id, run id) | ||
agent_handle | one of your configured role handles | ||
domain | deploy-verification \ | security-scan \ | adversarial-review |
decision | certify \ | reject | |
verifiability_tag | judgment (default) \ | rule | |
reason_code, reason_text | optional | ||
agent_confidence | optional, accepted but not yet persisted — see below |
agent_confidence is accepted by the tool schema for forward compatibility but is not currently written to the decision record. Don't rely on it being stored.
Only judgment + certify moves a score. A rule decision is deterministic and carries no reputational weight — tag honestly.
`cgr_record_outcome` — record how it turned out.
| arg | |
|---|---|
work_item_id | the same join key used at decision time |
result | a result label, e.g. deploy_succeeded, ci_failed, vuln_found, review_confirmed |
source | optional provenance string |
An unrecognised `result` is a deliberate no-op. The decision stays pending rather than being resolved on a guess — falsely resolving a decision corrupts the record permanently. Mapped labels are: deploy_succeeded, deploy_healthy, ci_passed, migration_applied, merge_landed, pr_merged, scan_clean, no_vuln_confirmed, review_confirmed, finding_correct, bug_confirmed (success); deploy_failed, deploy_rolled_back, migration_failed, ci_failed, merge_reverted, vuln_found, secret_found, review_refuted, finding_wrong, bug_not_real (failure).
GRAFOMEM_CGR_FORBIDDEN_TENANTS refuses named tenants outright.domain is sent as a dedicated field and stored server-side, per decision, in the never-encrypted CGR-readable decision parameters as cgr_domain — in the signed decision record, not in a client-side log. selftest includes a durability guard that re-reads the decision it just wrote and aborts loudly if cgr_domain did not round-trip, rather than silently recording a domainless decision.grafomem-cgr # run the stdio MCP server (the default)
grafomem-cgr setup # register your role identities on the tenant (idempotent) grafomem-cgr selftest --handle cc-builder@acme --domain deploy-verification
selftest closes the loop once — decision → durability guard → outcome → score read — and prints the movement and the meter. Run it before wiring the server into a session.
MIT licensed.