使用说明
linkd mcp服务器
Node.js/TypeScript——模型上下文协议服务器,将Linkdfund协议工具暴露给AI代理。
[!重要] 非托管监管免责声明:该软件作为一套非监护协议工具和接口提供。它不提供金融服务、投资建议或资产管理。所有交易签名和私钥管理都由用户在本地处理。此实现旨在与 肯尼亚《2025年VASP法案》 非监护分散协议标准。
这是什么
将Linkdfund智能合约层连接到任何兼容MCP的AI客户端(Claude Desktop、Claude Code、自定义代理)。它
- 将Soroban合约操作作为可调用工具公开——每个操作都返回一个base64 XDR信封,而不是一个签名的交易。
- 提供
audit_expenditure_anchor用于支出包的跨层加密验证。 - 在stdio传输上运行——没有HTTP端口,没有持久进程,没有身份验证表面。
它包起来了 linkd-ts-sdk。它不包含自己的业务逻辑。
源结构
src/
index.ts Single file — MCP server, tool registry, all handlers
暴露的工具
| 工具 | 需要授权 | 返回 | 描述 |
|---|---|---|---|
init_escrow |
管理员密钥对(外部) | XDR字符串 | 使用角色和令牌初始化Soroban托管合同 |
add_milestone |
管理员密钥对(外部) | XDR字符串 | 附加资金里程碑 |
deposit_funds |
捐赠者密钥对(外部) | XDR字符串 | 将SEP-41代币锁定到托管中 |
submit_proof |
NGO密钥对(外部) | XDR字符串 | 将KRA eTIMS/IPFS证明哈希附加到里程碑 |
approve_ngo |
NGO密钥对(外部) | XDR字符串 | NGO加密签收里程碑 |
approve_auditor |
审计员密钥对(外部) | XDR字符串 | 审计员加密签名——如果非政府组织也批准,则触发资金释放 |
refund_milestone |
管理员密钥对(外部) | XDR字符串 | 取消停滞的里程碑,将资金路由到退款地址 |
get_escrow_status |
无 | 文本报告 | 链上实时读取:托管总量、里程碑计数、满状态 |
audit_expenditure_anchor |
无 | JSON审计报告 | 重新计算捆绑包哈希并根据Stellar Memo.hash进行验证 |
所有XDR返回工具都会生成信封,在提交之前必须在外部签名。
audit_expenditure_anchor --跨层完整性检查
这个工具是防篡改的。给定一个支出包及其声称的Stellar交易哈希,它:
- 重新计算
generateExpenditureHash(invoiceNumber, amount, supplierName, donorIds)--确定性 - 通过以下方式从Horizon获取Stellar交易
stellarTxHash - 解
MEMO_HASH(base64→ hex) - 将计算哈希与链上哈希进行比较
{
"audit_passed": true,
"expected_hash": "a3f9...",
"on_chain_hash": "a3f9...",
"variance_detected": false
}
variance_detected: true 意味着支出包被篡改或提供了错误的TX哈希。
已知限制:目前的执行情况
src/index.ts将原始捐赠者ID直接传递给generateExpenditureHash()而不是通过路由generateAnonymizedExpenditureHash()这会产生一个与锚定哈希值不同的哈希值linkd-app(在哈希之前匿名化捐赠者ID)。这audit_passed结果将是false用于任何实际锚定支出,直至纠正为使用generateAnonymizedExpenditureHash().
设置和部署
先决条件
linkd-ts-sdk 必须在此包之前构建:
cd ../linkd-ts-sdk && npm run build
安装和构建
npm install
npm run build # Compiles to dist/ — required before connecting to Claude Desktop
发展
npm run dev # ts-node watch mode
Claude桌面集成
添加 claude_desktop_config.json:
{
"mcpServers": {
"linkd-protocol": {
"command": "node",
"args": ["/absolute/path/to/linkd-mcp-server/dist/index.js"]
}
}
}
运输
StdioServerTransport --通过stdin/stdout进行通信。没有网络侦听器。没有端口。没有身份验证表面。
Zod验证
所有工具输入在到达之前都经过Zod验证 linkd-ts-sdk。验证错误以结构化文本的形式返回,以便代理可以自我更正:
Argument Validation Failed: [ZodError details]
Runtime Error: [message]
不要抓住并吞下这些——它们是代理的反馈回路。
网络
硬编码为 testnet 在 src/index.tsThe audit_expenditure_anchor 刀具命中 https://horizon-testnet.stellar.org.
主网部署前:更改 network: "testnet" → network: "mainnet" 并更新Horizon URL。这是唯一需要的更改。
依赖链
linkd-mcp-server
└── linkd-ts-sdk (local — file:../linkd-ts-sdk — must be built first)
└── @modelcontextprotocol/sdk
└── @stellar/stellar-sdk ^14.5.0
└── zod
版本差异:
linkd-mcp-server取决于@stellar/stellar-sdk ^14.5.0当linkd-ts-sdk用途^13.3.0这是一种潜在的不相容性。Stellar SDK在次要版本之间有突破性的变化。在主网部署之前,必须对齐这两个包。
如果 linkd-ts-sdk 更改,运行 npm run build 在 linkd-ts-sdk/ 首先,然后重建此包。
安全
此服务假定与调用AI代理或客户端应用程序存在信任关系。它通过SDK保证XDR有效载荷的结构有效性,并通过Zod模式防止执行停止。商业逻辑 当 调用这些工具必须由父应用程序的智能层控制。
许可证
专有的。保留所有权利。