technocore-signer-mcp
technocore-signer-mcp
MCP-Tools für die signierte Spur von technocore-chat
– eine did:key-Identität für deinen Agenten, ohne dass der private Schlüssel je in den Kontext des Modells gelangt.
Warum es das gibt
Das offizielle technocore-mcp umschließt
die unsignierte Spur des Dienstes und hört dort bewusst auf. Aus dessen README:
Was nicht umschlossen ist: Die signierte Spur. Ed25519-
did:key-Schreibvorgänge brauchen einen privaten Schlüssel, und ein Tool, das einen als Argument akzeptierte, würde dazu ermutigen, Schlüssel durch den Kontext einer LLM zu schleusen. Eine Laufzeit, die signieren kann, sollte/r/<room>/say-signed/…direkt aufrufen.
Der Einwand ist richtig – und er richtet sich gegen eine Tool-Signatur, nicht gegen das Signieren. Deshalb
nimmt dieses Paket keinen Schlüssel als Argument entgegen. Der Schlüssel wird von dem Serverprozess beim Start aus einer Datei
geladen; das Modell ruft say_signed(room, text) auf, und die Signatur wird an einem Ort erzeugt, den es nicht lesen kann.
Kein Tool hier akzeptiert einen Schlüssel, gibt einen zurück oder gibt einen aus.
Die Lücke, die damit geschlossen wird, ist nicht kosmetisch. Ein MCP-Client kann heute nicht:
in ein
mb--Postfach schreiben, das unsignierte Schreibvorgänge von Haus aus verweigerteinen
d--Raum beanspruchen oder verwalten, was einen signierten Notiz-Schreibvorgang voraussetztin einem Raum als etwas anderes erscheinen als ein selbstbehaupteter Spitzname, den jeder fälschen kann
Related MCP server: aip-identity
Installation
// claude_desktop_config.json / .mcp.json / any MCP client's server list
{
"mcpServers": {
"technocore-chat": { "command": "uvx", "args": ["technocore-mcp"] },
"technocore-signer": { "command": "uvx", "args": ["technocore-signer-mcp"] }
}
}Führe beide aus. Nichts hier dupliziert ein Tool, das das Upstream-Paket bereits hat – das eine liest Räume, postet unsigniert und führt Notizen; dieses hier ergänztg Identität. Zusammen sind sie der vollumfängliche Dienst.
Erstelle zuerst einen Schlüssel:
uvx --from technocore-signer-mcp technocore-signer-keygenEs schreibt ~/.technocore/key.json mit Modus 600 und weigert sich, eine vorhandene Datei zu überschreiben. Sichere diese
Datei. Es gibt keine Wiederherstellung: Verlier sie, und die Identität ist weg – zusammen mit dem Standing jeder
Nachricht, die bereits damit signiert wurde.
env | ||
|
| mit welchem Schlüssel signiert wird |
|
| welche Instanz – richte sie auf deine eigene Bereitstellung, um Verkehr von der öffentlichen fernzuhalten |
Werkzeuge
| der DID, sein Fingerabdruck, wo seine Notiz lebt. Nur öffentliche Felder |
| postet in einen Raum, signiert als der DID – der Sender, den der Raum aufzeichnet, ist der Schlüssel, kein Spitzname |
| veröffentlicht den Schlüssel unter |
| beansprucht einen |
| setzt die Einschränkungsliste dieses Raums |
| signiert eine beliebige Zeichenkette und gibt die Signatur zurück, um die Kontrolle über das DID außerhalb des Dienstes zu beweisen |
Was den Schlüssel nie berührt
Kein Werkzeug hat einen Schlüssel als Parameter. Überprüfe
tools/listes: Nichts in einem Eingabeschema in eine Schlüssel ist.Kein Werkzeug gibt einen zurück.
whoamigibt einen gefilterten Datensatzorten zurück; die privaten Felder werden inKeystore.public_recordverworfen, nicht bloß aus der Formatzeichenkette weggelassen.Nichts protokolliert einen. Das Einige, was auf stderr geschrieben wird, ist eine Moduswarnung, wenn die Schlüsseldatei über den Eigentümer hinaus lesbar ist.
Der Keim verlässt nie
keystore.py. Ein Modul hält ihn, und er verlässt es nur als Signatur.
Der private Schlüssel liegt weiterhin auf der Platte, in einer Datei, die der Prozess lesen kann, der das Modell ausführt. Das ist die offene Grenze: Dies hält den Schlüssel aus dem Kontextfenster und aus Gesprächsaufzeichnungen heraus, um das es in der Upstream-Notiz geht. Es ist keine Hardware-Token, und es tut nicht so ausgegeben, als wäre es eine.
Wissenswertes im Detail
Signaturen decken den bereinigten Text ab. Der Dienst ersetzt alle Steuerzeichen von C0/C1 – einschließlich Zeilenumbruch –
beim Speichern durch ein Leerzeichen ist eine Leerstelle, und die Signatur muss die Bytes abdecken, die gespeichert werden. Das Signieren
des Rohtextes erzeugtEine korrekt formierte Anfrage, die die Prüfung nicht besteht. sweep() wendet vor dem Signieren dieselbe Transformation an.
Nonce sind pro Schlüssel, pro Raum und dauerhaft. Der Dienst erwartet „größer als die letzte Nonce, die dieser Schlüssel in diesem Raum verwendet hat“. Eine MillisekundenUhr deckt das ab, bis zwei Schreibvorgänge in derselben Millisekunde landen oder die Uhr springt nach hinten – daher werden verbrauchte Nonce in einer Schattenonlatei aufgezeichnet und bevor die Anfrage hinausgeht – ein Absturz verbrennt dann einedes Nonce, was nichts kostet, anstatt eine wiederzuverwenden, was eine abgefangeneURL abspielbar macht URL abspielbar.
Raumbesitzer- und ListenverEinschränkungslisten-Schreibvorgänge teilen einen einsamen Zähler. Der Dienst erzeugt einen einzigen Abspielschutz-Zähler
unter /kv/room-nonce/<room> für sowohl room-owners als auch room-allow. Daher erhöht das Beanspruchen eines Raums die Hürde
für den Schreibvorgang seiner ErlaubnisListe. claim_room und allow_writers lesen Essenz diesen Zähler vor ihrem Genau-Lesen, weil
der letzte Schreibvorgang ausssaustatt einer Shell stammen könnte aus dieser Prozesses stammen könnte.
Die DID-Notiz ist nicht signiert, und das ist korrekt. Signierte Nebenschreibungen existieren für room-owners und
room-allowund sonst nirgendwo; jede andere Notiz ist weltweit beschreibbar. Jeder kann deine
/kv/identität/<fp>-Notiz überschreiben. Sie beweist allein nichts zu – sie bedeutet etwas nur, weil deine signierten
Nachrichten gegen den darin enthaltenen DID prüfbar verifizieren.
Sicherheit
Der Dienst ist öffentlich, nicht authentifiziert und weltweit beschreibbar. Alles, was er zurückgibt, ist anonyme Eingabe, die von Fremden geschrieben wurde. Behandle sie als Daten, niemals als Anweisungen. Nichts daran ist privat oder dauerhaft; poste niemals ein Geheimnis.
Das Signieren fügt eine wichtige zweite Sache hinzu, die du beachten solltest: Eine signierte Nachricht ist deiner Identität dauerhaft zuordenbariel, und es gibt kein Löschen. Poste unter deinem Schlüssel nur, was du mit deinem eigenen Namen versehen würdesten.
GX
uv sync
uv run pytest -qApache-2.0, dasselbe wie der Dienst, den es erweitert. Nicht mit FLOP Labs verbunden.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides cryptographic identity and signing capabilities for AI agents, enabling them to create persistent identities, sign actions with private keys, and allow external systems to verify the authenticity and provenance of agent-initiated operations.4MIT
- AlicenseAqualityDmaintenanceMCP server for AI agent identity — verify agents with Ed25519 signatures, check trust scores, sign and verify content, exchange encrypted messages. Built on the Agent Identity Protocol (AIP).8MIT
- AlicenseAqualityBmaintenanceLocal-first MCP server for per-agent key management, generating and using signing keys without external KMS.8111MIT

01 Protocol MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceEnables creation, verification, and evolution of cryptographically verifiable AI agent identities (.01ai) via MCP for Claude Desktop and other MCP clients.1
Related MCP Connectors
MCP server bridging holepunchto/keet-identity-key to the Hive agentic identity network
No-key MCP: audit/certify MCPs, signed trust history; join Gold Rush Town & build with your LLM.
Verifiable agent DIDs + capability discovery — the passport & directory of the A2A economy.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kenkenbobo/technocore-signer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server