Skip to content

Commit 80debda

Browse files
committed
Add AramidBridgeMCP as protocol-layer service for cross-chain bridging
Onboard the Aramid Bridge MCP (Voi ↔ Algorand) into the UluOS service registry, Docker Compose stack, capability definitions, and docs. Brings total to 73 tools across 8 services. Made-with: Cursor
1 parent ddd995a commit 80debda

6 files changed

Lines changed: 113 additions & 7 deletions

File tree

README.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ A local-first integration environment for the Ulu MCP ecosystem. UluOS composes
1010
│ (Control Plane)│
1111
└────────┬────────┘
1212
13-
┌───────────┼───────────────┐
14-
│ Protocol Layer │
15-
DorkFiMCP │ EnvoiMCP
16-
└───────────┬───────────────┘
13+
┌───────────┼──────────────────────
14+
Protocol Layer
15+
│ DorkFiMCP │ EnvoiMCP │ AramidMCP
16+
└───────────┬──────────────────────
1717
1818
┌────────────────┼────────────────┐
1919
│ Ecosystem Meaning Layer │
@@ -38,6 +38,7 @@ A local-first integration environment for the Ulu MCP ecosystem. UluOS composes
3838
| **UluAlgorandMCP** | Ecosystem | Algorand protocol discovery, NFDomains, contract identification |
3939
| **DorkFiMCP** | Protocol | DorkFi lending: markets, positions, deposits, liquidations |
4040
| **EnvoiMCP** | Protocol | enVoi name service: resolution, profiles, registration lookup |
41+
| **AramidBridgeMCP** | Protocol | Aramid Bridge: cross-chain bridging between Voi and Algorand |
4142

4243
## Quick Start
4344

@@ -62,7 +63,7 @@ git clone git@github.com:NautilusOSS/UluOS.git && cd UluOS
6263

6364
### Start using
6465

65-
Open the `UluOS` folder in Cursor — all 71 tools across 7 services are available immediately.
66+
Open the `UluOS` folder in Cursor — all 73 tools across 8 services are available immediately.
6667

6768
### HTTP gateway (Docker)
6869

@@ -76,7 +77,7 @@ curl http://localhost:3000/capabilities
7677

7778
## MCP Integration
7879

79-
The gateway is also an MCP server. Agents connect once and get access to all 71 tools across 7 services — no need to configure individual MCP connections.
80+
The gateway is also an MCP server. Agents connect once and get access to all 73 tools across 8 services — no need to configure individual MCP connections.
8081

8182
**Cursor / local agents (stdio):**
8283

docs/ULUOS_ARCHITECTURE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
99
1010
Protocol Layer
11-
DorkFiMCP | EnvoiMCP
11+
DorkFiMCP | EnvoiMCP | AramidMCP
1212
1313
1414
Ecosystem Meaning Layer
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
[
2+
{
3+
"name": "aramid-bridge.get_supported_assets",
4+
"service": "aramid-bridge",
5+
"tool": "get_supported_assets",
6+
"description": "List assets supported by the Aramid Bridge with available routes between Voi and Algorand",
7+
"chains": ["voi-mainnet", "algorand-mainnet"],
8+
"readOnly": true,
9+
"requiresAuth": false,
10+
"requiresSigning": false,
11+
"requiresBroadcast": false,
12+
"requiresPayment": false,
13+
"pricingTier": "free",
14+
"parameters": {
15+
"type": "object",
16+
"properties": {
17+
"chain": {
18+
"type": "string",
19+
"enum": ["voi", "algorand"],
20+
"description": "Filter by source chain, or omit to show all routes"
21+
},
22+
"symbol": {
23+
"type": "string",
24+
"description": "Filter by token symbol (e.g. VOI, USDC, ETH)"
25+
}
26+
}
27+
},
28+
"response": {
29+
"type": "array",
30+
"description": "Bridgeable assets with source/destination token IDs and route information"
31+
}
32+
},
33+
{
34+
"name": "aramid-bridge.bridge_txn",
35+
"service": "aramid-bridge",
36+
"tool": "bridge_txn",
37+
"description": "Build unsigned bridge transaction for transferring assets between Voi and Algorand via the Aramid Bridge",
38+
"chains": ["voi-mainnet", "algorand-mainnet"],
39+
"readOnly": false,
40+
"requiresAuth": true,
41+
"requiresSigning": true,
42+
"requiresBroadcast": true,
43+
"requiresPayment": false,
44+
"pricingTier": "premium",
45+
"parameters": {
46+
"type": "object",
47+
"required": ["chain", "symbol", "amount", "sender", "destinationAddress"],
48+
"properties": {
49+
"chain": {
50+
"type": "string",
51+
"enum": ["voi", "algorand"],
52+
"description": "Source chain to bridge FROM"
53+
},
54+
"symbol": {
55+
"type": "string",
56+
"description": "Token symbol to bridge (e.g. VOI, ALGO, USDC, ETH, UNIT, POW)"
57+
},
58+
"amount": {
59+
"type": "string",
60+
"description": "Amount in human-readable units (e.g. '10' for 10 VOI)"
61+
},
62+
"sender": {
63+
"type": "string",
64+
"description": "Sender wallet address on source chain"
65+
},
66+
"destinationAddress": {
67+
"type": "string",
68+
"description": "Recipient wallet address on destination chain"
69+
}
70+
}
71+
},
72+
"response": {
73+
"type": "object",
74+
"description": "Base64-encoded unsigned transactions for signing via UluWalletMCP"
75+
}
76+
}
77+
]

