@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.
- package/README.md +92 -0
- 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