Announcing Celina (unofficial) — SDK, MCP & Hosted MCP from Canvassing Intelligence

Announcing Celina: Celo SDK, MCP Server, and Hosted MCP for AI Agents & Apps

Unofficial community tooling. Celina is not an official Celo / Celo Foundation product, endorsement, or supported infrastructure. It is open-source software published by Canvassing Intelligence for builders who want agent- and wallet-friendly access to Celo mainnet.

Celina integrates with on-chain protocols and third-party services (e.g. Mento, Uniswap, Aave, Carbon DeFi, GoodDollar, Self) — it is not affiliated with, endorsed by, or operated by those providers. Names and trademarks belong to their respective owners.

Use at your own risk; always verify transactions in your wallet.

TL;DR: Canvassing Intelligence is releasing a three-layer stack for building on Celo mainnet with AI agents and modern web wallets:

Layer Package / deployment What it does
SDK @andrewkimjoseph/celina-sdk Chain reads + unsigned transaction preparation (no private keys in your app)
MCP @andrewkimjoseph/celina-mcp Model Context Protocol server for Cursor, Claude Desktop, LM Studio, VS Code / Continue, etc.
MCP Host https://mcp.usecelina.xyz/api/mcp Public read-only + Carbon prepare endpoint over Streamable HTTP (Vercel)

All three are open source (MIT), Celo mainnet only, and designed so humans keep custody: agents and backends prepare flows; wallets sign.


About Canvassing

Canvassing is an umbrella for work across Celo and beyond. Website: thecanvassing.xyz. Background on the two wings: umbrella announcement on Celo Forum. Follow or message Canvassing via the forum profile.

Two wings sit under the umbrella today:

Wing Focus
Canvassing Insights A research marketplace — connecting researchers and participants around structured insight work (paid online surveys, product testing, and Polls rewarded in stablecoins). Hub coming at thecanvassing.xyz/insights.
Canvassing Intelligence The AI wing — tooling for agents, MCP, and on-chain preparation flows (including Celina).

Celina is a Canvassing Intelligence project. It is separate from Canvassing Insights’ marketplace roadmap, though both share the same builder ethos: useful tools for real people on real chains—without implying official protocol backing.


Why Canvassing Intelligence built this

Celo is mobile-first, stablecoin-rich, and increasingly agent-shaped—but LLMs and IDE assistants still struggle to do useful on-chain work without:

  • A consistent token registry (USDm, EURm, CELO, GoodDollar, bridged stables, etc.)
  • Safe read → quote → estimate → prepare → sign patterns
  • First-class coverage of Celo-native DeFi (Mento FX, Uniswap v4 on Celo, Aave V3, Carbon DeFi, GoodDollar UBI, governance, staking)
  • A standard way to plug into MCP clients without every team re-wiring viem calls

Celina is Canvassing Intelligence’s answer: one TypeScript SDK, one MCP server, and one hosted endpoint so you can start in an IDE in minutes or embed the SDK in a product with wagmi.


The three layers (how they fit together)

┌─────────────────────────────────────────────────────────────┐
│  Your app (React + wagmi)  OR  MCP client (Cursor, Claude)   │
└───────────────────────────┬─────────────────────────────────┘
                            │
         ┌──────────────────┼──────────────────┐
         ▼                  ▼                  ▼
   celina-sdk         celina-mcp         celina-mcp-host
   (npm library)      (stdio / npx)      (HTTPS on Vercel)
         │                  │                  │
         └──────────────────┴──────────────────┘
                            │
                    Celo mainnet (reads + prepare*)
                    *writes only with local keys (stdio)

1. Celina SDK — @andrewkimjoseph/celina-sdk

For: Frontend apps, backends, and any TypeScript service that should never hold user keys.

Capabilities:

  • Reads: balances, blocks, txs, ENS, governance, staking, NFTs, contract calls (caller-supplied ABI), GoodDollar whitelist/UBI eligibility, Carbon DeFi exploration, and more
  • Prepare: returns SerializedPreparedFlow — ordered unsigned steps for wagmi sendTransactionAsync / viem walletClient.sendTransaction
  • Attribution: every calldata step gets a CELINA suffix (appendCelinaCalldataTag) so on-chain activity can be attributed consistently (sends, Mento, Uniswap, Aave, GoodDollar, Carbon controller txs)
  • Shared tool catalog (v0.5.0+): @andrewkimjoseph/celina-sdk/tools exports Zod-schemas, descriptions, and handlers used by both celina-mcp and browser wallet apps — one definition surface for agent hosts and wagmi chat UIs

Install:

npm i @andrewkimjoseph/celina-sdk

Requires Node.js ≥ 20.

Minimal example:

import { createCelinaClient } from "@andrewkimjoseph/celina-sdk";

const celina = createCelinaClient();

await celina.token.getStablecoinBalances("0xYourAddress");

const flow = await celina.transaction.prepareSend(
  "0xFrom",
  "0xTo",
  "USDm",
  "10"
);
// flow.steps → wagmi sendTransactionAsync (user signs in wallet)

