Back to Browse

Atv Sdk MCP Server

Developer ToolsLow Risk9.7MCP RegistryLocal
Free

Server data from the Official MCP Registry

Access Aarna's DeFi yield vaults — query NAV/TVL/APY, build transactions, track portfolios.

About

Access Aarna's DeFi yield vaults — query NAV/TVL/APY, build transactions, track portfolios.

Security Report

9.7
Low Risk9.7Low Risk

Valid MCP server (2 strong, 3 medium validity signals). No known CVEs in dependencies. ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.

14 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

What You'll Need

Set these up before or after installing:

API key for authenticating with the ATV APIRequired

Environment variable: ATV_API_KEY

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-aarna-ai-atv": {
      "env": {
        "ATV_API_KEY": "your-atv-api-key-here"
      },
      "args": [
        "-y",
        "@aarna-ai/mcp-server-atv"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

ATV — DeFi Yield Vault MCP Server

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

AI-native access to Aarna's tokenized yield vaults on Ethereum and Base. 20 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_portfolioUnderlying token portfolio
get_historical_navNAV data points over a period (7, 30, 60, 360, max)
get_historical_tvlTVL data points over a period (7, 30, 60, 360, max)
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/portfolioToken portfolio
GET/v1/vaults/:address/historical-navHistorical NAV (days: 7,30,60,360,max)
GET/v1/vaults/:address/historical-tvlHistorical TVL (days: 7,30,60,360,max)

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/llms.txtLLM-friendly documentation (llms.txt spec)
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.

Reviews

No reviews yet

Be the first to review this server!