gateway/services.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,21 @@
105105
"tags": ["naming", "identity", "resolution"],
106106
"visibility": "private",
107107
"description": "enVoi name service: name resolution, registration, profile lookup, reverse resolution"
108+
},
109+
{
110+
"name": "aramid-bridge",
111+
"version": "0.1.0",
112+
"transport": "stdio",
113+
"command": "node",
114+
"args": ["../AramidBridgeMCP/index.js"],
115+
"baseUrl": "http://aramid-bridge-mcp:3008",
116+
"layer": "protocol",
117+
"healthPath": "/health",
118+
"capabilitiesPath": "/capabilities",
119+
"chains": ["voi-mainnet", "algorand-mainnet"],
120+
"tags": ["bridge", "cross-chain", "defi"],
121+
"visibility": "private",
122+
"description": "Aramid Bridge: cross-chain bridging of native tokens and ASAs between Voi and Algorand"
108123
}
109124
]
110125
}

infra/.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ VOI_MCP_URL=http://voi-mcp:3004
1313
ALGORAND_MCP_URL=http://algorand-mcp:3005
1414
DORKFI_MCP_URL=http://dorkfi-mcp:3006
1515
ENVOI_MCP_URL=http://envoi-mcp:3007
16+
ARAMID_BRIDGE_MCP_URL=http://aramid-bridge-mcp:3008
1617

1718
# --- Service Images (override to use real images) ---
1819
# CORE_MCP_IMAGE=ghcr.io/ulu/core-mcp:latest
@@ -22,6 +23,7 @@ ENVOI_MCP_URL=http://envoi-mcp:3007
2223
# ALGORAND_MCP_IMAGE=ghcr.io/ulu/algorand-mcp:latest
2324
# DORKFI_MCP_IMAGE=ghcr.io/ulu/dorkfi-mcp:latest
2425
# ENVOI_MCP_IMAGE=ghcr.io/ulu/envoi-mcp:latest
26+
# ARAMID_BRIDGE_MCP_IMAGE=ghcr.io/ulu/aramid-bridge-mcp:latest
2527

2628
# --- Voi Node ---
2729
VOI_ALGOD_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

infra/docker-compose.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ services:
5555
condition: service_healthy
5656
envoi-mcp:
5757
condition: service_healthy
58+
aramid-bridge-mcp:
59+
condition: service_healthy
5860
healthcheck:
5961
test: ["CMD", "wget", "-qO-", "http://localhost:3000/health"]
6062
interval: 10s
@@ -133,6 +135,15 @@ services:
133135
<<: *mcp-healthcheck
134136
test: ["CMD", "wget", "-qO-", "http://localhost:3007/health"]
135137

138+
aramid-bridge-mcp:
139+
<<: *mcp-stub
140+
environment:
141+
PORT: 3008
142+
SERVICE_NAME: aramid-bridge
143+
healthcheck:
144+
<<: *mcp-healthcheck
145+
test: ["CMD", "wget", "-qO-", "http://localhost:3008/health"]
146+
136147
# --- Node Services (disabled by default for local dev) ---
137148
# Uncomment when running with real algod nodes:
138149
#

0 commit comments

Comments
 (0)