Skip to main content
Glama
mhr2027r-dotcom

Capital Flow Desk — UnlockFlow MCP

README.md
# Capital Flow Desk — MCP UnlockFlow (thin)

Thin **stdio** MCP server that exposes **UnlockFlowEvent v1** tools for directory / host listing readiness.

**Product:** CFD Agent Feed (SKU B) sample surface  
**Schema:** UnlockFlowEvent `schema_version: "1"` (copied from `../agent-feed/schema.json`)  
**Status:** Local illustrative seeds only — **not** a live authenticated feed  
**NFA:** Research framing. Not financial advice. Do not convert `sell_pressure_score` into trade instructions.

---

## What it is

| | |
|--|--|
| **Wedge** | Supply shock → capital-flow judgment (calendar is input; realized flow is the read) |
| **Transport** | stdio (MCP host launches this process) |
| **Data** | `data/events.json` — illustrative ENA + ZRO events (`illustrative: true`) |
| **Schema tool** | `data/unlock-flow-event.schema.json` |

This package is for **MCP directory listing / host wiring demos**. Live Agent Feed pull + Pro webhook stay behind onboarding — no API tokens in this repo.

---

## Tools

| Tool | Args | Returns |
|------|------|---------|
| `list_unlock_events` | `asset?`, `horizon?` | Local UnlockFlowEvent[] (+ count / NFA note) |
| `get_unlock_event` | `event_id` | One UnlockFlowEvent |
| `get_schema` | — | UnlockFlowEvent JSON Schema v1 |

Horizons: `T-30` · `T-7` · `T-48h` · `T0` · `T+7`.

Seed ids:

- `uf_20261005_ena_t30` — Ethena original-investor acceleration (size **estimate**)
- `uf_20260920_zro_t48h` — LayerZero digest cliff window (**estimate** labels)

Always surface `disclaimer: "NFA"` and respect `precision_grade` / `illustrative`.

---

## Run locally (stdio)

Requires **Node.js ≥ 20**.

```bash
cd /workspace/crypto-research-desk/mcp-unlockflow
npm install
npm start
```

`npm start` runs `npx tsx src/index.ts` and speaks MCP over **stdin/stdout** (log only on stderr).

### Cursor / Claude Desktop style config

Repo-root **`.mcp.json`** (Open Plugins / [cursor.directory](https://cursor.directory/plugins/new) auto-detect):

```json
{
  "mcpServers": {
    "cfd-unlockflow": {
      "command": "npx",
      "args": ["-y", "tsx", "src/index.ts"]
    }
  }
}
```

Paste the same block into Cursor **Settings → MCP** / Claude Desktop `mcpServers`, or clone this repo and point the host at it.

After npm publish (`@capitalflowdesk/mcp-unlockflow`):

```json
{
  "mcpServers": {
    "cfd-unlockflow": {
      "command": "npx",
      "args": ["-y", "@capitalflowdesk/mcp-unlockflow"]
    }
  }
}
```

Or after local `npm install`:

```bash
npm run start
```

Optional smoke with Inspector (host launches the process):

```bash
npx @modelcontextprotocol/inspector npx tsx src/index.ts
```

---

## Pricing (draft Agent Feed)

| Tier | Price | Includes (draft) |
|------|------:|------------------|
| **Starter** | **99 USDT / mo** | Authenticated UnlockFlowEvent pull; schema-stable v1 |
| **Pro** | **299 USDT / mo** | Starter + webhook (`cfd.unlock_flow.v1`) on publish / horizon refresh |

Settlement: USDT **TRC-20** · wallet in `../PRODUCTS.md`  
**Onboard:** [@CapitalFlowDeskBot](https://t.me/CapitalFlowDeskBot) or [@Mohammad_GNA](https://t.me/Mohammad_GNA) — subject **Agent Feed / UnlockFlowEvent**.

Human Telegram membership is a **separate** SKU — do **not** paste Members invite links here.

---

## Registry metadata

`server.json` is a **draft** for Official MCP Registry readiness. **Do not publish** until namespace ownership and packaging are intentional.

---

## Layout

```text
mcp-unlockflow/
  .mcp.json            # cursor.directory / Open Plugins auto-detect
  README.md
  package.json
  server.json          # registry draft — do not publish until intentional
  bin/cfd-mcp-unlockflow.js
  src/index.ts         # stdio MCP
  scripts/publish-npm.sh
  data/
    events.json        # ENA + ZRO illustrative seeds
    unlock-flow-event.schema.json
```

Deps: `@modelcontextprotocol/sdk`, `zod`, `tsx`.

---

*Not financial advice.*


## Smoke test

```bash
cd mcp-unlockflow && npx tsx scripts/smoke.ts
```
Expect `SMOKE_PASS` and tools: `list_unlock_events`, `get_unlock_event`, `get_schema`.

## Install (Cursor / Claude Desktop / cursor.directory)

1. **cursor.directory** — open https://cursor.directory/plugins/new → paste  
   `https://github.com/mhr2027r-dotcom/mcp-unlockflow`  
   Auto-detect uses repo-root **`.mcp.json`**.
2. **Manual host config** (same payload as `.mcp.json`):

```json
{
  "mcpServers": {
    "cfd-unlockflow": {
      "command": "npx",
      "args": ["-y", "tsx", "src/index.ts"]
    }
  }
}
```

Run from a clone of this repo (host cwd = repo root), or after publish:

```json
{
  "mcpServers": {
    "cfd-unlockflow": {
      "command": "npx",
      "args": ["-y", "@capitalflowdesk/mcp-unlockflow"]
    }
  }
}
```

Clone: `git clone https://github.com/mhr2027r-dotcom/mcp-unlockflow.git`

## Live Agent Feed (paid)

Illustrative seeds only in this repo. Live UnlockFlow feed after USDT TRC-20 onboard:
- Starter **99** / Pro **299** USDT · @CapitalFlowDeskBot · @Mohammad_GNA
- Free notes: https://t.me/CapitalFlowDeskHQ

NFA.

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct purpose: listing events, fetching a single event by ID, and retrieving the schema. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: list_unlock_events, get_unlock_event, and get_schema. The naming is predictable and easy to infer.

Tool Count5/5

Three tools is appropriate for a server scoped to illustrative local samples. Each tool earns its place: list, get, and schema introspection.

Completeness5/5

For the stated purpose of accessing local illustrative UnlockFlowEvent v1 samples, the surface is complete: list, fetch by ID, and schema retrieval cover all necessary read-only operations. Live feed and mutation tools are explicitly out of scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues