mcpField
B
bray

bray

本地服务
github.com/forgesworn社交媒体1今天更新

关于 bray

bray 是面向 AI Agent 和个人的 Nostr MCP 服务、CLI 与 TypeScript SDK,涵盖社交、消息、身份、信任、钱包和发布操作,并支持加密的 Agent 间任务派发。

主要功能

  1. 01Nostr 身份与社交工具
  2. 02加密私信
  3. 03信任与身份验证
  4. 04发布、群组与日历
  5. 05Agent 任务派发
  6. 06CLI 与 TypeScript SDK

适用场景

  1. 01管理 Nostr 帖子和消息
  2. 02查询身份与信任信息
  3. 03向其他 Agent 发送加密任务
  4. 04发布文章或管理社区

MCP 相关

bray 通过可直接调用的工具和可搜索的操作目录,向 MCP 客户端提供 Nostr 操作。默认通过 stdio 启动为 MCP 服务,也支持 HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dev-forgesworn-bray": {
"command": "npx",
"args": [
"-y",
"nostr-bray"
],
"env": {
"NOSTR_SECRET_KEY": "<NOSTR_SECRET_KEY>",
"NOSTR_RELAYS": "<NOSTR_RELAYS>",
"NWC_URI": "<NWC_URI>"
}
}
}
}
启动命令npx -y nostr-bray
需要配置的环境变量
NOSTR_SECRET_KEY密钥Nostr secret key (nsec, hex, or BIP-39 mnemonic)
NOSTR_RELAYSComma-separated list of Nostr relay WebSocket URLs
NWC_URI密钥Nostr Wallet Connect URI for Lightning zaps

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmnostr-bray1.27.7

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

nostr-bray

为 AI 和人类打造的、注重信任的 Nostr MCP 服务、CLI 和 TypeScript SDK。 29 个分组中共包含 261 个工具。与模型无关。可与 Claude、ChatGPT、Gemini、Cursor、Windsurf 或任何 MCP 客户端配合使用。

npm CI licence TypeScript GitHub Sponsors

快速开始

需要 Node.js 24 或更高版本。

全局安装或通过 npx 运行:

npm install -g nostr-bray

刚接触 Nostr?先生成一个密钥——这一步无需任何配置,并会显示你的 npub 和 24 个单词的助记词(请抄下来;它就是密钥):

npx nostr-bray create

添加到 MCP 客户端配置中:

{
  "mcpServers": {
    "nostr": {
      "command": "npx",
      "args": ["nostr-bray"],
      "env": {
        "NOSTR_SECRET_KEY": "nsec1...",
        "NOSTR_RELAYS": "wss://relay.damus.io,wss://nos.lol"
      }
    }
  }
}

不带参数运行 npx nostr-bray 会启动 MCP 服务(默认使用 stdio;设置 TRANSPORT=http 时使用 HTTP);子命令则运行 CLI。

然后让你的 AI 调用 whoami,验证是否正常运行。

用于生产环境时,优先选择 Heartwood 或任何 NIP-46 bunker(你的密钥不会离开签名设备):

{
  "mcpServers": {
    "nostr": {
      "command": "npx",
      "args": ["nostr-bray"],
      "env": {
        "BUNKER_URI": "bunker://...",
        "NOSTR_RELAYS": "wss://relay.damus.io,wss://nos.lol"
      }
    }
  }
}
身份验证层级(从优到劣)
层级方法密钥暴露情况
Heartwood专用签名设备(BUNKER_URI)密钥不会离开签名设备。支持 nsec-tree 派生、按客户端设置权限,以及由设备支持的证明。
软件 bunker任何 NIP-46 bunker(BUNKER_URI)密钥由独立进程持有。bray 永远不会看到密钥。
ncryptsecNIP-49 加密密钥(NOSTR_NCRYPTSEC)密钥静态加密,并在启动时于内存中解密。
密钥文件文件路径(NOSTR_SECRET_KEY_FILE)密钥存储在磁盘上,读取一次后会删除环境变量。
环境变量内联密钥(NOSTR_SECRET_KEY)密钥在进程环境中可见。仅用于开发。

推荐工具

在注册的 261 个工具中,有 50 个被推荐,可直接从 MCP 工具列表调用。其余工具均已编入目录,可使用 search-actions 查找并用 execute-action 运行(这两个工具始终可用)。不会推荐任何会产生支出的工具。

  • 身份与社交: whoami、identity-switch、social-post、social-reply、social-feed、social-profile-get、dm-send、dm-read、dm-conversation
  • 钱包、中继与信任: zap-balance、relay-query、signet-badge、trust-score、verify-person、vault-read
  • 发布: article-publish、article-read、article-list、search-notes、search-profiles、hashtag-feed
  • 徽章、社区与日历: badge-create、badge-award、badge-accept、badge-list、community-create、community-feed、community-post、community-approve、community-list、calendar-create、calendar-read、calendar-rsvp
  • 信息列表: listing-create、listing-read、listing-search、listing-close
  • 调度(13 个): dispatch-send、dispatch-check、dispatch-reply、dispatch-ack、dispatch-status、dispatch-cancel、dispatch-refuse、dispatch-failure、dispatch-query、dispatch-propose、dispatch-capability-publish、dispatch-capability-discover、dispatch-capability-read

只有当 DISPATCH_IDENTITIES 指向身份文件时,才会注册调度工具;若未配置,则会推荐 37 个工具。

工具分组

分组工具数主要示例
身份16whoami、identity-derive-persona、identity-switch、identity-prove、nip05-lookup
社交15social-post、social-reply、social-feed、contacts-follow、social-notifications
私信4dm-send、dm-read、dm-conversation
信任22trust-attest、trust-ring-prove、trust-spoken-challenge、trust-attest-chain
派发13dispatch-send、dispatch-check、dispatch-reply、dispatch-capability-discover
中继13relay-query、relay-set、relay-discover、cast-spell、relay-health
审核16label-create、list-mute、list-bookmark、list-followset-create、moderation-filter
市场16marketplace-discover、marketplace-call、listing-create、listing-search
安全14canary-session-create、canary-group-create、canary-duress-signal、safety-activate
Blossom10blossom-upload、blossom-mirror、blossom-verify、blossom-repair
隐私10privacy-commit、privacy-prove-range、privacy-prove-age、privacy-publish-proof
Zap9zap-send、zap-balance、zap-make-invoice、zap-decode
钱包服务5wallet-grant、wallet-grants、wallet-revoke、wallet-refill、wallet-serve
保险库9vault-create、vault-encrypt、vault-share、vault-rotate
工作流7trust-score、verify-person、identity-setup、relay-health、feed-discover
Signet7signet-badge、signet-vouch、signet-credentials、signet-challenge
社区5community-create、community-feed、community-post、community-approve
徽章4badge-create、badge-award、badge-accept、badge-list
群组(NIP-29)20group-inspect、group-invite-create、group-forum-comment、group-delete
文章3article-publish、article-read、article-list
日历3calendar-create、calendar-read、calendar-rsvp
Wiki3wiki-publish、wiki-read、wiki-list
搜索3search-notes、search-profiles、hashtag-feed
定时发布4post-schedule、post-queue-list、post-queue-cancel、publish-event
社区 NIP2nip-publish、nip-read
实用工具23decode、validate-event、verify-event、gift-wrap、gift-unwrap、kind-info、nip44-encrypt、tombstone
同步(NIP-77)1sync-plan(拉取/推送是显式的 CLI 和 SDK 操作)
处理程序2handler-publish、handler-discover
目录2search-actions、execute-action

使用 search-actions 按关键词查找工具,然后使用 execute-action 运行它们。

协议基础:语义事件验证、 NIP-77 协调和中继作用域的 NIP-29 群组。

派发:AI 对 AI 协作

派发让 AI Agent 能够通过加密的 Nostr 私信协作。任何兼容 MCP 的客户端都可以向其他 Agent 发送结构化任务并接收结果。

**13 种消息类型:**发送、检查、回复、确认、状态、取消、拒绝、失败、查询、提议、能力发布、能力发现、能力读取。

**NIP-89 能力发现:**Agent 发布自己能够执行的操作。其他 Agent 按主题发现能力,然后自动将任务路由给合适的协作者。

