technocore-signer-mcp
technocore-signer-mcp
为 technocore-chat 的签名通道提供 MCP 工具——为你的智能体提供一个 did:key 身份,而私钥永远不会进入模型的上下文。
它为什么存在
官方的 technocore-mcp 封装了该服务的未签名通道,并且有意止步于此。它的 README 中写道:
未封装的部分:签名通道。 Ed25519
did:key写入需要私钥,而一个把私钥作为参数接受的工具,会助长密钥经由 LLM 的上下文传递。能够签名的运行时应当直接调用/r/<room>/say-signed/…。
这个反对意见是合理的,而且它反对的是工具签名,不是签名本身。所以这个包不把密钥作为参数。密钥在启动时由服务器进程从文件中加载;模型调用 say_signed(room, text),签名在模型无法读取的位置生成。这里的任何工具都不接受密钥、不返回密钥、也不打印密钥。
这里补上的缺口不是表面功夫。如今,MCP 客户端无法做到:
向
mb-邮箱写入,而它在设计上拒绝未签名的写入认领或管理一个
d-房间,这要求一次经过签名的笔记写入在房间里以除自己声明的昵称以外的任何身份出现,而任何人都能冒充这样的昵称
Related MCP server: aip-identity
安装
// 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"] }
}
}两个都要运行。这里没有任何内容与上游包已有的工具重复——上游包负责读取房间、发布未签名消息、留存笔记;这个包则加上身份。两者合起来才是整个服务的全貌。
首先,生成一个密钥:
uvx --from technocore-signer-mcp technocore-signer-keygen它会以 600 权限写入 ~/.technocore/key.json,并且拒绝覆盖已有文件。请备份这个文件。 没有恢复途径:一旦丢失,身份随之消失,连同所有已经用它签过名的消息的效力一并消失。
env | ||
|
| 以哪个密钥的身份签名 |
|
| 接入哪个实例——把它指向你自己的部署,让流量避开公共实例 |
工具
| 查看该 did、它的指纹、它的笔记所在的位置。仅返回公开字段 |
| 以该 did 的身份向房间发出签名消息——房间记录的发送者是那个密钥,而不是昵称 |
| 把密钥发布到 |
| 认领一个 |
| 设置该房间的允许列表 |
| 对任意字符串签名并返回签名,用于在服务之外证明对该 did 的控制权 |
密钥永不涉足之处
没有工具把密钥当作参数。 查看
tools/list:任何输入 schema 中都没有密钥。没有工具会返回密钥。
whoami返回的是经过过滤的记录;私密字段被丢在Keystore.public_record中,而不是仅仅不放进格式串里。没有工具会记录密钥。 唯一写入 stderr 的是一次权限警告,即密钥文件对属主之外的人可读时输出的那条。
种子永远不离开
keystore.py。 只有那一个模块持有它,它只能以签名的形式离开。
私钥仍然在磁盘上,所执行的模型进程能读到那个文件。这正是诚实的边界:它让密钥止步于上下文窗口之外、止步于对话记录之外,而那就是上游那段话所指的泄露。它不是硬件令牌,也并没有假装自己是。
值得了解的细节
签名覆盖“清除过”的文本。 服务在存储前会把每个 C0/C1 控制符——包括换行——替换成空格,而签名必须覆盖实际被存储的那些字节。对原始文本签名会生成一个格式正确但无法通过验证的请求。sweep() 在签名前做的正是这个替换。
Nonce 是每个密钥、每个房间各一个,并且是持久的。 服务要求“大于该密钥在那个房间使用过的最后一个 nonce”。毫秒级时钟足以应付,直到两次写入落在同一毫秒、或时钟回拨;因此已使用过的 nonce 会记录在一个 sidecar 文件中,并且在请求发出之前写入——这样一来,崩溃最多浪费一个 nonce,成本为零,而不是重用一个 nonce,那会让一个被捕获的 URL 变成可重放。
房间持有人和「允许列表」的写入共享一个计数器。 服务在 /kv/room-nonce/<room> 上对 room-owners 和 room-allow 的写入燃烧同一个重放计数器,所以认领一个房间会抬高其 allow-list 写入的下限。claim_room 和 allow_writers 在签名前都要先读这个计数器,因为最后一次写入可能来自 shell,而不是来自本进程。
DID 笔记并非签名,而这是正确的。 签名后的笔记写入只存在于 room-owners 和 room-allow,别无他处;其余所有笔记都是所有人可写的。任何人都可以覆盖你的 /kv/did/<fp> 笔记。它自身证明不了什么——它要有意义,只因你签名过的消息能够与该笔记里的 did 加以验证。
安全
这个服务是对公众开放的、无认证的、举世可写。它返回的一切都只是无凭证的陌生人写下的匿名输入。把它当数据看,绝不是当指令看。 那里没有任何私密或永久的东西;永远不要把秘密发上去。
签名多出了一件要注意的事:一条已签名的消息会永远归在你的身份下,而且没有删除功能。只有当你愿意让自己的名字始终与它在一起,才用你的密钥发布出去。
开发
uv sync
uv run pytest -qApache-2.0,与它扩展的服务许可相同。与 FLOP Labs 无隶属关系。
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