Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Access Aarna's DeFi yield vaults — query NAV/TVL/APY, build transactions, track portfolios.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ATV_API_KEYค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"atv": {
"command": "npx",
"args": [
"-y",
"@aarna-ai/mcp-server-atv"
],
"env": {
"ATV_API_KEY": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add atv --env ATV_API_KEY='ใส่ค่าของคุณ' -- npx -y @aarna-ai/mcp-server-atvเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"atv": {
"command": "npx",
"args": [
"-y",
"@aarna-ai/mcp-server-atv"
],
"env": {
"ATV_API_KEY": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"atv": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@aarna-ai/mcp-server-atv"
],
"env": {
"ATV_API_KEY": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub aarna-ai ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: ATV_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.1) เข้า registry 8 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, OpenTakeoff
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Construction takeoff for AI agents: load plans, set scale, measure, count, export with provenance.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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
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.
Once you have your API key, add the config to your client:
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 mcp add atv --transport http https://atv-api.aarna.ai/mcp --header "x-api-key: YOUR_API_KEY"
Create .cursor/mcp.json in your project root:
{
"mcpServers": { "atv": { "url": "https://atv-api.aarna.ai/mcp", "headers": { "x-api-key": "YOUR_API_KEY" } } } }
Add to .vscode/settings.json:
{
"mcp": { "servers": { "atv": { "url": "https://atv-api.aarna.ai/mcp", "headers": { "x-api-key": "YOUR_API_KEY" } } } } }
{
"mcpServers": { "atv": { "command": "npx", "args": ["-y", "mcp-remote", "https://atv-api.aarna.ai/mcp", "--header", "x-api-key:YOUR_API_KEY"] } } }
| Tool | Description |
|---|---|
list_vaults | List all vaults, optionally filter by chain |
get_vault | Get metadata for a specific vault by address |
| Tool | Description |
|---|---|
get_vault_nav | Current NAV (Net Asset Value) in USD |
get_vault_tvl | Current TVL (Total Value Locked) in USD |
get_vault_apy | APY breakdown: base + reward + total |
| Tool | Description |
|---|---|
get_deposit_status | Whether deposits are paused |
get_withdraw_status | Whether withdrawals are paused |
get_queue_withdraw_status | Whether queued withdrawals are paused |
| Tool | Description |
|---|---|
build_deposit_tx | Build approve + deposit transaction steps |
build_withdraw_tx | Build withdrawal transaction steps |
build_stake_tx | Build approve + stake steps (timelock vaults) |
build_unstake_tx | Build unstake step (timelock vaults) |
| Tool | Description |
|---|---|
build_queue_withdraw_tx | Initiate a queued withdrawal |
build_unqueue_withdraw_tx | Cancel a pending queued withdrawal |
build_redeem_withdraw_tx | Claim a completed queued withdrawal |
| Tool | Description |
|---|---|
get_vault_portfolio | Underlying token portfolio |
get_historical_nav | NAV data points over a period (7, 30, 60, 360, max) |
get_historical_tvl | TVL data points over a period (7, 30, 60, 360, max) |
get_total_tvl | Platform-wide or per-vault TVL |
get_user_investments | User portfolio and positions |
All endpoints require x-api-key header and are prefixed with /v1.
| Method | Path | Description |
|---|---|---|
| GET | /v1/vaults | List all available vaults |
| GET | /v1/vaults/tvl | Platform-wide TVL |
| GET | /v1/vaults/:address | Vault metadata |
| GET | /v1/vaults/:address/nav | NAV price |
| GET | /v1/vaults/:address/tvl | Vault TVL |
| GET | /v1/vaults/:address/apy | APY breakdown |
| GET | /v1/vaults/:address/deposit-status | Deposit pause status |
| GET | /v1/vaults/:address/withdraw-status | Withdraw pause status |
| GET | /v1/vaults/:address/queue-withdraw-status | Queue-withdraw pause status |
| GET | /v1/vaults/:address/portfolio | Token portfolio |
| GET | /v1/vaults/:address/historical-nav | Historical NAV (days: 7,30,60,360,max) |
| GET | /v1/vaults/:address/historical-tvl | Historical TVL (days: 7,30,60,360,max) |
| Method | Path | Description |
|---|---|---|
| GET | /v1/deposit-tx | Build deposit calldata |
| GET | /v1/withdraw-tx | Build withdraw calldata |
| GET | /v1/stake-tx | Build stake calldata |
| GET | /v1/unstake-tx | Build unstake calldata |
| GET | /v1/queue-withdraw-tx | Build queue-withdraw calldata |
| GET | /v1/unqueue-withdraw-tx | Build unqueue-withdraw calldata |
| GET | /v1/redeem-withdraw-tx | Build redeem-withdraw calldata |
| Method | Path | Description |
|---|---|---|
| GET | /v1/user-investments | User portfolio data |
| ALL | /mcp | MCP server (Streamable HTTP) |
| Method | Path | Description |
|---|---|---|
| GET | /health | Health check |
| GET | /openapi.json | OpenAPI 3.1 spec |
| GET | /docs | Interactive API reference |
| GET | /llms.txt | LLM-friendly documentation (llms.txt spec) |
| GET | /.well-known/agent.json | A2A agent card |
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');
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 stringREDIS_URL — Redis host:portRPC_URL_ETHEREUM — Ethereum JSON-RPC endpointRPC_URL_BASE — Base JSON-RPC endpointSTRAPI_URL — CMS URLSTRAPI_API_TOKEN — CMS API tokenENGINE_BASE_URL — Aarna engine APIpnpm install
cp .env.example apps/api/.env
pnpm migrate pnpm dev
API: http://localhost:3000 | Docs: http://localhost:3000/docs
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
pnpm build
See docs/customer-onboarding.md for how to generate API keys, manage tiers, revoke access, and run admin queries.
MIT — see LICENSE.