dispatch-send("alice", "think", "Analyse the trade-offs of NIP-44 vs NIP-04")
dispatch-check()                    → inbox with pending tasks
dispatch-reply(taskId, result)      → send results back encrypted

所有消息均经过 NIP-44 加密。收件人可通过名称、NIP-05、npub 或十六进制值解析。

身份解析器

所有接受收件人的工具都会使用通用身份解析。你无需手动查找十六进制公钥。

支持的格式:

  • 名称 —— "alice"(从你的 dispatch 联系人中解析)
  • NIP-05 —— "[email protected]"(HTTP 查询)
  • npub —— "npub1abc..."(NIP-19 解码)
  • 十六进制 —— "a1b2c3..."(64 个字符,直接传递)

定时发布

现在签名事件,稍后发布。事件会立即使用你当前的密钥签名,然后暂存在队列中,直到预定时间。

post-schedule("Good morning!", "2026-04-01T08:00:00Z")
post-queue-list()          → view pending scheduled posts
post-queue-cancel(id)      → cancel before it publishes

NIP 支持情况

nostr-bray 实现或集成了以下 NIP:

NIP内容
NIP-01事件、签名、中继协议
NIP-02关注列表
NIP-05DNS 身份(查询、验证、中继提示)
NIP-09事件删除
NIP-11中继信息
NIP-17私信(礼物封装,默认)
NIP-19bech32 编码(npub、nsec、nprofile、nevent、naddr)
NIP-23长篇文章(kind 30023)
NIP-22群组论坛中符合架构规范的评论
NIP-29中继范围内的群组、聊天、论坛、邀请和管理
NIP-32标签
NIP-40过期标签
NIP-42中继身份验证
NIP-44加密载荷 v2
NIP-45事件计数
NIP-46Nostr Connect(bunker)
NIP-47Nostr Wallet Connect:通过一个钱包连接支付 BOLT-11 账单、查询余额和账单,以及进行范围受限的消费。仅支持 NIP-44 v2
NIP-49私钥加密(ncryptsec)
NIP-50搜索
NIP-51列表(静音、置顶、关注集、书签)
NIP-52日历事件
NIP-54Wiki 页面
NIP-57可读取 Zap 收据(kind 9735)。bray 可通过 NIP-47 支付 BOLT-11 账单,但不会生成 kind 9734 Zap 请求,也不会解析 LNURL,因此目前无法单独为个人资料或笔记发送 Zap
NIP-58徽章
NIP-65中继列表元数据
NIP-72社区
NIP-77Negentropy ID 对账,并提供如实的 REQ 回退
NIP-78应用专属数据
NIP-85信任排名
NIP-89推荐应用(发现 dispatch 能力)
NIP-96HTTP 文件存储(Blossom)
NIP-99分类列表
NIP-A7咒语(kind 777 —— 执行已保存的查询)
NIP-VA可验证证明(kind 31000)

配置

配置文件(推荐)

创建 ~/.config/bray/config.json(或 ~/.nostr/bray.json):

{
  "bunkerUriFile": "/Users/you/.nostr/bunker-uri",
  "relays": ["wss://relay.damus.io", "wss://nos.lol"],
  "trustMode": "annotate"
}

密钥通过文件路径(bunkerUriFile、secretKeyFile、nwcUriFile)引用,因此不会出现在配置文件中。

trustMode 可以设为 strict(隐藏来自不可信公钥的内容)、annotate(显示信任评分)或 off(不进行筛选)。默认值为 annotate;遇到无法识别的值时也会回退为 annotate。TRUST_MODE 环境变量会覆盖配置文件中的设置。

搜索顺序:BRAY_CONFIG 环境变量 > $XDG_CONFIG_HOME/bray/config.json > ~/.nostr/bray.json。

