AI代理身份验证服务器

为AI运行时提供代理身份验证、信任评分和注册表访问的MCP服务器。

  • by citizenofthecloud
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 citizenofthecloud/mcp-server

使用说明

@云用户/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个项目):

语言SDK(每个17个工具):

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

许可证

麻省理工学院