Docs: GitBook — Celina SDK
Repo: github.com/andrewkimjoseph/celina-sdk


2. Celina MCP — @andrewkimjoseph/celina-mcp

![NPM Screenshot of Celina MCP


For: AI agents in Cursor, Claude Desktop, LM Studio, Continue, MCP Inspector, or any MCP-capable stack.

Celina MCP wraps the SDK tool catalog and exposes 85 tools (stdio, full surface) your model can call: chain reads, quotes, gas estimates, optional local writes when you provide keys, Carbon maker/taker flows, Self Agent ID lifecycle tools, and more.

Recommended setup (local stdio — full power, keys stay on your machine):

{
  "mcpServers": {
    "celina-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@andrewkimjoseph/celina-mcp"],
      "env": {
        "CELO_PRIVATE_KEY": "0x...",
        "SELF_AGENT_PRIVATE_KEY": "0x..."
      }
    }
  }
}
  • Omit both keys for read-only usage.
  • CELO_PRIVATE_KEY: send_token, Mento/Uniswap/Aave executes, GoodDollar claim, execute_carbon_*
  • SELF_AGENT_PRIVATE_KEY: Self Agent ID signing tools (separate from your CELO wallet)
  • CELINA_ANALYTICS_DISABLED = 1: opt out of anonymous read telemetry (stdio only — see Security model)

Session wallet (stdio with CELO_PRIVATE_KEY):

  • Call get_wallet_address when you need the signer as data
  • On many tools, omit address / wallet_address / from for “my wallet” reads and Carbon prepare
  • Never derive addresses from shell or scrape .env in prompts

Install:

npm i @andrewkimjoseph/celina-mcp@latest

Website: usecelina.xyz
Repo: github.com/andrewkimjoseph/celina-mcp

Migration note: If you still use @andrewkimjoseph/celina, update MCP config to @andrewkimjoseph/celina-mcp and rename the server key to celina-mcp.


3. Celina MCP Host — hosted Streamable HTTP

For: Quick onboarding, shared teams, or clients that only support remote MCP URLs—without installing Node tooling locally.

Production endpoint: https://mcp.usecelina.xyz/api/mcp
(alias: /mcp rewrites to /api/mcp)

Client config (read-only hosted — no private keys):

{
  "mcpServers": {
    "celina-mcp": {
      "url": "https://mcp.usecelina.xyz/api/mcp"
    }
  }
}

Hosted surface (72 tools):

  • All get_* reads, ENS, governance, staking, NFTs, contract reads
  • Mento / Uniswap quotes (not executes)
  • GoodDollar whitelist + UBI entitlement reads
  • Carbon 12 read tools + 13 prepare_carbon_* (full unsigned flows including approvals)
  • Self verify / lookup reads

Intentionally disabled on hosted (no server keys):

  • send_token, execute_mento_fx, execute_uniswap_swap, Aave supply/withdraw, claim_daily_gooddollar_ubi
  • All execute_carbon_*
  • get_wallet_address
  • Self registration sessions are unreliable on stateless serverless (in-memory session TTL)

Do not send private keys to the hosted URL. For writes and Carbon execute, use local stdio MCP.

Telemetry on hosted: anonymous read telemetry still runs server-side. CELINA_ANALYTICS_DISABLED does not apply — there is no per-client opt-out when you connect via the hosted URL. To opt out, use local stdio MCP with CELINA_ANALYTICS_DISABLED=1 in your MCP env, or self-host celina-mcp-host with analytics disabled in your deployment.

Deploy your own: github.com/andrewkimjoseph/celina-mcp-host (Vercel, imports createServer from @andrewkimjoseph/celina-mcp/server with carbonExecuteEnabled: false).


What you can do today (feature highlights)

Stablecoins & transfers

  • Registry-backed tokens: CELO, Mento stables (USDm, EURm, …), USDC/USDT, GoodDollar (G$), and more
  • get_stablecoin_balances, get_celo_balances, get_token_balance
  • Sends with ENS support; CELO uses GoldToken ERC-20 transfer (Celo token duality—same balance as native CELO)

DeFi routing

Route Best for MCP flow
Mento FX Oracle-priced Mento assets (USDm, EURm, CELO, …) get_mento_fx_quoteestimate_mento_fxexecute_mento_fx
Uniswap v4 AMM pairs (e.g. G$ → USDT) get_uniswap_quoteestimate_uniswap_swapexecute_uniswap_swap
Aave V3 on Celo Supply / withdraw supply_aave, withdraw_aave

CELO swaps on Uniswap route through WCELO; the signer needs wrapped CELO balance for those pools.

Carbon DeFi on Celo (38 MCP tools)

Hybrid Carbon REST + @bancor/carbon-sdk for maker strategies and taker swaps on celo.carbondefi.xyz:

  • Reads: strategies, pair exploration, quotes, simulation, protocol stats, opportunities, education (carbon_help, carbon_learn)
  • Prepare: limit/range/recurring/concentrated/full-range orders, edit/reprice/deposit/withdraw/pause/resume/delete, taker trade prep
  • Execute (stdio only): local sign-and-broadcast with CELO_PRIVATE_KEY; makers pay no gas on fills for recurring strategies