环境变量
变量描述
BRAY_CONFIG配置文件路径
BUNKER_URINIP-46 bunker URL(最安全)
BUNKER_URI_FILEbunker URI 文件路径
NOSTR_SECRET_KEYnsec、hex 或 BIP-39 助记词
NOSTR_SECRET_KEY_FILE秘密密钥文件路径
NOSTR_NCRYPTSECNIP-49 加密密钥
NOSTR_NCRYPTSEC_PASSWORDncryptsec 的密码
NWC_URI_FILE包含 NWC bearer URI 的私有 0600 文件路径
BRAY_MAX_PAYMENT_MSATbray 对单笔付款金额的上限,单位为 msat(默认值为 5000000,即 5,000 sats)
BRAY_MAX_DAILY_MSATbray 对任意连续 24 小时内支出的上限,单位为 msat(默认值为 20000000,即 20,000 sats)
BRAY_WALLET_SERVICE设置为 1 以注册 wallet-grant、wallet-refill 和 wallet-serve
DISPATCH_IDENTITIESdispatch 身份 Markdown 表格(名称和 hex 公钥)的路径。只有设置此项时才会注册 dispatch 工具;配置文件中的 dispatchIdentities 也有相同作用
BRAY_HOMEbray 状态文件的目录(默认值为 $XDG_CONFIG_HOME/bray,否则为 ~/.config/bray)
NOSTR_RELAYS以逗号分隔的中继 URL
NOSTR_FORBID_PUBKEY以逗号分隔的 npub 或 hex,这些密钥绝不能用于此进程的签名。见下文。
TOR_PROXYTor 的 SOCKS5h 代理
NIP04_ENABLED设置为 1 以启用旧版 NIP-04 私信
TRUST_MODEstrict、annotate(默认值)或 off。见上文的配置文件部分
TRANSPORTstdio(默认值)或 http
PORTHTTP 端口(默认值为 3000)
BIND_ADDRESSHTTP 绑定地址(默认值为 127.0.0.1)
BRAY_HTTP_TOKENHTTP 传输要求在 Authorization 标头中提供的 bearer token。如果未设置,bray 会生成一个随机 token,并仅在 stderr 中打印一次;你提供的 token 绝不会被回显

所有秘密环境变量都会在解析可能失败之前从 process.env 中删除。 不接受原始的 NWC_URI;请使用 NWC_URI_FILE 或 wallet connect <nwc-file>,以确保 bearer 凭据不会出现在进程环境、命令参数或 MCP 工具参数中。用于 NWC 的钱包必须支持 NIP-44 v2 加密;仅支持 NIP-04 的钱包将被拒绝。

此进程绝不能使用的密钥

持有错误密钥启动的 Agent,与正常运行的 Agent 无法区分。每个签名都能通过验证,每个工具都能成功,唯一的异常是 whoami 会悄悄返回其他人的 npub——而驱动它的模型没有理由怀疑这一点,因为告诉它这个结果的正是它自己的工具。

最糟糕的情况是使用主体的密钥:也就是某个人自己的密钥。以主体身份签名的 Agent 可以证明自己属于自己,并批准自己的请求,因为它就是这些检查所寻找的主体。

NOSTR_FORBID_PUBKEY=npub1yourownkey...,npub1anotherhuman...

或配置文件中的 forbidPubkeys。这两种方式都接受 npub 或 hex。激活这些密钥之一时会抛出错误——无论是在启动时、执行 identity-switch 时,还是使用 bunker --persona 时都会如此,因为检查发生在身份激活的时刻,而不是某个特定入口点。无法解析的条目也会导致错误:无法读取的列表不得悄悄允许一切。

每次启动时,活动 npub 都会打印在 stderr 中,因此无需询问 Agent,也能知道“当前使用的是哪个密钥?”

支出限额

硬性限额由钱包自身控制。 将 NWC_URI_FILE(或 wallet connect <file>)指向钱包签发的、带有支出预算的连接。无论 bray 做什么,也无论模型要求它做什么,钱包都不会支付超过该预算的金额。以下所有措施都是 bray 对自身的管控,值得启用,但与钱包的限额不是一回事。

此外,bray 发起的每笔付款(zap-send、marketplace-pay、CLI 中的 zap-send 和 wallet pay、SDK,以及通过下方限定范围的连接发起的付款)都会在发送前经过检查:

  • 单笔付款: 不超过 BRAY_MAX_PAYMENT_MSAT(默认 5,000 聪)。
  • 每日付款: 任意滚动 24 小时内不超过 BRAY_MAX_DAILY_MSAT(默认 20,000 聪);在实际手续费确定前,会按 1%(最低 1 聪)预留手续费。钱包收到请求前,尝试记录会写入状态目录中的 payment-ledger.json,因此重启后不会返还额度。
  • 每张发票限付一次: 同一张发票绝不会支付两次;如果某次尝试的结果未知,只有查询确认支付失败后才会重试。

