@andrewkimjoseph/celina 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +92 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -102,6 +102,98 @@ For local write tools, add a funded mainnet wallet:
102
102
 
103
103
  Never commit private keys. Use env vars only.
104
104
 
105
+ ## Local LLM integration
106
+
107
+ Celina is an **MCP tool server**. A local LLM stack needs an **MCP client** that can connect to Celina and pass tool definitions to a model that supports **function / tool calling**.
108
+
109
+ Read-only tools (balances, blocks, GoodDollar status, etc.) work out of the box. For local write tools (`send_token`, `estimate_send`), set `CELO_PRIVATE_KEY` in the MCP server `env` block (stdio) or use the [hosted encryption flow](#write-tools-hosted-mode) (HTTP).
110
+
111
+ ### LM Studio (0.3.17+)
112
+
113
+ LM Studio can host MCP servers directly via `mcp.json` (same format as Cursor).
114
+
115
+ 1. Open LM Studio → **Program** → **Install** → **Edit mcp.json**
116
+ 2. Add Celina under `mcpServers`
117
+ 3. In **Server Settings**, enable **Allow calling servers from mcp.json**
118
+ 4. Chat with a tool-capable model (e.g. Qwen 2.5, Llama 3.1+)
119
+
120
+ ```json
121
+ {
122
+ "mcpServers": {
123
+ "celina": {
124
+ "command": "npx",
125
+ "args": ["-y", "@andrewkimjoseph/celina"],
126
+ "env": {
127
+ "CELO_PRIVATE_KEY": "0x..."
128
+ }
129
+ }
130
+ }
131
+ }
132
+ ```
133
+
134
+ Omit `CELO_PRIVATE_KEY` if you only need read-only chain queries.
135
+
136
+ ### Open WebUI + Ollama
137
+
138
+ [Open WebUI](https://docs.openwebui.com/features/extensibility/mcp/) supports **streamable HTTP** MCP natively (not stdio).
139
+
140
+ **Hosted Celina (easiest):** Admin Settings → External Tools → **Add Server** → Type: **MCP (Streamable HTTP)** → URL:
141
+
142
+ ```
143
+ https://mcp.celina.andrewkimjoseph.com/mcp
144
+ ```
145
+
146
+ **Local HTTP server:** run Celina in HTTP mode, then point Open WebUI at it:
147
+
148
+ ```bash
149
+ npm run build
150
+ npm run start:http
151
+ ```
152
+
153
+ Add an External Tool with Type **MCP (Streamable HTTP)** and URL `http://localhost:10000/mcp`.
154
+
155
+ For write tools over HTTP, set `WALLET_ENCRYPTION_PRIVATE_KEY` in `.env` (see [Deploy to Render](#deploy-to-render)) and use the [encrypt-key flow](#write-tools-hosted-mode).
156
+
157
+ > If Open WebUI runs in Docker, use `http://host.docker.internal:10000/mcp` instead of `localhost`.
158
+
159
+ ### Continue (VS Code)
160
+
161
+ [Continue](https://docs.continue.dev/customize/deep-dives/mcp) works with local models (Ollama, LM Studio, etc.) in **agent mode**.
162
+
163
+ Create `.continue/mcpServers/celina.yaml` in your workspace:
164
+
165
+ ```yaml
166
+ name: Celina
167
+ version: 0.0.1
168
+ schema: v1
169
+ mcpServers:
170
+ - name: celina
171
+ type: stdio
172
+ command: npx
173
+ args:
174
+ - "-y"
175
+ - "@andrewkimjoseph/celina"
176
+ env:
177
+ CELO_PRIVATE_KEY: "0x..."
178
+ ```
179
+
180
+ Alternatively, copy the [local stdio JSON](#local-stdio-npm) from the Cursor section into `.continue/mcpServers/mcp.json` — Continue picks up Claude/Cursor-style configs automatically.
181
+
182
+ ### Test without an LLM
183
+
184
+ Use MCP Inspector to call Celina tools directly over stdio:
185
+
186
+ ```bash
187
+ npm run build
188
+ npm run inspect
189
+ ```
190
+
191
+ ### Tips
192
+
193
+ - Use models with reliable tool-calling support; small or older models may skip tools or call them incorrectly.
194
+ - Start with read-only prompts, e.g. *"What's the USDm balance of 0x…?"* or *"Is this wallet GoodDollar whitelisted?"*
195
+ - Keep private keys in env vars only — never commit them to config files in git.
196
+
105
197
  ## Write tools (hosted mode)
106
198
 
107
199
  Write tools (`send_token`, `estimate_send`) accept an RSA-encrypted private key per request — never plaintext.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andrewkimjoseph/celina",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "Celina — MCP server for Celo mainnet. Balances, transfers, and chain reads for LLM agents.",
5
5
  "type": "module",
6
6
  "main": "build/index.js",