AESP MCP Server
Enables AI agents to execute vault payments under explicit human control via policy-gated tools (balance checks, deposits, redemptions, transfers) with human review escalation for risky actions.
README
AESP - Agent Economic Sovereignty Protocol
Defining how AI agents operate economically under human sovereignty.
What Is AESP
AESP is a TypeScript SDK and MCP integration layer for agent payments under explicit human control. It is designed so that agents can execute economic actions while humans retain full economic sovereignty.
Core principles:
- Policy-gated execution -- every spend action is bounded by configurable policy rules (per-tx limits, daily/weekly/monthly budgets, address allowlists, time windows).
- Human override path -- risky actions are escalated to a review queue instead of being auto-approved.
- Verifiable commitments -- execution context can be tied to EIP-712 signed intent, enabling on-chain settlement guarantees.
- Practical integration -- MCP tools expose vault operations to AI agent frameworks; subpath exports let you import only what you need.
Install
npm install @yault/aesp
Requires Node.js >= 18.
Quick Start
Add to Claude Desktop
Add the following to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"yault": {
"command": "npx",
"args": ["-y", "@yault/aesp"],
"env": {
"YAULT_API_KEY": "sk-yault-..."
}
}
}
}
Add to Claude Code
claude mcp add yault -- npx -y @yault/aesp
Then set the environment variable YAULT_API_KEY in your shell or .claude/settings.json.
Run standalone
export YAULT_API_KEY="sk-yault-..."
yault-mcp # if installed globally
npx @yault/aesp # via npx
Get your API key
Go to yault.xyz to create an account and obtain your API key (sk-yault-*). The key is tied to your vault — each user manages their own key. Agent developers do not need a key unless they are also vault users; it is the end-user who configures their own key in the MCP client.
Use SDK modules
import { PolicyEngine } from '@yault/aesp/policy';
import { getAllMCPTools } from '@yault/aesp/mcp';
import { NegotiationStateMachine } from '@yault/aesp/negotiation';
const engine = new PolicyEngine(storageAdapter);
await engine.load();
const tools = getAllMCPTools(); // 6 MCP tool definitions
Modules
AESP is organized into subpath exports so you can import only what you need:
| Subpath | Description |
|---|---|
@yault/aesp |
Unified re-export of all modules |
@yault/aesp/types |
Shared type definitions (AgentExecutionRequest, TransferPayload, ChainId, etc.) |
@yault/aesp/policy |
Policy engine with 8-check evaluation, budget tracking, and policy change classification |
@yault/aesp/identity |
Agent identity derivation, certificate creation, and hierarchy management |
@yault/aesp/negotiation |
Offer/counter-offer state machine with session management |
@yault/aesp/commitment |
EIP-712 structured commitment builder for dual-signed agreements |
@yault/aesp/review |
Human-in-the-loop review queue with freeze/unfreeze controls |
@yault/aesp/mcp |
MCP tool definitions, argument validation, and server router |
@yault/aesp/a2a |
Agent-card builder for cross-agent discovery (A2A protocol) |
@yault/aesp/crypto |
Cryptographic helpers: signing, encryption, hashing, ZK proof bridge |
@yault/aesp/privacy |
Context tagging, ephemeral address pools, and consolidation scheduling |
MCP Tools
The stdio server exposes 6 backend-connected tools:
| Tool | Method + Endpoint | Purpose |
|---|---|---|
yault_check_balance |
GET /api/vault/balance/:address |
Read a wallet vault balance |
yault_deposit |
POST /api/vault/deposit |
Deposit underlying into vault |
yault_redeem |
POST /api/vault/redeem |
Redeem vault shares |
yault_transfer |
POST /api/vault/transfer |
Transfer vault allocation (parent to sub-account) |
yault_check_authorization |
GET /api/vault/agent-authorization |
Read operator/allowance status |
yault_get_balances |
GET /api/vault/balances/:address |
Read multi-balance breakdown |
Backend Requirements
The MCP server is a thin API client. It expects a Yault backend providing:
GET /api/vault/balance/:addressGET /api/vault/balances/:addressGET /api/vault/agent-authorizationPOST /api/vault/deposit--{ address, amount }POST /api/vault/redeem--{ address, shares }POST /api/vault/transfer--{ from_address, to_address, amount, currency? }
Authentication: Authorization: Bearer sk-yault-* via YAULT_API_KEY env variable.
Security Model
AESP is built around "bounded autonomy":
- Agent API keys should be policy-bound before spend execution.
- Spending controls should include per-tx and rolling limits (daily/weekly/monthly).
- Destination constraints should be allowlist-driven where applicable.
- Sensitive operations should stay outside broad agent key scopes.
- Human escalation remains the fallback for policy violations.
For vulnerability reporting, see SECURITY.md.
Related Packages
| Package | Description |
|---|---|
@yault/elizaos-plugin-aesp |
ElizaOS plugin wrapping AESP for agent frameworks |
Development
Run tests:
npm test
Build TypeScript:
npm run build:ts
Build with WASM (requires acegf-wallet as a sibling repo, or set ACEGF_ROOT):
npm run build:wasm
npm run build:ts
See CONTRIBUTING.md for the full development guide.
License
This project is licensed under the Apache License 2.0. See LICENSE for the full text.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。