模型可以设置 confirm: true,因此这不代表获得了人工批准。如果 MCP 客户端支持交互式询问,zap-send 和 marketplace-pay 还会直接向你询问,只有得到明确肯定答复后才付款;不支持交互式询问的客户端则会回退到 confirm,但仍受限额约束。zap-send 也不在默认工具列表中:需要通过 search-actions 才能调用。

发放钱包连接

zap-send 会通过你配置的 NWC URI 进行支付。该 URI 对其背后的钱包拥有不受限制的操作权限:它支持的每种方法都可用,没有额度上限,直到 URI 被轮换为止。把它交给 Agent,就等于交出所有权限。

wallet-grant 会针对同一个钱包签发范围受限的支付连接:一个钱包、一份余额,以及几种更受限制的接入方式。它们不是独立的钱包。用于创建或扩大支付权限的工具(wallet-grant、wallet-refill、wallet-serve)仅在设置 BRAY_WALLET_SERVICE=1 时注册;wallet-grants 和 wallet-revoke 始终可用。

wallet-grant   { name: "research-agent", methods: ["get_info","pay_invoice"],
                 budgetMsat: 50000, maxPaymentMsat: 5000 }
wallet-grants  # what exists, what it may do, what it has spent
wallet-revoke  { nameOrId: "research-agent" }
wallet-refill  { nameOrId: "research-agent", budgetMsat: 50000 }
wallet-serve   { action: "start" }

wallet-grant 会将新连接的 nostr+walletconnect:// URI 写入 grants 文件旁 wallet-connections/ 目录下的一个 0600 文件,并返回该文件的路径;URI 本身不会出现在工具结果中。

连接可以执行的操作由允许列表规定,默认不授予支付权限,也不会披露任何信息:只有 get_info 和 make_invoice。其他操作需针对每个连接单独启用,并且可以支付的连接必须设置预算——不会意外签发无限额度的授权。连接只能看到自己的信息:

  • get_balance 返回该连接的剩余预算,而不是钱包余额。
  • lookup_invoice 只会查询该连接签发或支付的发票;其他发票均会报告为未找到。

这些规则之所以存在,是因为付款无法撤回:

  • 每个请求只会处理一次。尝试付款前会先持久化其 ID,因此即使进程在付款过程中退出,恢复后也会知道不能再次尝试——中继可能会两次发送同一个已签名请求。
  • 同一连接上的请求会串行处理,因此同时到达的两个请求不会读取到相同的剩余预算。
  • 超过五分钟的请求不会得到处理,无论其自身的 expiration 标签声称什么。
  • 每个连接都有自己的服务密钥:两个授权之间没有任何可供中继关联的信息;撤销一个授权,只需删除其密钥。
  • 预算按此处解码的发票金额扣除,另加路由费:费用准备金会被保留,直到钱包报告实际费用。没有注明金额的发票会被拒绝。根据付款方提供的数值核验预算,不算真正的预算。
  • 如果钱包明确拒绝付款(例如余额不足),预算会退还,并且不会告知连接钱包拒绝的原因。
  • bray 自身的单笔付款和每日限额也适用于这些付款。
  • 如果声称付款成功,但其 preimage 无法结清发票,该请求会被拒绝,而不会继续传递。重复转发未经证实的付款声明,会让本服务成为撒谎的一方。

授权保存在 wallet-grants.json 中(权限为 0600,按身份区分),并且仅在 wallet-serve 运行时处理——也就是说,仅在此进程存活期间有效。这一点值得告知收到 URI 的对象:MCP 会话打开时可用的连接,与可整夜持续工作的连接,代表着不同的承诺。

该文件是记录,供机器上的所有 bray 进程共享。同一时间只能有一个进程提供授权服务;服务进程会在每次处理请求前重新读取授权;每次更改都会以加锁方式更新文件,因此从任何进程执行的撤销或充值都会应用于下一个请求,也不会被其他进程的写入覆盖。

