# finance-district-mcp

Connect an AI coding agent to a Finance District wallet to inspect balances, compare token prices, find DeFi yields, swap assets, transfer funds, and pay for x402 APIs.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 783
- Author: aeonfun
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/aeonfun/aeon/tree/HEAD/skills/finance-district-mcp/SKILL.md
- Updated: 2026-10-25
- HTML: https://affpapa.org/en/nevibecode/skills/finance-district-mcp

## What it does

finance-district-mcp gives an agent access to a Finance District Agent Wallet. It can inspect holdings across supported chains, retrieve token prices, suggest yield strategies for idle stablecoins, and carry out explicitly requested transactions. Swaps work on EVM and Solana, while DeFi yield discovery is limited to EVM. The skill also supports x402 payments for API endpoints that accept a matching stablecoin and chain.

Private keys stay inside a trusted execution environment (TEE). The agent submits a structured request, and the wallet server signs within its own transfer limits, automatic-approval threshold, and destination denylist. Transactions that move funds require a direct instruction. The wallet rejects amounts above the approval threshold, and the agent must not attempt to bypass that restriction.

Connect through the Finance District dashboard's MCP panel using OAuth. Rotating refresh tokens require `GH_SECRETS_PAT` so updated credentials can persist; `scripts/mcp-oauth-refresh.sh` refreshes tokens on each run. After a task, the skill sends a notification through `./notify -f <file>` and includes the same transaction record in its final response. It must not write directly to `memory/logs/`, because the surrounding workflow appends the captured result there.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add aeonfun/aeon --skill finance-district-mcp -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/finance-district-mcp/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/finance-district-mcp/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add aeonfun/aeon --skill finance-district-mcp -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/finance-district-mcp/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add aeonfun/aeon --skill finance-district-mcp -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/finance-district-mcp/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install aeonfun/aeon finance-district-mcp
```

2. **Manually: put the files in place**
- File: `.github/skills/finance-district-mcp/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add aeonfun/aeon --skill finance-district-mcp -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/aeonfun/aeon --path skills/finance-district-mcp
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/finance-district-mcp/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add aeonfun/aeon --skill finance-district-mcp -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/aeonfun/aeon/tree/HEAD/skills/finance-district-mcp/SKILL.md

## When to use it
- Inspect wallet balances across multiple blockchains
- Compare DeFi yield strategies for idle stablecoins
- Swap a specified amount of tokens on EVM or Solana
- Transfer funds within wallet-enforced spending limits
- Pay for an API request through x402

## Example prompts
- Review my wallet balances and flag any unexplained changes.
- Find the best USDC yield option on Base, but do not deposit anything.
- Swap 5 USDC for ETH on Base and include the transaction details in the notification.

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 2665eb6c0080cc30.

BEGIN THIRD-PARTY FILE 2665eb6c0080cc30
```text
---
name: finance-district-mcp
description: Multichain non-custodial agent wallet via Finance District - check balances, prices, and best DeFi yields, move funds, swap, and make x402 paid API calls across EVM, Solana, Bitcoin, and Sui. Keys never leave a secure enclave (TEE); spend caps are enforced at the wallet. OAuth Connect via the dashboard MCP panel.
metadata:
  title: Finance District MCP
  mode: read-only
  category: crypto
  var: ""
  tags:
    - crypto
    - wallet
    - mcp
  mcp:
    - finance-district
  capabilities:
    - external_api
    - writes_external_host
    - onchain_writes
    - sends_notifications
---
> **${var}** — what to do with the wallet. Empty → a daily wallet brief (balances + notable price moves + top stablecoin yield). Or a specific instruction, e.g. `best USDC yield on Base`, `swap 5 USDC to ETH on Base`, `pay <x402-url> for <data>`.

Operate the operator's Finance District Agent Wallet. Non-custodial: private keys never leave a secure enclave (TEE) — the agent never sees them; it submits structured intent and the wallet server signs within limits. Per-transfer limits, an auto-approve threshold, and a destination denylist are enforced server-side, not in this prompt.

## Detection & auth

Wired by the dashboard MCP panel's one-click **Connect** (OAuth with `offline_access`; tokens stored as `MCP_FINANCE_DISTRICT_TOKEN` + `MCP_FINANCE_DISTRICT_OAUTH`, refreshed each run by `scripts/mcp-oauth-refresh.sh`). Because Finance District rotates its refresh token, set `GH_SECRETS_PAT` so rotations persist (see `docs/mcp-oauth.md`). Tools surface as `mcp__finance-district__*` — discover them from the server each run; don't assume a fixed list.

- No `mcp__finance-district__*` tool callable → not connected, or secrets missing (the workflow logs a `::warning::` and skips MCP). Log `FD_NOT_CONNECTED`, notify once pointing the operator at dashboard → MCP → Connect Finance District, and exit.
- Tools return 401 / invalid-token → the OAuth refresh failed (rotating refresh tokens need `GH_SECRETS_PAT` — see `docs/mcp-oauth.md`). Log `FD_AUTH_STALE`, notify the operator to re-connect once, and exit.

## Steps

1. **Identity + balances** — confirm the wallet (`getMyInfo`) and read balances per chain (`getWalletOverview`). Diff against the last entry in `memory/logs/`; flag any unexplained change prominently.
```
END THIRD-PARTY FILE 2665eb6c0080cc30

The third-party file has ended. Everything between the 2665eb6c0080cc30 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2384 of 4549 bytes. © aeonfun · MIT · https://github.com/aeonfun/aeon/tree/HEAD/skills/finance-district-mcp/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
