VOOZH about

URL: https://mcp.so/server/atv-by-aarna/aarna-ai

⇱ Atv By Aarna MCP Server


Atv By Aarna

@aarna-ai

AI-native access to Aarna's tokenized DeFi yield vaults. Query vault performance (NAV, TVL, APY), build deposit/withdraw/stake transactions, and track portfolio positions across Ethereum and Base.
Overview

ATV — DeFi Yield Vault MCP Server

👁 npm version
👁 smithery badge
👁 MCP Registry
👁 License: MIT
👁 TypeScript
👁 GitHub

AI-native access to Aarna's tokenized yield vaults on Ethereum and Base. 19 tools for vault discovery, performance metrics, transaction building, and portfolio tracking.

API Base URL: https://atv-api.aarna.ai MCP Endpoint: https://atv-api.aarna.ai/mcp (Streamable HTTP) API Docs: https://atv-api.aarna.ai/docs

API Access

The hosted API at https://atv-api.aarna.ai is available to anyone with a valid API key. All requests require an x-api-key header.

To get an API key, reach out to us at dev@aarnalab.dev.

Quick Start (30 seconds)

Once you have your API key, add the config to your client:

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
 "mcpServers": {
 "atv": {
 "url": "https://atv-api.aarna.ai/mcp",
 "headers": { "x-api-key": "YOUR_API_KEY" }
 }
 }
}

Claude Code

claude mcp add atv --transport http https://atv-api.aarna.ai/mcp --header "x-api-key: YOUR_API_KEY"

Cursor

Create .cursor/mcp.json in your project root:

{
 "mcpServers": {
 "atv": {
 "url": "https://atv-api.aarna.ai/mcp",
 "headers": { "x-api-key": "YOUR_API_KEY" }
 }
 }
}

VS Code (Copilot)

Add to .vscode/settings.json:

{
 "mcp": {
 "servers": {
 "atv": {
 "url": "https://atv-api.aarna.ai/mcp",
 "headers": { "x-api-key": "YOUR_API_KEY" }
 }
 }
 }
}

mcp-remote (fallback for stdio-only clients)

{
 "mcpServers": {
 "atv": {
 "command": "npx",
 "args": ["-y", "mcp-remote", "https://atv-api.aarna.ai/mcp", "--header", "x-api-key:YOUR_API_KEY"]
 }
 }
}

Available Tools (19)

Discovery & Metadata

ToolDescription
list_vaultsList all vaults, optionally filter by chain
get_vaultGet metadata for a specific vault by address

Performance Metrics

ToolDescription
get_vault_navCurrent NAV (Net Asset Value) in USD
get_vault_tvlCurrent TVL (Total Value Locked) in USD
get_vault_apyAPY breakdown: base + reward + total

Operational Status

ToolDescription
get_deposit_statusWhether deposits are paused
get_withdraw_statusWhether withdrawals are paused
get_queue_withdraw_statusWhether queued withdrawals are paused

Transaction Builders (Instant)

ToolDescription
build_deposit_txBuild approve + deposit transaction steps
build_withdraw_txBuild withdrawal transaction steps
build_stake_txBuild approve + stake steps (timelock vaults)
build_unstake_txBuild unstake step (timelock vaults)

Transaction Builders (Queued)

ToolDescription
build_queue_withdraw_txInitiate a queued withdrawal
build_unqueue_withdraw_txCancel a pending queued withdrawal
build_redeem_withdraw_txClaim a completed queued withdrawal

Analytics

ToolDescription
get_vault_balanceUnderlying token breakdown
get_historical_navNAV data points over N days
get_total_tvlPlatform-wide or per-vault TVL
get_user_investmentsUser portfolio and positions

Example Prompts

  • "What DeFi vaults are available on Base?"
  • "What's the current APY for vault 0x...?"
  • "Build a deposit of 1000 USDC into vault 0x..."
  • "Show my portfolio across all Aarna vaults"
  • "Is the queue-withdraw paused on vault 0x...?"

