Spree Commerce: open-source B2B and marketplace ecommerce
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
作者提供的说明(英文原文)
LATAM fiat ramps on Stellar for AI agents: live quotes, sandbox orders, PIX/SPEI simulation, docs
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
ETHERFUSE_API_KEY, MANTECA_API_KEY, MANTECA_USER_ID, RAMPKIT_ENV标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"ramp-kit": {
"command": "npx",
"args": [
"-y",
"@ramp-kit/mcp"
],
"env": {
"ETHERFUSE_API_KEY": "your-value",
"MANTECA_API_KEY": "your-value",
"MANTECA_USER_ID": "your-value",
"RAMPKIT_ENV": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add ramp-kit --env ETHERFUSE_API_KEY=your-value --env MANTECA_API_KEY=your-value --env MANTECA_USER_ID=your-value --env RAMPKIT_ENV=your-value -- npx -y @ramp-kit/mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"ramp-kit": {
"command": "npx",
"args": [
"-y",
"@ramp-kit/mcp"
],
"env": {
"ETHERFUSE_API_KEY": "your-value",
"MANTECA_API_KEY": "your-value",
"MANTECA_USER_ID": "your-value",
"RAMPKIT_ENV": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"ramp-kit": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ramp-kit/mcp"
],
"env": {
"ETHERFUSE_API_KEY": "your-value",
"MANTECA_API_KEY": "your-value",
"MANTECA_USER_ID": "your-value",
"RAMPKIT_ENV": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
MANTECA_USER_ID envRAMPKIT_ENV env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 armandocodecr 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:ETHERFUSE_API_KEY, MANTECA_API_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.9)于3个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
MCP server integrating with Stripe - tools for customers, products, payments, and more.
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Drop-in SDK + React components to add fiat on/off-ramps to any app in Latin America, built for the Stellar Brazil Ramps and Regional Kits sub-lane.
npm install @ramp-kit/core @ramp-kit/react # SDK + React widget
npm install @ramp-kit/server # production backend (optional)
For AI agents:
claude mcp add ramp-kit -- npx -y @ramp-kit/mcp # MCP server
npx skills add https://github.com/armandocodecr/latam-ramp-kit/tree/main/skills/ramp-kit # agent skill
**BRL in *and* out, proven on Stellar Testnet (Etherfuse sandbox):**
signAndSubmit signed and submitted it (burn tx), and the PIX payout processed provider-side. The widget ships the full Sell flow with in-widget signing and automatic tx_too_late recovery.One provider interface, two direct backends plus any SEP-compliant Stellar anchor (and a mock for instant dev):
| Provider | Rails | Networks | Role in the kit |
|---|---|---|---|
| Etherfuse | BRL (PIX) + MXN (SPEI) | Stellar (native), Solana, Base, Polygon | Stellar-native settlement: automatic trustlines, sponsored onboarding via claimable balances |
| Manteca | In: BRL (PIX), ARS, MXN, CLP · Out: those + COP, PEN, GTQ, CRC, BOB, PUSD, PHP | Stellar, EVM chains, Tron | Broadest LATAM payout coverage — 11 countries — behind the same interface. Verified live: BRL→PIX→USDC delivered on Stellar Testnet |
SepProvider | any the anchor serves | Stellar | Fronts any SEP-compliant anchor (SEP-1/10/38/24): the end user authenticates with their own wallet, no partner key. One adapter, the whole anchor ecosystem |
MockProvider | any | Stellar | Instant local dev + integration tests, realistic order lifecycle |
import { EtherfuseProvider } from "@ramp-kit/core";
import { RampWidget } from "@ramp-kit/react";
const provider = new EtherfuseProvider({ apiKey }); provider.setBankAccount((await provider.listBankAccounts())[0].bankAccountId);
;
Swapping providers is one line (new MantecaProvider({ apiKey }), new MockProvider()), or let the router pick per country and compare live quotes:
const router = new RampRouter()
.register(new EtherfuseProvider({ apiKey })) .register(new MantecaProvider({ apiKey: mantecaKey }));
// Routing is direction-aware: Manteca pays out across 11 countries but only // takes deposits in 4, so the same corridor can resolve differently. const provider = router.resolve({ country: "CO", fiatCurrency: "COP", direction: "offramp", }); const quotes = await router.compareQuotes(request, { fiatCurrency: "BRL" });
RampProvider interface: listAssets → getQuote → createOrder → getOrdercreated → awaiting_deposit → awaiting_signature → processing → settled | failed | cancelledEtherfuseProvider (incl. registerWallet, listBankAccounts, sandbox simulateFiatReceived), MantecaProvider, MockProviderRampRouter: provider selection per country/currency + live quote comparisongetAccountState (trustline/reserve checks), getPendingBalances / claimPendingBalances (sponsored-onramp claims), signAndSubmit (handles tx_too_late → regenerate), parseAssetIdentifier embeddable stepper flow (live quote countdown, PIX/SPEI deposit instructions, status tracking), useQuote (auto-refresh on expiry), useOrder (polls until terminal state)Manteca has the broadest LATAM fiat rails; Etherfuse is Stellar-native with sponsored wallet onboarding. Both settle USDC on Stellar (Manteca added Stellar support recently — verified live by this kit), which makes real multi-anchor comparison possible on the same corridor: RampRouter.compareQuotes fans one request out to both and returns live rates sorted (verified: 100 BRL → 19.49 USDC Etherfuse vs 19.23 USDC Manteca). They still expose completely different mental models (quote/order vs. multi-stage synthetics + price locks) — the kit hides that behind one interface, which is exactly the pain an app integrating ramps in the region hits first.
| Etherfuse | Manteca | Kit exposes | |
|---|---|---|---|
| Pricing | quote (2 min expiry) | price lock (expireAt) | RampQuote.expiresAt + auto-refresh |
| Execution | order | ramp synthetic (stages) | RampOrder.status (one lifecycle) |
| Deposit info | CLABE / PIX charge on order | details.depositAddress | DepositInstructions |
| Stellar | trustlines, claimable balances, tx expiry | — | stellar.ts helpers |
pnpm install
pnpm dev # demo on http://localhost:5173
Zero-setup path: pick "Mock provider" and walk the full flow immediately.
Real sandbox path (Stellar Testnet):
api_sand… key into the demo and connect Freighter (your own wallet signs everything — or generate a throwaway test wallet; the provider registration happens automatically). Run an onramp: quote → order → simulate the incoming PIX → watch it settle on Stellar Testnet → claim the delivered claimable balance with one click. Then flip to Sell to go the other way: USDC → BRL with in-wallet signing, both transactions linked to Stellar Expert for public verification.Manteca sandbox (https://sandbox.manteca.dev/crypto/v2) requires credentials from the Manteca team; the adapter is implemented from their public docs and ships with the same normalized lifecycle.
Note on API keys: a provider key identifies your *business* (its KYB,
fees and settlement accounts) — there is one per app, held server-side, and
end users never see it. They are customers under it, identified by
customerId. The demo asks you to paste a key only because whoever opens
it is playing the role of the integrating developer.
You get partner keys from Etherfuse and/or Manteca once. Your users just click buy — they never see a key or an API.
browser (no key) → your backend (keys in env) → Etherfuse / Manteca
@ramp-kit/server
// your backend — the only place keys exist
createRampServer({ proxy: { apiKey: process.env.ETHERFUSE_API_KEY!, environment: "production" }, manteca: { apiKey: process.env.MANTECA_API_KEY!, environment: "production" }, }).listen(8787);
// your frontend — empty key, pointed at your backend new EtherfuseProvider({ apiKey: "", baseUrl: "https://api.myapp.com/ramp/etherfuse" });
Runnable in examples/backend-integration — verified end to end against the real sandboxes with an empty client key: quote → order → deposit → settled, while privileged endpoints (user onboarding, company config, accounting) return 403 through the proxy.
The one piece that stays yours: onboarding each user with the provider (KYC) to get their customerId. That's inherent to operating a ramp — from quote onward the kit handles it.
Why a backend at all? Frontend env vars (VITE_*, NEXT_PUBLIC_*) are embedded in the served JS bundle — any visitor can read them, so a partner key there is exposed. The key must live in a backend env var behind @ramp-kit/server (a ~10-line serverless function, not real infrastructure). The exception is the SEP-anchor route: SepProvider needs no partner key — the end user authenticates with their own wallet — so it runs entirely in the frontend.
Full step-by-step for testnet and mainnet (env files, the single RAMP_ENV flag, wallet networks, credential checklists): skills/ramp-kit/references/environments.md. The same guide ships inside the AI tooling — agents with the kit's skill or the @ramp-kit/mcp server (get_documentation → environments) can walk you through it.
The demo ships ready to deploy — a serverless proxy at api/[...path].ts (auto-detected by Vercel at the repo root):
armandocodecr/latam-ramp-kit../ · Framework Preset: Other, with three overrides in Build & Development Settings:pnpm installpnpm -r buildapps/demo/distWhat the deployed demo does:
/api/ /*, the function forwards it to the provider with the same endpoint allowlist @ramp-kit/server enforces. The deployment holds no credentials and stores nothing.GET /ramp/assets requires blockchain, currency and wallet — the kit fills sensible defaults.createOrder registers (idempotent) and retries on "Wallet not found". claimOwnership: true under a KYB-approved org marks wal只显示了开头部分;其余内容请在仓库中阅读