Latch-MCP服务器的开放支付层
计算与商业相遇的地方。 MCP(模型上下文协议)、x402应用程序和智能系统的开放支付层。即时、可验证的机器对机器支付。
   
🚀 概述
Latch是一个平台,通过区块链支付实现MCP(模型上下文协议)服务器的货币化。它为以下方面提供了完整的基础设施:
- MCP服务器注册 -注册和发现MCP服务器
- 支付集成 -x402协议支持EVM和Solana区块链
- 钱包管理 -多链钱包支持(以太坊、Solana、Base、Sei等)
- 分析与分析 -使用Redis缓存进行实时分析
- 服务器发现 -浏览和浏览已注册的MCP服务器
- 部署工具 -一键部署到Vercel/GitHub
✨ 特性
核心功能
- 🔐 多重身份验证 -GitHub OAuth和通过更好的身份验证进行电子邮件/密码身份验证
- 💰 支付处理 -x402支付协议与多种支付策略的集成
- 🔗 多区块链支持 -EVM(基础、以太坊)和Solana架构
- 💼 钱包管理 -每个用户支持多个钱包(外部、托管、保管)
- 📊 分析仪表板 -服务器使用、收入跟踪和声誉系统
- 🔍 服务器发现 -使用工具预览浏览趋势服务器
- 🛠️ MCP工具检查 -从MCP服务器URL自动检测工具
- 🚀 部署集成 -从代码库直接部署到Vercel
支付功能
- x402协议 -完全支持x402支付规范
- 多种支付策略 -CDP、Privy、Magic和手动支付流程
- 智能账户支持 -用于无气体交易的可选智能合约钱包
- 付款验证 -支付的加密验证
- 多币种支持 -跨网络的USDC和其他稳定币
开发人员功能
- API密钥管理 -生成和管理用于编程访问的API密钥
- Webhook支持 -服务器事件和通知
- VLayer集成 -执行验证和证明生成
- 分析API -全面的分析端点
- RESTful API -所有平台操作的完整API
🏗️ 建筑
技术栈
- 前端Next.js 15.4、React 19、TypeScript
- 后端:Next.js API路由,Hono框架
- 数据库:PostgreSQL与Drizzle ORM
- 缓存:Redis(Vercel KV)
- 认证:更好的身份验证
- 支付x402 SDK,我知道
- 区块链:EVM(viem)、Solana(@Solana/kit)
- 测试:剧作家、测试容器
- 样式:顺风CSS 4,Radix UI
- 部署:Vercel
项目结构
latch/
├── src/
│ ├── app/ # Next.js app router
│ │ ├── (server)/ # Server-side routes
│ │ │ ├── api/ # API endpoints
│ │ │ ├── mcp/ # MCP proxy routes
│ │ │ └── ping/ # Health check routes
│ │ ├── register/ # Server registration UI
│ │ ├── servers/ # Server browser
│ │ └── explorer/ # Tool explorer
│ ├── components/ # React components
│ │ ├── custom-ui/ # Custom components
│ │ ├── ui/ # shadcn/ui components
│ │ └── providers/ # Context providers
│ ├── lib/
│ │ ├── gateway/ # Backend logic
│ │ │ ├── db/ # Database schema & actions
│ │ │ ├── payments/ # Payment strategies
│ │ │ ├── auth.ts # Authentication
│ │ │ └── analytics.ts # Analytics computation
│ │ ├── commons/ # Shared utilities
│ │ └── client/ # Client-side utilities
│ └── types/ # TypeScript types
├── drizzle/ # Database migrations
├── tests/ # E2E tests
└── public/ # Static assets🚦 入门指南
先决条件
- Node.js 18+或Bun
- PostgreSQL数据库
- Redis(Vercel KV或自托管)
- GitHub OAuth应用程序(用于身份验证)
- CDP API凭证(用于托管钱包)
环境变量
创建一个 .env.local 包含以下变量的文件:
# Node Environment
NODE_ENV=development
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/latch
# Authentication
BETTER_AUTH_SECRET=your-secret-key
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret
# Payment Facilitators
FACILITATOR_URL=https://x402.org/facilitator
BASE_FACILITATOR_URL=https://facilitator.x402.rs
BASE_SEPOLIA_FACILITATOR_URL=https://x402.org/facilitator
SEI_TESTNET_FACILITATOR_URL=https://6y3cdqj5s3.execute-api.us-west-2.amazonaws.com/prod
FACILITATOR_EVM_PRIVATE_KEY=your-private-key
# CDP (Coinbase Developer Platform)
CDP_API_KEY=your-cdp-api-key
CDP_API_SECRET=your-cdp-api-secret
CDP_WALLET_SECRET=your-cdp-wallet-secret
# Vercel KV (Redis)
KV_REST_API_URL=your-kv-url
KV_REST_API_TOKEN=your-kv-token
# Payment Strategy Configuration
PAYMENT_STRATEGY_ENABLED=true
CDP_STRATEGY_ENABLED=true
PRIVY_STRATEGY_ENABLED=true
CDP_PREFER_SMART_ACCOUNTS=true安装
- 克隆存储库
git clone https://github.com/your-org/latch.git
cd latch- 安装依赖项
bun install
# or
npm install- 设置数据库
# Generate migrations
bun run db:generate-migrations
# Apply migrations
bun run db:migrate
# or
bun run migrate- 启动开发服务器
bun run dev
# or
npm run dev该应用程序将在 http://localhost:3000.
📚 用法
注册MCP服务器
- 导航至
/register - 连接您的钱包(或登录GitHub)
- 输入您的MCP服务器URL(必须支持流式HTTP传输)
- 为每个检测到的工具配置工具定价
- 选择支付网络和代币
- 提交注册
使用API
注册服务器
curl -X POST https://your-domain.com/api/servers \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"mcpOrigin": "https://your-mcp-server.com",
"receiverAddress": "0x...",
"name": "My MCP Server",
"description": "Server description",
"tools": [
{
"name": "tool-name",
"pricing": [{
"maxAmountRequiredRaw": "1000000",
"assetAddress": "0x...",
"network": "base-sepolia",
"tokenDecimals": 6
}]
}
]
}'获取服务器
curl https://your-domain.com/api/servers?limit=10&offset=0&type=trending获取服务器详细信息
curl https://your-domain.com/api/servers/:serverId钱包管理
该平台支持多种钱包类型:
- 外部钱包:MetaMask、幻影、钱包连接
- 管理钱包:Coinbase CDP、Privy、Magic
- 保管钱包:平台管理钱包
# Get user wallets
curl https://your-domain.com/api/users/:userId/wallets
# Add external wallet
curl -X POST https://your-domain.com/api/users/:userId/wallets \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"walletAddress": "0x...",
"blockchain": "ethereum",
"architecture": "evm",
"walletType": "external",
"provider": "metamask"
}'支付集成
该平台使用x402支付协议。当工具需要付款时:
- 客户端收到
402 Payment Required响应 - 响应包括
accepts带有付款要求的数组 - 客户端使用x402 SDK创建支付
- 付款包含在
X-PAYMENT头球 - 服务器验证付款并处理请求
付款流程示例:
import { createPayment } from "x402";
const paymentRequirements = response.accepts;
const payment = await createPayment(wallet, 1, paymentRequirements);
const paymentHeader = encodePayment(payment);
// Retry request with payment header
fetch(url, {
headers: {
"X-PAYMENT": paymentHeader,
},
});🧪 测试
该项目包括使用Playwright和Testcontainers进行全面的E2E测试。
设置测试环境
# Install Playwright browsers
bun run e2e:install运行测试
# Run all tests
bun run e2e:test
# Run with UI
bun run e2e:ui
# Show test report
bun run e2e:show-report测试覆盖率
- 身份验证流程(GitHub OAuth、电子邮件/密码)
- 钱包管理(添加、删除、设置主钱包)
- MCP服务器注册和发现
- 付款处理和验证
- 分析计算
- API密钥管理
📊 数据库模式
关键表
- 用户 -具有身份验证的用户帐户
- 用户钱包 -多链钱包管理
- mcp服务器 -已注册的MCP服务器
- mcp_tools -每个服务器内的工具及其定价
- 支付 -带有区块链验证的付款记录
- 工具_用法 -使用情况分析和跟踪
- api_keys -API密钥管理
- 证明 -VLayer执行证明
- 服务器所有权 -服务器访问控制
所有货币金额都以基本单位(NUMERIC)存储,以避免浮点精度问题。
🔧 发展
可用脚本
# Development
bun run dev # Start dev server with Turbopack
bun run dev:no-turbo # Start dev server without Turbopack
# Database
bun run db:apply-changes # Push schema changes
bun run db:generate-migrations # Generate migration files
bun run db:migrate # Run migrations
bun run db:studio # Open Drizzle Studio
# Testing
bun run e2e:test # Run E2E tests
bun run e2e:ui # Run tests with UI
bun run e2e:codegen # Generate Playwright tests
# Build
bun run build # Build for production
bun run start # Start production server
# Utilities
bun run account:generate # Generate test accounts代码的风格
- TypeScript严格模式已启用
- ESLint用于棉绒
- 格式化预处理(通过ESLint)
- 基于组件的体系结构
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
🔐 安全
- 所有敏感数据(私钥、机密)永远不会存储在数据库中
- API密钥在存储前进行散列
- 付款验证使用加密签名
- 通过更好的身份验证进行CSRF保护
- API端点的速率限制
- 通过Zod模式进行输入验证
🌐 支持的网络
主网
- 基础 -基础主网
- 以太坊 -以太坊主网
- 是 - 六个名字
测试网
- 基础Sepolia -基础测试网
- 测试网络 - 测试网络
支持的代币
- 所有支持的网络上的USDC
- 原生代币(ETH、SOL等)
📖 API文档
认证
大多数端点都需要通过以下方式进行身份验证:
- 会话cookie(浏览器)
- API密钥头:
Authorization: Bearer
端点
API完整文档可在代码库中获取,网址为 src/app/(server)/api/[[...route]]/route.ts.关键端点:
GET /api/health-健康检查GET /api/servers-列出服务器POST /api/servers-注册服务器GET /api/servers/:id-获取服务器详细信息GET /api/users/:userId/wallets-获取用户钱包POST /api/users/:userId/wallets-添加钱包GET /api/analytics/usage-获取分析GET /api/proofs-获取执行证明
🤝 集成
第三方服务
- Coinbase开发者平台(CDP) -托管钱包基础设施
- Vercel KV -Redis缓存
- VLayer -执行验证
- GitHub -OAuth和部署
- 维塞尔 -部署平台
支付促进者
- x402.org -支付协助服务
- 多个特定于网络的主持人
📝 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🙏 致谢
📧 联系
如有疑问、问题或贡献,请在GitHub上打开问题。
______________________________________________________________________
内置❤️ 对于MCP生态系统
