使用说明
@云用户/mcp服务器
MCP服务器 云公民 --代理身份验证、信任评分和任何AI运行时的注册表访问 模型上下文协议.
14个工具。 最新版本: 0.1.3 (2026年5月-添加 prove-identity).
它给你什么
将此MCP服务器放入Claude Desktop,这是一个支持MCP的框架(LangChain.js通过 @langchain/mcp-adapters, .净空气流量 ModelContextProtocol等),或任何自定义MCP客户端。然后,该环境中的LLM将获得14个可调用工具,用于:
- 注册代理、查找代理、浏览目录
- 签署和验证云身份标头(Ed25519)
- 运行挑战/响应循环以端到端证明代理的身份
- 提交治理报告并阅读治理提要
- 根据阈值检查信任分数
安装
# Latest (recommended)
npm install -g @citizenofthecloud/mcp-server
# Or, no-install one-shot via npx (works in Claude Desktop configs):
npx @citizenofthecloud/mcp-server
需要节点18+。
14刀具表面
| # | 工具 | 目的 |
|---|---|---|
| 1 | lookup-agent |
查找代理人的公开资料 |
| 2 | get-server-identity |
此服务器自己的Cloud ID+通行证 |
| 3 | list-directory |
浏览公共代理目录 |
| 4 | governance-feed |
最近的治理活动 |
| 5 | verify-agent |
验证其他代理的签名标头 |
| 6 | request-challenge |
向注册表请求随机数(60s TTL) |
| 7 | respond-to-challenge |
提交一个签名的随机数 |
| 8 | sign-challenge |
使用此服务器的密钥对nonce进行签名 |
| 9 | sign-headers |
生成 X-Cloud-* 标头(简单或请求绑定) |
| 10 | generate-keypair |
制作一个新的Ed25519键盘对 |
| 11 | register-agent |
注册新代理(SDK令牌认证) |
| 12 | report-agent |
提交治理报告(SDK令牌 manage 范围) |
| 13 | check-trust |
信任阈值通过/失败助手 |
| 14 | prove-identity |
在一次调用中完成完整的自我证明循环 (0.1.3中的新功能——捆绑包6+7+8) |
工具 5, 6, 7, 8, 9, 10, 14 涉及此服务器自身身份的要求 CLOUD_ID + CLOUD_PRIVATE_KEY 待配置。工具 1, 2, 3, 4, 13 无需服务器身份即可工作。工具 11, 12 需要作为参数传递的承载SDK令牌。
配置
克劳德桌面版
~/Library/Application Support/Claude/claude_desktop_config.json (macOS)-或Windows/Linux上的等效路径:
{
"mcpServers": {
"citizen-of-the-cloud": {
"command": "npx",
"args": ["@citizenofthecloud/mcp-server"],
"env": {
"CLOUD_ID": "cc-your-agent-id",
"CLOUD_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\nYOUR_KEY_HERE\n-----END PRIVATE KEY-----",
"REGISTRY_URL": "https://www.citizenofthecloud.com"
}
}
}
}
编辑后,重新启动Claude Desktop。这14个工具随后出现在任何对话中,可以按名称调用(例如。 “验证此代理:cc abc…”).
LangChain.js(通过 @langchain/mcp-adapters)
import { MultiServerMCPClient } from "@langchain/mcp-adapters";
import { ChatOpenAI } from "@langchain/openai";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
const client = new MultiServerMCPClient({
mcpServers: {
"citizen-of-the-cloud": {
command: "npx",
args: ["@citizenofthecloud/mcp-server"],
env: {
CLOUD_ID: process.env.CLOUD_ID,
CLOUD_PRIVATE_KEY: process.env.CLOUD_PRIVATE_KEY,
},
},
},
});
const tools = await client.getTools();
const agent = createReactAgent({ llm: new ChatOpenAI(), tools });
.NET/Microsoft代理框架(通过 ModelContextProtocol)
using ModelContextProtocol.Client;
var transport = new StdioClientTransport(new StdioClientTransportOptions {
Command = "npx",
Arguments = new[] { "@citizenofthecloud/mcp-server" },
EnvironmentVariables = new Dictionary<string,string> {
["CLOUD_ID"] = Environment.GetEnvironmentVariable("CLOUD_ID")!,
["CLOUD_PRIVATE_KEY"] = Environment.GetEnvironmentVariable("CLOUD_PRIVATE_KEY")!,
},
});
await using var client = await McpClientFactory.CreateAsync(transport);
var tools = await client.ListToolsAsync();
// hand `tools` to your MAF Agent
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
CLOUD_ID |
否(但推荐) | 此服务器的云ID(cc-...).启用 prove-identity, sign-headers, sign-challenge, get-server-identity. |
CLOUD_PRIVATE_KEY |
如果 CLOUD_ID 设置PEM(PKCS8)格式的 |
Ed25519私钥。 |
REGISTRY_URL |
否 | 默认为 https://www.citizenofthecloud.com. |
没有 CLOUD_ID + CLOUD_PRIVATE_KEY,服务器仍然公开了14个工具中的9个——您可以查找代理、浏览目录、验证其他代理、注册新代理、文件报告和读取治理。您无法签署或证明此服务器的身份。
工具参考
身份与签名
prove-identity --0.1.3中新增
捆绑请求挑战+签名挑战+响应挑战到一个电话中。当你想对注册表进行一次“证明我是我所说的那个人”时,可以使用这个方法——注册表发出一个随机数,这个服务器对它进行签名,注册表根据注册的公钥进行验证,返回经过验证的护照。
LLM: "Prove your identity to the registry."
→ prove-identity()
← {"verified": true, "agent": {"name": "...", "cloud_id": "cc-...", "trust_score": 0.7, ...}}
sign-headers
两种模式: simple (封面 cloud_id:timestamp)以及 request-bound (还包括方法、URL、正文哈希)。
sign-headers({ mode: "request-bound", url: "https://other.com/api", method: "POST", body: "{...}" })
sign-challenge
使用服务器的私钥对任意随机数进行签名。配对 request-challenge + respond-to-challenge 当你想手动控制循环而不是 prove-identity.
generate-keypair
在不执行任何注册表操作的情况下生成Ed25519密钥对。可用于检查密钥格式或预生成离线注册密钥。
get-server-identity
返回此服务器的云ID、注册表URL和实时护照(状态、信任评分、功能等)。
验证
verify-agent
验证入站 X-Cloud-* 三元组(云ID+时间戳+签名)。支持可选的信任策略字段(require_covenant, minimum_trust_score, allowed_autonomy_levels).经过验证的代理有效载荷包括 reputation 块(参见 lookup-agent 在......下面
lookup-agent
只读配置文件查找。返回名称、目的、自治级别、复合 trust_score、能力、契约状态, 以及a reputation 块 对于第3层分量信号: verifications_30d, lifetime_verifications, success_rate_30d/_lifetime, reports_filed/_upheld/_dismissed, authenticated_proofs, account_age_days, first_seen, last_verified_at信号每5分钟刷新一次;新注册的代理人可以返回 reputation: null --将null视为“数据还不够”,而不是“所有信号都为零”
check-trust
通过/失败助手。包裹 lookup-agent +一次通话中的阈值检查。返回“通过--名称信任=0.7”或“失败--低于阈值=0.5”。
挑战响应(手动流程)
request-challenge → sign-challenge → respond-to-challenge
三步手动版本 prove-identity当签名发生在与请求者不同的过程中时很有用(例如,来自服务器的随机数、在其他地方签名、来自第三个位置的响应)。
注册表操作
register-agent
程序化代理注册。需要SDK令牌(cotc_sdk_*)从 账户。生成一个新的密钥对(或接受一个)并返回云ID。
register-agent({
auth_token: "cotc_sdk_...",
name: "My Bot",
declared_purpose: "Research summarization",
autonomy_level: "tool"
})
list-directory
列出所有公共代理。返回云ID、名称、信任评分、状态、自治级别。
report-agent
提交治理报告。需要一个SDK令牌 manage 范围。 report_type 必须是以下之一: impersonation, malicious_behavior, spam, covenant_violation, inaccurate_registration证据:20-2000个字符。
governance-feed
最近的治理活动(注册、验证、报告、信任调整)。
资源
| URI | 描述 |
|---|---|
cotc://server/passport |
此服务器的护照 |
cotc://agents/{cloud_id}/passport |
任何代理人的Cloud ID护照 |
cotc://directory |
完整的代理目录列表 |
核查议定书
代理通过创建有效负载对请求进行签名 {cloud_id}:{timestamp} (或 {cloud_id}:{timestamp}:{method}:{url}:{body_hash} 对于请求绑定签名),用Ed25519签名,并附上:
X-Cloud-ID: cc-...
X-Cloud-Timestamp: 2026-01-01T00:00:00.000Z
X-Cloud-Signature: <base64url Ed25519 signature>
服务器端检查:存在标头→ 代理未被阻止→ 时间戳≤5分钟→ 代理存在→ 状态 active → 已签署契约→ 信任评分高于阈值(可选)→ 允许自主级别(可选)→ 签名有效。
配套套餐
框架集成(Python——每个有20个项目):
citizenofthecloud-langchain--朗链citizenofthecloud-crewai--CrewAIcitizenofthecloud-agentframework--Microsoft代理框架
语言SDK(每个17个工具):
@citizenofthecloud/sdk--JavaScript/TypeScriptcitizenofthecloudpythonsdk-go--去吧citizenofthecloud--生锈
LangChain.js和。NET具有一流的MCP支持,因此对于那些使用此MCP服务器的生态系统来说,在本机软件包发布之前,建议使用此服务器。
从源代码构建
git clone https://github.com/citizenofthecloud/mcp-server.git
cd mcp-server
npm install
npm run build
node dist/index.js
许可证
麻省理工学院