CLI

npx nostr-bray whoami                    # show your npub
npx nostr-bray post "hello from bray!"   # publish a note
npx nostr-bray persona work              # derive a work persona
npx nostr-bray prove blind               # create a linkage proof
npx nostr-bray --help                    # see all commands

用作库

此软件包也是一个 TypeScript SDK(仅支持 ESM)。nostr-bray/sdk 是工厂 API:

import { createBray } from "nostr-bray/sdk"

const bray = await createBray({
  sec: process.env.NOSTR_SECRET_KEY, // or bunkerUri: "bunker://..."
  relays: ["wss://relay.damus.io", "wss://nos.lol"],
})

await bray.post("gm nostr")
console.log(bray.npub)
bray.destroy() // zeroise key material

defaultBray() 会根据上述环境变量构建相同的客户端。每个工具组背后的处理程序都作为子路径导出,因此你可以只导入一个工具组,而无需导入其他内容:

导入提供的内容
nostr-braycreateBray、defaultBray 以及下方所有工具组的处理程序,均重新导出
nostr-bray/sdkcreateBray 和 defaultBray,即 BrayClient 工厂 API
nostr-bray/types公开配置和结果类型的纯类型导出
nostr-bray/identity密钥派生、身份角色、关联证明、Shamir 备份、迁移、NIP-05
nostr-bray/social帖子、私信、信息流、blossom、群组、文章、徽章、日历、社区、wiki、日程安排
nostr-bray/trust证明、环签名和口述令牌
nostr-bray/relay中继列表、查询、计数、智能分析、发件箱发布、法术、NIP-42 身份验证、中继 HTTP 调用
nostr-bray/zapNWC 支付、NWC 文件加载和支付保护机制
nostr-bray/safety受胁迫身份角色以及 CANARY 会话、群组和信标
nostr-bray/event通用事件构建和发布、NIP-13 工作量证明、NIP-59 礼物封装与解封
nostr-bray/event-validation根据 kind 注册表进行语义事件验证
nostr-bray/util解码和编码、NIP-44、ncryptsec、筛选器、NIP 浏览
nostr-bray/workflow组合式流程,例如信任评分、人员验证和中继健康状况
nostr-bray/dispatch分发协议消息、能力和身份
nostr-bray/marketplaceL402 和 x402 的发现、支付、调用和列表
nostr-bray/privacy承诺以及零知识范围、年龄和阈值证明
nostr-bray/moderation标签、静音列表、置顶列表、关注集合、书签
nostr-bray/signetSignet 徽章、凭证、策略和挑战
nostr-bray/vaultDominion 基于纪元的加密保险库
nostr-bray/handler发布和发现支持 MCP 的处理程序(kind 31990)
nostr-bray/musig2BIP-327 MuSig2 密钥、随机数、部分签名和聚合原语
nostr-bray/syncNIP-77 协调:规划、拉取和推送
nostr-bray/adminNIP-86 中继管理 API 调用

文档

  • 使用指南 —— 身份、私信、证明、支付和受胁迫场景的演练
  • 示例 —— MCP 配置文件和 CLI 工作流脚本
  • 贡献指南 —— 设置、架构、测试和约定

面向 AI 助手

请参阅 llms.txt,获取针对 AI 上下文窗口优化的简明摘要;或参阅 llms-full.txt,查看包含参数详情的完整工具文档。

ForgeSworn 工具包的一部分

ForgeSworn 为 Nostr 构建开源加密身份、支付和协调工具。

库功能
nsec-tree确定性子身份派生
ring-sig基于 secp256k1 的 SAG/LSAG 环签名
range-proofPedersen 承诺范围证明
canary-kit抗胁迫的口头验证
spoken-token便于口头传达的验证令牌
toll-boothL402 支付中间件
geohash-kit支持多边形覆盖的 Geohash 工具包
nostr-attestationsNIP-VA 可验证证明
dominion基于 Epoch 的加密访问控制
nostr-veil保护隐私的信任网络

支持

如需反馈问题或请求新功能,请参阅 GitHub Issues。

如果 bray 对你有帮助,欢迎打赏:

  • Lightning:[email protected]
  • Nostr zaps:npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。