REST API

All endpoints require x-api-key header and are prefixed with /v1.

Vault Endpoints

MethodPathDescription
GET/v1/vaultsList all available vaults
GET/v1/vaults/tvlPlatform-wide TVL
GET/v1/vaults/:addressVault metadata
GET/v1/vaults/:address/navNAV price
GET/v1/vaults/:address/tvlVault TVL
GET/v1/vaults/:address/apyAPY breakdown
GET/v1/vaults/:address/deposit-statusDeposit pause status
GET/v1/vaults/:address/withdraw-statusWithdraw pause status
GET/v1/vaults/:address/queue-withdraw-statusQueue-withdraw pause status
GET/v1/vaults/:address/balanceToken breakdown
GET/v1/vaults/:address/historical-navHistorical NAV

Transaction Endpoints

MethodPathDescription
GET/v1/deposit-txBuild deposit calldata
GET/v1/withdraw-txBuild withdraw calldata
GET/v1/stake-txBuild stake calldata
GET/v1/unstake-txBuild unstake calldata
GET/v1/queue-withdraw-txBuild queue-withdraw calldata
GET/v1/unqueue-withdraw-txBuild unqueue-withdraw calldata
GET/v1/redeem-withdraw-txBuild redeem-withdraw calldata

Other Endpoints

MethodPathDescription
GET/v1/user-investmentsUser portfolio data
ALL/mcpMCP server (Streamable HTTP)

Unauthenticated

MethodPathDescription
GET/healthHealth check
GET/openapi.jsonOpenAPI 3.1 spec
GET/docsInteractive API reference
GET/.well-known/agent.jsonA2A agent card

TypeScript SDK

import { AtvClient } from '@atv/sdk';
const client = new AtvClient({
 apiKey: 'atv_...',
 baseUrl: 'https://atv-api.aarna.ai',
});
const vaults = await client.vaults.list({ chain: 'base' });
const nav = await client.vaults.nav('0xVaultAddress');

Self-Hosting

docker build -t atv-api \
 --build-arg AWS_ACCESS_KEY_ID=... \
 --build-arg AWS_SECRET_ACCESS_KEY=... \
 --build-arg AWS_DEFAULT_REGION=us-east-1 .
docker run -p 3000:3000 atv-api

Required environment variables (set in AWS Secrets Manager under atv-sdk):

  • DATABASE_URL — PostgreSQL connection string
  • REDIS_URL — Redis host:port
  • RPC_URL_ETHEREUM — Ethereum JSON-RPC endpoint
  • RPC_URL_BASE — Base JSON-RPC endpoint
  • STRAPI_URL — CMS URL
  • STRAPI_API_TOKEN — CMS API token
  • ENGINE_BASE_URL — Aarna engine API

Development

Prerequisites

  • Node.js 20+
  • pnpm
  • PostgreSQL
  • Redis

Setup

pnpm install
cp .env.example apps/api/.env
# Fill in environment variables
pnpm migrate
pnpm dev

API: http://localhost:3000 | Docs: http://localhost:3000/docs

Repository Structure

atv-sdk/
├── apps/api/ # Express API server + MCP server
├── packages/sdk/ # TypeScript SDK (@atv/sdk)
├── packages/mcp-server/ # npm connector package (@aarna-ai/mcp-server-atv)
├── server.json # MCP registry manifest
└── docs/ # Guides

Build

pnpm build
# API: apps/api/dist/
# SDK: packages/sdk/dist/ (CJS + ESM)

Customer Onboarding

See docs/customer-onboarding.md for how to generate API keys, manage tiers, revoke access, and run admin queries.

License

MIT — see LICENSE.

Server Config

{
 "mcpServers": {
 "atv": {
 "url": "https://atv-api.aarna.ai/mcp",
 "headers": {
 "x-api-key": "atv_9068ba33deddc767596afc8a507b8fa950eb0f0466193525"
 }
 }
 }
}
© 2025 MCP.so. All rights reserved.

Build with ShipAny.