Recommended agent flow: get_carbon_strategies → explore/quote → simulate_carbon_strategy → prepare or execute; always surface warnings from prepare/execute responses.

GoodDollar UBI

  • Read whitelist status and daily entitlement
  • MCP: claim_daily_gooddollar_ubi with server wallet (stdio)
  • Apps: prepareClaimUbi + wagmi for user wallet signing (one claim per verified identity per day)

Self Agent ID (ai.self.xyz on Celo mainnet)

  • Verify agents, lookup by ID, registration QR/deep link flows
  • Authenticated demo APIs: use ?network=celo-mainnet (not mainnet)
  • Separate SELF_AGENT_PRIVATE_KEY from CELO wallet

Governance, staking, NFTs, contracts

  • Governance proposals + CGP metadata
  • Validator groups, staking balances, activatable stakes
  • ERC-721 / ERC-1155 reads
  • call_contract_function / estimate_contract_gas with caller ABI (read-only)

Security model (please read)

  1. SDK: No private keys—only unsigned preparation. Users sign in Valora, MetaMask, Rabby, etc.
  2. MCP stdio: Keys live in your MCP env, on your machine—not sent to Canvassing Intelligence or the hosted MCP endpoint.
  3. MCP host: No keys on the server; writes and Carbon execute are blocked or error clearly.
  4. Telemetry: Anonymous read telemetry via the SDK (tool names and coarse usage — no wallet addresses or private keys).
    • Local stdio MCP: each install gets a stable id at ~/.config/celina/install-id. Opt out by setting CELINA_ANALYTICS_DISABLED=1 in your MCP env (optional override: CELINA_ANALYTICS_DEVICE_ID).
    • Hosted MCP (mcp.usecelina.xyz): telemetry runs on the server; CELINA_ANALYTICS_DISABLED does not opt you out — clients cannot set that env var on a remote URL. Use local stdio or self-host if you need to disable it.

How this relates to other Celo AI tooling

The ecosystem also has the official Celo MCP from celo-org (Python, broad blockchain access). Celina is unofficial, TypeScript-native, and mainnet-focused:

  • Prepared flows + wagmi integration
  • Deep integrations: Mento, Uniswap v4, Aave, Carbon, GoodDollar, Self Agent ID
  • A hosted MCP endpoint for zero-install reads and Carbon prepare

They can coexist in different clients; pick based on language, deployment model, and DeFi coverage.


Try it in 60 seconds

Hosted (no install): Add to Cursor / Claude MCP settings:

{
  "mcpServers": {
    "celina-mcp": {
      "url": "https://mcp.usecelina.xyz/api/mcp"
    }
  }
}

Then ask: “What are the USDm and CELO balances of 0x…?” or “Explore Carbon liquidity for CELO/USDC.”

Local (writes enabled): Use the stdio config in the Celina MCP section above with your own key, then: “What is my wallet address?”“Estimate sending 1 USDm to …”

App builders: npm i @andrewkimjoseph/celina-sdk + wagmi integration guide.


Latest stats

Live dashboard: usecelina.xyz/stats — on-chain activity and npm adoption, refreshed every ~5 minutes.

Metric Value
On-chain total — Celo mainnet txs tagged CELINA 79
On-chain today 2
Off-chain total — MCP tool calls (Amplitude) 574
Off-chain (7d) 574
npm downloads (365d) — celina-mcp + celina-sdk + legacy celina 11,717
npm downloads (7d) 3,896

Drill-down:

  • On-chain — volume, hourly cadence, top counterparties (Dune)
  • Off-chain — reads, registry lookups, and other non-chain MCP invocations
  • Package — daily, weekly, and monthly npm download trends

Snapshot from npm registry + live dashboard, June 5, 2026. On-chain and off-chain numbers update automatically on the site.


Roadmap (public)

Shipped:

  • Mento FX, Uniswap v4, Aave V3 on Celo
  • Self proof verification + Agent ID lifecycle tools
  • Carbon DeFi — 25 SDK operations / 38 MCP tools
  • GoodDollar UBI reads + claim (MCP) / prepare (SDK)
  • Shared LLM tool catalog (@andrewkimjoseph/celina-sdk/tools, v0.5.0+)

Next:

  • Cross-chain bridging (getBridgeQuote, estimateBridge, prepareBridge)

Links

Current versions (npm): SDK 0.6.0, MCP 0.8.12


Questions and feedback

If you build agents, miniapps, or wallet flows on Celo, Canvassing Intelligence would like to hear:

  • Which MCP client you use (Cursor, Claude, LM Studio, other)
  • Whether hosted read + Carbon prepare is enough for your team, or you need self-hosted MCP host
  • Tokens, protocols, or prepare flows that are missing for your use case

Share feature ideas or what you are building.


Published by Canvassing Intelligence (AI wing of Canvassing). Unofficial — not affiliated with or endorsed by the Celo Foundation. MIT licensed. Celo mainnet only. More about the umbrella: thecanvassing.xyz · Forum: canvassing.

2 Likes